{"version":3,"sources":["../node_modules/react/index.js","../node_modules/classnames/index.js","../node_modules/antd/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/antd/node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/antd/node_modules/@babel/runtime/helpers/slicedToArray.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/reactcss/lib/index.js","../node_modules/tslib/tslib.es6.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-util/es/warning.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/omit.js/es/index.js","../node_modules/antd/node_modules/@babel/runtime/helpers/classCallCheck.js","../../../../src/internal/util/pipe.ts","../../../src/internal/Observable.ts","../../../../src/internal/util/toSubscriber.ts","../../../../src/internal/util/canReportError.ts","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/antd/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/antd/node_modules/@babel/runtime/helpers/inherits.js","../node_modules/antd/node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/rc-util/es/raf.js","../node_modules/antd/es/_util/devWarning.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/react-dom/index.js","../node_modules/@ant-design/icons/lib/components/AntdIcon.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/react-color/lib/components/common/index.js","../node_modules/lodash-es/isArray.js","../node_modules/antd/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/rc-util/es/ref.js","../node_modules/lodash-es/_root.js","../../../src/internal/Subscriber.ts","../node_modules/antd/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/prop-types/index.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/fabric/dist/fabric.js","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/types/types-internal.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/plugins/es5.ts","../../src/immer.ts","../../src/utils/env.ts","../node_modules/reselect/es/index.js","../../src/devtoolsExtension.ts","../../src/isPlainObject.ts","../../src/utils.ts","../../src/getDefaultMiddleware.ts","../../src/configureStore.ts","../../src/createAction.ts","../../src/mapBuilders.ts","../../src/createSlice.ts","../../src/createReducer.ts","../../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../../src/index.ts","../../../../src/internal/util/UnsubscriptionError.ts","../../../src/internal/Subscription.ts","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/lodash-es/_Symbol.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/redux/es/redux.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/antd/es/_util/type.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useState.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-motion/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/raf/index.js","../../../src/internal/config.ts","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../../../../src/internal/util/root.ts","../node_modules/lodash/isArray.js","../node_modules/lodash/merge.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/lodash/isObject.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/lodash/_root.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/mini-store/esm/Provider.js","../node_modules/mini-store/esm/connect.js","../node_modules/mini-store/esm/create.js","../node_modules/rc-util/es/createChainedFunction.js","../node_modules/rc-menu/es/utils/isMobile.js","../node_modules/rc-menu/es/util.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/SubMenu.js","../node_modules/rc-menu/es/DOMWrap.js","../node_modules/rc-menu/es/SubPopupMenu.js","../node_modules/rc-menu/es/utils/legacyUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/webpack/buildin/global.js","../node_modules/lodash/isObjectLike.js","../node_modules/react-color/lib/helpers/color.js","../node_modules/antd/node_modules/lodash/_root.js","../../../../src/internal/symbol/observable.ts","../node_modules/lodash-es/_toKey.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../../../src/propertyUtils.js","../../../src/utils.js","../../../src/getOffsetParent.js","../../../src/isAncestorFixed.js","../../../src/getVisibleRectForElement.js","../../../src/getRegion.js","../../../src/getAlignOffset.js","../../../src/getElFuturePos.js","../../../src/align/align.js","../../../src/adjustForViewport.js","../../../src/align/alignElement.js","../../../src/align/alignPoint.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/rc-trigger/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-router-redux/lib/index.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/react-fast-compare/index.js","../node_modules/antd/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@ant-design/icons/RightOutlined.js","../../../../src/internal/util/hostReportError.ts","../node_modules/rc-tree/es/util.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/antd/es/_util/unreachableException.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/_util/raf.js","../node_modules/antd/es/_util/wave.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/lodash-es/_toSource.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/index.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/lodash/map.js","../node_modules/react-is/index.js","../../../../src/internal/symbol/iterator.ts","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/@ant-design/icons/CloseOutlined.js","../node_modules/@ant-design/icons/DownOutlined.js","../node_modules/lodash-es/isSymbol.js","../node_modules/property-expr/index.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_getNative.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../../../../src/internal/symbol/rxSubscriber.ts","../node_modules/array-tree-filter/lib/index.js","../node_modules/@ant-design/icons/LeftOutlined.js","../node_modules/shallowequal/index.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash/isArrayLike.js","../node_modules/antd/node_modules/lodash/_getNative.js","../../../src/Linq.ts","../../../../src/internal/scheduled/scheduleArray.ts","../../../../src/internal/operators/map.ts","../../../src/internal/InnerSubscriber.ts","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/@ant-design/icons/CloseCircleFilled.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/synchronous-promise/index.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/antd/es/tooltip/placements.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/_getSymbols.js","../../../src/internal/Observer.ts","../node_modules/rc-util/es/Dom/contains.js","../node_modules/react-color/lib/index.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/toPath.js","../node_modules/lodash-es/cloneDeep.js","../../src/FormikContext.tsx","../../src/Formik.tsx","../../src/Field.tsx","../../src/Form.tsx","../../src/connect.tsx","../../src/FieldArray.tsx","../../src/ErrorMessage.tsx","../../src/FastField.tsx","../node_modules/lodash/_Symbol.js","../node_modules/lodash/keys.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/eq.js","../node_modules/lodash/_copyObject.js","../node_modules/antd/node_modules/lodash/_baseGetTag.js","../node_modules/antd/node_modules/lodash/isObjectLike.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/redux-thunk/es/index.js","../../../../src/internal/util/isFunction.ts","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@ant-design/icons/LoadingOutlined.js","../node_modules/antd/es/_util/responsiveObserve.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/antd/es/config-provider/renderEmpty.js","../node_modules/antd/es/config-provider/context.js","../node_modules/@ant-design/css-animation/es/Event.js","../node_modules/lodash-es/_baseHas.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/has.js","../node_modules/lodash-es/cloneDeepWith.js","../node_modules/lodash-es/isString.js","../node_modules/lodash-es/_iteratorToArray.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_asciiToArray.js","../node_modules/lodash-es/_hasUnicode.js","../node_modules/lodash-es/_unicodeToArray.js","../node_modules/lodash-es/_stringToArray.js","../node_modules/lodash-es/_baseValues.js","../node_modules/lodash-es/values.js","../node_modules/lodash-es/toArray.js","../node_modules/yup/es/util/printValue.js","../node_modules/yup/es/locale.js","../node_modules/yup/es/util/isSchema.js","../node_modules/yup/es/Condition.js","../node_modules/yup/es/ValidationError.js","../node_modules/yup/es/util/runValidations.js","../node_modules/yup/es/util/prependDeep.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/mapValues.js","../node_modules/yup/es/Reference.js","../node_modules/yup/es/util/createValidation.js","../node_modules/yup/es/util/reach.js","../node_modules/yup/es/mixed.js","../node_modules/yup/es/util/inherits.js","../node_modules/yup/es/boolean.js","../node_modules/yup/es/util/isAbsent.js","../node_modules/yup/es/string.js","../node_modules/yup/es/number.js","../node_modules/yup/es/util/isodate.js","../node_modules/yup/es/date.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","../node_modules/lodash-es/_arrayReduce.js","../node_modules/lodash-es/_basePropertyOf.js","../node_modules/lodash-es/_deburrLetter.js","../node_modules/lodash-es/deburr.js","../node_modules/lodash-es/_asciiWords.js","../node_modules/lodash-es/_hasUnicodeWord.js","../node_modules/lodash-es/_unicodeWords.js","../node_modules/lodash-es/words.js","../node_modules/lodash-es/_createCompounder.js","../node_modules/lodash-es/snakeCase.js","../node_modules/lodash-es/_baseSlice.js","../node_modules/lodash-es/_castSlice.js","../node_modules/lodash-es/_createCaseFirst.js","../node_modules/lodash-es/upperFirst.js","../node_modules/lodash-es/capitalize.js","../node_modules/lodash-es/camelCase.js","../node_modules/lodash-es/mapKeys.js","../node_modules/yup/es/util/sortFields.js","../node_modules/yup/es/util/sortByKeyOrder.js","../node_modules/yup/es/util/makePath.js","../node_modules/yup/es/object.js","../node_modules/yup/es/array.js","../node_modules/yup/es/Lazy.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/identity.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/keysIn.js","../node_modules/antd/node_modules/lodash/_ListCache.js","../node_modules/antd/node_modules/lodash/_assocIndexOf.js","../node_modules/antd/node_modules/lodash/isObject.js","../node_modules/antd/node_modules/lodash/_nativeCreate.js","../node_modules/antd/node_modules/lodash/_getMapData.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../../src/internal/util/isArray.ts","../../../../src/internal/util/isObject.ts","../../../../src/internal/util/identity.ts","../../../../src/internal/util/isArrayLike.ts","../../../../src/internal/util/subscribeToArray.ts","../../../../src/internal/util/isPromise.ts","../../../../src/internal/util/subscribeToResult.ts","../../../src/internal/OuterSubscriber.ts","../../../../src/internal/util/isScheduler.ts","../../../../src/internal/observable/fromArray.ts","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/@ant-design/icons/SearchOutlined.js","../node_modules/@ant-design/icons/EllipsisOutlined.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/antd/es/_util/ref.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_baseGetAllKeys.js","../../../../src/internal/scheduled/scheduled.ts","../../../../src/internal/util/isInteropObservable.ts","../../../../src/internal/scheduled/scheduleObservable.ts","../../../../src/internal/scheduled/schedulePromise.ts","../../../../src/internal/util/isIterable.ts","../../../../src/internal/scheduled/scheduleIterable.ts","../../../../src/internal/observable/from.ts","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/locale/default.js","../../../../src/internal/util/subscribeTo.ts","../../../../src/internal/util/subscribeToObservable.ts","../../../../src/internal/util/subscribeToPromise.ts","../../../../src/internal/util/subscribeToIterable.ts","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/@ant-design/icons/lib/utils.js","../node_modules/antd/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/react-color/lib/components/common/Checkboard.js","../node_modules/antd/node_modules/lodash/_Map.js","../node_modules/antd/node_modules/lodash/_Symbol.js","../node_modules/antd/node_modules/lodash/isArray.js","../node_modules/insert-css/index.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/symbol-observable/es/index.js","../node_modules/antd/node_modules/@babel/runtime/regenerator/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/rc-trigger/node_modules/@babel/runtime/regenerator/index.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/object-assign/index.js","../node_modules/react-router-redux/lib/reducer.js","../node_modules/react-router-redux/lib/actions.js","../../../src/Enumerables.ts","../../../src/Iterators.ts","../../../src/Comparers.ts","../../../src/Collections.ts","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@ant-design/icons/lib/components/IconBase.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/antd/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/antd/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/antd/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/antd/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_safeGet.js","../node_modules/lodash/debounce.js","../node_modules/react-color/lib/components/common/ColorWrap.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/antd/node_modules/lodash/eq.js","../node_modules/antd/node_modules/lodash/isFunction.js","../node_modules/antd/node_modules/lodash/_freeGlobal.js","../node_modules/antd/node_modules/lodash/_toSource.js","../node_modules/antd/node_modules/lodash/_MapCache.js","../node_modules/antd/node_modules/lodash/_equalArrays.js","../node_modules/antd/node_modules/lodash/isBuffer.js","../node_modules/antd/node_modules/lodash/isTypedArray.js","../node_modules/antd/node_modules/lodash/isLength.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/redux-devtools-extension/index.js","../../../../src/internal/operators/mergeMap.ts","../../../../src/internal/observable/of.ts","../node_modules/@ant-design/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons/ExclamationCircleOutlined.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/warning/warning.js","../node_modules/@ant-design/icons/EyeOutlined.js","../node_modules/@ant-design/icons/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/RedoOutlined.js","../node_modules/@ant-design/icons/PlusOutlined.js","../node_modules/antd/node_modules/lodash/isEqual.js","../node_modules/@ant-design/icons/BarsOutlined.js","../node_modules/@ant-design/icons/FilterFilled.js","../node_modules/@ant-design/icons/CaretUpOutlined.js","../node_modules/@ant-design/icons/CaretDownOutlined.js","../node_modules/antd/node_modules/@babel/runtime/helpers/toArray.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/@ant-design/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/DoubleRightOutlined.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-select/es/interface/generator.js","../node_modules/@ant-design/icons/CheckOutlined.js","../node_modules/antd/node_modules/lodash/debounce.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/toposort/index.js","../node_modules/@ant-design/icons/UpOutlined.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/generate.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useCacheOptions.js","../node_modules/rc-select/es/hooks/useCacheDisplayValue.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-tooltip/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/rc-tooltip/es/Content.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/rc-util/es/setStyle.js","../node_modules/rc-util/es/switchScrollingEffect.js","../node_modules/rc-util/es/PortalWrapper.js","../../../../src/internal/operators/filter.ts","../node_modules/redux-observable/lib/esm/operators.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/antd/es/popover/index.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/react-router-redux/lib/sync.js","../node_modules/react-router-redux/lib/middleware.js","../../../src/Utils.ts","../node_modules/@ant-design/icons/lib/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseOutlined.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/rc-util/lib/warning.js","../node_modules/@ant-design/icons/lib/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/lib/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/InfoCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/lib/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/ExclamationCircleOutlined.js","../node_modules/antd/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/antd/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/antd/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/antd/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/antd/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/@ant-design/icons/lib/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/lib/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DownOutlined.js","../node_modules/@ant-design/icons/lib/icons/SearchOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/SearchOutlined.js","../node_modules/@ant-design/icons/lib/icons/LoadingOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/LoadingOutlined.js","../../src/performance-now.coffee","../node_modules/process/browser.js","../node_modules/antd/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/antd/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@ant-design/icons/lib/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EyeOutlined.js","../node_modules/@ant-design/icons/lib/icons/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/lib/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/LeftOutlined.js","../node_modules/@ant-design/icons/lib/icons/RightOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/RightOutlined.js","../node_modules/@ant-design/icons/lib/icons/RedoOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/RedoOutlined.js","../node_modules/react-color/lib/components/alpha/Alpha.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/lodash/isString.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_createBaseEach.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/isMap.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/isSet.js","../node_modules/lodash/_baseIsSet.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/loop.js","../node_modules/react-color/lib/components/common/Alpha.js","../node_modules/react-color/lib/helpers/alpha.js","../node_modules/react-color/lib/helpers/checkboard.js","../node_modules/react-color/lib/components/common/EditableInput.js","../node_modules/react-color/lib/components/common/Hue.js","../node_modules/react-color/lib/helpers/hue.js","../node_modules/react-color/lib/components/common/Raised.js","../node_modules/lodash/_baseMerge.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/_createAssigner.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/react-color/lib/components/common/Saturation.js","../node_modules/lodash/throttle.js","../node_modules/lodash/now.js","../node_modules/lodash/toNumber.js","../node_modules/react-color/lib/helpers/saturation.js","../node_modules/lodash/each.js","../node_modules/lodash/forEach.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/react-color/lib/components/common/Swatch.js","../node_modules/react-color/lib/helpers/interaction.js","../node_modules/react-color/lib/components/alpha/AlphaPointer.js","../node_modules/react-color/lib/components/block/Block.js","../node_modules/react-color/lib/components/block/BlockSwatches.js","../node_modules/react-color/lib/components/circle/Circle.js","../node_modules/react-color/lib/components/circle/CircleSwatch.js","../node_modules/react-color/lib/components/chrome/Chrome.js","../node_modules/react-color/lib/components/chrome/ChromeFields.js","../node_modules/lodash/isUndefined.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/react-color/lib/components/chrome/ChromePointer.js","../node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","../node_modules/react-color/lib/components/compact/Compact.js","../node_modules/react-color/lib/components/compact/CompactColor.js","../node_modules/react-color/lib/components/compact/CompactFields.js","../node_modules/react-color/lib/components/github/Github.js","../node_modules/react-color/lib/components/github/GithubSwatch.js","../node_modules/react-color/lib/components/hue/Hue.js","../node_modules/react-color/lib/components/hue/HuePointer.js","../node_modules/react-color/lib/components/material/Material.js","../node_modules/react-color/lib/components/photoshop/Photoshop.js","../node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","../node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/lib/components/sketch/Sketch.js","../node_modules/react-color/lib/components/sketch/SketchFields.js","../node_modules/react-color/lib/components/sketch/SketchPresetColors.js","../node_modules/react-color/lib/components/slider/Slider.js","../node_modules/react-color/lib/components/slider/SliderSwatches.js","../node_modules/react-color/lib/components/slider/SliderSwatch.js","../node_modules/react-color/lib/components/slider/SliderPointer.js","../node_modules/react-color/lib/components/swatches/Swatches.js","../node_modules/react-color/lib/components/swatches/SwatchesGroup.js","../node_modules/react-color/lib/components/swatches/SwatchesColor.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/react-color/lib/components/twitter/Twitter.js","../node_modules/@ant-design/icons/lib/icons/PlusOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/PlusOutlined.js","../node_modules/@ant-design/icons/lib/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/EllipsisOutlined.js","../node_modules/antd/node_modules/lodash/_baseIsEqual.js","../node_modules/antd/node_modules/lodash/_baseIsEqualDeep.js","../node_modules/antd/node_modules/lodash/_Stack.js","../node_modules/antd/node_modules/lodash/_listCacheClear.js","../node_modules/antd/node_modules/lodash/_listCacheDelete.js","../node_modules/antd/node_modules/lodash/_listCacheGet.js","../node_modules/antd/node_modules/lodash/_listCacheHas.js","../node_modules/antd/node_modules/lodash/_listCacheSet.js","../node_modules/antd/node_modules/lodash/_stackClear.js","../node_modules/antd/node_modules/lodash/_stackDelete.js","../node_modules/antd/node_modules/lodash/_stackGet.js","../node_modules/antd/node_modules/lodash/_stackHas.js","../node_modules/antd/node_modules/lodash/_stackSet.js","../node_modules/antd/node_modules/lodash/_baseIsNative.js","../node_modules/antd/node_modules/lodash/_getRawTag.js","../node_modules/antd/node_modules/lodash/_objectToString.js","../node_modules/antd/node_modules/lodash/_isMasked.js","../node_modules/antd/node_modules/lodash/_coreJsData.js","../node_modules/antd/node_modules/lodash/_getValue.js","../node_modules/antd/node_modules/lodash/_mapCacheClear.js","../node_modules/antd/node_modules/lodash/_Hash.js","../node_modules/antd/node_modules/lodash/_hashClear.js","../node_modules/antd/node_modules/lodash/_hashDelete.js","../node_modules/antd/node_modules/lodash/_hashGet.js","../node_modules/antd/node_modules/lodash/_hashHas.js","../node_modules/antd/node_modules/lodash/_hashSet.js","../node_modules/antd/node_modules/lodash/_mapCacheDelete.js","../node_modules/antd/node_modules/lodash/_isKeyable.js","../node_modules/antd/node_modules/lodash/_mapCacheGet.js","../node_modules/antd/node_modules/lodash/_mapCacheHas.js","../node_modules/antd/node_modules/lodash/_mapCacheSet.js","../node_modules/antd/node_modules/lodash/_SetCache.js","../node_modules/antd/node_modules/lodash/_setCacheAdd.js","../node_modules/antd/node_modules/lodash/_setCacheHas.js","../node_modules/antd/node_modules/lodash/_arraySome.js","../node_modules/antd/node_modules/lodash/_cacheHas.js","../node_modules/antd/node_modules/lodash/_equalByTag.js","../node_modules/antd/node_modules/lodash/_Uint8Array.js","../node_modules/antd/node_modules/lodash/_mapToArray.js","../node_modules/antd/node_modules/lodash/_setToArray.js","../node_modules/antd/node_modules/lodash/_equalObjects.js","../node_modules/antd/node_modules/lodash/_getAllKeys.js","../node_modules/antd/node_modules/lodash/_baseGetAllKeys.js","../node_modules/antd/node_modules/lodash/_arrayPush.js","../node_modules/antd/node_modules/lodash/_getSymbols.js","../node_modules/antd/node_modules/lodash/_arrayFilter.js","../node_modules/antd/node_modules/lodash/stubArray.js","../node_modules/antd/node_modules/lodash/keys.js","../node_modules/antd/node_modules/lodash/_arrayLikeKeys.js","../node_modules/antd/node_modules/lodash/_baseTimes.js","../node_modules/antd/node_modules/lodash/isArguments.js","../node_modules/antd/node_modules/lodash/_baseIsArguments.js","../node_modules/antd/node_modules/lodash/stubFalse.js","../node_modules/antd/node_modules/lodash/_isIndex.js","../node_modules/antd/node_modules/lodash/_baseIsTypedArray.js","../node_modules/antd/node_modules/lodash/_baseUnary.js","../node_modules/antd/node_modules/lodash/_nodeUtil.js","../node_modules/antd/node_modules/lodash/_baseKeys.js","../node_modules/antd/node_modules/lodash/_isPrototype.js","../node_modules/antd/node_modules/lodash/_nativeKeys.js","../node_modules/antd/node_modules/lodash/_overArg.js","../node_modules/antd/node_modules/lodash/isArrayLike.js","../node_modules/antd/node_modules/lodash/_getTag.js","../node_modules/antd/node_modules/lodash/_DataView.js","../node_modules/antd/node_modules/lodash/_Promise.js","../node_modules/antd/node_modules/lodash/_Set.js","../node_modules/antd/node_modules/lodash/_WeakMap.js","../node_modules/@ant-design/icons/lib/icons/BarsOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/BarsOutlined.js","../node_modules/@ant-design/icons/lib/icons/FilterFilled.js","../node_modules/@ant-design/icons-svg/lib/asn/FilterFilled.js","../node_modules/@ant-design/icons/lib/icons/CaretUpOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CaretUpOutlined.js","../node_modules/@ant-design/icons/lib/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons/lib/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/lib/icons/DoubleRightOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/DoubleRightOutlined.js","../node_modules/@ant-design/icons/lib/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/CheckOutlined.js","../node_modules/antd/node_modules/lodash/now.js","../node_modules/antd/node_modules/lodash/toNumber.js","../node_modules/antd/node_modules/lodash/isSymbol.js","../node_modules/@ant-design/icons/lib/icons/UpOutlined.js","../node_modules/@ant-design/icons-svg/lib/asn/UpOutlined.js","../../../../src/internal/operators/switchMap.ts","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/Header/FixedHeader.js","../node_modules/rc-table/es/context/BodyContext.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/context/ResizeContext.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/hooks/useColumns.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/index.js","../node_modules/antd/es/spin/index.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/KeyCode.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/utils/warningPropsUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/antd/es/pagination/MiniSelect.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","../node_modules/antd/es/table/hooks/usePagination.js","../node_modules/rc-checkbox/es/index.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/layout/layout.js","../node_modules/antd/es/_util/isNumeric.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/menu/index.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/antd/es/table/hooks/useSelection.js","../node_modules/antd/es/table/util.js","../node_modules/antd/es/table/hooks/useSorter.js","../node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../node_modules/antd/es/_util/hooks/useSyncState.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../node_modules/antd/es/table/hooks/useFilter/index.js","../node_modules/antd/es/table/hooks/useTitleColumns.js","../node_modules/antd/es/table/ExpandIcon.js","../node_modules/antd/es/_util/getScroll.js","../node_modules/antd/es/_util/easings.js","../node_modules/antd/es/_util/scrollTo.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/table/Column.js","../node_modules/antd/es/table/ColumnGroup.js","../node_modules/antd/es/table/Table.js","../node_modules/antd/es/table/hooks/useLazyKVMap.js","../node_modules/antd/es/table/index.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/rc-tabs/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/rc-tabs/es/hooks/useRaf.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/hooks/useRefs.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/index.js","../node_modules/antd/es/tabs/index.js","../../../../src/internal/scheduler/AsyncAction.ts","../../../../src/internal/scheduler/Action.ts","../../../../src/internal/scheduler/QueueAction.ts","../../../src/internal/Scheduler.ts","../../../../src/internal/scheduler/AsyncScheduler.ts","../../../../src/internal/scheduler/queue.ts","../../../../src/internal/scheduler/QueueScheduler.ts","../../../../src/internal/util/ObjectUnsubscribedError.ts","../../../src/internal/SubjectSubscription.ts","../../../src/internal/Subject.ts","../../../../src/internal/observable/empty.ts","../../../src/internal/Notification.ts","../../../../src/internal/observable/throwError.ts","../../../../src/internal/operators/observeOn.ts","../../../../src/internal/util/Immediate.ts","../../../../src/internal/scheduler/AsapAction.ts","../../../../src/internal/scheduler/asap.ts","../../../../src/internal/scheduler/AsapScheduler.ts","../../../../src/internal/observable/SubscribeOnObservable.ts","../../../../src/internal/util/isNumeric.ts","../../../../src/internal/operators/subscribeOn.ts","../node_modules/redux-observable/lib/esm/ActionsObservable.js","../node_modules/redux-observable/lib/esm/StateObservable.js","../node_modules/redux-observable/lib/esm/createEpicMiddleware.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@ant-design/icons/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","../node_modules/rc-cascader/es/Menus.js","../node_modules/rc-cascader/es/placements.js","../node_modules/rc-cascader/es/Cascader.js","../node_modules/rc-cascader/es/utils.js","../node_modules/rc-cascader/es/index.js","../node_modules/antd/es/input/ClearableLabeledInput.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/input/Group.js","../node_modules/antd/es/input/Search.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/Password.js","../node_modules/antd/es/input/index.js","../node_modules/antd/es/cascader/index.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","../node_modules/rc-drawer/es/utils.js","../node_modules/rc-drawer/es/DrawerChild.js","../node_modules/rc-drawer/es/DrawerWrapper.js","../node_modules/rc-drawer/es/index.js","../node_modules/antd/es/drawer/index.js","../node_modules/antd/es/avatar/SizeContext.js","../node_modules/antd/es/avatar/avatar.js","../node_modules/antd/es/avatar/group.js","../node_modules/antd/es/avatar/index.js","../../../../src/internal/operators/mergeAll.ts","../../../../src/internal/observable/merge.ts","../node_modules/redux-observable/lib/esm/combineEpics.js","../node_modules/rc-input-number/es/InputNumber.js","../node_modules/rc-input-number/es/index.js","../node_modules/antd/es/input-number/index.js","../../../../src/internal/observable/dom/AjaxObservable.ts"],"names":["module","exports","require","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","default","obj","value","Object","defineProperty","enumerable","configurable","writable","_extends","assign","target","source","prototype","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","_defineProperty","ReactReduxContext","React","createContext","batch","callback","nullListeners","notify","createListenerCollection","first","last","clear","listener","next","get","listeners","subscribe","isSubscribed","prev","Subscription","store","parentSub","unsubscribe","handleChangeWrapper","bind","_proto","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","Boolean","tryUnsubscribe","Provider","_ref","context","children","contextValue","useMemo","subscription","previousState","getState","useEffect","Context","createElement","useIsomorphicLayoutEffect","window","document","useLayoutEffect","useReduxContext","useContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","dispatch","useDispatch","refEquality","a","b","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","useReducer","s","latestSubscriptionCallbackError","useRef","latestSelector","latestStoreState","latestSelectedState","storeState","current","err","message","stack","undefined","checkForUpdates","newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","e","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","navigator","userAgent","indexOf","_slicedToArray","arr","arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","done","unsupportedIterableToArray","nonIterableRest","iterableToArrayLimit","historyContext","name","createNamedContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","history","state","match","staticContext","HistoryContext","Component","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","method","createLocation","prevLocation","locationsAreEqual","matchPath","options","exact","strict","sensitive","concat","matched","cacheKey","pathCache","result","regexp","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","useHistory","useLocation","useParams","ReactCSS","loop","handleActive","handleHover","hover","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","__esModule","_len","activations","_key","activeNames","merged","extendStatics","d","setPrototypeOf","__proto__","p","__extends","__","constructor","create","_objectWithoutProperties","excluded","sourceSymbolKeys","propertyIsEnumerable","warned","warning","valid","process","note","noteOnce","warningOnce","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","_setPrototypeOf","o","_inherits","subClass","superClass","_toConsumableArray","arrayLikeToArray","iterableToArray","isValidElement","replaceElement","replacement","cloneElement","_assertThisInitialized","self","ReferenceError","omit","fields","shallowCopy","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","Super","getPrototypeOf","NewTarget","possibleConstructorReturn","isNativeReflectConstruct","raf","setTimeout","caf","num","clearTimeout","wrapperRaf","requestAnimationFrame","handle","cancelAnimationFrame","cancel","devWarning","_typeof","_getRequireWildcardCache","WeakMap","has","newObj","hasPropertyDescriptor","desc","set","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","_interopRequireWildcard","_slicedToArray2","_defineProperty2","_objectWithoutProperties2","_classnames","_IconBase","_twoTonePrimaryColor","_utils","setTwoToneColor","Icon","forwardRef","ref","className","icon","spin","rotate","tabIndex","onClick","twoToneColor","restProps","classString","iconTabIndex","svgStyle","msTransform","transform","_normalizeTwoToneColo","normalizeTwoToneColors","_normalizeTwoToneColo2","primaryColor","secondaryColor","role","style","displayName","getTwoToneColor","_default","_Alpha","_Checkboard","_EditableInput","_Hue","_Raised","_Saturation","_ColorWrap","_Swatch","arrayWithoutHoles","nonIterableSpread","fillRef","node","composeRef","refs","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","type","isMemo","freeSelf","root","freeGlobal","Function","SafeSubscriber","_parentSubscriber","SizeContext","toArray","option","ret","Children","keepEmpty","isFragment","isObjectLike","proto","fabric","version","HTMLDocument","Document","implementation","createHTMLDocument","virtualWindow","JSDOM","decodeURIComponent","features","FetchExternalResources","resources","jsdomImplForWrapper","implForWrapper","nodeCanvas","Canvas","DOMParser","copyGLTo2DDrawImage","gl","pipelineState","glCanvas","canvas","targetCanvas","ctx","getContext","translate","height","scale","sourceY","drawImage","width","copyGLTo2DPutImageData","dWidth","destinationWidth","dHeight","destinationHeight","numBytes","u8","Uint8Array","imageBuffer","u8Clamped","Uint8ClampedArray","readPixels","RGBA","UNSIGNED_BYTE","imgData","ImageData","putImageData","isTouchSupported","maxTouchPoints","isLikelyNode","Buffer","SHARED_ATTRIBUTES","DPI","reNum","commaWsp","rePathCommand","reNonWord","fontPaths","iMatrix","svgNS","perfLimitSizeTotal","maxCacheSideLimit","minCacheSideLimit","charWidthsCache","textureSize","disableStyleCopyPaste","enableGLFiltering","devicePixelRatio","webkitDevicePixelRatio","mozDevicePixelRatio","browserShadowBlurConstant","arcToSegmentsCache","boundsOfCurveCache","cachesBoundsOfCurve","forceGLPutImageData","initFilterBackend","isWebglSupported","log","maxTextureSize","WebglFilterBackend","tileSize","Canvas2dFilterBackend","_removeEventListener","eventName","handler","__eventListeners","eventListener","util","array","fill","Observable","fire","listenersForEvent","len","on","prop","off","Collection","_objects","add","_onObjectAdded","renderOnAddRemove","requestRenderAll","insertAt","index","nonSplicing","objects","splice","remove","somethingRemoved","_onObjectRemoved","forEachObject","getObjects","item","isEmpty","size","contains","complexity","reduce","CommonMethods","_setOptions","_initGradient","filler","property","colorStops","Gradient","_initPattern","Pattern","_setObject","_set","toggle","global","sqrt","Math","atan2","pow","PiBy180","PI","PiBy2","cos","angle","sin","sign","removeFromArray","idx","getRandomInt","min","max","floor","random","degreesToRadians","degrees","radiansToDegrees","radians","rotatePoint","point","origin","subtractEquals","v","rotateVector","Point","x","y","addEquals","vector","transformPoint","t","ignoreOffset","makeBoundingBoxFromPoints","points","xPoints","minX","yPoints","minY","left","top","invertTransform","r","toFixed","number","fractionDigits","parseFloat","Number","parseUnit","fontSize","unit","exec","Text","DEFAULT_SVG_FONT_SIZE","falseFunction","getKlass","namespace","string","camelize","charAt","toUpperCase","slice","resolveNamespace","getSvgAttributes","attributes","parts","split","loadImage","crossOrigin","img","createImage","onLoadCallback","onload","onerror","src","substring","loadImageInDom","div","position","appendChild","querySelector","parentNode","removeChild","enlivenObjects","reviver","enlivenedObjects","numLoadedObjects","numTotalObjects","onLoaded","fromObject","enlivenPatterns","patterns","numLoadedPatterns","numPatterns","enlivenedPatterns","pattern","groupSVGElements","elements","centerPoint","Group","sourcePath","populateWithProperties","destination","properties","drawDashedLine","x2","y2","da","dx","dy","rot","dc","di","draw","save","moveTo","restore","createCanvasElement","copyCanvasElement","newCanvas","toDataURL","canvasEl","format","quality","multiplyTransformMatrices","is2x2","qrDecompose","denom","scaleX","scaleY","skewX","skewY","translateX","translateY","calcRotateMatrix","theta","calcDimensionsMatrix","scaleMatrix","flipX","flipY","multiply","tan","composeMatrix","matrix","resetObjectTransform","saveObjectTransform","isTransparent","tolerance","_isTransparent","imageData","getImageData","l","data","parsePreserveAspectRatioAttribute","attribute","align","meetOrSlice","aspectRatioAttrs","pop","alignX","alignY","clearFabricFontCache","fontFamily","toLowerCase","limitDimsByArea","ar","maximumArea","roughWidth","perfLimitSizeY","capValue","findScaleToFit","findScaleToCover","matrixToSVG","map","NUM_FRACTION_DIGITS","sizeAfterTransform","dimX","dimY","transformMatrix","bbox","_join","commandLengths","m","h","c","q","repeatedCommands","segmentToBezier","th2","th3","cosTh","sinTh","rx","ry","cx1","cy1","mT","fromX","fromY","costh2","sinth2","costh3","sinth3","toX","toY","arcToSegments","large","sweep","rotateX","th","px","py","rx2","abs","ry2","py2","px2","pl","cx","cy","mTheta","calcVectorAngle","dtheta","segments","ceil","mDelta","ux","uy","vx","vy","ta","tb","getBoundsOfCurve","x0","y0","x1","y1","x3","y3","argsString","t1","t2","b2ac","sqrtb2ac","tvalues","bounds","mt","j","jlen","fromArcToBeizers","fx","fy","coords","segsNorm","calcLineLength","getPointOnCubicBezierIterator","p1x","p1y","p2x","p2y","p3x","p3y","p4x","p4y","pct","c1","c2","CB2","c3","CB3","c4","CB4","getPointOnQuadraticBezierIterator","QB2","QB3","pathIterator","perc","tempP","tmpLen","getPathSegmentsInfo","tempInfo","totalLength","info","command","destX","destY","parsePath","pathString","currentPath","parsed","coordsStr","re","rNumber","rNumberCommaWsp","rFlagCommaWsp","regArcArgumentSequence","RegExp","coordsParsed","trim","args","isNaN","commandLength","repeatedCommand","k","klen","makePathSimpler","converted","previous","controlX","controlY","destinationPath","getPointOnPath","infos","distance","segInfo","segPercent","segment","lerp","getBoundsOfArc","tx","ty","bound","segs","drawArc","unshift","beizer","bezierCurveTo","find","byProperty","condition","invoke","value1","value2","extend","deep","Element","clone","getWholeChar","str","code","charCodeAt","replace","character","capitalize","firstLetterOnly","escapeXml","graphemeSplit","textstring","chr","graphemes","emptyFunction","IS_DONTENUM_BUGGY","addMethods","klass","parent","superclass","returnValue","valueOf","Subclass","callSuper","parentMethod","_this","superClassMethod","createClass","initialize","shift","subclasses","couldUseAttachEvent","attachEvent","touchEvents","addListener","addEventListener","removeListener","removeEventListener","getPointer","event","scroll","getScrollLeftTop","_evt","touchProp","changedTouches","getTouchInfo","clientX","clientY","isTouchEvent","pointerType","parseEl","supportsOpacity","opacity","supportsFilters","reOpacity","setOpacity","es","currentStyle","hasLayout","zoom","test","setStyle","styles","elementStyle","cssText","styleFloat","_slice","sliceCanConvertNodelists","getElementStyle","arrayLike","childNodes","makeElement","tagName","el","htmlFor","setAttribute","docElement","documentElement","body","scrollLeft","scrollTop","host","nodeType","defaultView","getComputedStyle","attr","selectProp","makeElementUnselectable","onselectstart","unselectable","makeElementSelectable","setImageSmoothing","imageSmoothingEnabled","webkitImageSmoothingEnabled","mozImageSmoothingEnabled","msImageSmoothingEnabled","oImageSmoothingEnabled","getById","id","getElementById","addClass","wrapElement","wrapper","replaceChild","getElementOffset","docElem","scrollLeftTop","doc","ownerDocument","box","offset","offsetAttributes","borderLeftWidth","borderTopWidth","paddingLeft","paddingTop","parseInt","getBoundingClientRect","clientLeft","clientTop","getNodeCanvas","impl","_canvas","_image","cleanUpJsdomNode","_currentSrc","_attributes","_classList","emptyFn","request","onComplete","xhr","XMLHttpRequest","parameters","onreadystatechange","readyState","param","addParamToUrl","open","setRequestHeader","send","warn","defaultEasing","_requestAnimFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","_cancelAnimFrame","requestAnimFrame","animate","timestamp","time","start","duration","finish","onChange","abort","easing","startValue","endValue","byValue","onStart","tick","ticktime","currentTime","timePerc","valuePerc","cancelAnimFrame","calculateColor","begin","pos","color","animateColor","fromColor","toColor","startColor","Color","getSource","endColor","originalOnComplete","originalOnChange","colorEasing","normalize","asin","elastic","opts","easeInBounce","easeOutBounce","ease","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInOutBounce","attributesMap","display","visibility","colorAttributes","stroke","normalizeAttr","normalizeValue","parentAttributes","parseTransformAttribute","visible","fillIndex","strokeIndex","getSvgRegex","_getMultipleNodes","nodeNames","nodeName","nodeList","nodeArray","getElementsByTagName","elementMatchesRule","selectors","firstMatching","parentMatching","selectorMatches","doesSomeParentMatch","matcher","getAttribute","elementById","nodelist","svgValidTagNamesRegEx","svgViewBoxElementsRegEx","svgInvalidAncestorsRegEx","svgValidParentsRegEx","cssRules","gradientDefs","clipPaths","skewMatrix","reTransformList","reTransform","attributeValue","matrices","operation","translateMatrix","rotateMatrix","multiplierX","multiplierY","combinedMatrix","reViewBoxAttrValue","applyViewboxTransform","viewBoxWidth","viewBoxHeight","viewBoxAttr","widthAttr","heightAttr","preserveAspectRatio","missingViewBox","missingDimAttr","toBeParsed","parsedDim","widthDiff","heightDiff","removeAttribute","createElementNS","firstChild","recursivelyParseGradientsXlink","gradient","referencedGradient","substr","hasAttribute","referenceClone","cloneNode","parseSVGDocument","parsingOptions","attrs","xlink","el2","currentTrans","oldLength","el3","setAttributeNS","nodeValue","parseUseDirectives","svgUid","__uid","descendants","selectNodes","hasAncestorWithNodeName","getGradientDefs","getCSSRules","parseElements","instances","reFontDeclaration","parseFontDeclaration","oStyle","fontStyle","fontWeight","lineHeight","elList","parseAttributes","parentFontSize","ownAttributes","cssAttrs","rule","getGlobalStylesForElement","parseStyleAttribute","normalizedAttr","normalizedValue","normalizedStyle","font","mergedAttrs","setAlpha","getAlpha","toRgba","_setStrokeFillOpacity","ElementsParser","parse","chunk","pair","parseStyleString","parseStyleObject","parsePointsAttribute","parsedPoints","allRules","styleContents","textContent","ruleObj","propertyValuePairs","_rule","loadSVGFromURL","xml","responseXML","results","_options","allElements","loadSVGFromString","parseFromString","regexUrl","numElements","createObjects","createObject","findTag","fromElement","createCallback","checkIfDone","resolveGradient","Image","_originalElement","_removeTransformMatrix","resolveClipPath","extractPropertyDefinition","storage","regex","lastIndex","gradientDef","opacityAttr","createClipPathCallback","container","_newObj","fillRule","clipRule","usingElement","objTransformInv","gTransform","clipPath","calcTransformMatrix","clipPathTag","clipPathOwner","setPositionByOrigin","that","scalarAdd","scalar","scalarAddEquals","subtract","scalarSubtract","scalarSubtractEquals","multiplyEquals","divide","divideEquals","eq","lt","lte","gt","gte","distanceFrom","midPointFrom","setXY","setX","setY","setFromPoint","swap","Intersection","status","appendPoint","appendPoints","intersectLineLine","a1","a2","b1","b2","uaT","ubT","uB","ua","ub","intersectLinePolygon","inter","intersectPolygonPolygon","points1","points2","intersectPolygonRectangle","r1","r2","topRight","bottomLeft","inter1","inter2","inter3","inter4","_tryParsingColor","setSource","hue2rgb","colorNameMap","sourceFromHex","sourceFromRgb","sourceFromHsl","_rgbToHsl","g","round","_source","toRgb","toHsl","hsl","toHsla","toHex","toHexa","alpha","toGrayscale","average","currentAlpha","toBlackWhite","threshold","overlayWith","otherColor","otherSource","reRGBa","reHSLa","reHex","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","fromRgb","fromSource","fromRgba","fromHsl","fromHsla","fromHex","isShortNotation","isRGBa","oColor","scaleMap","skewMap","controls","TOP","opposite","bottom","right","center","findCornerQuadrant","fabricObject","control","cornerAngle","fireEvent","canvasOptions","scaleIsProportional","eventData","uniformIsToggled","uniScaleKey","uniformScaling","isTransformCentered","originX","originY","scalingIsForbidden","by","scaleProportionally","lockX","lockScalingX","lockY","lockScalingY","commonEventInfo","pointer","wrapWithFixedAnchor","actionHandler","getCenterPoint","constraint","translateToOriginPoint","actionPerformed","getLocalPoint","corner","getZoom","padding","localPoint","toLocalPoint","offsetX","offsetY","targetHasOneFlip","compensateScaleForSkew","oppositeSkew","scaleToCompensate","axis","reference","newValue","_getTransformedDimensions","skewObjectX","newSkew","dimNoSkew","totalSkewSize","currentSkew","hasSkewed","dimBeforeSkewing","skewObjectY","scaleObject","newPoint","dim","signX","signY","forbidScaling","gestureScale","lockScalingFlip","hasScaled","original","oldScaleX","oldScaleY","scaleCursorStyleHandler","n","skewCursorStyleHandler","lockSkewingY","lockSkewingX","scaleSkewCursorStyleHandler","altActionKey","rotationWithSnapping","pivotPoint","lockRotation","hasRotated","lastAngle","ey","ex","curAngle","snapAngle","snapThreshold","rightAngleLocked","leftAngleLocked","scalingEqually","scalingX","scalingY","scalingYOrSkewingX","skewHandlerX","scalingXOrSkewingY","skewHandlerY","changeWidth","hasResized","strokePadding","strokeWidth","strokeUniform","multiplier","oldWidth","newWidth","finalHandler","dragHandler","newLeft","newTop","moveX","moveY","scaleOrSkewActionName","isAlternative","rotationStyleHandler","cursorStyle","controlsUtils","renderCircleControl","styleOverride","cornerSize","transparentCorners","cornerStrokeColor","fillStyle","cornerColor","strokeStyle","lineWidth","beginPath","arc","renderSquareControl","sizeBy2","strokeCornerColor","strokeRect","Control","actionName","withConnection","mouseDownHandler","mouseUpHandler","getActionHandler","getMouseDownHandler","getMouseUpHandler","cursorStyleHandler","getActionName","getVisibility","controlKey","objectVisibility","_controlsVisibility","setVisibility","positionHandler","finalMatrix","cornerStyle","getColorStop","colorAlpha","keyValuePairs","gradientTransform","gradientUnits","addColorStop","toObject","propertiesToInclude","toSVG","markup","commonAttributes","needsSwap","withViewport","additionalTransform","sort","pathOffset","reverse","minRadius","percentageShift","colorStop","toLive","createLinearGradient","createRadialGradient","svgOptions","colorStopEls","getLinearCoords","getRadialCoords","propValue","finalValue","__convertPercentUnitsToValues","repeat","patternTransform","setOptions","isError","patternSource","patternWidth","patternHeight","patternOffsetX","patternOffsetY","patternImgSrc","complete","naturalWidth","naturalHeight","createPattern","Shadow","blur","affectStroke","includeDefaultValues","nonScaling","_parseShadow","shadow","shadowStr","offsetsAndBlur","reOffsetsAndBlur","fBoxX","fBoxY","StaticCanvas","CANVAS_INIT_ERROR","Error","renderAndResetBound","renderAndReset","requestRenderAllBound","_initStatic","backgroundColor","backgroundImage","overlayColor","overlayImage","stateful","controlsAboveOverlay","allowTouchScrolling","viewportTransform","backgroundVpt","overlayVpt","enableRetinaScaling","vptCoords","skipOffscreen","cb","_createLowerCanvas","_initOptions","interactive","_initRetinaScaling","setOverlayImage","setBackgroundImage","setBackgroundColor","setOverlayColor","calcOffset","_isRetinaScaling","getRetinaScaling","scaleRatio","__initRetinaScaling","lowerCanvasEl","contextContainer","upperCanvasEl","contextTop","_offset","image","__setBgOverlayImage","__setBgOverlayColor","_createCanvasElement","_applyCanvasStyle","getWidth","getHeight","setWidth","setDimensions","setHeight","dimensions","cssValue","cssOnly","_setBackstoreDimension","hasLostContext","backstoreOnly","_setCssDimension","_isCurrentlyDrawing","freeDrawingBrush","_setBrushStyles","cacheCanvasEl","wrapperEl","setViewportTransform","vpt","activeObject","_activeObject","group","setCoords","calcViewportBoundaries","zoomToPoint","before","after","setZoom","absolutePan","relativePan","getElement","setupState","clearContext","clearRect","_hasITextHandlers","_mouseUpITextHandler","_iTextInstances","renderAll","canvasToDrawOn","renderCanvas","isRendering","iVpt","tl","br","tr","bl","cancelRequestedRender","_renderBackground","_renderObjects","drawControls","shouldCache","_transformDone","renderCache","forClipping","drawClipPathOnCanvas","_renderOverlay","globalCompositeOperation","zoomX","zoomY","_cacheCanvas","cacheTranslationX","cacheTranslationY","_renderBackgroundOrOverlay","needsVpt","lineTo","closePath","getCenter","centerObjectH","_centerObject","centerObjectV","centerObject","viewportCenterObject","vpCenter","getVpCenter","viewportCenterObjectH","viewportCenterObjectV","toDatalessJSON","toDatalessObject","_toObjectMethod","_toObjects","_toObject","__serializeBgOverlay","excludeFromExport","originalValue","bgImage","overlay","background","svgViewportTransformation","_setSVGPreamble","_setSVGHeader","clipPathId","_setSVGBgOverlayColor","_setSVGBgOverlayImage","_setSVGObjects","suppressPreamble","encoding","viewBox","createSVGFontFacesMarkup","createSVGRefElementsMarkup","createSVGClipPathMarkup","toClipPathSVG","shouldTransform","row","rowIndex","charIndex","fontList","_setSVGObject","finalWidth","finalHeight","sendToBack","objs","activeSelection","bringToFront","sendBackwards","intersecting","newIdx","objsMoved","_findNewLowerIndex","intersectsWithObject","isContainedWithinObject","bringForward","_findNewUpperIndex","dispose","DataURLExporter","EMPTY_JSON","supports","setLineDash","toJSON","createPNGStream","createJPEGStream","BaseBrush","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeDashArray","lineCap","miterLimit","lineJoin","_saveAndTransform","_setShadow","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","needsFullRender","_resetShadow","PencilBrush","decimate","_points","_drawSegment","p1","p2","midPoint","quadraticCurveTo","onMouseDown","_isMainEvent","_prepareForDrawing","_captureDrawingPath","_render","onMouseMove","oldEnd","onMouseUp","_finalizeAndAddPath","_reset","_addPoint","pointerPoint","convertPointsToSVGPath","multSignX","multSignY","manyPoints","pathData","Path","decimatePoints","adjustedDistance","lastPoint","newPoints","CircleBrush","drawDot","addPoint","dot","radius","originalRenderOnAddRemove","circles","circle","Circle","circleRadius","circleColor","SprayBrush","density","dotWidth","dotWidthVariance","randomOpacity","optimizeOverlapping","sprayChunks","addSprayChunk","sprayChunkPoints","rects","ilen","sprayChunk","rect","Rect","_getOptimizedRects","uniqueRects","uniqueRectsArray","globalAlpha","fillRect","PatternBrush","getPatternSrc","patternCanvas","patternCtx","getPatternSrcFunction","String","getPattern","topLeft","_getLeftTopCoords","supportLineDash","_initInteractive","_createCacheCanvas","centeredScaling","centeredRotation","centeredKey","selection","selectionKey","altSelectionKey","selectionColor","selectionDashArray","selectionBorderColor","selectionLineWidth","selectionFullyContained","hoverCursor","moveCursor","defaultCursor","freeDrawingCursor","rotationCursor","notAllowedCursor","containerClass","perPixelTargetFind","targetFindTolerance","skipTargetFind","isDrawingMode","preserveObjectStacking","stopContextMenu","fireRightClick","fireMiddleClick","targets","_hoveredTarget","_hoveredTargets","_currentTransform","_groupSelector","_initWrapperElement","_createUpperCanvas","_initEventListeners","_chooseObjectsToRender","objsToRender","activeGroupObjects","activeObjects","getActiveObjects","contextTopDirty","renderTopLayer","_drawSelection","renderTop","_normalizePointer","invertedM","vptPointer","restorePointerVpt","isTargetTransparent","normalizedPointer","targetRelativeX","targetRelativeY","_cacheContext","contextCache","originalColor","selectionBackgroundColor","_renderControls","hasBorders","_isSelectionKeyPressed","_shouldClearSelection","evented","selectable","_shouldCenterTransform","action","centerTransform","_getOriginFromCorner","_getActionFromCorner","alreadySelected","_setupCurrentTransform","__corner","lastX","lastY","shiftKey","_beforeTransform","setCursor","cursor","groupSelector","aleft","atop","_setLineDash","findTarget","skipGroup","activeTarget","activeTargetSubs","aObjects","isTouch","_searchPossibleTargets","_findTargetCorner","_checkTarget","globalPointer","containsPoint","isEditing","subTarget","objToCheck","pointerToUse","subTargetCheck","ignoreZoom","_absolutePointer","_pointer","cssScale","boundsWidth","boundsHeight","retinaScaling","lowerCanvasClass","_copyCanvasStyle","fromEl","toEl","getSelectionContext","getSelectionElement","getActiveObject","active","_discardActiveObject","_fireSelectionEvents","oldObjects","somethingChanged","added","removed","opt","oldObject","selected","deselected","updated","setActiveObject","currentActives","_setActiveObject","onSelect","onDeselect","discardActiveObject","removeListeners","originalProperties","_realizeGroupTransformOnObject","_unwindGroupTransformOnObject","originalValues","realizeTransform","clearContextTop","addEventOptions","passive","checkClick","button","mainTouchId","_bindEvents","addOrRemove","_getEventPrefix","enablePointerEvents","functor","eventjsFunctor","canvasElement","eventTypePrefix","_onResize","_onMouseDown","_onMouseMove","_onMouseOut","_onMouseEnter","_onMouseWheel","_onContextMenu","_onDoubleClick","_onDragOver","_onDragEnter","_onDragLeave","_onDrop","_onTouchStart","eventjs","_onGesture","_onDrag","_onOrientationChange","_onShake","_onLongPress","_onMouseUp","_onTouchEnd","eventsBound","_simpleEventHandler","__onTransformGesture","__onDrag","__onMouseWheel","_target","hiddenTextarea","focus","__onOrientationChange","__onShake","__onLongPress","preventDefault","_fireEnterLeaveEvents","stopPropagation","_cacheTransformEventData","_handleEvent","_resetTransformEventData","getPointerId","evt","identifier","pointerId","isPrimary","touches","__onMouseDown","__onMouseUp","_willAddMouseDown","__onMouseMove","_shouldRender","shouldRender","isClick","_onMouseUpInDrawingMode","_finalizeCurrentTransform","targetWasActive","_maybeGroupObjects","isMoving","_setCursorFromEvent","eventType","subTargets","absolutePointer","currentTarget","currentSubTargets","_scaling","hasStateChanged","_addEventOptions","_fire","_onMouseDownInDrawingMode","_onMouseMoveInDrawingMode","_previousPointer","shouldGroup","_shouldGroup","_handleGrouping","saveState","_transformObject","_fireOverOutEvents","fireSyntheticInOutEvents","oldTarget","evtOut","canvasEvtOut","evtIn","canvasEvtIn","_draggedoverTarget","config","inOpt","outOpt","inFires","targetChanged","previousTarget","nextTarget","reset","_performTransformAction","getCornerCursor","_updateActiveSelection","_createActiveSelection","currentActiveObjects","removeWithUpdate","addWithUpdate","_createGroup","groupObjects","exitEditing","ActiveSelection","_groupSelectedObjects","aGroup","_collectObjects","currentObject","selectionX1Y1","selectionX2Y2","allowIntersect","intersectsWithRect","isContainedWithinRect","toCanvasElement","cropping","scaledWidth","scaledHeight","originalWidth","originalHeight","newZoom","vp","originalInteractive","newVp","originalRetina","originalContextTop","loadFromJSON","json","serialized","JSON","_enlivenObjects","_setBgOverlay","enlivenedCanvasClip","__setupCanvas","loaded","cbIfLoaded","__setBgOverlay","enlivedObject","_toDataURL","_toDataURLWithMultiplier","toDataURLWithMultiplier","stringify","cloneWithoutData","backgroundImageOpacity","backgroundImageStretch","supportsLineDash","objectCaching","touchCornerSize","borderColor","borderDashArray","cornerDashArray","strokeDashOffset","borderOpacityWhenMoving","borderScaleFactor","minScaleLimit","hasControls","lockMovementX","lockMovementY","statefullCache","noScaleCache","dirty","paintFirst","stateProperties","cacheProperties","colorProperties","inverted","absolutePositioned","_cacheProperties","_updateCacheCanvas","_limitCacheSize","dims","limitedDims","capped","_getCacheCanvasDimensions","objectScale","getTotalObjectScaling","neededX","neededY","drawingWidth","drawingHeight","minCacheSize","dimensionsChanged","cacheWidth","cacheHeight","zoomChanged","shouldRedraw","additionalWidth","additionalHeight","shouldResizeCanvas","canvasWidth","canvasHeight","sizeGrowing","setTransform","needFullTransform","_removeDefaultValues","getObjectScaling","retina","getObjectOpacity","shouldConstrainValue","isChanged","groupNeedsUpdate","_constrainScale","isOnACache","setOnGroup","getViewportTransform","isNotVisible","isOnScreen","_setupCompositeOperation","drawSelectionBackground","_setOpacity","drawCacheOnCanvas","_removeCacheCanvas","drawObject","propertySet","isCacheDirty","hasStroke","hasFill","needsItsOwnCache","ownCaching","willDrawShadow","drawClipPathOnCache","originalFill","originalStroke","_setClippingProperties","_setStrokeStyles","_setFillStyles","_drawClipPath","skipCanvas","_getNonTransformedDimensions","_removeShadow","decl","lineDashOffset","dashArray","alternative","drawBorders","forActiveSelection","drawBordersInGroup","scaling","multX","multY","_applyPatternGradientTransform","_renderPaintInOrder","_renderStroke","_renderFill","_renderDashedStroke","_applyPatternForTransformedGradient","pCtx","pCanvas","_findCenterFromElement","_assignTransformMatrixProps","preserveAspectRatioOptions","cropX","cropY","offsetLeft","offsetTop","objectForm","_fromObject","cloneAsImage","utils","origParams","originalGroup","originalShadow","withoutTransform","withoutShadow","boundingRect","getBoundingRect","shadowOffset","originalCanvas","isType","shouldCenterOrigin","_setOriginToCenter","_resetOrigin","centerH","viewportCenterH","centerV","viewportCenterV","viewportCenter","getLocalPointer","pClicked","objectLeftTop","createAccessors","extraParam","enlivedProps","originXOffset","originYOffset","translateToGivenOrigin","fromOriginX","fromOriginY","toOriginX","toOriginY","translateToCenterPoint","leftTop","getPointByOrigin","adjustPosition","offsetFrom","offsetTo","hypotFull","getScaledWidth","xFull","yFull","_originalOriginX","_originalOriginY","originPoint","multiplyMatrices","oCoords","aCoords","lineCoords","ownMatrixCache","matrixCache","_getCoords","absolute","calculate","calcACoords","calcLineCoords","getCoords","pointTL","pointBR","other","otherCoords","lines","_getImageLines","_findCrossPoints","some","_containsCenterOfCanvas","isPartiallyOnScreen","every","topline","rightline","bottomline","leftline","xi","iLine","xcount","lineKey","getScaledHeight","scaleToWidth","boundingRectFactor","scaleToHeight","calcCoords","calcOCoords","cosP","sinP","cosPSinP","cosPMinusSinP","_calcRotateMatrix","_calcTranslateMatrix","startMatrix","_calculateCurrentDimensions","forEachControl","w","skipCorners","_setCornerCoords","transformMatrixKey","prefix","calcOwnMatrix","tMatrix","_calcDimensionsTransformMatrix","flipping","noSkew","_finalizeDimensions","getSvgColorString","getSvgStyles","skipShadow","getSvgFilter","getSvgSpanStyles","useWhiteSpace","textDecoration","getSvgTextDecoration","deltaY","decoration","getSvgCommons","getSvgTransform","full","_setSVGBg","textBgRects","_getFillAttributes","_createBaseSVGMarkup","_toSVG","_createBaseClipPathSVGMarkup","objectMarkup","commonPieces","clipPathMarkup","noStyle","styleInfo","shadowInfo","withShadow","vectorEffect","absoluteClipPath","addPaintOrder","saveProps","tmpObj","dashedPropertySet","_isEqual","origValue","currentValue","firstPass","forTouch","isControlVisible","touchCorner","fn","newTheta","cosTheta","sinTheta","cornerHypotenuse","touchHypotenuse","cosHalfOffset","sinHalfOffset","touchCosHalfOffset","touchSinHalfOffset","wh","shouldStroke","setControlVisible","setControlsVisibility","FX_DURATION","fxCenterObjectH","callbacks","empty","fxCenterObjectV","fxRemove","skipCallbacks","propsToAnimate","_animate","propPair","propIsColor","from","valueProgress","timeProgress","coordProps","makeEdgeToOriginGetter","propertyNames","originValues","axis1","axis2","dimension","nearest","farthest","Line","_setWidthHeight","_getLeftToOriginX","_getTopToOriginY","calcLinePoints","origStrokeStyle","xMult","yMult","ATTRIBUTE_NAMES","parsedAttributes","pi","startAngle","endAngle","setRadius","svgString","startX","startY","endX","endY","largeFlag","getRadiusX","getRadiusY","Triangle","widthBy2","heightBy2","piBy2","Ellipse","getRx","getRy","_initRxRy","isRounded","Polyline","_setPositionDimensions","correctLeftTop","calcDim","_calcDimensions","fromSVG","diffX","diffY","commonRender","fromElementGenerator","_class","Polygon","_toString","fromArray","_renderPathCommands","subpathStartX","subpathStartY","_getOffsetTransform","digits","aX","aY","pathUrl","useSetOnGroup","isAlreadyGrouped","_updateObjectsACoords","_calcBounds","_updateObjectsCoords","_updateObjectCoords","objectLeft","objectTop","_restoreObjectsState","_includeDefaultValues","objsToObject","originalDefaults","_obj","ownCache","_restoreObjectState","destroy","toActiveSelection","ungroupOnCanvas","setObjectsCoords","onlyWidthHeight","iLen","jLen","_getBounds","minXY","maxXY","enlivedClipPath","toGroup","newGroup","childrenOverride","srcFromAttribute","_lastScaleX","_lastScaleY","_filterScalingX","_filterScalingY","minimumScaleTrigger","imageSmoothing","filters","_initElement","_element","setElement","removeTexture","_initConfig","applyFilters","resizeFilter","applyResizeFilters","backend","filterBackend","evictCachesForKey","getCrossOrigin","getOriginalSize","_stroke","filterObj","getSrc","hasCrop","strokeSvg","imageMarkup","imageRendering","getSvgSrc","origFill","filtered","setSrc","minimumScale","elementToFilter","_filteredEl","sourceWidth","sourceHeight","isNeutralState","imgElement","_needsResize","elementToDraw","elWidth","elHeight","sX","sY","sW","sH","maxDestW","maxDestH","_resetWidthHeight","CSS_CANVAS","_initFilters","pAR","rWidth","rHeight","pWidth","pHeight","_object","resizeFilters","fromURL","imgOptions","_getAngleValueForStraighten","straighten","fxStraighten","straightenObject","fxStraightenObject","testPrecision","precision","fragmentSource","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","setupGLContext","captureGPUInfo","isSupported","getParameter","MAX_TEXTURE_SIZE","precisions","webGlPrecision","createWebGLCanvas","aPosition","Float32Array","chooseFastestCopyGLTo2DMethod","canUseImageData","canMeasurePerf","performance","canUseArrayBuffer","ArrayBuffer","canUseUint8Clamped","copyGLTo2D","startTime","drawImageTime","testContext","now","glOptions","premultipliedAlpha","depth","stencil","antialias","clearColor","cachedTexture","getCachedTexture","sourceTexture","createTexture","targetTexture","originalTexture","passes","webgl","programCache","pass","tempFbo","createFramebuffer","bindFramebuffer","FRAMEBUFFER","applyTo","resizeCanvasIfNeeded","bindTexture","TEXTURE_2D","deleteTexture","deleteFramebuffer","clearWebGLCaches","textureCache","textureImageSource","texture","texParameteri","TEXTURE_MAG_FILTER","NEAREST","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","texImage2D","uniqueId","gpuInfo","renderer","vendor","ext","getExtension","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","sourceElement","originalEl","originalImageData","BaseFilter","vertexSource","createProgram","vertexShader","VERTEX_SHADER","getShaderInfoLog","program","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","attributeLocations","getAttributeLocations","uniformLocations","getUniformLocations","uStepW","getUniformLocation","uStepH","getAttribLocation","sendAttributeData","aPositionData","attributeLocation","buffer","createBuffer","bindBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","STATIC_DRAW","_setupFrameBuffer","framebufferTexture2D","COLOR_ATTACHMENT0","_swapTextures","temp","main","mainParameter","applyToWebGL","applyTo2d","retrieveShader","shader","useProgram","uniform1f","sendUniformData","viewport","drawArrays","TRIANGLE_STRIP","bindAdditionalTexture","textureUnit","activeTexture","TEXTURE0","unbindAdditionalTexture","getMainParameter","setMainParameter","createHelpLayer","helpLayer","mainP","ColorMatrix","colorsOnly","uColorMatrix","uConstants","constants","uniformMatrix4fv","uniform4fv","Brightness","brightness","uBrightness","Convolute","opaque","Convolute_3_1","Convolute_3_0","Convolute_5_1","Convolute_5_0","Convolute_7_1","Convolute_7_0","Convolute_9_1","Convolute_9_0","dstOff","scx","scy","srcOff","wt","weights","side","halfSide","sw","sh","output","createImageData","dst","alphaFac","uMatrix","uOpaque","uHalfSize","uSize","uniform1fv","Grayscale","lightness","luminosity","mode","uMode","uniform1i","Invert","invert","uInvert","Noise","noise","rand","uNoise","uSeed","Pixelate","blocksize","_j","_iLen","_jLen","uBlocksize","RemoveColor","useAlpha","lowC","highC","uLow","uHigh","Brownie","Vintage","Kodachrome","Technicolor","Polaroid","Sepia","BlackWhite","BlendColor","screen","diff","lighten","darken","exclusion","tint","buildSource","tg","alpha1","uColor","BlendImage","mask","TEXTURE1","calculateMatrix","canvas1","blendData","blendImage","uTransformMatrix","uImage","uniformMatrix3fv","Resize","resizeType","lanczosLobes","uDelta","uTaps","uniform2fv","horizontal","taps","filterWindow","getFilterWindow","generateShader","tempScale","getTaps","lobeFunction","lanczosCreate","offsets","fragmentSourceTOP","dW","dH","lobes","xx","rcpScaleX","rcpScaleY","newData","oW","oH","sliceByTwo","hermiteFastResize","bilinearFiltering","lanczosResize","tmpCanvas","doneW","doneH","stepW","stepH","dX","dY","srcData","destImg","destData","lanczos","ratioX","ratioY","rcpRatioX","rcpRatioY","range2X","range2Y","cacheLanc","icenter","u","weight","fX","fY","xDiff","yDiff","chnl","origPix","w4","pixels","destImage","destPixels","ratioW","ratioH","ratioWHalf","ratioHHalf","img2","data2","weightsAlpha","gxR","gxG","gxB","gxA","centerY","yy","centerX","w0","Contrast","contrast","contrastF","uContrast","Saturation","saturation","adjust","uSaturation","Blur","aspectRatio","simpleBlur","canvas2","blurLayer1","blurLayer2","percent","ctx1","ctx2","newImageData","delta","chooseRightDelta","blurScale","Gamma","gamma","rInv","gInv","bInv","rVals","gVals","bVals","uGamma","uniform3fv","Composed","subFilters","HueRotation","rotation","rad","aThirdSqtSin","OneMinusCos","_dimensionAffectingProps","_reNewline","_reSpacesAndTabs","_reSpaceAndTab","_reWords","underline","overline","linethrough","textAlign","superscript","baseline","subscript","textBackgroundColor","_fontSizeFraction","_fontSizeMult","charSpacing","_measuringContext","_styleProperties","__charBounds","CACHE_FONT_SIZE","MIN_TEXT_WIDTH","text","__skipDimension","initDimensions","getMeasuringContext","_splitText","newLines","_splitTextIntoLines","textLines","_textLines","graphemeLines","_unwrappedTextLines","_unwrappedLines","_text","graphemeText","_clearCache","calcTextWidth","cursorWidth","enlargeSpaces","calcTextHeight","diffSpace","currentLineWidth","numberOfSpaces","accumulatedSpace","line","charBound","spaces","isEndOfWrapping","getLineWidth","kernedWidth","lineIndex","missingNewlineOffset","_setTextStyles","_renderTextLinesBackground","_renderTextDecoration","_renderText","_renderTextStroke","_renderTextFill","charStyle","forMeasuring","textBaseline","_getFontDeclaration","maxWidth","_renderTextLine","_renderChars","styleHas","heightOfLine","lineLeftOffset","lastColor","charBox","currentColor","lineTopOffset","leftOffset","_getLeftOffset","topOffset","_getTopOffset","boxStart","boxWidth","getHeightOfLine","_getLineLeftOffset","getValueOfPropertyAt","getFontCache","cacheProp","_applyCharStyles","styleDeclaration","_measureChar","_char","previousChar","prevCharStyle","coupleWidth","previousWidth","fontCache","couple","stylesAreEqual","fontMultiplier","measureText","getHeightOfChar","measureLine","lineInfo","_measureLine","_getWidthOfCharSpacing","grapheme","prevGrapheme","graphemeInfo","lineBounds","_getGraphemeBox","numOfSpaces","skipLeft","getCompleteStyleDeclaration","prevStyle","previousBox","__lineHeights","maxHeight","_renderTextCommon","lineHeights","isEmptyStyles","actualStyle","nextStyle","timeToRender","isJustify","charsToRender","shortCut","_renderChar","_hasStyleChanged","_getStyleDeclaration","fullDecl","shouldFill","fillText","strokeText","setSuperscript","_setScript","setSubscript","schema","loc","get2DCursorLocation","setSelectionStyles","thisStyle","_hasStyleChangedForSvg","__lineWidths","_shouldClearDimensionCache","shouldClear","_forceClearCache","_size","_dy","lastDecoration","currentDecoration","currentFill","lastFill","styleObject","family","fontIsGeneric","genericFonts","newLine","newText","additionalProperties","needsDims","parsedAnchor","textAnchor","originalStrokeWidth","textHeightScaleFactor","scaledDiff","textHeight","offX","p3","0","cleanStyle","letterCount","stylePropertyValue","stylesCount","allStyleObjectPropertiesMatch","graphemeCount","removeStyle","lineNum","charNum","_extendStyles","_getLineStyle","_setLineStyle","_setStyleDeclaration","selectionStart","skipWrapping","getSelectionStyles","startIndex","endIndex","selectionEnd","getStyleAtPosition","lineStyle","_deleteStyleDeclaration","_deleteLineStyle","parseDecoration","IText","editable","editingBorderColor","cursorColor","cursorDelay","cursorDuration","caching","_reSpace","_currentCursorOpacity","_selectionDirection","_abortCursorAnimation","__widthOfSpace","inCompositionMode","initBehavior","setSelectionStart","_updateAndFire","setSelectionEnd","_fireSelectionChanged","_updateTextarea","initDelayedCursor","cursorOffsetCache","renderCursorOrSelection","skipRestore","_clearTextArea","boundaries","_getCursorBoundaries","renderCursor","renderSelection","_getCursorBoundariesOffsets","cursorPosition","cursorLocation","charHeight","__isMousedown","startLine","endLine","startChar","endChar","realLineHeight","lineOffset","boxEnd","compositionColor","getCurrentCharFontSize","cp","_getCurrentCharIndex","getCurrentCharColor","initAddedHandler","initRemovedHandler","initCursorSelectionHandlers","initDoubleClickSimulation","mouseMoveHandler","_initCanvasHandlers","_removeCanvasHandlers","_tick","_currentTickState","_animateCursor","targetOpacity","completeMethod","tickState","isAborted","_onTickComplete","_cursorTimeout1","_currentTickCompleteState","restart","delay","abortCursorAnimation","_cursorTimeout2","selectAll","getSelectedText","findWordBoundaryLeft","startFrom","findWordBoundaryRight","findLineBoundaryLeft","findLineBoundaryRight","searchWordBoundary","direction","selectWord","newSelectionStart","newSelectionEnd","selectLine","enterEditing","exitEditingOnOthers","initHiddenTextarea","_saveEditingProps","_setEditingProps","_textBeforeEdit","initMouseMoveHandler","getSelectionStartFromPointer","currentStart","currentEnd","__selectionStartOnMouseDown","restartCursorIfNeeded","fromStringToGraphemeSelection","smallerTextStart","graphemeStart","smallerTextEnd","fromGraphemeToStringSelection","newSelection","updateTextareaPosition","updateFromTextArea","_calcTextareaPosition","desiredPosition","compositionStart","upperCanvas","upperCanvasWidth","upperCanvasHeight","clientWidth","clientHeight","_savedProps","_restoreEditingProps","isTextChanged","_removeExtraneousStyles","removeStyleFromTo","styleObj","cursorStart","cursorEnd","lineStart","charStart","lineEnd","charEnd","shiftLineStyles","numericChar","clonedStyles","numericLine","insertNewlineStyleObject","qty","copiedStyle","currentCharStyle","newLineStyles","somethingAdded","isEndOfLine","numIndex","styleCarriedOver","insertCharStyleObject","quantity","currentLineStyles","currentLineStylesCloned","numericIndex","newStyle","insertNewStyleBlock","insertedText","cursorLoc","addedLines","linesLength","setSelectionStartEndWithShift","setSelectionInBoundaries","__lastClickTime","__lastLastClickTime","__lastPointer","__newClickTime","newPointer","isTripleClick","_stopEvent","__lastIsEditing","__lastSelected","initMousedownHandler","initMouseupHandler","initClicks","doubleClickHandler","tripleClickHandler","_mouseDownHandler","setCursorByClick","_mouseDownHandlerBefore","currentActive","mouseOffset","prevWidth","_getNewSelectionStartFromOffset","distanceBtwLastCharAndCursor","distanceBtwNextCharAndCursor","onKeyDown","onKeyUp","onInput","copy","paste","onCompositionStart","onCompositionUpdate","onCompositionEnd","_clickHandlerInitialized","keysMap","9","27","33","34","35","36","37","38","39","40","ctrlKeysMapUp","67","88","ctrlKeysMapDown","65","stopImmediatePropagation","_copyDone","fromPaste","removedText","removeFrom","removeTo","nextText","charCount","nextCharCount","charDiff","textareaSelection","backDelete","copiedText","copiedTextStyle","compositionEnd","_getClipboardData","clipboardData","_getWidthBeforeCursor","widthBeforeCursor","getDownCursorOffset","isRight","selectionProp","_getSelectionForOffset","indexOnOtherLine","_getIndexOnLine","getUpCursorOffset","textBeforeCursor","charWidth","foundMatch","widthOfCharsOnLine","indexOnLine","leftEdge","rightEdge","offsetFromLeftEdge","moveCursorDown","_moveCursorUpOrDown","moveCursorUp","moveCursorWithShift","moveCursorWithoutShift","moveCursorLeft","_moveCursorLeftOrRight","_move","_moveLeft","_moveRight","moveCursorLeftWithoutShift","change","moveCursorLeftWithShift","moveCursorRight","moveCursorRightWithShift","moveCursorRightWithoutShift","changed","removeChars","insertChars","multipleSpacesRegex","_getSVGLeftTopOffsets","textAndBg","_getSVGTextAndBg","textTop","textLeft","_wrapSVGTextAndBg","lineTop","textSpans","textTopOffset","textLeftOffset","_setSVGTextLineBg","_setSVGTextLineText","_createTextCharSpan","styleDecl","shouldUseWhitespace","styleProps","fillStyles","dySpan","_pushTextBgRect","fillColor","_getSVGLineTopOffset","lastHeight","Textbox","minWidth","dynamicMinWidth","__cachedLines","_wordJoiners","splitByGrapheme","_styleMap","_generateStyleMap","textInfo","realLineCount","realLineCharCount","isWrapping","nextOffset","shouldLimit","mapNextLine","_wrapText","desiredWidth","wrapped","_wrapLine","_measureWord","word","charOffset","_line","reservedSpace","words","infix","wordWidth","infixWidth","largestWordWidth","lineJustStarted","additionalSpace","getMinWidth","linesToKeep","scaleSkewStyleHandler","scaleStyleHandler","objectControls","ml","mr","mb","mtr","textBoxControls","die","msg","isDraft","DRAFT_STATE","isDraftable","DRAFTABLE","isMap","isSet","each","iter","getArchtype","entry","thing","type_","propOrOldValue","delete","is","hasMap","Map","hasSet","Set","latest","copy_","base_","descriptors","freeze","isFrozen","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","loadPlugin","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","res","assigned_","autoFreeze_","peek","getDescriptorFromProto","markChanged","prepareCopy","createProxy","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","revocable","revoke","proxy","createES5Proxy_","currentImpl","archType","hasChanges_","copyHelper","enableES5","proxyProperty","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","markChangesRecursively","hasSymbol","hasProxies","for","getOwnPropertyNames","currentState","deleteProperty","owner","useProxies","setUseProxies","autoFreeze","setAutoFreeze","produce","produceWithPatches","recipe","defaultBase","hasError","Promise","then","arg1","arg2","patches","inversePatches","_this2","ip","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","defaultEqualityCheck","areArgumentsShallowlyEqual","equalityCheck","getDependencies","funcs","dependencies","dep","dependencyTypes","memoize","memoizeOptions","createSelectorCreator","func","lastArgs","lastResult","composeWithDevTools","compose","isPlainObject","MiddlewareArray","prepend","curryGetDefaultMiddleware","thunk","middlewareArray","immutableCheck","serializableCheck","isBoolean","thunkMiddleware","getDefaultMiddleware","configureStore","curriedGetDefaultMiddleware","reducer","middleware","devTools","preloadedState","enhancers","rootReducer","combineReducers","middlewareEnhancer","applyMiddleware","finalCompose","trace","storeEnhancers","composedEnhancer","createStore","createAction","prepareAction","prepared","payload","meta","actionCreator","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","addDefaultCase","defaultCaseReducer","createSlice","initialState","reducers","extraReducers","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","reducerName","maybeReducerWithPrepare","caseReducer","prepareCallback","mapOrBuilderCallback","finalActionMatchers","finalDefaultCaseReducer","caseReducers","cr","createNextState","createReducer","actions","asyncIterator","_getPrototypeOf","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","enhancer","_ref2","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","$$observable","getUndefinedStateErrorMessage","actionType","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","bindActionCreators","boundActionCreators","middlewares","_dispatch","middlewareAPI","chain","objectProto","nativeObjectToString","symToStringTag","toStringTag","getRawTag","isOwn","tag","unmasked","objectToString","baseGetTag","tuple","_arrayLikeToArray","arr2","minLen","makePrefixMap","styleProp","prefixes","vendorPrefixes","domSupport","win","animationend","transitionend","animation","transition","getVendorPrefixes","canUseDOM","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","useMountStatus","defaultValue","destroyRef","_useState2","useState","val","setVal","canUseDom","STEP_QUEUE","isActive","step","_React$useState2","setStep","_useNextFrame2","nextFrameRef","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","nextStep","doNext","resolve","useStatus","supportMotion","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState4","setStatus","_useState6","mountedRef","deadlineRef","destroyedRef","cacheElementRef","getDomElement","activeRef","onInternalMotionEnd","canEnd","deadline","patchMotionEvents","callbackRef","removeMotionEvents","useDomMotionEvents","eventHandlers","_ref3","_ref4","_useStepQueue2","useStepQueue","newStep","onPrepare","_eventHandlers$step","startStep","nextStatus","isMounted","mergedStyle","_objectSpread","_possibleConstructorReturn","DomWrapper","_React$Component","_super","genCSSMotion","transitionSupport","isSupportTransition","motionName","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus2","findDOMNode","statusStep","statusStyle","mergedVisible","originRef","motionChildren","setNodeRef","mergedProps","_classNames","statusSuffix","sourceKeys","wrapKeyToObject","keyObj","parseKeys","diffKeys","prevKeys","currentKeys","list","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","genCSSMotionList","OriginCSSMotion","CSSMotionList","keyEntities","removeKey","setState","entity","_this$props","_onVisibleChanged","motionProps","changedVisible","parsedKeyObjects","prevEntity","_ref5","defaultProps","coreJsData","maskSrcKey","uid","IE_PROTO","isMasked","reIsHostCtor","funcProto","funcToString","reIsNative","baseIsNative","isObject","isFunction","toSource","getValue","getNative","_objectWithoutPropertiesLoose","vendors","suffix","queue","_now","cancelled","polyfill","isAbsolute","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","search","hash","currentLocation","hashIndex","searchIndex","decodeURI","URIError","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","nextIndex","nextEntries","canGo","baseMerge","merge","createAssigner","srcIndex","ReactResizeObserver","resizeObserver","childNode","currentElement","offsetHeight","offsetWidth","onResize","_target$getBoundingCl","fixedWidth","fixedHeight","setChildNode","onComponentUpdated","destroyObserver","disabled","ResizeObserver","observe","disconnect","toInnerValue","labelInValue","combobox","toOuterValues","valueList","optionLabelProp","prevValue","getLabeledValue","removeLastEnabledValue","measureValues","removeIndex","newValues","removedValue","isBrowserClient","uuid","getUUID","retId","_inheritsLoose","getKey","traverseDataNodes","dataNodes","externalGetKey","syntheticGetKey","processNode","getPosition","parentPos","level","subNode","subIndex","convertDataToEntities","initWrapper","processEntity","onProcessFinished","posEntities","mergedKey","convertNodePropsToEventData","expanded","checked","loading","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","nativeKeys","overArg","baseKeys","isPrototype","isArrayLike","arrayLikeKeys","symbolProto","symbolToString","baseToString","arrayMap","isSymbol","addEventListenerWrap","ReactDOM","unstable_batchedUpdates","cached","getScrollBarSize","fresh","outer","outerStyle","pointerEvents","overflow","widthContained","widthScroll","DataView","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","Ctor","ctorString","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","MiniStoreContext","__assign","defaultMapStateToProps","connect","mapStateToProps","shouldSubscribe","finalMapStateToProps","WrappedComponent","Connect","handleChange","subscribed","prevState","shouldComponentUpdate","nextProps","shallowEqual","miniStoreForwardedRef","getDisplayName","forwarded","hoistStatics","createChainedFunction","applePhone","appleIpod","appleTablet","androidPhone","androidTablet","amazonPhone","amazonTablet","windowsPhone","windowsTablet","otherBlackberry","otherBlackberry10","otherOpera","otherChrome","otherFirefox","isMobile","tmp","_tmp","_tmp3","apple","phone","ipod","tablet","device","amazon","android","windows","blackberry","blackberry10","opera","firefox","chrome","any","defaultResult","getKeyFromChildrenIndex","menuEventKey","getMenuIdFromSubMenuEventKey","eventKey","loopMenuItem","isMenuItemGroup","menuAllProps","elem","includeMargin","_getComputedStyle","marginLeft","marginRight","styleProperty","autoAdjustOverflow","adjustX","adjustY","placements","rightTop","placementsRtl","guid","popupPlacementMap","vertical","updateDefaultActiveFirst","defaultActiveFirst","menuId","SubMenu","onDestroy","menu","menuInstance","getVisible","onTitleClick","triggerOpenChange","handled","onOpenChange","onPopupVisibleChange","onMouseEnter","domEvent","onMouseLeave","_this$props2","parentMenu","subMenuInstance","onTitleMouseEnter","_this$props3","onItemHover","onTitleMouseLeave","_this$props4","triggerSubMenuAction","onSubMenuClick","addKeyPath","getPrefixCls","rootPrefixCls","getActiveClassName","getDisabledClassName","getSelectedClassName","getOpenClassName","isOpen","getMode","saveMenuInstance","keyPath","openChange","trigger","mouseenterTimeout","isChildrenSelected","loopMenuItemRecursively","isSubMenu","isMenuItem","selectedKeys","isInlineMode","adjustWidth","subMenuTitle","popupMenu","saveSubMenuTitle","getBaseProps","mergedMode","inlineIndent","focusable","openKeys","motion","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","builtinPlacements","multiple","prefixCls","internalMenuId","manualRef","itemIcon","expandIcon","getMotion","haveRendered","_this$props5","isRootMenu","_this$props6","updateState","isOpenChanged","isModeChanged","updateStateRaf","minWidthTimeout","_this$props7","baseProps","SubPopupMenu","_this3","mergedMotion","haveOpened","sharedClassName","mergedClassName","renderPopupMenu","_classNames2","_props$parentMenu","_classNames3","inline","mouseEvents","titleClickEvents","titleMouseEvents","isRTL","paddingRight","ariaOwns","title","renderChildren","getPopupContainer","triggerNode","popupPlacement","popupAlign","popupOffset","popupClassName","placement","Trigger","popupVisible","popup","mouseEnterDelay","mouseLeaveDelay","popupMotion","connected","activeKey","subMenuKey","DOMWrap","mutationObserver","originalTotalWidth","overflowedItems","menuItemSizes","cancelFrameId","lastVisibleIndex","getMenuItemNodes","ul","getOverflowedSubMenuItem","keyPrefix","renderPlaceholder","overflowedIndicator","theme","_copy$props","propStyle","rest","setChildrenWidthAndResize","ulChildrenNodes","lastOverflowedIndicatorPlaceholder","menuItemNodes","overflowedIndicatorWidth","acc","cur","handleResize","currentSumWidth","liWidth","menuUl","MutationObserver","childList","subTree","overflowed","Tag","updateActiveKey","getEventKey","getActiveKey","originalActiveKey","found","saveRef","instanceArray","getFlatInstanceArray","activeItem","selectInfo","activeIndex","ci","renderCommonMenuItem","extraProps","childProps","newChildProps","renderMenuItem","domProps","menuMode","_ref$defaultMotions","defaultMotions","openAnimation","openTransitionName","switchingModeFromInline","defaultMotion","Menu","_selectedKeys","selectedKey","getRealMenuMode","_assertThisInitialize2","innerMenu","getWrappedInstance","processSingle","oneChanged","_selectedKeys2","restoreModeVerticalFromInline","onTransitionEnd","widthCollapsed","propertyName","classNameValue","animVal","iconScaled","setInnerMenu","defaultSelectedKeys","defaultOpenKeys","partial","inlineOpenKeys","updateMiniStore","updateMenuDisplay","siderCollapsed","inlineCollapsed","collapsedWidth","prevOpenKeys","getInlineCollapsed","prevStoreState","newStoreState","newState","MenuItem","isSelected","saveNode","callRef","mouseEvent","MenuItemGroup","renderInnerMenuItem","_props$className","titleClassName","listClassName","Divider","getContrastingColor","isValidHex","toState","simpleCheckForValidColor","_each2","_tinycolor2","passed","letter","oldHue","hex","hsv","toHsv","rgb","lh","isValid","col","toKey","isPointsEq","isAlignPoint","Mask","zIndex","maskMotion","maskAnimation","maskTransitionName","jsCssMap","Webkit","Moz","ms","getVendorPrefix","vendorPrefix","getTransformName","setTransitionProperty","matrix2d","matrix3d","forceRelayout","originalStyle","css","getComputedStyleX","getScroll","getScrollLeft","getScrollTop","getOffset","getClientPosition","isWindow","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","dir","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","getTransitionProperty","old","preset","originalXY","getTransformXY","resultXY","xy","match2d","setTransformXY","isBorderBoxFn","cs","computedStyle","getDocument","rsLeft","BOX_MODELS","getPBMWidth","which","cssProp","domUtils","getParent","getWH","extra","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","cssShow","getWHIgnoreDisplay","mix","getWindow","oriOffset","oLeft","oTop","tLeft","tTop","setOffset","getWindowScrollLeft","getWindowScrollTop","viewportWidth","viewportHeight","getOffsetParent","positionStyle","getVisibleRectForElement","alwaysByViewport","visibleRect","Infinity","originalPosition","scrollX","scrollY","documentWidth","documentHeight","bodyStyle","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","getAlignOffset","region","getElFuturePos","elRegion","refNodeRegion","targetOffset","isFailX","elFuturePos","isFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newOffset","newTargetOffset","isCompleteFailX","isCompleteFailY","isStillFailX","isStillFailY","adjustForViewport","useCssRight","useCssBottom","useCssTransform","ignoreShake","alignElement","refNode","targetRegion","isOutOfVisibleRect","pageX","tgtPoint","pageY","pointInView","monitorResize","prevHeight","getPoint","RefAlign","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","only","forceAlignPropsRef","_useBuffer","calledRef","timeoutRef","cancelTrigger","force","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestOnAlign","activeElement","isVisible","alignPoint","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","winResizeRef","useImperativeHandle","forceAlign","Align","asyncGeneratorStep","gen","reject","_next","_throw","_asyncToGenerator","StatusQueue","PopupInner","stretch","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","onTouchStart","alignRef","elementRef","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","sizeStyle","minHeight","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","doMeasure","rafRef","cancelRaf","_regeneratorRuntime","mark","_callee","wrap","_context","stop","useVisibleStatus","_useVisibleStatus2","goNextStatus","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","alignDisabled","count","motionRef","motionClassName","motionStyle","MobilePopupInner","_props$mobile","mobile","popupStyle","_props$mobile$popupMo","popupRender","Popup","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","popupNode","TriggerContext","returnEmptyString","returnDocument","ALL_HANDLERS","generateTrigger","PortalComponent","popupRef","triggerRef","fireEvents","delaySetPopupVisible","setPoint","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","relatedTarget","onFocus","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","onBlur","isBlurToHide","blurDelay","onContextMenu","setPopupVisible","onContextMenuClose","isContextMenuToShow","close","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","_this$context","hasPopupMouseDown","mouseDownTimeout","onDocumentClick","maskClosable","getPopupDomNode","getTriggerDOMNode","domNode","getPopupClassNameFromAlign","getAlignPopupClassName","getComponent","onPopupAlign","popupAnimation","popupTransitionName","_this$state","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","attachId","mountNode","getContainer","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","placementStr","getAlignFromPlacement","delayS","delayTimer","childPros","showAction","hideAction","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","createTwoChains","childrenClassName","portal","didUpdate","Portal","routerMiddleware","routerActions","CALL_HISTORY_METHOD","routerReducer","LOCATION_CHANGE","syncHistoryWithStore","_reducer","_actions","_sync2","_middleware2","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","useControlledState","defaultStateValue","postState","innerValue","setInnerValue","mergedValue","firstRenderRef","keyList","hasProp","hasElementType","equal","arrA","arrB","dateA","dateB","getTime","regexpA","regexpB","$$typeof","arrDel","arrAdd","isTreeNode","getDataAndAria","omitProps","startsWith","freeExports","freeModule","freeProcess","nodeUtil","types","binding","UnreachableException","__rest","ButtonGroup","ConfigConsumer","customizePrefixCls","others","sizeCls","ids","delayFrames","myId","restFrames","internalCallback","pid","styleForPseudo","isHidden","offsetParent","isNotGrey","Wave","containerRef","animationStart","destroyed","waveColor","insertExtraNode","extraNode","attributeName","getAttributeName","csp","nonce","innerHTML","TransitionEvents","addStartEventListener","onTransitionStart","addEndEventListener","resetEffect","animationName","bindAnimationEvent","getPropertyValue","clickWaveTimeoutId","animationStartId","renderWave","removeStartEventListener","removeEndEventListener","ConfigContext","getCollapsedWidth","getRealWidth","scrollWidth","LoadingIcon","existIcon","LoadingOutlined","rxTwoCNChar","isTwoCNChar","isUnborderedButtonType","spaceChildren","needInserted","isPrevChildPure","isCurrentChildPure","lastChild","insertSpace","InternalButton","loadingOrDelay","danger","shape","customizeSize","ghost","_React$useState","innerLoading","setLoading","_React$useState3","_React$useState4","hasTwoCNChar","setHasTwoCNChar","_React$useContext","autoInsertSpaceInButton","buttonRef","delayTimeoutRef","isNeedInserted","buttonText","handleClick","autoInsertSpace","iconType","iconNode","kids","linkButtonRestProps","_a","htmlType","otherProps","buttonNode","Button","__ANT_BUTTON","Empty","xmlns","Simple","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","_a$image","description","imageStyle","LocaleReceiver","componentName","locale","des","alt","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","flattenOptions","flattenList","dig","isGroupOption","groupOption","injectPropsWithOption","newOption","findValueOption","_ref$prevValueOptions","prevValueOptions","optionMap","flattenItem","_INTERNAL_OPTION_VALUE_","prevValItem","prevValues","prevItem","label","toRawString","content","filterOptions","searchValue","filterFunc","optionFilterProp","filterOption","filteredOptions","lowerSearchText","includes","getFilterFunction","subOptions","subItem","getSeparatedContent","tokens","separate","token","restTokens","prevList","unitStr","isValueDisabled","fillOptionsWithMissingValue","cloneOptions","optionValues","subOpt","_ref6","baseIteratee","baseMap","collection","iteratee","HTMLElement","Cache","maxSize","_maxSize","_values","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","setCache","getCache","normalizePath","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","setter","getter","safe","thisArg","isBracket","listCacheClear","__data__","assocIndexOf","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","_isNativeReflectConstruct","baseAssignValue","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","MapCache","Stack","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","innerRef","navigate","isModifiedEvent","forwardedRef","Link","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","escapedPath","classnames","joinClassnames","filterFn","childrenKeyName","foundItem","factory","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","TransBtn","customizeIcon","customizeIconProps","userSelect","WebkitUserSelect","cls","isBuffer","stubFalse","nativeCreate","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","mapCacheClear","isKeyable","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","isLength","sub","InnerSubscriber","MapShim","getIndex","class_1","__entries__","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","useBreakpoint","_useState","screens","setScreens","ResponsiveObserve","supportScreens","propList","pickAttrs","mergedConfig","ariaOnly","aria","copyArray","getPrototype","baseUnary","makeArrayFrom","SynchronousPromise","_continuations","_parent","_paused","_continueWith","_failWith","looksLikeAPromise","passThrough","createAggregateErrorFrom","errors","AggregateError","nextFn","catchFn","unresolved","_setParent","_isRejected","promise","catchResult","_error","_chainPromiseData","_runResolutions","catch","_isResolved","_data","_runRejections","finally","ran","runFinally","callbackResult","pause","resume","firstPaused","_findFirstPaused","_findAncestry","firstPending","_findFirstPending","_setResolved","_findFirstAncestor","_isPending","matching","firstRejected","_setRejected","_takeContinuations","continuations","cont","_handleUserFunctionResult","_handleWhenResolvedDataIsPromise","_handleResolutionError","continuation","e2","nextSynchronousPromise","promiseData","newError","newResult","all","allData","numResolved","rejected","thisResult","doReject","allErrors","numRejected","resolved","allSettled","numSettled","doSettled","reason","RealPromise","installGlobally","__awaiter","__patched","originalAwaiter","patchAwaiterIfRequired","uninstallGlobally","arrayEach","assignValue","objValue","copyObject","customizer","isNew","baseAssign","nativeKeysIn","baseKeysIn","isProto","keysIn","baseAssignIn","copySymbols","getSymbols","getSymbolsIn","arrayPush","stubArray","copySymbolsIn","getAllKeysIn","baseGetAllKeys","initCloneArray","input","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","isDeep","byteOffset","reFlags","cloneRegExp","symbolValueOf","cloneSymbol","symbol","cloneTypedArray","typedArray","initCloneByTag","objectCreate","baseCreate","initCloneObject","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","cloneableTags","baseClone","bitmask","isFlat","isFull","isArr","isFunc","cloneBuffer","stacked","subValue","keysFunc","getAllKeys","autoAdjustOverflowEnabled","autoAdjustOverflowDisabled","getOverflowOptions","PresetColorTypes","PresetColorRegex","getDisabledCompatibleChildren","elementType","__ANT_SWITCH","__ANT_CHECKBOX","_splitObject","picked","omitted","splitObject","spanStyle","buttonStyle","Tooltip","getContextPopupContainer","defaultVisible","setVisible","isNoTitle","getTooltipPlacements","arrowPointAtCenter","_config$arrowWidth","arrowWidth","_config$horizontalArr","horizontalArrowShift","_config$verticalArrow","verticalArrowShift","placementMap","bottomRight","rightBottom","leftBottom","getPlacements","openClassName","getTooltipContainer","overlayClassName","overlayInnerStyle","tempVisible","formattedOverlayInnerStyle","arrowContentStyle","childCls","customOverlayClassName","RcTooltip","getOverlay","onVisibleChange","vis","transformOrigin","arrowContent","LocaleContext","defaultLocale","defaultLocaleData","antLocale","localeFromContext","localeCode","exist","getLocale","getLocaleCode","arrayFilter","predicate","resIndex","nativeGetSymbols","CustomPicker","TwitterPicker","SwatchesPicker","SliderPicker","SketchPicker","PhotoshopPicker","MaterialPicker","HuePicker","GithubPicker","CompactPicker","ChromePicker","CirclePicker","BlockPicker","AlphaPicker","_Block","_Circle","_Chrome","_Compact","_Github","_Material","_Photoshop","_Sketch","_Slider","_Swatches","_Twitter","_Chrome2","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","mergeObject","deepmerge_1","objectCtorString","toPath","stringToPath","cloneDeep","CLONE_DEEP_FLAG","isEmptyArray","isInteger","isString","isEmptyChildren","isPromise","getIn","def","setIn","resVal","pathArray","currentObj","nextPath","setNestedObjectValues","visited","response","FormikContext","FormikProvider","FormikConsumer","useFormikContext","formik","formikReducer","touched","isEqual","isSubmitting","isValidating","submitCount","emptyErrors","emptyTouched","useFormik","validateOnChange","validateOnBlur","validateOnMount","isInitialValid","enableReinitialize","onSubmit","initialValues","initialErrors","initialTouched","initialStatus","fieldRegistry","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","field","sync","validateData","prepareDataForValidation","abortEarly","validateYupSchema","yupError","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","f","fieldValidations","fieldErrorsList","curr","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","useEventCallback","combinedErrors","resetForm","dispatchFn","maybePromisedOnReset","validateField","maybePromise","registerField","validate","unregisterField","setTouched","shouldValidate","setErrors","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","currentArrayOfValues","isValueInArray","valueProp","getValueForCheckbox","getSelectedValues","setFieldTouched","executeBlur","outerHTML","handleBlur","setFormikState","stateOrCb","setSubmitting","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","handleSubmit","imperativeMethods","validateForm","handleReset","getFieldMeta","initialValue","initialError","getFieldHelpers","setValue","setError","getFieldProps","isAnObject","nameOrOptions","valueState","Formik","formikbag","shouldClone","Field","as","legacyBag","form","asElement","Form","_action","onReset","Comp","componentDisplayName","insert","copyArrayLike","maxIndex","FieldArrayInner","updateArrayField","updateErrors","alterErrors","updateTouched","alterTouched","fieldError","fieldTouched","handlePush","indexA","handleSwap","move","handleMove","handleInsert","handleReplace","handleUnshift","handleRemove","arrayHelpers","restOfFormik","webpackPolyfill","deprecate","paths","createThunkMiddleware","extraArgument","withExtraArgument","responsiveArray","responsiveMap","xs","sm","md","lg","xl","xxl","subscribers","subUid","responsiveObserve","matchHandlers","pointMap","register","unregister","matchMediaQuery","mql","matches","matchMedia","renderEmpty","suffixCls","defaultRenderEmpty","Consumer","START_EVENT_NAME_MAP","transitionstart","WebkitTransition","MozTransition","OTransition","msTransition","animationstart","WebkitAnimation","MozAnimation","OAnimation","msAnimation","END_EVENT_NAME_MAP","startEvents","endEvents","EVENT_NAME_MAP","events","baseEventName","baseEvents","styleName","detectEvents","startEvent","endEvent","baseHas","reIsDeepProp","reIsPlainProp","isKey","castPath","hasPath","hasFunc","isIndex","isArguments","cloneDeepWith","iteratorToArray","mapToArray","setToArray","asciiToArray","reHasUnicode","hasUnicode","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","rsSymbol","reUnicode","unicodeToArray","stringToArray","baseValues","symIterator","errorToString","regExpToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","typeOf","printNumber","toISOString","printValue","mixed","required","oneOf","notOneOf","notType","isCast","defined","email","lowercase","uppercase","lessThan","moreThan","notEqual","positive","negative","integer","date","noUnknown","__isYupSchema__","Condition","otherwise","check","_len2","_key2","branch","isSchema","strReg","_","ValidationError","captureStackTrace","formatError","propagateErrors","endEarly","collectErrors","validations","unwrapError","promises","fulfilled","settled","nestedErrors","runValidations","createBaseFor","baseFor","fromRight","iterable","baseForOwn","setCacheAdd","setCacheHas","SetCache","arraySome","cacheHas","equalArrays","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","equalByTag","convert","equalObjects","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","objectTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","isTypedArray","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isStrictComparable","getMatchData","matchesStrictComparable","baseMatches","baseGet","baseHasIn","hasIn","baseMatchesProperty","identity","baseProperty","basePropertyDeep","mapValues","Reference","isContext","isValue","isSibling","cast","describe","isRef","__isYupRef","createErrorFactory","_temp","_ref2$path","_ref2$message","_ref2$type","oldParams","newParams","resolveParams","createValidation","Ref","createError","testFn","runTest","validOrError","OPTIONS","lastPart","lastPartDebug","_part","innerType","_type","parentPath","_createForOfIteratorHelperLoose","allowArrayLike","it","RefSet","_step","_iterator","_step2","_iterator2","_toArray","newItems","removeItems","SchemaType","_deps","_conditions","recursive","_exclusive","_whitelist","_blacklist","tests","transforms","withMutation","typeError","_defaultDefault","_mutate","_label","_meta","prependDeep","sourceVal","targetVal","_nullable","_typeCheck","conditions","resolvedSchema","_cast","assert","formattedValue","formattedResult","rawValue","_validate","_value","_this4","isStrict","_option","validationParams","initialTests","_typeError","_whitelistError","_blacklistError","validateSync","isValidSync","getDefault","_isPresent","exclusive","notRequired","nullable","isNullable","isExclusive","when","deps","enums","valids","invalids","strip","_strip","overrides","findIndex","_loop","_getIn","_i2","_arr2","_i3","_arr3","inherits","ctor","superCtor","spec","optional","BooleanSchema","MixedSchema","rEmail","rUrl","rUUID","isTrimmed","isAbsent","StringSchema","_length","_min","_max","excludeEmptyString","ensure","NumberSchema","NaN","less","more","truncate","avail","isoReg","invalidDate","DateSchema","struct","numericKeys","minutesOffset","UTC","isoParse","_taggedTemplateLiteralLoose","strings","raw","limit","arrayReduce","accumulator","initAccum","basePropertyOf","deburrLetter","reLatin","reComboMark","deburr","reAsciiWord","asciiWords","reHasUnicodeWord","hasUnicodeWord","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsModifier","rsEmoji","reUnicodeWord","unicodeWords","guard","reApos","createCompounder","snakeCase","baseSlice","castSlice","createCaseFirst","upperFirst","strSymbols","trailing","camelCase","mapKeys","sortFields","excludes","edges","nodes","addNode","depPath","toposort","ii","sortByKeyOrder","makePath","_templateObject3","_templateObject2","_templateObject","ObjectSchema","_nodes","dft","_excludedEdges","intermediateValue","innerOptions","__validating","exists","fieldValue","_from","alias","fromGetter","noAllow","unknownKeys","known","unknown","stripUnknown","allow","transformKeys","_camelCase","_snakeCase","constantCase","ArraySchema","_subType","of","_opts","castArray","castElement","_path","compact","rejector","Lazy","mapFn","_resolve","validateAt","validateSyncAt","originalModule","_iterableToArray","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","initRef","_containerRef$current","_containerRef$current2","createPortal","agent","_box","reIsUint","symbolsFunc","today","backToToday","month","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","enUS","typeTemplate","localeValues","Pagination","DatePicker","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","emptyText","selectInvert","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","Modal","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","edit","copied","PageHeader","back","defaultValidateMessages","whitespace","invalid","range","mismatch","topCenter","bottomCenter","_props$arrow","arrow","_props$prefixCls","_props$placement","_props$placements","Placements","overlayStyle","_props$trigger","triggerVisible","setTriggerVisible","getOverlayElement","onOverlayClick","overlayProps","getMenuElement","overlayElement","extraOverlayProps","triggerHideAction","minOverlayWidthMatchTrigger","getMinOverlayWidthMatchTrigger","childrenProps","childClassName","Dropdown","resolver","memoized","memoizeCapped","rePropName","reEscapeChar","quote","subString","baseTimes","inherited","isArg","isBuff","skipIndexes","baseIsArguments","typedArrayTags","baseIsTypedArray","nodeIsTypedArray","removeFromCheckedKeys","halfCheckedKeys","checkedKeys","filteredKeys","isCheckDisabled","disableCheckbox","checkable","conductCheck","getCheckDisabled","syntheticGetCheckDisabled","warningMissKeys","hasEntity","levelEntities","maxLevel","levelSet","_entity$children","childEntity","visitedKeys","_level","allChecked","partialChecked","fillConductCheck","halfKeys","_entity$children2","_level2","cleanConductCheck","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","async","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_warning","isIconDefinition","_typeof2","normalizeAttrs","generate","rootProps","_react","getSecondaryColor","_colors","useInsertStyles","iconStyles","svgBaseProps","_insertCss","class","cssInjectedFlag","styleStr","insertCss","castFunction","Checkboard","_react2","_reactcss2","checkboard","renderers","borderRadius","boxShadow","grid","containers","styleElements","styleElement","containerId","createStyleElement","insertBefore","styleSheet","bound01","isOnePointZero","isPercent","isPercentage","clamp01","boundAlpha","convertToPercentage","pad2","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","names","inputToRGB","named","matchers","rgba","hsla","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","mod","hsvToRgb","hslToRgb","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","TinyColor","numberInputToObject","originalInput","roundA","gradientType","isDark","getBrightness","isLight","getLuminance","RsRGB","GsRGB","BsRGB","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","formatSet","formattedString","hasAlpha","toNumber","amount","brighten","shade","desaturate","saturate","greyscale","hue","rgb1","rgb2","analogous","slices","complement","monochromatic","modification","splitcomplement","triad","polyad","tetrad","increment","equals","darkColorMap","getHue","light","getSaturation","pColor","colorString","_hsv","_colorString","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","primary","ponyfill","commonjsGlobal","globalThis","createEventEmitter","handlers","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","emitter","getChildContext","componentWillReceiveProps","oldValue","PropTypes","isRequired","_Component2","observedBits","_proto2","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","capture","modifier","asterisk","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","flags","encode","encodeURIComponent","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","pageXOffset","pageYOffset","propIsEnumerable","test1","test2","fromCharCode","test3","shouldUseNative","locationBeforeTransitions","updateLocation","ArrayIterator","objectWithoutPropertiesLoose","twoToneColorPalette","calculated","IconBase","colors","getTwoToneColors","setTwoToneColors","baseEach","createBaseEach","allocUnsafe","nativeMax","nativeMin","wait","lastThis","maxWait","timerId","lastInvokeTime","leading","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","ColorWrap","_debounce2","_color2","Picker","ColorPicker","onChangeComplete","debounce","handleSwatchHover","onSwatchHover","optionalEvents","PureComponent","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","darkText","lightText","darkIcons","lightIcons","symbolObservablePonyfill","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","devToolsEnhancer","__REDUX_DEVTOOLS_EXTENSION__","TreeContext","shouldUpdate","INTERNAL_PROPS_MARK","sorted","outgoingEdges","edge","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","Filler","onInnerResize","innerStyle","flexDirection","getPageY","ScrollBar","moveRaf","scrollbarRef","thumbRef","visibleTimeout","dragging","startTop","delayHidden","onScrollbarTouchStart","onContainerMouseDown","patchEvents","removeEvents","onStartMove","getTop","onScroll","enableScrollRange","getEnableScrollRange","enableHeightRange","getEnableHeightRange","ptg","newScrollTop","onStopMove","getSpinHeight","baseHeight","scrollHeight","spinHeight","Item","setRef","refFunc","CacheMap","maps","useDiffItem","onDiff","prevData","setPrevData","diffItem","setDiffItem","originList","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","diffIndex","shortKey","findListDiffIndex","isFF","isScrollAtTop","isScrollAtBottom","lockRef","lockTimeoutRef","lockScroll","scrollPingRef","smoothOffset","originScroll","EMPTY_DATA","ScrollStyle","overflowY","overflowAnchor","List","itemHeight","_props$fullHeight","fullHeight","itemKey","virtual","_props$component","useVirtual","inVirtual","setScrollTop","scrollMoving","setScrollMoving","mergedData","componentRef","fillerInnerRef","scrollBarRef","sharedConfig","syncScrollTop","alignedTop","maxScrollHeightRef","keepInRange","rangeRef","diffItemRef","_useHeights2","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","heightsRef","heightUpdateIdRef","collectHeight","currentId","htmlElement","useHeights","setInstanceRef","heights","heightUpdatedMark","_React$useMemo","_fillerInnerRef$curre","startOffset","itemTop","dataLen","currentItemBottom","maxScrollHeight","useOriginScroll","_useFrameWheel2","onWheelDelta","offsetRef","wheelValueRef","isMouseScrollRef","patchMultiple","detail","useFrameWheel","onRawWheel","onFireFoxScroll","listRef","cleanUpEvents","touchedRef","touchYRef","intervalRef","onTouchMove","currentY","clearInterval","setInterval","onTouchEnd","useMobileTouchMove","onMozMousePixelScroll","scrollTo","triggerFlash","scrollRef","_arg$offset","syncScroll","times","targetAlign","needCollectHeight","newTargetAlign","mergedAlign","stackTop","itemBottom","targetTop","useScrollTo","_scrollBarRef$current","listChildren","renderFunc","ele","useChildren","componentStyle","RefInput","inputElement","autoFocus","autoComplete","accessibilityIndex","_onKeyDown","_onChange","onPaste","_onCompositionStart","_onCompositionEnd","inputNode","_inputNode","_inputNode$props","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","readOnly","effect","SelectSelector","inputRef","showSearch","removeIcon","choiceTransitionName","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","tagRender","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","setMotionAppear","measureRef","inputWidth","setInputWidth","inputValue","inputEditable","restCount","displayValues","displayLabel","strLabel","selectionNode","itemDisabled","closable","onClose","Input","SingleSelector","activeValue","inputChanged","setInputChanged","hasTextInput","useLock","doLock","locked","ForwardSelector","compositionStatusRef","tokenWithEnter","onSearch","onSearchSubmit","onToggleOpen","domRef","_useLock","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","sharedProps","replacedText","triggerOnSearch","getData","selectNode","MultipleSelector","msTouchAction","inputMouseDown","RefSelectTrigger","popupElement","containerWidth","dropdownStyle","dropdownClassName","_props$direction","_props$dropdownMatchS","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","dropdownPrefixCls","builtInPlacements","getBuiltInPlacements","mergedTransitionName","getPopupElement","DEFAULT_OMIT_PROPS","generateSelector","defaultPrefixCls","OptionList","components","optionList","convertChildrenToData","warningProps","omitDOMProps","defaultOpen","_props$optionFilterPr","_props$autoClearSearc","autoClearSearchValue","allowClear","clearIcon","showArrow","inputIcon","menuItemSelectedIcon","defaultActiveFirstOption","_props$notFoundConten","notFoundContent","backfill","getInputElement","_props$listHeight","listHeight","_props$listItemHeight","listItemHeight","_props$showAction","tokenSeparators","onPopupScroll","onDropdownVisibleChange","onClear","_props$internalProps","internalProps","useInternalProps","selectorRef","tokenSeparator","_useDelayReset","timeout","bool","setBool","delayRef","cancelLatest","delaySetBool","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","innerId","setInnerId","mergedId","mergedOptionLabelProp","mergedLabelInValue","isMultiple","mergedShowSearch","selectorDomRef","_useMergedState","useMergedState","_useMergedState2","setMergedValue","mergedRawValue","rawValues","_useState3","setActiveValue","_useState5","innerSearchValue","setInnerSearchValue","mergedSearchValue","mergedOptions","newOptions","mergedFlattenOptions","getValueOption","prevOptionMapRef","vals","useCacheOptions","displayOptions","displayFlattenOptions","tmpValues","valueOptions","displayValue","prevValuesRef","valueLabels","resultValues","cacheLabel","useCacheDisplayValue","triggerSelect","isSelect","newValueOption","outOption","skipTriggerSelect","selectValue","onRawSelect","onRawDeselect","_useState7","_useState8","setPrevValueOptions","triggerChange","newRawValues","skipTriggerChange","newRawValuesOptions","outValues","outValue","outOptions","onInternalSelect","newRawValue","customizeInputElement","_useMergedState3","_useMergedState4","innerOpen","setInnerOpen","mergedOpen","emptyListContent","triggerOpen","newOpen","nextOpen","propsRef","onGlobalMouseDown","useSelectTriggerControl","triggerSearch","searchText","fromTyping","isCompositing","newSearchText","patchLabels","patchRawValues","getClearLock","setClearLock","focusRef","activeTimeoutIds","timeoutId","_useState9","_useState10","setAccessibilityIndex","mergedDefaultActiveFirstOption","_useState11","_useState12","setContainerWidth","_useState13","forceUpdate","clearNode","childrenAsData","onActiveValue","_ref3$source","arrowNode","mergedShowArrow","focused","_len3","restArgs","_key3","_listRef$current","clearLock","removeInfo","_listRef$current2","SelectTrigger","Selector","Content","_props$mouseEnterDela","_props$mouseLeaveDela","afterVisibleChange","_props$align","_props$destroyTooltip","destroyTooltipOnHide","destroyTooltip","keepParent","_props$arrowContent","RESIZE_STATUS","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","calculateNodeStyling","useCache","paddingSize","borderSize","sizingStyle","nodeInfo","ResizableTextArea","saveTextArea","textArea","resizeStatus","autoSize","NONE","resizeOnNextFrame","nextFrameActionId","resizeTextarea","minRows","maxRows","textareaStyles","uiTextNode","_calculateNodeStyling","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","singleRowHeight","calculateNodeHeight","RESIZING","resizeFrameId","RESIZED","fixFirefoxAutoScroll","renderTextArea","_this$props2$prefixCl","overflowX","setSelectionRange","TextArea","resizableTextArea","handleKeyDown","onPressEnter","_options$element","oldStyle","styleKeys","cacheStyle","innerHeight","innerWidth","scrollingEffectClassNameReg","bodyClassName","scrollBarSize","addClassName","openCount","supportDom","cacheOverflow","querySelectorAll","PortalWrapper","attachToParent","setWrapperClassName","wrapperClassName","removeCurrentContainer","_this$container","_this$container$paren","switchScrollingEffect","_self","prevVisible","prevGetContainer","rafId","getOpenCount","keyHasType","ofType","pipe","getRenderPropValue","Popover","Indent","isStart","isEnd","baseClassName","InternalTreeNode","dragNodeHighlight","onSelectorClick","onNodeClick","isSelectable","onCheck","onSelectorDoubleClick","onNodeDoubleClick","isDisabled","onNodeSelect","onNodeCheck","isCheckable","targetChecked","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","onDragStart","onNodeDragStart","dataTransfer","setData","onDragEnter","onNodeDragEnter","onDragOver","onNodeDragOver","onDragLeave","onNodeDragLeave","onDragEnd","onNodeDragEnd","onDrop","onNodeDrop","onExpand","onNodeExpand","setSelectHandle","selectHandle","getNodeState","isLeaf","hasChildren","loadData","treeCheckable","syncLoadData","_this$props$context","onNodeLoad","renderSwitcher","switcherIconFromProps","switcherIcon","_this$props$context2","switcherIconFromCtx","switcherCls","renderCheckbox","$custom","renderIcon","renderSelector","$icon","titleNode","_this$props$context3","showIcon","treeIcon","draggable","titleRender","wrapClass","currentIcon","$title","onDoubleClick","treeSelectable","_this$props$context4","filterTreeNode","dataOrAriaAttributeProps","isEndNode","ContextTreeNode","z","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","isReactComponent","isPureReactComponent","__self","__source","_owner","escape","aa","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Fragment","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","lazy","_ctor","_status","_result","useCallback","onError","ea","fa","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","phasedRegistrationNames","registrationName","va","wa","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","Ya","Za","$a","ab","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","xb","_valueTracker","stopTracking","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","Rb","Sb","Tb","animationiteration","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","kd","ld","setProperty","nd","menuitem","area","embed","hr","keygen","link","track","wbr","od","pd","qd","rd","sd","td","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","ee","eventPool","fe","destructor","de","getPooled","cancelBubble","persist","eventPhase","bubbles","cancelable","isTrusted","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionUpdate","pe","qe","se","ve","te","char","ue","we","datetime","password","tel","week","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","buttons","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","lf","elapsedTime","pseudoElement","mf","nf","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","qf","8","12","13","16","17","18","19","20","32","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","tf","targetTouches","uf","vf","deltaX","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","uh","vh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","hi","pendingContext","ni","qi","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","onclick","createTextNode","ti","ui","vi","wi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hk","jk","kk","unmount","Lj","lk","Events","findFiberByHostInstance","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","flushSync","unmountComponentAtNode","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","ReactPropTypes","arrayOf","instanceOf","objectOf","oneOfType","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","super_","prefilter","lhs","rhs","kind","groupCollapsed","groupEnd","logger","actionTransformer","titleFormatter","collapsed","started","startedTime","took","stateTransformer","errorTransformer","logErrors","diffPredicate","getHours","getMinutes","getSeconds","getMilliseconds","DeepDiff","observableDiff","applyDiff","applyChange","revertChange","isConflict","noConflict","transformer","defaults","createLogger","_ref$selectLocationSt","selectLocationState","defaultSelectLocationState","_ref$adjustUrlOnRepla","adjustUrlOnReplay","isTimeTraveling","unsubscribeFromStore","unsubscribeFromHistory","getLocationInStore","useInitialIfEmpty","handleStoreChange","locationInStore","transitionTo","handleLocationChange","getCurrentLocation","lastPublishedLocation","unsubscribed","routing","_action$payload","Cached","_CloseOutlined","_AntdIcon","CloseOutlined","resetWarned","_CheckCircleOutlined","CheckCircleOutlined","_InfoCircleOutlined","InfoCircleOutlined","_CloseCircleOutlined","CloseCircleOutlined","_ExclamationCircleOutlined","ExclamationCircleOutlined","assertThisInitialized","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","RangeError","encodingOrOffset","fromArrayLike","fromArrayBuffer","isEncoding","actual","write","fromString","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","valLength","read","buf","readUInt16BE","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","out","bytes","checkOffset","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","_CloseCircleFilled","CloseCircleFilled","_DownOutlined","DownOutlined","_SearchOutlined","SearchOutlined","_LoadingOutlined","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","nextTick","browser","env","argv","versions","once","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","_EyeOutlined","EyeOutlined","_EyeInvisibleOutlined","EyeInvisibleOutlined","_LeftOutlined","LeftOutlined","_RightOutlined","RightOutlined","_RedoOutlined","RedoOutlined","_common","_AlphaPointer2","_ref$className","picker","Alpha","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","eachFunc","mergeClasses","_cloneDeep3","toMerge","autoprefix","_forOwn2","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","KhtmlUserSelect","MozUserSelect","msUserSelect","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","justifyContent","WebkitJustifyContent","MozTransform","OTransform","WebkitTransform","otherElementStyles","otherStyle","prefixed","Span","Hover","handleMouseOver","handleMouseOut","onMouseOver","onMouseOut","Active","handleMouseDown","handleMouseUp","setProp","_Checkboard2","calculateChange","unbindEventListeners","margin","slider","marginTop","overwrite","initialA","containerHeight","checkboardCache","serverCanvas","EditableInput","VALID_KEY_CODES","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","dragMax","getValueObjectWithLabel","arrowOffset","onChangeValue","spellCheck","hideLabel","Hue","_h","Raised","_propTypes2","_merge2","zDepth","_ref$styles","passedStyles","assignMergeValue","baseMergeDeep","safeGet","isArrayLikeObject","toPlainObject","mergeFunc","isCommon","isTyped","baseRest","isIterateeCall","assigner","sources","overRest","setToString","otherArgs","baseSetToString","shortOut","constant","nativeNow","lastCalled","stamp","_throttle2","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","_container$getBoundin","bright","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","_originalInput","_r","_g","_roundA","_format","_gradientType","_ok","_tc_id","rgbaToArgbHex","getOriginalInput","getFormat","hexNames","toFilter","secondColor","hex8String","secondHex8String","_applyModification","_applyCombination","fromRatio","newColor","color1","color2","readability","isReadable","wcag2","wcag2Parms","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","burntsienna","flipped","processPercent","Swatch","_interaction","_ref$onClick","onHover","_ref$title","_ref$focusStyle","focusStyle","transparent","swatch","outline","handleFocus","Focus","AlphaPointer","Block","_BlockSwatches2","triangle","hexCode","card","head","alignItems","borderStyle","borderWidth","border","BlockSwatches","_map2","swatches","float","marginBottom","material","_CircleSwatch2","circleSize","circleSpacing","flexWrap","CircleSwatch","_reactcss","Chrome","_ChromeFields2","_ChromePointer2","_ChromePointerCircle2","disableAlpha","paddingBottom","toggles","ChromeFields","_isUndefined2","_UnfoldMoreHorizontalIcon2","toggleViews","showHighlight","hideHighlight","iconHighlight","textTransform","svg","_ref$fill","_ref$width","_ref$height","_ref$style","ChromePointer","ChromePointerCircle","Compact","_CompactColor2","_CompactFields2","CompactColor","CompactFields","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Github","_GithubSwatch2","borderBottomColor","triangleShadow","GithubSwatch","hoverSwatch","_HuePointer2","SliderPointer","Material","borderBottom","Hex","third","Photoshop","_PhotoshopFields2","_PhotoshopPointerCircle2","_PhotoshopPointer2","_PhotoshopButton2","_PhotoshopPreviews2","_props$styles","previews","header","onAccept","onCancel","divider","fieldSymbols","PhotoshopPointerCircle","triangleBorder","Extend","leftInside","rightInside","PhotoshopButton","PhotoshopPreviews","new","Sketch","_SketchFields2","_SketchPresetColors2","presetColors","sliders","activeColor","SketchFields","single","double","SketchPresetColors","borderTop","swatchWrap","colorObjOrString","Slider","_SliderSwatches2","_SliderPointer2","SliderSwatches","_SliderSwatch2","SliderSwatch","Swatches","_SwatchesGroup2","SwatchesGroup","_SwatchesColor2","SwatchesColor","_CheckIcon2","Twitter","hexcode","_PlusOutlined","PlusOutlined","_EllipsisOutlined","EllipsisOutlined","_BarsOutlined","BarsOutlined","_FilterFilled","FilterFilled","_CaretUpOutlined","CaretUpOutlined","_CaretDownOutlined","CaretDownOutlined","_DoubleLeftOutlined","DoubleLeftOutlined","_DoubleRightOutlined","DoubleRightOutlined","_CheckOutlined","CheckOutlined","_UpOutlined","UpOutlined","ColumnGroup","Column","getPathValue","pathList","getColumnsKey","columnKeys","column","dataIndex","validateValue","RefCell","cellProps","_ref$component","colSpan","rowSpan","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","_ref$additionalProps","additionalProps","ellipsis","rowType","isSticky","cellPrefixCls","renderData","cellColSpan","cellRowSpan","cellStyle","cellClassName","restCellProps","mergedColSpan","mergedRowSpan","fixedStyle","isFixLeft","isFixRight","alignStyle","ellipsisConfig","showTitle","componentProps","MemoCell","shouldCellUpdate","TableContext","getCellFixedInfo","colStart","colEnd","stickyOffsets","startColumn","endColumn","fixed","nextColumn","prevColumn","HeaderRow","rowProps","cells","flattenColumns","RowComponent","rowComponent","CellComponent","cellComponent","onHeaderRow","cell","columnsKey","cellIndex","fixedInfo","onHeaderCell","Cell","Header","rows","rootColumns","fillRowCells","colIndex","currentColIndex","colSpans","subColumns","total","hasSubColumns","rowCount","parseHeaderRows","WrapperComponent","trComponent","thComponent","ColGroup","colWidths","cols","mustInsert","columCount","FixedHeader","noData","fixHeader","offsetHeader","stickyClassName","scrollbarSize","combinationScrollBarSize","setScrollRef","_scrollRef$current","onWheel","_scrollRef$current2","lastColumn","ScrollBarColumn","columnsWithScrollbar","flattenColumnsWithScrollbar","headerStickyOffsets","mergedColumnWidth","cloneColumns","useColumnWidth","tableLayout","BodyContext","ExpandedRow","fixColumn","horizonScroll","componentWidth","contentNode","BodyRow","rowKey","getRowKey","rowExpandable","expandedKeys","onRow","_props$indent","indent","childrenColumnName","fixedInfoList","_React$useContext2","expandableType","expandRowByClick","onTriggerExpand","rowClassName","expandedRowClassName","indentSize","expandedRowRender","expandIconColumnIndex","expandRended","setExpandRended","recordKey","rowSupportExpand","nestExpandable","hasNestChildren","mergedExpandable","computeRowClassName","expandRowNode","nestRowNode","baseRowNode","_additionalProps","appendCellNode","additionalCellProps","columnClassName","expandable","onCell","expandContent","computedExpandedRowClassName","subRecord","subKey","ResizeContext","MeasureCell","columnKey","onColumnResize","cellRef","MemoBody","measureColumnWidth","emptyNode","_React$useContext3","tdComponent","convertChildrenToColumns","nodeChildren","flatColumns","parsedFixed","subColum","useColumns","transformColumns","baseColumns","withExpandColumns","_expandColumn","expandColIndex","expandColumn","recordExpandable","mergedColumns","finalColumns","revertForRtl","useLayoutState","defaultState","stateRef","lastPromiseRef","updateBatchRef","prevBatch","batchUpdater","useStickyOffsets","leftOffsets","rightOffsets","_end","Panel","Footer","FooterComponents","Row","renderExpandIcon","expandClassName","_scrollBodyRef$curren","_scrollBodyRef$curren2","scrollBodyRef","offsetScroll","bodyScrollWidth","bodyWidth","scrollBarWidth","_useLayoutState","isHiddenScrollBar","_useLayoutState2","scrollState","setScrollState","refState","setActive","_window","onContainerScroll","tableOffsetTop","tableBottomOffset","currentClientOffset","setScrollLeft","onMouseUpListener","onMouseMoveListener","onScrollListener","onResizeListener","_scrollBodyRef$curren3","_scrollBodyRef$curren4","defaultContainer","EMPTY_SCROLL_TARGET","MemoTableContent","pingLeft","pingRight","footer","summary","showHeader","internalHooks","internalRefs","sticky","hasData","setScrollbarSize","scrollXStyle","scrollYStyle","scrollTableStyle","mergedComponents","fillProps","defaultComponent","expandableConfig","legacyExpandableConfig","getExpandableProps","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","onExpandedRowsChange","mergedExpandIcon","mergedChildrenColumnName","__PARENT_RENDER_ICON__","findAllChildrenKeys","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","newExpandedKeys","hasKey","_React$useState5","_React$useState6","setComponentWidth","_useColumns","_useColumns2","columnContext","fullTableRef","scrollHeaderRef","_React$useState7","_React$useState8","pingedLeft","setPingedLeft","_React$useState9","_React$useState10","pingedRight","setPingedRight","colsWidths","updateColsWidths","pureColWidths","stickyRef","_useSticky","_ref$offsetHeader","_ref$offsetScroll","_ref$getContainer","useSticky","widths","newWidths","_useTimeoutLock","frameRef","cleanUp","useTimeoutLock","_useTimeoutLock2","setScrollTarget","getScrollTarget","forceScroll","_stickyRef$current","mergedScrollLeft","compareTarget","triggerOnScroll","groupTableNode","bodyContent","TableComponent","mergedTableLayout","headerProps","bodyTable","Body","bodyColGroup","footerTable","customizeScrollBody","_ref7","colWidth","StickyScrollBar","ariaProps","getDataAndAriaProps","fullTable","TableContextValue","BodyContextValue","ResizeContextValue","Summary","defaultIndicator","Spin","debouncifyUpdateSpinning","cancelExistingSpin","updateSpinning","originalUpdateSpinning","spinning","renderSpin","tip","spinClassName","divProps","spinElement","indicator","dotClassName","renderIndicator","isNestedPattern","containerClassName","shouldBeDelayed","shouldDelay","Pager","onKeyPress","itemRender","rel","Options","goInputText","buildOptionText","changeSize","goButton","quickGo","getValidValue","KEYCODE","pageSize","pageSizeOptions","selectComponentClass","selectPrefixCls","Select","changeSelect","goInput","gotoButton","getPageSizeOptions","Option","calculatePage","getJumpPrevPage","showLessItems","getJumpNextPage","getItemIcon","savePaginationNode","paginationNode","shouldDisplayQuickJumper","showQuickJumper","handleKeyUp","currentInputValue","changePageSize","newCurrent","onShowSizeChange","currentPage","hasPrev","hasNext","jumpPrev","jumpNext","runIfEnter","restParams","runIfEnterPrev","runIfEnterNext","runIfEnterJumpPrev","runIfEnterJumpNext","handleGoTO","hasOnChange","_current","defaultCurrent","_pageSize","defaultPageSize","lastCurrentNode","allPages","showSizeChanger","totalBoundaryShowSizeChanger","prevPage","prevIcon","prevButton","nextPage","nextIcon","nextButton","hideOnSinglePage","showTotal","simple","showPrevNextJumpers","jumpPrevIcon","jumpNextIcon","pagerList","firstPager","lastPager","pageBufferSize","renderPrev","renderNext","pagerProps","prevItemTitle","nextItemTitle","_active","totalText","prevDisabled","nextDisabled","getShowSizeChanger","RefOptionList","itemPrefixCls","memoFlattenOptions","onListMouseDown","scrollIntoView","getEnabledActiveIndex","_memoFlattenOptions$c","setActiveIndex","fromKeyboard","onSelectValue","nextActiveIndex","renderItem","itemData","mergedLabel","itemIndex","optionPrefixCls","optionClassName","iconVisible","optionTitle","isSelectOption","OptGroup","isSelectOptGroup","convertNodeToOption","_node$props","optionOnly","_node$props2","hasNumberValue","invalidateChildType","toNodeArray","RefSelect","SelectOptionList","convertSelectChildrenToData","getSelectLabeledValue","selectDefaultFilterOptions","isSelectValueDisabled","findSelectValueOption","selectRef","InternalSelect","mergedNotFound","_a$bordered","bordered","_a$listHeight","_a$listItemHeight","_a$transitionName","_getIcons","suffixIcon","mergedClearIcon","mergedSuffixIcon","iconCls","getIcons","selectProps","rcSelectRtlDropDownClassName","mergedSize","RcSelect","SECRET_COMBOBOX_MODE_DO_NOT_USE","MiniSelect","customizeSelectPrefixCls","customLocale","renderPagination","contextLocale","isSmall","responsive","extendedClassName","mini","RcPagination","getIconsProps","usePagination","pagination","_a$total","paginationTotal","paginationObj","innerPagination","setInnerPagination","mergedPagination","extendsObject","refreshPagination","paginationPageSize","Checkbox","saveInput","globalProps","GroupContext","CheckboxGroup","_a$options","registeredValues","setRegisteredValues","getOptions","groupPrefixCls","toggleOption","optionIndex","registerValue","cancelValue","_React$PureComponent","saveCheckbox","rcCheckbox","_assertThisInitialize","indeterminate","checkboxGroup","checkboxProps","checkboxClass","RcCheckbox","DropdownButton","_props$icon","buttonsRender","dropdownProps","_buttonsRender","_buttonsRender2","leftButtonToRender","rightButtonToRender","dropdownTrigger","overlayClassNameCustomized","triggerActions","RcDropdown","overlayNode","_overlayProps$selecta","_overlayProps$focusab","renderOverlay","getPlacement","MenuContext","titleIsSpan","antdMenuTheme","RcSubMenu","renderTitle","LayoutContext","siderHook","addSider","removeSider","BasicComponent","Adapter","Basic","isNumeric","siders","setSiders","hasSider","dimensionMaxMap","SiderContext","generateId","InternalSider","responsiveHandler","below","onBreakpoint","setCollapsed","onCollapse","renderSider","collapsible","reverseArrow","zeroWidthTriggerStyle","rawWidth","siderWidth","zeroWidthTrigger","defaultTrigger","triggerDom","divStyle","siderCls","breakpoint","defaultCollapsed","_c","tooltipTitle","tooltipProps","childrenLength","renderItemChildren","getCollapsedHeight","getRealHeight","skipOpacityTransition","collapseMotion","InternalMenu","renderMenu","menuClassName","RcMenu","_React$Component2","_super2","ItemGroup","RadioGroupContext","RadioGroupContextProvider","InternalRadio","mergedRef","radioProps","wrapperClassString","Radio","RadioGroup","ev","lastValue","optionType","childrenToRender","optionsPrefixCls","renderGroup","RadioButton","radioGroupContext","getFixedType","useSelection","rowSelection","preserveSelectedRowKeys","selectedRowKeys","getCheckboxProps","onSelectionChange","onSelectAll","onSelectInvert","onSelectMultiple","selectionColWidth","columnWidth","selectionType","selections","customizeRenderCell","renderCell","hideSelectAll","_ref$checkStrictly","checkStrictly","pageData","getRecordByKey","expandType","tableLocale","preserveRecordsRef","mergedSelectedKeys","setMergedSelectedKeys","flattedData","flattenData","checkboxPropsMap","isCheckboxDisabled","_useMemo2","_conductCheck","_useMemo3","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","derivedHalfSelectedKeySet","lastSelectedKey","setLastSelectedKey","setSelectedKeys","availableKeys","records","newCache","triggerSingleSelection","mergedSelections","keySet","recordKeys","checkedCurrentAll","checkedCurrentSome","customizeSelections","onSelectionClick","allDisabled","changeKeys","mergedIndeterminate","pointKeys","recordIndex","rangeKeys","changedKeys","originCheckedKeys","_checkedKeys","nextCheckedKeys","tempKeySet","selectionColumn","columnTitle","_renderCell","_columns","restColumns","selectionFixed","getColumnKey","defaultKey","getColumnPos","renderColumnTitle","getMultiplePriority","sorter","getSortFunction","collectSortStates","init","sortStates","columnPos","multiplePriority","sortOrder","defaultSortOrder","stateToInfo","sorterStates","generateSorterInfo","getSortData","innerSorterStates","cloneData","runningSorters","record1","record2","sorterState","compareFn","compareResult","subRecords","useFilterSorter","onSorterChange","sortDirections","showSorterTooltip","setSortStates","mergedSorterStates","collectedStates","validateStates","patchStates","multipleMode","columnTitleSorterProps","sortColumns","sortColumn","triggerSorter","sortState","newSorterStates","innerColumns","injectSorter","sorterSates","defaultSortDirections","tableShowSorterTooltip","newColumn","sorterOrder","nextSortOrder","nextSortDirection","upNode","downNode","sortTip","renderProps","renderSortTitle","originOnClick","FilterDropdownMenuWrapper","useSyncState","_React$useReducer","useForceUpdate","FilterDropdown","filterMultiple","filterState","triggerFilter","filterDropdownVisible","onFilterDropdownVisibleChange","forceFiltered","newVisible","propFilteredKeys","_useSyncState","_useSyncState2","getFilteredKeysSync","setFilteredKeysSync","onSelectKeys","setOpenKeys","openRef","dropdownContent","internalTriggerFilter","mergedKeys","onConfirm","dropdownMenuClass","filterDropdown","clearFilters","renderFilterItems","filterIcon","collectFilterStates","filterStates","filteredValue","defaultFilteredValue","generateFilterInfo","currentFilters","getFilterData","currentData","_filterState$column","onFilter","flattenKeys","keyIndex","realKey","useFilter","onFilterChange","setFilterStates","mergedFilterStates","getFilters","newFilterStates","injectFilter","_column$filterMultipl","useTitleColumns","columnTitleProps","fillTitle","cloneColumn","iconPrefix","_options$getContainer","_options$duration","frameFunc","nextScrollTop","EMPTY_LIST","customizeDropdownPrefixCls","dataSource","legacyChildrenColumnName","_props$showSorterTool","tableProps","_React$useContext$loc","rawData","_mergedExpandable$chi","_useLazyKVMap","mapCacheRef","kvMap","useLazyKVMap","changeEventInfo","triggerOnChange","changeInfo","resetPagination","scrollToFirstRowOnChange","currentDataSource","_useSorter","useSorter","_useSorter2","transformSorterColumns","sorterTitleProps","getSorters","sortedData","_useFilter","_useFilter2","transformFilterColumns","_useTitleColumns","transformTitleColumns","_usePagination","_usePagination2","pageProp","getPaginationParam","_mergedPagination$cur","_mergedPagination$pag","_useSelection","_useSelection2","transformSelectionColumns","selectedKeySet","topPaginationNode","bottomPaginationNode","spinProps","paginationSize","defaultPosition","topPos","bottomPos","wrapperClassNames","RcTable","mergedRowClassName","SELECTION_ALL","SELECTION_INVERT","useRaf","removedRef","TabNode","rtl","_ref$tab","tab","closeIcon","tabBarGutter","tabPosition","renderWrapper","removeAriaLabel","onRemove","tabPrefix","nodeStyle","removable","onInternalClick","onEdit","DEFAULT_SIZE","AddButton","showAdd","addAriaLabel","addIcon","OperationNode","tabs","_ref$moreIcon","moreIcon","moreTransitionName","onTabClick","setOpen","setSelectedKey","popupId","dropdownPrefix","selectedItemId","dropdownAriaLabel","selectOffset","enabledTabs","selectedIndex","moreStyle","moreNode","SPEED_OFF_MULTIPLE","ExtraContent","assertExtra","TabNavList","TabContext","animated","onTabScroll","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useRefs2","cacheRefs","useRefs","getBtnRef","removeBtnRef","tabPositionTopOrBottom","transformLeft","setTransformLeft","_useSyncState4","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","wrapperContentWidth","setWrapperContentWidth","wrapperContentHeight","setWrapperContentHeight","wrapperWidth","setWrapperWidth","wrapperHeight","setWrapperHeight","_useState14","addWidth","setAddWidth","_useState16","addHeight","setAddHeight","_useRafState","batchRef","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","_tabs$","lastOffset","rightOffset","_tabs","useOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState18","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","scrollToTab","tabOffset","newTransform","_newTransform","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","lastWheelTimestampRef","lastWheelPreventRef","lastWheelDirectionRef","touchEventsRef","_e$touches$","_e$touches$2","distanceX","distanceY","absX","absY","currentX","onProxyTouchMove","onProxyTouchEnd","useTouchMove","doMove","_alignInRange2","needPrevent","_useVisibleRange2","containerSize","tabContentNodeSize","addNodeSize","transformSize","basicSize","tabContentSize","addSize","mergedBasicSize","useVisibleRange","visibleStart","visibleEnd","tabNodes","onListHolderResize","_tabsWrapperRef$curre","_tabsWrapperRef$curre2","_innerAddButtonRef$cu","_innerAddButtonRef$cu2","_operationsRef$curren","_operationsRef$curren2","_tabListRef$current","_tabListRef$current2","_operationsRef$curren3","newAddWidth","newAddHeight","newOperationWidth","newOperationHeight","newWrapperScrollWidth","newWrapperScrollHeight","isOperationHidden","newSizes","btnNode","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState20","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingTop","pingBottom","hasDropdown","wrapPrefix","inkBar","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPane","tabKey","TabPane","setVisited","Tabs","mergedAnimated","_ref$prefixCls","defaultActiveKey","_ref$animated","_ref$tabPosition","tabBarStyle","tabBarExtraContent","renderTabBar","parseTabList","setMobile","mergedActiveKey","setMergedActiveKey","_tabs$newActiveIndex","newActiveIndex","setMergedId","mergedTabPosition","tabNavBar","tabNavBarProps","panes","ForwardTabs","_onEdit","hideAdd","centered","editType","RcTabs","Subject","ActionsObservable","_Observable","actionsSubject","_of","scheduler","operator","_ofType","StateObservable","stateSubject","subscriber","__notifier","closed","__subscription","createEpicMiddleware","QueueScheduler","queueScheduler","uniqueQueueScheduler","SchedulerAction","epic$","epicMiddleware","_store","actionSubject$","observeOn","stateSubject$","action$","state$","epic","output$","mergeMap","subscribeOn","rootEpic","DeleteOutlined","generateColor","ReactIcon","AntdIcon","DeleteOutlinedSvg","Menus","menuItems","saveMenuItem","scrollActiveItemToView","fieldNames","defaultFieldNames","menuIndex","expandTrigger","loadingIcon","expandProps","onItemDoubleClick","menuItemCls","expandIconNode","getFieldName","delayOnSelect","isActiveOption","loadingIconNode","arrayTreeFilter","getActiveOptions","activeOption","optionsLength","getShowOptions","itemComponent","parentElement","_this$props$activeVal","_this5","dropdownMenuColumnStyle","getOption","BUILT_IN_PLACEMENTS","_arrayWithoutHoles","_nonIterableSpread","Cascader","handlePopupVisibleChange","handleMenuSelect","targetOption","changeOnSelect","activeOptions","handleItemDoubleClick","currentLevel","currentOptions","getCurrentLevelOptions","saveTrigger","_prevState$prevProps","isEqualArrays","filedNames","_this$props$options","_this$state$activeVal","_this$props4$options","menus","emptyMenuClassName","getFieldNames","ClearableInputType","hasPrefixSuffix","hasAddon","addonBefore","addonAfter","ClearableLabeledInput","onInputMouseUp","triggerFocus","needClear","renderClearIcon","suffixNode","renderSuffix","prefixNode","affixWrapperCls","getInputClassName","labeledElement","_classNames4","addonClassName","addonBeforeNode","addonAfterNode","mergedWrapperClassName","mergedGroupClassName","_classNames5","inputType","renderTextAreaWithClearIcon","renderInputWithLabel","renderLabeledIcon","fixControlledValue","resolveOnChange","originalInputValue","saveClearableInput","clearableInput","clearPasswordValueAttribute","renderInput","removePasswordTimeout","renderComponent","_this$props3$bordered","Search","customizeInputPrefixCls","inputPrefixCls","_props$enterButton","enterButton","customOnSearch","customOnChange","contextSize","searchIcon","btnClassName","enterButtonAsElement","isAntdButton","textarea","showCount","RcTextArea","_this$props2$bordered","_this$props2$showCoun","maxLength","hasMaxLength","textareaNode","valueLength","dataCount","ActionMap","click","Password","renderPassword","visibilityToggle","_iconProps","_props$iconRender","iconRender","iconTrigger","iconProps","getIcon","inputClassName","omittedProps","defaultFilterOption","defaultRenderFilteredOption","keyword","highlightKeyword","defaultSortFilteredOption","getFilledFieldNames","flattenTree","ancestor","childrenName","defaultDisplayRender","cachedOptions","selectedOptions","__IS_FILTERED_OPTION","unwrappedValue","unwrappedSelectedOptions","inputFocused","handleInputBlur","handleInputClick","handleInputChange","clearSelection","clearSelectionTimeout","renderCascader","_props$placeholder","_props$showSearch","isRtlLayout","arrowCls","pickerCls","inputProps","generateFilteredOptions","isNotFound","isEmptyNode","matchInputWidth","getLabel","rcCascaderPopupClassName","RcCascader","getPopupPlacement","_this$props$displayRe","displayRender","_showSearch$filter","_showSearch$render","_showSearch$sort","_showSearch$limit","_this$state2","_this$state2$flattenO","matchCount","configArgument","Notice","closeTimer","clearCloseTimer","noticeKey","startCloseTimer","updateMark","restartCloseTimer","holder","componentClass","useNotification","notificationInstance","createdRef","setElements","noticeProps","noticeEle","originElements","seed","getUuid","Notification","notices","hookRefs","originNotice","holderCallback","notice","maxCount","noticeIndex","updatedNotices","userPassKey","_ref2$notice","noticePropsMap","noticeKeys","_notice$onClose","_this2$noticePropsMap","newInstance","called","notification","removeNotice","_useNotification","defaultGetContainer","defaultCloseIcon","defaultDuration","defaultTop","defaultBottom","defaultPlacement","getPlacementStyle","getNotificationInstance","_args$placement","_args$getContainer","_args$closeIcon","outerPrefixCls","cacheInstance","closeIconToRender","notificationClass","typeToIcon","success","getRCNoticeProps","autoMarginTag","btn","api","innerInstance","_useRCNotification","useRCNotification","_useRCNotification2","hookNotify","hookApiRef","mergedPrefixCls","transitionEndObject","transitionStr","html","transitionEnd","windowIsUndefined","currentDrawer","DrawerChild","domFocus","dom","removeStartHandler","startPos","removeMoveHandler","differX","differY","maskDom","handlerDom","contentDom","getTouchParentScroll","isY","isX","onWrapperTransitionEnd","contentWrapper","getCurrentDrawerSome","openLevelTransition","_this$getHorizontalBo","getHorizontalBoolAndPlacementName","isHorizontal","placementName","contentValue","setLevelAndScrolling","setLevelTransform","levelMove","showMask","levelDom","levelValue","$levelMove","transformArguments","$value","placementPos","toggleScrollingToDrawerAndBody","eventArray","domArray","addScrollingEffect","touchAction","remScrollingEffect","widthTransition","transformTransition","heightTransition","getLevelDom","vars","passiveSupported","drawerId","$open","maskStyle","onHandleClick","keyboard","handlerChildren","DrawerWrapper","_open","Child","$forceRender","afterClose","Drawer","DrawerContext","defaultPushState","pull","onDestroyTransitionEnd","getDestroyOnClose","destroyClose","destroyOnClose","getPushDistance","getPushTransform","getRcDrawerStyle","offsetStyle","getOffsetStyle","renderBody","drawerStyle","containerStyle","renderHeader","renderFooter","renderProvider","parentDrawer","drawerClassName","RcDrawer","preProps","headerStyle","headerClassName","renderCloseIcon","footerStyle","footerClassName","_this$props6$closeIco","customizeGetContainer","SizeContextProvider","originSize","InternalAvatar","groupSize","setScale","mounted","setMounted","isImgExist","setIsImgExist","avatarNodeRef","avatarChildrenRef","avatarNodeMergeRef","setScaleParam","childrenWidth","nodeWidth","_props$gap","gap","customSize","srcSet","responsiveSizeStyle","currentBreakpoint","currentSize","hasImageElement","transformString","childrenStyle","sizeChildrenStyle","Avatar","maxStyle","_props$maxPopoverPlac","maxPopoverPlacement","childrenWithProps","numOfChildren","childrenShow","childrenHidden","combineEpics","epics","merger","isValidProps","InputNumber","ratio","getRatio","_ratio","down","recordCursorPosition","lastKeyCode","inputting","rawInput","parser","getValueFromEvent","getCurrentValidValue","originValue","getInputDisplayValue","getFullNum","getPrecision","valueString","inputDisplayValue","toPrecisionAsStep","inputDisplayValueFormat","formatWrapper","decimalSeparator","cursorBefore","cursorAfter","restoreByAfter","fullStr","prevCursorPos","fixCaret","partRestoreByAfter","partStr","isNotCompleteNumber","autoStepTimer","pressingUpOrDown","validValue","nextInputValue","nextValue","focusOnUpDown","_this$state$value","_this$state$inputValu","newValueInString","ratioPrecision","stepPrecision","currentValuePrecision","getMaxPrecision","formatter","numberIsTooLarge","rat","precisionFactor","getPrecisionFactor","outOfRange","onStep","useTouch","upHandler","downHandler","inputMode","isUpDisabled","isDownDisabled","upClassName","downClassName","upEvents","downEvents","upIcon","downIcon","mergeSize","inputNumberClass","RcInputNumber"],"mappings":"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","file":"static/js/2.cb1f16ce.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const { store } = useReduxContext()\n * return
{store.getState()}
\n * }\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return
{store.getState()}
\n * }\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(storeState);\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production' && !selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n\n /**\n * TAB\n */\n TAB: 9,\n\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n\n /**\n * ENTER\n */\n ENTER: 13,\n\n /**\n * SHIFT\n */\n SHIFT: 16,\n\n /**\n * CTRL\n */\n CTRL: 17,\n\n /**\n * ALT\n */\n ALT: 18,\n\n /**\n * PAUSE\n */\n PAUSE: 19,\n\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n\n /**\n * ESC\n */\n ESC: 27,\n\n /**\n * SPACE\n */\n SPACE: 32,\n\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n\n /**\n * END\n */\n END: 35,\n\n /**\n * HOME\n */\n HOME: 36,\n\n /**\n * LEFT\n */\n LEFT: 37,\n\n /**\n * UP\n */\n UP: 38,\n\n /**\n * RIGHT\n */\n RIGHT: 39,\n\n /**\n * DOWN\n */\n DOWN: 40,\n\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n\n /**\n * INSERT\n */\n INSERT: 45,\n\n /**\n * DELETE\n */\n DELETE: 46,\n\n /**\n * ZERO\n */\n ZERO: 48,\n\n /**\n * ONE\n */\n ONE: 49,\n\n /**\n * TWO\n */\n TWO: 50,\n\n /**\n * THREE\n */\n THREE: 51,\n\n /**\n * FOUR\n */\n FOUR: 52,\n\n /**\n * FIVE\n */\n FIVE: 53,\n\n /**\n * SIX\n */\n SIX: 54,\n\n /**\n * SEVEN\n */\n SEVEN: 55,\n\n /**\n * EIGHT\n */\n EIGHT: 56,\n\n /**\n * NINE\n */\n NINE: 57,\n\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n\n /**\n * A\n */\n A: 65,\n\n /**\n * B\n */\n B: 66,\n\n /**\n * C\n */\n C: 67,\n\n /**\n * D\n */\n D: 68,\n\n /**\n * E\n */\n E: 69,\n\n /**\n * F\n */\n F: 70,\n\n /**\n * G\n */\n G: 71,\n\n /**\n * H\n */\n H: 72,\n\n /**\n * I\n */\n I: 73,\n\n /**\n * J\n */\n J: 74,\n\n /**\n * K\n */\n K: 75,\n\n /**\n * L\n */\n L: 76,\n\n /**\n * M\n */\n M: 77,\n\n /**\n * N\n */\n N: 78,\n\n /**\n * O\n */\n O: 79,\n\n /**\n * P\n */\n P: 80,\n\n /**\n * Q\n */\n Q: 81,\n\n /**\n * R\n */\n R: 82,\n\n /**\n * S\n */\n S: 83,\n\n /**\n * T\n */\n T: 84,\n\n /**\n * U\n */\n U: 85,\n\n /**\n * V\n */\n V: 86,\n\n /**\n * W\n */\n W: 87,\n\n /**\n * X\n */\n X: 88,\n\n /**\n * Y\n */\n Y: 89,\n\n /**\n * Z\n */\n Z: 90,\n\n /**\n * META\n */\n META: 91,\n\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n\n /**\n * F1\n */\n F1: 112,\n\n /**\n * F2\n */\n F2: 113,\n\n /**\n * F3\n */\n F3: 114,\n\n /**\n * F4\n */\n F4: 115,\n\n /**\n * F5\n */\n F5: 116,\n\n /**\n * F6\n */\n F6: 117,\n\n /**\n * F7\n */\n F7: 118,\n\n /**\n * F8\n */\n F8: 119,\n\n /**\n * F9\n */\n F9: 120,\n\n /**\n * F10\n */\n F10: 121,\n\n /**\n * F11\n */\n F11: 122,\n\n /**\n * F12\n */\n F12: 123,\n\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n\n /**\n * DASH\n */\n DASH: 189,\n\n /**\n * EQUALS\n */\n EQUALS: 187,\n\n /**\n * COMMA\n */\n COMMA: 188,\n\n /**\n * PERIOD\n */\n PERIOD: 190,\n\n /**\n * SLASH\n */\n SLASH: 191,\n\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n\n if (e.altKey && !e.ctrlKey || e.metaKey || // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n } // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n\n\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n\n default:\n return true;\n }\n },\n\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n } // Safari sends zero key code for non-latin characters.\n\n\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","'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;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import * as React from 'react';\nvar isValidElement = React.isValidElement;\nexport { isValidElement };\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) return replacement;\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props() : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","function omit(obj, fields) {\n // eslint-disable-next-line prefer-object-spread\n var shallowCopy = Object.assign({}, obj);\n\n for (var i = 0; i < fields.length; i += 1) {\n var key = fields[i];\n delete shallowCopy[key];\n }\n\n return shallowCopy;\n}\n\nexport default omit;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","/** PURE_IMPORTS_START _identity PURE_IMPORTS_END */\nimport { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n","/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = /*@__PURE__*/ (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map\n","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n","/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nexport default function wrapperRaf(callback) {\n return raf(callback);\n}\nwrapperRaf.cancel = caf;","import devWarning, { resetWarned } from \"rc-util/es/warning\";\nexport { resetWarned };\nexport default (function (valid, component, message) {\n devWarning(valid, \"[antd: \".concat(component, \"] \").concat(message));\n});","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _IconBase = _interopRequireDefault(require(\"./IconBase\"));\n\nvar _twoTonePrimaryColor = require(\"./twoTonePrimaryColor\");\n\nvar _utils = require(\"../utils\");\n\n// Initial setting\n// should move it to antd main repo?\n(0, _twoTonePrimaryColor.setTwoToneColor)('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = (0, _objectWithoutProperties2.default)(props, [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"]);\n var classString = (0, _classnames.default)('anticon', (0, _defineProperty2.default)({}, \"anticon-\".concat(icon.name), Boolean(icon.name)), {\n 'anticon-spin': !!spin || icon.name === 'loading'\n }, className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = (0, _utils.normalizeTwoToneColors)(twoToneColor),\n _normalizeTwoToneColo2 = (0, _slicedToArray2.default)(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(_IconBase.default, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = _twoTonePrimaryColor.getTwoToneColor;\nIcon.setTwoToneColor = _twoTonePrimaryColor.setTwoToneColor;\nvar _default = Icon;\nexports.default = _default;","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","'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 }; }","/**\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\nexport default isArray;\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","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); }\n\nimport { isMemo } from 'react-is';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","import freeGlobal from './_freeGlobal.js';\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\nexport default root;\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\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","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\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\nexport default isObjectLike;\n","/* build: `node build.js modules=ALL exclude=gestures,accessors requirejs minifier=uglifyjs` */\n/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */\n\nvar fabric = fabric || { version: '4.2.0' };\nif (typeof exports !== 'undefined') {\n exports.fabric = fabric;\n}\n/* _AMD_START_ */\nelse if (typeof define === 'function' && define.amd) {\n define([], function() { return fabric; });\n}\n/* _AMD_END_ */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (document instanceof (typeof HTMLDocument !== 'undefined' ? HTMLDocument : Document)) {\n fabric.document = document;\n }\n else {\n fabric.document = document.implementation.createHTMLDocument('');\n }\n fabric.window = window;\n}\nelse {\n // assume we're running under node.js when document/window are not present\n var jsdom = require('jsdom');\n var virtualWindow = new jsdom.JSDOM(\n decodeURIComponent('%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E'),\n {\n features: {\n FetchExternalResources: ['img']\n },\n resources: 'usable'\n }).window;\n fabric.document = virtualWindow.document;\n fabric.jsdomImplForWrapper = require('jsdom/lib/jsdom/living/generated/utils').implForWrapper;\n fabric.nodeCanvas = require('jsdom/lib/jsdom/utils').Canvas;\n fabric.window = virtualWindow;\n DOMParser = fabric.window.DOMParser;\n}\n\n/**\n * True when in environment that supports touch events\n * @type boolean\n */\nfabric.isTouchSupported = 'ontouchstart' in fabric.window || 'ontouchstart' in fabric.document ||\n (fabric.window && fabric.window.navigator && fabric.window.navigator.maxTouchPoints > 0);\n\n/**\n * True when in environment that's probably Node.js\n * @type boolean\n */\nfabric.isLikelyNode = typeof Buffer !== 'undefined' &&\n typeof window === 'undefined';\n\n/* _FROM_SVG_START_ */\n/**\n * Attributes parsed from all SVG elements\n * @type array\n */\nfabric.SHARED_ATTRIBUTES = [\n 'display',\n 'transform',\n 'fill', 'fill-opacity', 'fill-rule',\n 'opacity',\n 'stroke', 'stroke-dasharray', 'stroke-linecap', 'stroke-dashoffset',\n 'stroke-linejoin', 'stroke-miterlimit',\n 'stroke-opacity', 'stroke-width',\n 'id', 'paint-order', 'vector-effect',\n 'instantiated_by_use', 'clip-path',\n];\n/* _FROM_SVG_END_ */\n\n/**\n * Pixel per Inch as a default value set to 96. Can be changed for more realistic conversion.\n */\nfabric.DPI = 96;\nfabric.reNum = '(?:[-+]?(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[eE][-+]?\\\\d+)?)';\nfabric.commaWsp = '(?:\\\\s+,?\\\\s*|,\\\\s*)'\nfabric.rePathCommand = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:[eE][-+]?\\d+)?)/ig;\nfabric.reNonWord = /[ \\n\\.,;!\\?\\-]/;\nfabric.fontPaths = { };\nfabric.iMatrix = [1, 0, 0, 1, 0, 0];\nfabric.svgNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Pixel limit for cache canvases. 1Mpx , 4Mpx should be fine.\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.perfLimitSizeTotal = 2097152;\n\n/**\n * Pixel limit for cache canvases width or height. IE fixes the maximum at 5000\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.maxCacheSideLimit = 4096;\n\n/**\n * Lowest pixel limit for cache canvases, set at 256PX\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.minCacheSideLimit = 256;\n\n/**\n * Cache Object for widths of chars in text rendering.\n */\nfabric.charWidthsCache = { };\n\n/**\n * if webgl is enabled and available, textureSize will determine the size\n * of the canvas backend\n * @since 2.0.0\n * @type Number\n * @default\n */\nfabric.textureSize = 2048;\n\n/**\n * When 'true', style information is not retained when copy/pasting text, making\n * pasted text use destination style.\n * Defaults to 'false'.\n * @type Boolean\n * @default\n */\nfabric.disableStyleCopyPaste = false;\n\n/**\n * Enable webgl for filtering picture is available\n * A filtering backend will be initialized, this will both take memory and\n * time since a default 2048x2048 canvas will be created for the gl context\n * @since 2.0.0\n * @type Boolean\n * @default\n */\nfabric.enableGLFiltering = true;\n\n/**\n * Device Pixel Ratio\n * @see https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/SettingUptheCanvas/SettingUptheCanvas.html\n */\nfabric.devicePixelRatio = fabric.window.devicePixelRatio ||\n fabric.window.webkitDevicePixelRatio ||\n fabric.window.mozDevicePixelRatio ||\n 1;\n/**\n * Browser-specific constant to adjust CanvasRenderingContext2D.shadowBlur value,\n * which is unitless and not rendered equally across browsers.\n *\n * Values that work quite well (as of October 2017) are:\n * - Chrome: 1.5\n * - Edge: 1.75\n * - Firefox: 0.9\n * - Safari: 0.95\n *\n * @since 2.0.0\n * @type Number\n * @default 1\n */\nfabric.browserShadowBlurConstant = 1;\n\n/**\n * This object contains the result of arc to beizer conversion for faster retrieving if the same arc needs to be converted again.\n * It was an internal variable, is accessible since version 2.3.4\n */\nfabric.arcToSegmentsCache = { };\n\n/**\n * This object keeps the results of the boundsOfCurve calculation mapped by the joined arguments necessary to calculate it.\n * It does speed up calculation, if you parse and add always the same paths, but in case of heavy usage of freedrawing\n * you do not get any speed benefit and you get a big object in memory.\n * The object was a private variable before, while now is appended to the lib so that you have access to it and you\n * can eventually clear it.\n * It was an internal variable, is accessible since version 2.3.4\n */\nfabric.boundsOfCurveCache = { };\n\n/**\n * If disabled boundsOfCurveCache is not used. For apps that make heavy usage of pencil drawing probably disabling it is better\n * @default true\n */\nfabric.cachesBoundsOfCurve = true;\n\n/**\n * Skip performance testing of setupGLContext and force the use of putImageData that seems to be the one that works best on\n * Chrome + old hardware. if your users are experiencing empty images after filtering you may try to force this to true\n * this has to be set before instantiating the filtering backend ( before filtering the first image )\n * @type Boolean\n * @default false\n */\nfabric.forceGLPutImageData = false;\n\nfabric.initFilterBackend = function() {\n if (fabric.enableGLFiltering && fabric.isWebglSupported && fabric.isWebglSupported(fabric.textureSize)) {\n console.log('max texture size: ' + fabric.maxTextureSize);\n return (new fabric.WebglFilterBackend({ tileSize: fabric.textureSize }));\n }\n else if (fabric.Canvas2dFilterBackend) {\n return (new fabric.Canvas2dFilterBackend());\n }\n};\n\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // ensure globality even if entire library were function wrapped (as in Meteor.js packaging system)\n window.fabric = fabric;\n}\n\n\n(function() {\n\n /**\n * @private\n * @param {String} eventName\n * @param {Function} handler\n */\n function _removeEventListener(eventName, handler) {\n if (!this.__eventListeners[eventName]) {\n return;\n }\n var eventListener = this.__eventListeners[eventName];\n if (handler) {\n eventListener[eventListener.indexOf(handler)] = false;\n }\n else {\n fabric.util.array.fill(eventListener, false);\n }\n }\n\n /**\n * Observes specified event\n * @memberOf fabric.Observable\n * @alias on\n * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler})\n * @param {Function} handler Function that receives a notification when an event of the specified type occurs\n * @return {Self} thisArg\n * @chainable\n */\n function on(eventName, handler) {\n if (!this.__eventListeners) {\n this.__eventListeners = { };\n }\n // one object with key/value pairs was passed\n if (arguments.length === 1) {\n for (var prop in eventName) {\n this.on(prop, eventName[prop]);\n }\n }\n else {\n if (!this.__eventListeners[eventName]) {\n this.__eventListeners[eventName] = [];\n }\n this.__eventListeners[eventName].push(handler);\n }\n return this;\n }\n\n /**\n * Stops event observing for a particular event handler. Calling this method\n * without arguments removes all handlers for all events\n * @memberOf fabric.Observable\n * @alias off\n * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler})\n * @param {Function} handler Function to be deleted from EventListeners\n * @return {Self} thisArg\n * @chainable\n */\n function off(eventName, handler) {\n if (!this.__eventListeners) {\n return this;\n }\n\n // remove all key/value pairs (event name -> event handler)\n if (arguments.length === 0) {\n for (eventName in this.__eventListeners) {\n _removeEventListener.call(this, eventName);\n }\n }\n // one object with key/value pairs was passed\n else if (arguments.length === 1 && typeof arguments[0] === 'object') {\n for (var prop in eventName) {\n _removeEventListener.call(this, prop, eventName[prop]);\n }\n }\n else {\n _removeEventListener.call(this, eventName, handler);\n }\n return this;\n }\n\n /**\n * Fires event with an optional options object\n * @memberOf fabric.Observable\n * @param {String} eventName Event name to fire\n * @param {Object} [options] Options object\n * @return {Self} thisArg\n * @chainable\n */\n function fire(eventName, options) {\n if (!this.__eventListeners) {\n return this;\n }\n\n var listenersForEvent = this.__eventListeners[eventName];\n if (!listenersForEvent) {\n return this;\n }\n\n for (var i = 0, len = listenersForEvent.length; i < len; i++) {\n listenersForEvent[i] && listenersForEvent[i].call(this, options || { });\n }\n this.__eventListeners[eventName] = listenersForEvent.filter(function(value) {\n return value !== false;\n });\n return this;\n }\n\n /**\n * @namespace fabric.Observable\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#events}\n * @see {@link http://fabricjs.com/events|Events demo}\n */\n fabric.Observable = {\n fire: fire,\n on: on,\n off: off,\n };\n})();\n\n\n/**\n * @namespace fabric.Collection\n */\nfabric.Collection = {\n\n _objects: [],\n\n /**\n * Adds objects to collection, Canvas or Group, then renders canvas\n * (if `renderOnAddRemove` is not `false`).\n * in case of Group no changes to bounding box are made.\n * Objects should be instances of (or inherit from) fabric.Object\n * Use of this function is highly discouraged for groups.\n * you can add a bunch of objects with the add method but then you NEED\n * to run a addWithUpdate call for the Group class or position/bbox will be wrong.\n * @param {...fabric.Object} object Zero or more fabric instances\n * @return {Self} thisArg\n * @chainable\n */\n add: function () {\n this._objects.push.apply(this._objects, arguments);\n if (this._onObjectAdded) {\n for (var i = 0, length = arguments.length; i < length; i++) {\n this._onObjectAdded(arguments[i]);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Inserts an object into collection at specified index, then renders canvas (if `renderOnAddRemove` is not `false`)\n * An object should be an instance of (or inherit from) fabric.Object\n * Use of this function is highly discouraged for groups.\n * you can add a bunch of objects with the insertAt method but then you NEED\n * to run a addWithUpdate call for the Group class or position/bbox will be wrong.\n * @param {Object} object Object to insert\n * @param {Number} index Index to insert object at\n * @param {Boolean} nonSplicing When `true`, no splicing (shifting) of objects occurs\n * @return {Self} thisArg\n * @chainable\n */\n insertAt: function (object, index, nonSplicing) {\n var objects = this._objects;\n if (nonSplicing) {\n objects[index] = object;\n }\n else {\n objects.splice(index, 0, object);\n }\n this._onObjectAdded && this._onObjectAdded(object);\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Removes objects from a collection, then renders canvas (if `renderOnAddRemove` is not `false`)\n * @param {...fabric.Object} object Zero or more fabric instances\n * @return {Self} thisArg\n * @chainable\n */\n remove: function() {\n var objects = this._objects,\n index, somethingRemoved = false;\n\n for (var i = 0, length = arguments.length; i < length; i++) {\n index = objects.indexOf(arguments[i]);\n\n // only call onObjectRemoved if an object was actually removed\n if (index !== -1) {\n somethingRemoved = true;\n objects.splice(index, 1);\n this._onObjectRemoved && this._onObjectRemoved(arguments[i]);\n }\n }\n\n this.renderOnAddRemove && somethingRemoved && this.requestRenderAll();\n return this;\n },\n\n /**\n * Executes given function for each object in this group\n * @param {Function} callback\n * Callback invoked with current object as first argument,\n * index - as second and an array of all objects - as third.\n * Callback is invoked in a context of Global Object (e.g. `window`)\n * when no `context` argument is given\n *\n * @param {Object} context Context (aka thisObject)\n * @return {Self} thisArg\n * @chainable\n */\n forEachObject: function(callback, context) {\n var objects = this.getObjects();\n for (var i = 0, len = objects.length; i < len; i++) {\n callback.call(context, objects[i], i, objects);\n }\n return this;\n },\n\n /**\n * Returns an array of children objects of this instance\n * Type parameter introduced in 1.3.10\n * since 2.3.5 this method return always a COPY of the array;\n * @param {String} [type] When specified, only objects of this type are returned\n * @return {Array}\n */\n getObjects: function(type) {\n if (typeof type === 'undefined') {\n return this._objects.concat();\n }\n return this._objects.filter(function(o) {\n return o.type === type;\n });\n },\n\n /**\n * Returns object at specified index\n * @param {Number} index\n * @return {Self} thisArg\n */\n item: function (index) {\n return this._objects[index];\n },\n\n /**\n * Returns true if collection contains no objects\n * @return {Boolean} true if collection is empty\n */\n isEmpty: function () {\n return this._objects.length === 0;\n },\n\n /**\n * Returns a size of a collection (i.e: length of an array containing its objects)\n * @return {Number} Collection size\n */\n size: function() {\n return this._objects.length;\n },\n\n /**\n * Returns true if collection contains an object\n * @param {Object} object Object to check against\n * @return {Boolean} `true` if collection contains an object\n */\n contains: function(object) {\n return this._objects.indexOf(object) > -1;\n },\n\n /**\n * Returns number representation of a collection complexity\n * @return {Number} complexity\n */\n complexity: function () {\n return this._objects.reduce(function (memo, current) {\n memo += current.complexity ? current.complexity() : 0;\n return memo;\n }, 0);\n }\n};\n\n\n/**\n * @namespace fabric.CommonMethods\n */\nfabric.CommonMethods = {\n\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n _setOptions: function(options) {\n for (var prop in options) {\n this.set(prop, options[prop]);\n }\n },\n\n /**\n * @private\n * @param {Object} [filler] Options object\n * @param {String} [property] property to set the Gradient to\n */\n _initGradient: function(filler, property) {\n if (filler && filler.colorStops && !(filler instanceof fabric.Gradient)) {\n this.set(property, new fabric.Gradient(filler));\n }\n },\n\n /**\n * @private\n * @param {Object} [filler] Options object\n * @param {String} [property] property to set the Pattern to\n * @param {Function} [callback] callback to invoke after pattern load\n */\n _initPattern: function(filler, property, callback) {\n if (filler && filler.source && !(filler instanceof fabric.Pattern)) {\n this.set(property, new fabric.Pattern(filler, callback));\n }\n else {\n callback && callback();\n }\n },\n\n /**\n * @private\n */\n _setObject: function(obj) {\n for (var prop in obj) {\n this._set(prop, obj[prop]);\n }\n },\n\n /**\n * Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) `set` does not update position of object's borders/controls. If you need to update those, call `setCoords()`.\n * @param {String|Object} key Property name or object (if object, iterate over the object properties)\n * @param {Object|Function} value Property value (if function, the value is passed into it and its return value is used as a new one)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n set: function(key, value) {\n if (typeof key === 'object') {\n this._setObject(key);\n }\n else {\n this._set(key, value);\n }\n return this;\n },\n\n _set: function(key, value) {\n this[key] = value;\n },\n\n /**\n * Toggles specified property from `true` to `false` or from `false` to `true`\n * @param {String} property Property to toggle\n * @return {fabric.Object} thisArg\n * @chainable\n */\n toggle: function(property) {\n var value = this.get(property);\n if (typeof value === 'boolean') {\n this.set(property, !value);\n }\n return this;\n },\n\n /**\n * Basic getter\n * @param {String} property Property name\n * @return {*} value of a property\n */\n get: function(property) {\n return this[property];\n }\n};\n\n\n(function(global) {\n\n var sqrt = Math.sqrt,\n atan2 = Math.atan2,\n pow = Math.pow,\n PiBy180 = Math.PI / 180,\n PiBy2 = Math.PI / 2;\n\n /**\n * @namespace fabric.util\n */\n fabric.util = {\n\n /**\n * Calculate the cos of an angle, avoiding returning floats for known results\n * @static\n * @memberOf fabric.util\n * @param {Number} angle the angle in radians or in degree\n * @return {Number}\n */\n cos: function(angle) {\n if (angle === 0) { return 1; }\n if (angle < 0) {\n // cos(a) = cos(-a)\n angle = -angle;\n }\n var angleSlice = angle / PiBy2;\n switch (angleSlice) {\n case 1: case 3: return 0;\n case 2: return -1;\n }\n return Math.cos(angle);\n },\n\n /**\n * Calculate the sin of an angle, avoiding returning floats for known results\n * @static\n * @memberOf fabric.util\n * @param {Number} angle the angle in radians or in degree\n * @return {Number}\n */\n sin: function(angle) {\n if (angle === 0) { return 0; }\n var angleSlice = angle / PiBy2, sign = 1;\n if (angle < 0) {\n // sin(-a) = -sin(a)\n sign = -1;\n }\n switch (angleSlice) {\n case 1: return sign;\n case 2: return 0;\n case 3: return -sign;\n }\n return Math.sin(angle);\n },\n\n /**\n * Removes value from an array.\n * Presence of value (and its position in an array) is determined via `Array.prototype.indexOf`\n * @static\n * @memberOf fabric.util\n * @param {Array} array\n * @param {*} value\n * @return {Array} original array\n */\n removeFromArray: function(array, value) {\n var idx = array.indexOf(value);\n if (idx !== -1) {\n array.splice(idx, 1);\n }\n return array;\n },\n\n /**\n * Returns random number between 2 specified ones.\n * @static\n * @memberOf fabric.util\n * @param {Number} min lower limit\n * @param {Number} max upper limit\n * @return {Number} random value (between min and max)\n */\n getRandomInt: function(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n },\n\n /**\n * Transforms degrees to radians.\n * @static\n * @memberOf fabric.util\n * @param {Number} degrees value in degrees\n * @return {Number} value in radians\n */\n degreesToRadians: function(degrees) {\n return degrees * PiBy180;\n },\n\n /**\n * Transforms radians to degrees.\n * @static\n * @memberOf fabric.util\n * @param {Number} radians value in radians\n * @return {Number} value in degrees\n */\n radiansToDegrees: function(radians) {\n return radians / PiBy180;\n },\n\n /**\n * Rotates `point` around `origin` with `radians`\n * @static\n * @memberOf fabric.util\n * @param {fabric.Point} point The point to rotate\n * @param {fabric.Point} origin The origin of the rotation\n * @param {Number} radians The radians of the angle for the rotation\n * @return {fabric.Point} The new rotated point\n */\n rotatePoint: function(point, origin, radians) {\n point.subtractEquals(origin);\n var v = fabric.util.rotateVector(point, radians);\n return new fabric.Point(v.x, v.y).addEquals(origin);\n },\n\n /**\n * Rotates `vector` with `radians`\n * @static\n * @memberOf fabric.util\n * @param {Object} vector The vector to rotate (x and y)\n * @param {Number} radians The radians of the angle for the rotation\n * @return {Object} The new rotated point\n */\n rotateVector: function(vector, radians) {\n var sin = fabric.util.sin(radians),\n cos = fabric.util.cos(radians),\n rx = vector.x * cos - vector.y * sin,\n ry = vector.x * sin + vector.y * cos;\n return {\n x: rx,\n y: ry\n };\n },\n\n /**\n * Apply transform t to point p\n * @static\n * @memberOf fabric.util\n * @param {fabric.Point} p The point to transform\n * @param {Array} t The transform\n * @param {Boolean} [ignoreOffset] Indicates that the offset should not be applied\n * @return {fabric.Point} The transformed point\n */\n transformPoint: function(p, t, ignoreOffset) {\n if (ignoreOffset) {\n return new fabric.Point(\n t[0] * p.x + t[2] * p.y,\n t[1] * p.x + t[3] * p.y\n );\n }\n return new fabric.Point(\n t[0] * p.x + t[2] * p.y + t[4],\n t[1] * p.x + t[3] * p.y + t[5]\n );\n },\n\n /**\n * Returns coordinates of points's bounding rectangle (left, top, width, height)\n * @param {Array} points 4 points array\n * @param {Array} [transform] an array of 6 numbers representing a 2x3 transform matrix\n * @return {Object} Object with left, top, width, height properties\n */\n makeBoundingBoxFromPoints: function(points, transform) {\n if (transform) {\n for (var i = 0; i < points.length; i++) {\n points[i] = fabric.util.transformPoint(points[i], transform);\n }\n }\n var xPoints = [points[0].x, points[1].x, points[2].x, points[3].x],\n minX = fabric.util.array.min(xPoints),\n maxX = fabric.util.array.max(xPoints),\n width = maxX - minX,\n yPoints = [points[0].y, points[1].y, points[2].y, points[3].y],\n minY = fabric.util.array.min(yPoints),\n maxY = fabric.util.array.max(yPoints),\n height = maxY - minY;\n\n return {\n left: minX,\n top: minY,\n width: width,\n height: height\n };\n },\n\n /**\n * Invert transformation t\n * @static\n * @memberOf fabric.util\n * @param {Array} t The transform\n * @return {Array} The inverted transform\n */\n invertTransform: function(t) {\n var a = 1 / (t[0] * t[3] - t[1] * t[2]),\n r = [a * t[3], -a * t[1], -a * t[2], a * t[0]],\n o = fabric.util.transformPoint({ x: t[4], y: t[5] }, r, true);\n r[4] = -o.x;\n r[5] = -o.y;\n return r;\n },\n\n /**\n * A wrapper around Number#toFixed, which contrary to native method returns number, not string.\n * @static\n * @memberOf fabric.util\n * @param {Number|String} number number to operate on\n * @param {Number} fractionDigits number of fraction digits to \"leave\"\n * @return {Number}\n */\n toFixed: function(number, fractionDigits) {\n return parseFloat(Number(number).toFixed(fractionDigits));\n },\n\n /**\n * Converts from attribute value to pixel value if applicable.\n * Returns converted pixels or original value not converted.\n * @param {Number|String} value number to operate on\n * @param {Number} fontSize\n * @return {Number|String}\n */\n parseUnit: function(value, fontSize) {\n var unit = /\\D{0,2}$/.exec(value),\n number = parseFloat(value);\n if (!fontSize) {\n fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\n switch (unit[0]) {\n case 'mm':\n return number * fabric.DPI / 25.4;\n\n case 'cm':\n return number * fabric.DPI / 2.54;\n\n case 'in':\n return number * fabric.DPI;\n\n case 'pt':\n return number * fabric.DPI / 72; // or * 4 / 3\n\n case 'pc':\n return number * fabric.DPI / 72 * 12; // or * 16\n\n case 'em':\n return number * fontSize;\n\n default:\n return number;\n }\n },\n\n /**\n * Function which always returns `false`.\n * @static\n * @memberOf fabric.util\n * @return {Boolean}\n */\n falseFunction: function() {\n return false;\n },\n\n /**\n * Returns klass \"Class\" object of given namespace\n * @memberOf fabric.util\n * @param {String} type Type of object (eg. 'circle')\n * @param {String} namespace Namespace to get klass \"Class\" object from\n * @return {Object} klass \"Class\"\n */\n getKlass: function(type, namespace) {\n // capitalize first letter only\n type = fabric.util.string.camelize(type.charAt(0).toUpperCase() + type.slice(1));\n return fabric.util.resolveNamespace(namespace)[type];\n },\n\n /**\n * Returns array of attributes for given svg that fabric parses\n * @memberOf fabric.util\n * @param {String} type Type of svg element (eg. 'circle')\n * @return {Array} string names of supported attributes\n */\n getSvgAttributes: function(type) {\n var attributes = [\n 'instantiated_by_use',\n 'style',\n 'id',\n 'class'\n ];\n switch (type) {\n case 'linearGradient':\n attributes = attributes.concat(['x1', 'y1', 'x2', 'y2', 'gradientUnits', 'gradientTransform']);\n break;\n case 'radialGradient':\n attributes = attributes.concat(['gradientUnits', 'gradientTransform', 'cx', 'cy', 'r', 'fx', 'fy', 'fr']);\n break;\n case 'stop':\n attributes = attributes.concat(['offset', 'stop-color', 'stop-opacity']);\n break;\n }\n return attributes;\n },\n\n /**\n * Returns object of given namespace\n * @memberOf fabric.util\n * @param {String} namespace Namespace string e.g. 'fabric.Image.filter' or 'fabric'\n * @return {Object} Object for given namespace (default fabric)\n */\n resolveNamespace: function(namespace) {\n if (!namespace) {\n return fabric;\n }\n\n var parts = namespace.split('.'),\n len = parts.length, i,\n obj = global || fabric.window;\n\n for (i = 0; i < len; ++i) {\n obj = obj[parts[i]];\n }\n\n return obj;\n },\n\n /**\n * Loads image element from given url and passes it to a callback\n * @memberOf fabric.util\n * @param {String} url URL representing an image\n * @param {Function} callback Callback; invoked with loaded image\n * @param {*} [context] Context to invoke callback in\n * @param {Object} [crossOrigin] crossOrigin value to set image element to\n */\n loadImage: function(url, callback, context, crossOrigin) {\n if (!url) {\n callback && callback.call(context, url);\n return;\n }\n\n var img = fabric.util.createImage();\n\n /** @ignore */\n var onLoadCallback = function () {\n callback && callback.call(context, img, false);\n img = img.onload = img.onerror = null;\n };\n\n img.onload = onLoadCallback;\n /** @ignore */\n img.onerror = function() {\n fabric.log('Error loading ' + img.src);\n callback && callback.call(context, null, true);\n img = img.onload = img.onerror = null;\n };\n\n // data-urls appear to be buggy with crossOrigin\n // https://github.com/kangax/fabric.js/commit/d0abb90f1cd5c5ef9d2a94d3fb21a22330da3e0a#commitcomment-4513767\n // see https://code.google.com/p/chromium/issues/detail?id=315152\n // https://bugzilla.mozilla.org/show_bug.cgi?id=935069\n // crossOrigin null is the same as not set.\n if (url.indexOf('data') !== 0 &&\n crossOrigin !== undefined &&\n crossOrigin !== null) {\n img.crossOrigin = crossOrigin;\n }\n\n // IE10 / IE11-Fix: SVG contents from data: URI\n // will only be available if the IMG is present\n // in the DOM (and visible)\n if (url.substring(0,14) === 'data:image/svg') {\n img.onload = null;\n fabric.util.loadImageInDom(img, onLoadCallback);\n }\n\n img.src = url;\n },\n\n /**\n * Attaches SVG image with data: URL to the dom\n * @memberOf fabric.util\n * @param {Object} img Image object with data:image/svg src\n * @param {Function} callback Callback; invoked with loaded image\n * @return {Object} DOM element (div containing the SVG image)\n */\n loadImageInDom: function(img, onLoadCallback) {\n var div = fabric.document.createElement('div');\n div.style.width = div.style.height = '1px';\n div.style.left = div.style.top = '-100%';\n div.style.position = 'absolute';\n div.appendChild(img);\n fabric.document.querySelector('body').appendChild(div);\n /**\n * Wrap in function to:\n * 1. Call existing callback\n * 2. Cleanup DOM\n */\n img.onload = function () {\n onLoadCallback();\n div.parentNode.removeChild(div);\n div = null;\n };\n },\n\n /**\n * Creates corresponding fabric instances from their object representations\n * @static\n * @memberOf fabric.util\n * @param {Array} objects Objects to enliven\n * @param {Function} callback Callback to invoke when all objects are created\n * @param {String} namespace Namespace to get klass \"Class\" object from\n * @param {Function} reviver Method for further parsing of object elements,\n * called after each fabric object created.\n */\n enlivenObjects: function(objects, callback, namespace, reviver) {\n objects = objects || [];\n\n var enlivenedObjects = [],\n numLoadedObjects = 0,\n numTotalObjects = objects.length;\n\n function onLoaded() {\n if (++numLoadedObjects === numTotalObjects) {\n callback && callback(enlivenedObjects.filter(function(obj) {\n // filter out undefined objects (objects that gave error)\n return obj;\n }));\n }\n }\n\n if (!numTotalObjects) {\n callback && callback(enlivenedObjects);\n return;\n }\n\n objects.forEach(function (o, index) {\n // if sparse array\n if (!o || !o.type) {\n onLoaded();\n return;\n }\n var klass = fabric.util.getKlass(o.type, namespace);\n klass.fromObject(o, function (obj, error) {\n error || (enlivenedObjects[index] = obj);\n reviver && reviver(o, obj, error);\n onLoaded();\n });\n });\n },\n\n /**\n * Create and wait for loading of patterns\n * @static\n * @memberOf fabric.util\n * @param {Array} patterns Objects to enliven\n * @param {Function} callback Callback to invoke when all objects are created\n * called after each fabric object created.\n */\n enlivenPatterns: function(patterns, callback) {\n patterns = patterns || [];\n\n function onLoaded() {\n if (++numLoadedPatterns === numPatterns) {\n callback && callback(enlivenedPatterns);\n }\n }\n\n var enlivenedPatterns = [],\n numLoadedPatterns = 0,\n numPatterns = patterns.length;\n\n if (!numPatterns) {\n callback && callback(enlivenedPatterns);\n return;\n }\n\n patterns.forEach(function (p, index) {\n if (p && p.source) {\n new fabric.Pattern(p, function(pattern) {\n enlivenedPatterns[index] = pattern;\n onLoaded();\n });\n }\n else {\n enlivenedPatterns[index] = p;\n onLoaded();\n }\n });\n },\n\n /**\n * Groups SVG elements (usually those retrieved from SVG document)\n * @static\n * @memberOf fabric.util\n * @param {Array} elements SVG elements to group\n * @param {Object} [options] Options object\n * @param {String} path Value to set sourcePath to\n * @return {fabric.Object|fabric.Group}\n */\n groupSVGElements: function(elements, options, path) {\n var object;\n if (elements && elements.length === 1) {\n return elements[0];\n }\n if (options) {\n if (options.width && options.height) {\n options.centerPoint = {\n x: options.width / 2,\n y: options.height / 2\n };\n }\n else {\n delete options.width;\n delete options.height;\n }\n }\n object = new fabric.Group(elements, options);\n if (typeof path !== 'undefined') {\n object.sourcePath = path;\n }\n return object;\n },\n\n /**\n * Populates an object with properties of another object\n * @static\n * @memberOf fabric.util\n * @param {Object} source Source object\n * @param {Object} destination Destination object\n * @return {Array} properties Properties names to include\n */\n populateWithProperties: function(source, destination, properties) {\n if (properties && Object.prototype.toString.call(properties) === '[object Array]') {\n for (var i = 0, len = properties.length; i < len; i++) {\n if (properties[i] in source) {\n destination[properties[i]] = source[properties[i]];\n }\n }\n }\n },\n\n /**\n * Draws a dashed line between two points\n *\n * This method is used to draw dashed line around selection area.\n * See dotted stroke in canvas\n *\n * @param {CanvasRenderingContext2D} ctx context\n * @param {Number} x start x coordinate\n * @param {Number} y start y coordinate\n * @param {Number} x2 end x coordinate\n * @param {Number} y2 end y coordinate\n * @param {Array} da dash array pattern\n */\n drawDashedLine: function(ctx, x, y, x2, y2, da) {\n var dx = x2 - x,\n dy = y2 - y,\n len = sqrt(dx * dx + dy * dy),\n rot = atan2(dy, dx),\n dc = da.length,\n di = 0,\n draw = true;\n\n ctx.save();\n ctx.translate(x, y);\n ctx.moveTo(0, 0);\n ctx.rotate(rot);\n\n x = 0;\n while (len > x) {\n x += da[di++ % dc];\n if (x > len) {\n x = len;\n }\n ctx[draw ? 'lineTo' : 'moveTo'](x, 0);\n draw = !draw;\n }\n\n ctx.restore();\n },\n\n /**\n * Creates canvas element\n * @static\n * @memberOf fabric.util\n * @return {CanvasElement} initialized canvas element\n */\n createCanvasElement: function() {\n return fabric.document.createElement('canvas');\n },\n\n /**\n * Creates a canvas element that is a copy of another and is also painted\n * @param {CanvasElement} canvas to copy size and content of\n * @static\n * @memberOf fabric.util\n * @return {CanvasElement} initialized canvas element\n */\n copyCanvasElement: function(canvas) {\n var newCanvas = fabric.util.createCanvasElement();\n newCanvas.width = canvas.width;\n newCanvas.height = canvas.height;\n newCanvas.getContext('2d').drawImage(canvas, 0, 0);\n return newCanvas;\n },\n\n /**\n * since 2.6.0 moved from canvas instance to utility.\n * @param {CanvasElement} canvasEl to copy size and content of\n * @param {String} format 'jpeg' or 'png', in some browsers 'webp' is ok too\n * @param {Number} quality <= 1 and > 0\n * @static\n * @memberOf fabric.util\n * @return {String} data url\n */\n toDataURL: function(canvasEl, format, quality) {\n return canvasEl.toDataURL('image/' + format, quality);\n },\n\n /**\n * Creates image element (works on client and node)\n * @static\n * @memberOf fabric.util\n * @return {HTMLImageElement} HTML image element\n */\n createImage: function() {\n return fabric.document.createElement('img');\n },\n\n /**\n * Multiply matrix A by matrix B to nest transformations\n * @static\n * @memberOf fabric.util\n * @param {Array} a First transformMatrix\n * @param {Array} b Second transformMatrix\n * @param {Boolean} is2x2 flag to multiply matrices as 2x2 matrices\n * @return {Array} The product of the two transform matrices\n */\n multiplyTransformMatrices: function(a, b, is2x2) {\n // Matrix multiply a * b\n return [\n a[0] * b[0] + a[2] * b[1],\n a[1] * b[0] + a[3] * b[1],\n a[0] * b[2] + a[2] * b[3],\n a[1] * b[2] + a[3] * b[3],\n is2x2 ? 0 : a[0] * b[4] + a[2] * b[5] + a[4],\n is2x2 ? 0 : a[1] * b[4] + a[3] * b[5] + a[5]\n ];\n },\n\n /**\n * Decomposes standard 2x3 matrix into transform components\n * @static\n * @memberOf fabric.util\n * @param {Array} a transformMatrix\n * @return {Object} Components of transform\n */\n qrDecompose: function(a) {\n var angle = atan2(a[1], a[0]),\n denom = pow(a[0], 2) + pow(a[1], 2),\n scaleX = sqrt(denom),\n scaleY = (a[0] * a[3] - a[2] * a[1]) / scaleX,\n skewX = atan2(a[0] * a[2] + a[1] * a [3], denom);\n return {\n angle: angle / PiBy180,\n scaleX: scaleX,\n scaleY: scaleY,\n skewX: skewX / PiBy180,\n skewY: 0,\n translateX: a[4],\n translateY: a[5]\n };\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.angle] angle in degrees\n * @return {Number[]} transform matrix\n */\n calcRotateMatrix: function(options) {\n if (!options.angle) {\n return fabric.iMatrix.concat();\n }\n var theta = fabric.util.degreesToRadians(options.angle),\n cos = fabric.util.cos(theta),\n sin = fabric.util.sin(theta);\n return [cos, sin, -sin, cos, 0, 0];\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet.\n * is called DimensionsTransformMatrix because those properties are the one that influence\n * the size of the resulting box of the object.\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.scaleX]\n * @param {Number} [options.scaleY]\n * @param {Boolean} [options.flipX]\n * @param {Boolean} [options.flipY]\n * @param {Number} [options.skewX]\n * @param {Number} [options.skewX]\n * @return {Number[]} transform matrix\n */\n calcDimensionsMatrix: function(options) {\n var scaleX = typeof options.scaleX === 'undefined' ? 1 : options.scaleX,\n scaleY = typeof options.scaleY === 'undefined' ? 1 : options.scaleY,\n scaleMatrix = [\n options.flipX ? -scaleX : scaleX,\n 0,\n 0,\n options.flipY ? -scaleY : scaleY,\n 0,\n 0],\n multiply = fabric.util.multiplyTransformMatrices,\n degreesToRadians = fabric.util.degreesToRadians;\n if (options.skewX) {\n scaleMatrix = multiply(\n scaleMatrix,\n [1, 0, Math.tan(degreesToRadians(options.skewX)), 1],\n true);\n }\n if (options.skewY) {\n scaleMatrix = multiply(\n scaleMatrix,\n [1, Math.tan(degreesToRadians(options.skewY)), 0, 1],\n true);\n }\n return scaleMatrix;\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.angle]\n * @param {Number} [options.scaleX]\n * @param {Number} [options.scaleY]\n * @param {Boolean} [options.flipX]\n * @param {Boolean} [options.flipY]\n * @param {Number} [options.skewX]\n * @param {Number} [options.skewX]\n * @param {Number} [options.translateX]\n * @param {Number} [options.translateY]\n * @return {Number[]} transform matrix\n */\n composeMatrix: function(options) {\n var matrix = [1, 0, 0, 1, options.translateX || 0, options.translateY || 0],\n multiply = fabric.util.multiplyTransformMatrices;\n if (options.angle) {\n matrix = multiply(matrix, fabric.util.calcRotateMatrix(options));\n }\n if (options.scaleX !== 1 || options.scaleY !== 1 ||\n options.skewX || options.skewY || options.flipX || options.flipY) {\n matrix = multiply(matrix, fabric.util.calcDimensionsMatrix(options));\n }\n return matrix;\n },\n\n /**\n * reset an object transform state to neutral. Top and left are not accounted for\n * @static\n * @memberOf fabric.util\n * @param {fabric.Object} target object to transform\n */\n resetObjectTransform: function (target) {\n target.scaleX = 1;\n target.scaleY = 1;\n target.skewX = 0;\n target.skewY = 0;\n target.flipX = false;\n target.flipY = false;\n target.rotate(0);\n },\n\n /**\n * Extract Object transform values\n * @static\n * @memberOf fabric.util\n * @param {fabric.Object} target object to read from\n * @return {Object} Components of transform\n */\n saveObjectTransform: function (target) {\n return {\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n skewX: target.skewX,\n skewY: target.skewY,\n angle: target.angle,\n left: target.left,\n flipX: target.flipX,\n flipY: target.flipY,\n top: target.top\n };\n },\n\n /**\n * Returns true if context has transparent pixel\n * at specified location (taking tolerance into account)\n * @param {CanvasRenderingContext2D} ctx context\n * @param {Number} x x coordinate\n * @param {Number} y y coordinate\n * @param {Number} tolerance Tolerance\n */\n isTransparent: function(ctx, x, y, tolerance) {\n\n // If tolerance is > 0 adjust start coords to take into account.\n // If moves off Canvas fix to 0\n if (tolerance > 0) {\n if (x > tolerance) {\n x -= tolerance;\n }\n else {\n x = 0;\n }\n if (y > tolerance) {\n y -= tolerance;\n }\n else {\n y = 0;\n }\n }\n\n var _isTransparent = true, i, temp,\n imageData = ctx.getImageData(x, y, (tolerance * 2) || 1, (tolerance * 2) || 1),\n l = imageData.data.length;\n\n // Split image data - for tolerance > 1, pixelDataSize = 4;\n for (i = 3; i < l; i += 4) {\n temp = imageData.data[i];\n _isTransparent = temp <= 0;\n if (_isTransparent === false) {\n break; // Stop if colour found\n }\n }\n\n imageData = null;\n\n return _isTransparent;\n },\n\n /**\n * Parse preserveAspectRatio attribute from element\n * @param {string} attribute to be parsed\n * @return {Object} an object containing align and meetOrSlice attribute\n */\n parsePreserveAspectRatioAttribute: function(attribute) {\n var meetOrSlice = 'meet', alignX = 'Mid', alignY = 'Mid',\n aspectRatioAttrs = attribute.split(' '), align;\n\n if (aspectRatioAttrs && aspectRatioAttrs.length) {\n meetOrSlice = aspectRatioAttrs.pop();\n if (meetOrSlice !== 'meet' && meetOrSlice !== 'slice') {\n align = meetOrSlice;\n meetOrSlice = 'meet';\n }\n else if (aspectRatioAttrs.length) {\n align = aspectRatioAttrs.pop();\n }\n }\n //divide align in alignX and alignY\n alignX = align !== 'none' ? align.slice(1, 4) : 'none';\n alignY = align !== 'none' ? align.slice(5, 8) : 'none';\n return {\n meetOrSlice: meetOrSlice,\n alignX: alignX,\n alignY: alignY\n };\n },\n\n /**\n * Clear char widths cache for the given font family or all the cache if no\n * fontFamily is specified.\n * Use it if you know you are loading fonts in a lazy way and you are not waiting\n * for custom fonts to load properly when adding text objects to the canvas.\n * If a text object is added when its own font is not loaded yet, you will get wrong\n * measurement and so wrong bounding boxes.\n * After the font cache is cleared, either change the textObject text content or call\n * initDimensions() to trigger a recalculation\n * @memberOf fabric.util\n * @param {String} [fontFamily] font family to clear\n */\n clearFabricFontCache: function(fontFamily) {\n fontFamily = (fontFamily || '').toLowerCase();\n if (!fontFamily) {\n fabric.charWidthsCache = { };\n }\n else if (fabric.charWidthsCache[fontFamily]) {\n delete fabric.charWidthsCache[fontFamily];\n }\n },\n\n /**\n * Given current aspect ratio, determines the max width and height that can\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Number} ar aspect ratio\n * @param {Number} maximumArea Maximum area you want to achieve\n * @return {Object.x} Limited dimensions by X\n * @return {Object.y} Limited dimensions by Y\n */\n limitDimsByArea: function(ar, maximumArea) {\n var roughWidth = Math.sqrt(maximumArea * ar),\n perfLimitSizeY = Math.floor(maximumArea / roughWidth);\n return { x: Math.floor(roughWidth), y: perfLimitSizeY };\n },\n\n capValue: function(min, value, max) {\n return Math.max(min, Math.min(value, max));\n },\n\n /**\n * Finds the scale for the object source to fit inside the object destination,\n * keeping aspect ratio intact.\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Object | fabric.Object} source\n * @param {Number} source.height natural unscaled height of the object\n * @param {Number} source.width natural unscaled width of the object\n * @param {Object | fabric.Object} destination\n * @param {Number} destination.height natural unscaled height of the object\n * @param {Number} destination.width natural unscaled width of the object\n * @return {Number} scale factor to apply to source to fit into destination\n */\n findScaleToFit: function(source, destination) {\n return Math.min(destination.width / source.width, destination.height / source.height);\n },\n\n /**\n * Finds the scale for the object source to cover entirely the object destination,\n * keeping aspect ratio intact.\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Object | fabric.Object} source\n * @param {Number} source.height natural unscaled height of the object\n * @param {Number} source.width natural unscaled width of the object\n * @param {Object | fabric.Object} destination\n * @param {Number} destination.height natural unscaled height of the object\n * @param {Number} destination.width natural unscaled width of the object\n * @return {Number} scale factor to apply to source to cover destination\n */\n findScaleToCover: function(source, destination) {\n return Math.max(destination.width / source.width, destination.height / source.height);\n },\n\n /**\n * given an array of 6 number returns something like `\"matrix(...numbers)\"`\n * @memberOf fabric.util\n * @param {Array} trasnform an array with 6 numbers\n * @return {String} transform matrix for svg\n * @return {Object.y} Limited dimensions by Y\n */\n matrixToSVG: function(transform) {\n return 'matrix(' + transform.map(function(value) {\n return fabric.util.toFixed(value, fabric.Object.NUM_FRACTION_DIGITS);\n }).join(' ') + ')';\n },\n\n /**\n * given a width and height, return the size of the bounding box\n * that can contains the box with width/height with applied transform\n * described in options.\n * Use to calculate the boxes around objects for controls.\n * @memberOf fabric.util\n * @param {Number} width\n * @param {Number} height\n * @param {Object} options\n * @param {Number} options.scaleX\n * @param {Number} options.scaleY\n * @param {Number} options.skewX\n * @param {Number} options.skewY\n * @return {Object.x} width of containing\n * @return {Object.y} height of containing\n */\n sizeAfterTransform: function(width, height, options) {\n var dimX = width / 2, dimY = height / 2,\n points = [\n {\n x: -dimX,\n y: -dimY\n },\n {\n x: dimX,\n y: -dimY\n },\n {\n x: -dimX,\n y: dimY\n },\n {\n x: dimX,\n y: dimY\n }],\n transformMatrix = fabric.util.calcDimensionsMatrix(options),\n bbox = fabric.util.makeBoundingBoxFromPoints(points, transformMatrix);\n return {\n x: bbox.width,\n y: bbox.height,\n };\n }\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n var _join = Array.prototype.join,\n commandLengths = {\n m: 2,\n l: 2,\n h: 1,\n v: 1,\n c: 6,\n s: 4,\n q: 4,\n t: 2,\n a: 7\n },\n repeatedCommands = {\n m: 'l',\n M: 'L'\n };\n function segmentToBezier(th2, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY) {\n var costh2 = fabric.util.cos(th2),\n sinth2 = fabric.util.sin(th2),\n costh3 = fabric.util.cos(th3),\n sinth3 = fabric.util.sin(th3),\n toX = cosTh * rx * costh3 - sinTh * ry * sinth3 + cx1,\n toY = sinTh * rx * costh3 + cosTh * ry * sinth3 + cy1,\n cp1X = fromX + mT * ( -cosTh * rx * sinth2 - sinTh * ry * costh2),\n cp1Y = fromY + mT * ( -sinTh * rx * sinth2 + cosTh * ry * costh2),\n cp2X = toX + mT * ( cosTh * rx * sinth3 + sinTh * ry * costh3),\n cp2Y = toY + mT * ( sinTh * rx * sinth3 - cosTh * ry * costh3);\n\n return ['C',\n cp1X, cp1Y,\n cp2X, cp2Y,\n toX, toY\n ];\n }\n\n /* Adapted from http://dxr.mozilla.org/mozilla-central/source/content/svg/content/src/nsSVGPathDataParser.cpp\n * by Andrea Bogazzi code is under MPL. if you don't have a copy of the license you can take it here\n * http://mozilla.org/MPL/2.0/\n */\n function arcToSegments(toX, toY, rx, ry, large, sweep, rotateX) {\n var PI = Math.PI, th = rotateX * PI / 180,\n sinTh = fabric.util.sin(th),\n cosTh = fabric.util.cos(th),\n fromX = 0, fromY = 0;\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var px = -cosTh * toX * 0.5 - sinTh * toY * 0.5,\n py = -cosTh * toY * 0.5 + sinTh * toX * 0.5,\n rx2 = rx * rx, ry2 = ry * ry, py2 = py * py, px2 = px * px,\n pl = rx2 * ry2 - rx2 * py2 - ry2 * px2,\n root = 0;\n\n if (pl < 0) {\n var s = Math.sqrt(1 - pl / (rx2 * ry2));\n rx *= s;\n ry *= s;\n }\n else {\n root = (large === sweep ? -1.0 : 1.0) *\n Math.sqrt( pl / (rx2 * py2 + ry2 * px2));\n }\n\n var cx = root * rx * py / ry,\n cy = -root * ry * px / rx,\n cx1 = cosTh * cx - sinTh * cy + toX * 0.5,\n cy1 = sinTh * cx + cosTh * cy + toY * 0.5,\n mTheta = calcVectorAngle(1, 0, (px - cx) / rx, (py - cy) / ry),\n dtheta = calcVectorAngle((px - cx) / rx, (py - cy) / ry, (-px - cx) / rx, (-py - cy) / ry);\n\n if (sweep === 0 && dtheta > 0) {\n dtheta -= 2 * PI;\n }\n else if (sweep === 1 && dtheta < 0) {\n dtheta += 2 * PI;\n }\n\n // Convert into cubic bezier segments <= 90deg\n var segments = Math.ceil(Math.abs(dtheta / PI * 2)),\n result = [], mDelta = dtheta / segments,\n mT = 8 / 3 * Math.sin(mDelta / 4) * Math.sin(mDelta / 4) / Math.sin(mDelta / 2),\n th3 = mTheta + mDelta;\n\n for (var i = 0; i < segments; i++) {\n result[i] = segmentToBezier(mTheta, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY);\n fromX = result[i][5];\n fromY = result[i][6];\n mTheta = th3;\n th3 += mDelta;\n }\n return result;\n }\n\n /*\n * Private\n */\n function calcVectorAngle(ux, uy, vx, vy) {\n var ta = Math.atan2(uy, ux),\n tb = Math.atan2(vy, vx);\n if (tb >= ta) {\n return tb - ta;\n }\n else {\n return 2 * Math.PI - (ta - tb);\n }\n }\n\n /**\n * Calculate bounding box of a beziercurve\n * @param {Number} x0 starting point\n * @param {Number} y0\n * @param {Number} x1 first control point\n * @param {Number} y1\n * @param {Number} x2 secondo control point\n * @param {Number} y2\n * @param {Number} x3 end of beizer\n * @param {Number} y3\n */\n // taken from http://jsbin.com/ivomiq/56/edit no credits available for that.\n // TODO: can we normalize this with the starting points set at 0 and then translated the bbox?\n function getBoundsOfCurve(x0, y0, x1, y1, x2, y2, x3, y3) {\n var argsString;\n if (fabric.cachesBoundsOfCurve) {\n argsString = _join.call(arguments);\n if (fabric.boundsOfCurveCache[argsString]) {\n return fabric.boundsOfCurveCache[argsString];\n }\n }\n\n var sqrt = Math.sqrt,\n min = Math.min, max = Math.max,\n abs = Math.abs, tvalues = [],\n bounds = [[], []],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n\n for (var i = 0; i < 2; ++i) {\n if (i > 0) {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n if (b2ac < 0) {\n continue;\n }\n sqrtb2ac = sqrt(b2ac);\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length, jlen = j, mt;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n x = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3);\n bounds[0][j] = x;\n\n y = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3);\n bounds[1][j] = y;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n var result = [\n {\n x: min.apply(null, bounds[0]),\n y: min.apply(null, bounds[1])\n },\n {\n x: max.apply(null, bounds[0]),\n y: max.apply(null, bounds[1])\n }\n ];\n if (fabric.cachesBoundsOfCurve) {\n fabric.boundsOfCurveCache[argsString] = result;\n }\n return result;\n }\n\n /**\n * Converts arc to a bunch of beizer curves\n * @param {Number} fx starting point x\n * @param {Number} fy starting point y\n * @param {Array} coords Arc command\n */\n function fromArcToBeizers(fx, fy, coords) {\n var rx = coords[1],\n ry = coords[2],\n rot = coords[3],\n large = coords[4],\n sweep = coords[5],\n tx = coords[6],\n ty = coords[7],\n segsNorm = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot);\n\n for (var i = 0, len = segsNorm.length; i < len; i++) {\n segsNorm[i][1] += fx;\n segsNorm[i][2] += fy;\n segsNorm[i][3] += fx;\n segsNorm[i][4] += fy;\n segsNorm[i][5] += fx;\n segsNorm[i][6] += fy;\n }\n return segsNorm;\n };\n\n\n function makePathSimpler(path) {\n // x and y represent the last point of the path. the previous command point.\n // we add them to each relative command to make it an absolute comment.\n // we also swap the v V h H with L, because are easier to transform.\n var x = 0, y = 0, len = path.length,\n // x1 and y1 represent the last point of the subpath. the subpath is started with\n // m or M command. When a z or Z command is drawn, x and y need to be resetted to\n // the last x1 and y1.\n x1 = 0, y1 = 0, current, i, converted,\n // previous will host the letter of the previous command, to handle S and T.\n // controlX and controlY will host the previous reflected control point\n destinationPath = [], previous, controlX, controlY;\n for (i = 0; i < len; ++i) {\n converted = false;\n current = path[i].slice(0);\n switch (current[0]) { // first letter\n case 'l': // lineto, relative\n current[0] = 'L';\n current[1] += x;\n current[2] += y;\n // falls through\n case 'L':\n x = current[1];\n y = current[2];\n break;\n case 'h': // horizontal lineto, relative\n current[1] += x;\n // falls through\n case 'H':\n current[0] = 'L';\n current[2] = y;\n x = current[1];\n break;\n case 'v': // vertical lineto, relative\n current[1] += y;\n // falls through\n case 'V':\n current[0] = 'L';\n y = current[1];\n current[1] = x;\n current[2] = y;\n break;\n case 'm': // moveTo, relative\n current[0] = 'M';\n current[1] += x;\n current[2] += y;\n // falls through\n case 'M':\n x = current[1];\n y = current[2];\n x1 = current[1];\n y1 = current[2];\n break;\n case 'c': // bezierCurveTo, relative\n current[0] = 'C';\n current[1] += x;\n current[2] += y;\n current[3] += x;\n current[4] += y;\n current[5] += x;\n current[6] += y;\n // falls through\n case 'C':\n controlX = current[3];\n controlY = current[4];\n x = current[5];\n y = current[6];\n break;\n case 's': // shorthand cubic bezierCurveTo, relative\n current[0] = 'S';\n current[1] += x;\n current[2] += y;\n current[3] += x;\n current[4] += y;\n // falls through\n case 'S':\n // would be sScC but since we are swapping sSc for C, we check just that.\n if (previous === 'C') {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n else {\n // If there is no previous command or if the previous command was not a C, c, S, or s,\n // the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n x = current[3];\n y = current[4];\n current[0] = 'C';\n current[5] = current[3];\n current[6] = current[4];\n current[3] = current[1];\n current[4] = current[2];\n current[1] = controlX;\n current[2] = controlY;\n // current[3] and current[4] are NOW the second control point.\n // we keep it for the next reflection.\n controlX = current[3];\n controlY = current[4];\n break;\n case 'q': // quadraticCurveTo, relative\n current[0] = 'Q';\n current[1] += x;\n current[2] += y;\n current[3] += x;\n current[4] += y;\n // falls through\n case 'Q':\n controlX = current[1];\n controlY = current[2];\n x = current[3];\n y = current[4];\n break;\n case 't': // shorthand quadraticCurveTo, relative\n current[0] = 'T';\n current[1] += x;\n current[2] += y;\n // falls through\n case 'T':\n if (previous === 'Q') {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n else {\n // If there is no previous command or if the previous command was not a Q, q, T or t,\n // assume the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n current[0] = 'Q';\n x = current[1];\n y = current[2];\n current[1] = controlX;\n current[2] = controlY;\n current[3] = x;\n current[4] = y;\n break;\n case 'a':\n current[0] = 'A';\n current[6] += x;\n current[7] += y;\n // falls through\n case 'A':\n converted = true;\n destinationPath = destinationPath.concat(fromArcToBeizers(x, y, current));\n x = current[6];\n y = current[7];\n break;\n case 'z':\n case 'Z':\n x = x1;\n y = y1;\n break;\n default:\n }\n if (!converted) {\n destinationPath.push(current);\n }\n previous = current[0];\n }\n return destinationPath;\n };\n\n /**\n * Calc length from point x1,y1 to x2,y2\n * @param {Number} x1 starting point x\n * @param {Number} y1 starting point y\n * @param {Number} x2 starting point x\n * @param {Number} y2 starting point y\n * @return {Number} length of segment\n */\n function calcLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n // functions for the Cubic beizer\n // taken from: https://github.com/konvajs/konva/blob/7.0.5/src/shapes/Path.ts#L350\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n\n function getPointOnCubicBezierIterator(p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n return function(pct) {\n var c1 = CB1(pct), c2 = CB2(pct), c3 = CB3(pct), c4 = CB4(pct);\n return {\n x: p4x * c1 + p3x * c2 + p2x * c3 + p1x * c4,\n y: p4y * c1 + p3y * c2 + p2y * c3 + p1y * c4\n };\n };\n }\n\n function QB1(t) {\n return t * t;\n }\n\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n\n function getPointOnQuadraticBezierIterator(p1x, p1y, p2x, p2y, p3x, p3y) {\n return function(pct) {\n var c1 = QB1(pct), c2 = QB2(pct), c3 = QB3(pct);\n return {\n x: p3x * c1 + p2x * c2 + p1x * c3,\n y: p3y * c1 + p2y * c2 + p1y * c3\n };\n };\n }\n\n function pathIterator(iterator, x1, y1) {\n var tempP = { x: x1, y: y1 }, p, tmpLen = 0, perc;\n for (perc = 0.01; perc <= 1; perc += 0.01) {\n p = iterator(perc);\n tmpLen += calcLineLength(tempP.x, tempP.y, p.x, p.y);\n tempP = p;\n }\n return tmpLen;\n }\n\n //measures the length of a pre-simplified path\n function getPathSegmentsInfo(path) {\n var totalLength = 0, len = path.length, current,\n //x2 and y2 are the coords of segment start\n //x1 and y1 are the coords of the current point\n x1 = 0, y1 = 0, x2 = 0, y2 = 0, info = [], iterator, tempInfo;\n for (var i = 0; i < len; i++) {\n current = path[i];\n tempInfo = {\n x: x1,\n y: y1,\n command: current[0],\n };\n switch (current[0]) { //first letter\n case 'M':\n tempInfo.length = 0;\n x2 = x1 = current[1];\n y2 = y1 = current[2];\n break;\n case 'L':\n tempInfo.length = calcLineLength(x1, y1, current[1], current[2]);\n x1 = current[1];\n y1 = current[2];\n break;\n case 'C':\n iterator = getPointOnCubicBezierIterator(\n x1,\n y1,\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6]\n );\n tempInfo.length = pathIterator(iterator, x1, y1);\n x1 = current[5];\n y1 = current[6];\n break;\n case 'Q':\n iterator = getPointOnQuadraticBezierIterator(\n x1,\n y1,\n current[1],\n current[2],\n current[3],\n current[4]\n );\n tempInfo.length = pathIterator(iterator, x1, y1);\n x1 = current[3];\n y1 = current[4];\n break;\n case 'Z':\n case 'z':\n // we add those in order to ease calculations later\n tempInfo.destX = x2;\n tempInfo.destY = y2;\n tempInfo.length = calcLineLength(x1, y1, x2, y2);\n x1 = x2;\n y1 = y2;\n break;\n }\n totalLength += tempInfo.length;\n info.push(tempInfo);\n }\n info.push({ length: totalLength, x: x1, y: y1 });\n return info;\n }\n\n function getPointOnPath(path, perc, infos) {\n if (!infos) {\n infos = getPathSegmentsInfo(path);\n }\n var distance = infos[infos.length - 1] * perc, i = 0;\n while ((distance - infos[i] > 0) && i < infos.length) {\n distance -= infos[i];\n i++;\n }\n var segInfo = infos[i], segPercent = distance / segInfo.length,\n command = segInfo.length, segment = path[i];\n switch (command) {\n case 'Z':\n case 'z':\n return new fabric.Point(segInfo.x, segInfo.y).lerp(\n new fabric.Point(segInfo.destX, segInfo.destY),\n segPercent\n );\n break;\n case 'L':\n return new fabric.Point(segInfo.x, segInfo.y).lerp(\n new fabric.Point(segment[1], segment[2]),\n segPercent\n );\n break;\n case 'C':\n return getPointOnCubicBezierIterator(\n segInfo.x,\n segInfo.y,\n segment[1],\n segment[2],\n segment[3],\n segment[4],\n segment[5],\n segment[6]\n )(segPercent);\n break;\n case 'Q':\n return getPointOnQuadraticBezierIterator(\n segInfo.x,\n segInfo.y,\n segment[1],\n segment[2],\n segment[3],\n segment[4]\n )(segPercent);\n break;\n }\n }\n\n function parsePath(pathString) {\n var result = [],\n coords = [],\n currentPath,\n parsed,\n re = fabric.rePathCommand,\n rNumber = '[-+]?(?:\\\\d*\\\\.\\\\d+|\\\\d+\\\\.?)(?:[eE][-+]?\\\\d+)?\\\\s*',\n rNumberCommaWsp = '(' + rNumber + ')' + fabric.commaWsp,\n rFlagCommaWsp = '([01])' + fabric.commaWsp + '?',\n rArcSeq = rNumberCommaWsp + '?' + rNumberCommaWsp + '?' + rNumberCommaWsp + rFlagCommaWsp + rFlagCommaWsp +\n rNumberCommaWsp + '?(' + rNumber + ')',\n regArcArgumentSequence = new RegExp(rArcSeq, 'g'),\n match,\n coordsStr,\n // one of commands (m,M,l,L,q,Q,c,C,etc.) followed by non-command characters (i.e. command values)\n path;\n if (!pathString || !pathString.match) {\n return result;\n }\n path = pathString.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi);\n\n for (var i = 0, coordsParsed, len = path.length; i < len; i++) {\n currentPath = path[i];\n\n coordsStr = currentPath.slice(1).trim();\n coords.length = 0;\n\n var command = currentPath.charAt(0);\n coordsParsed = [command];\n\n if (command.toLowerCase() === 'a') {\n // arcs have special flags that apparently don't require spaces so handle special\n for (var args; (args = regArcArgumentSequence.exec(coordsStr));) {\n for (var j = 1; j < args.length; j++) {\n coords.push(args[j]);\n }\n }\n }\n else {\n while ((match = re.exec(coordsStr))) {\n coords.push(match[0]);\n }\n }\n\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n coordsParsed.push(parsed);\n }\n }\n\n var commandLength = commandLengths[command.toLowerCase()],\n repeatedCommand = repeatedCommands[command] || command;\n\n if (coordsParsed.length - 1 > commandLength) {\n for (var k = 1, klen = coordsParsed.length; k < klen; k += commandLength) {\n result.push([command].concat(coordsParsed.slice(k, k + commandLength)));\n command = repeatedCommand;\n }\n }\n else {\n result.push(coordsParsed);\n }\n }\n\n return result;\n };\n\n /**\n * Calculate bounding box of a elliptic-arc\n * @deprecated\n * @param {Number} fx start point of arc\n * @param {Number} fy\n * @param {Number} rx horizontal radius\n * @param {Number} ry vertical radius\n * @param {Number} rot angle of horizontal axis\n * @param {Number} large 1 or 0, whatever the arc is the big or the small on the 2 points\n * @param {Number} sweep 1 or 0, 1 clockwise or counterclockwise direction\n * @param {Number} tx end point of arc\n * @param {Number} ty\n */\n function getBoundsOfArc(fx, fy, rx, ry, rot, large, sweep, tx, ty) {\n\n var fromX = 0, fromY = 0, bound, bounds = [],\n segs = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot);\n\n for (var i = 0, len = segs.length; i < len; i++) {\n bound = getBoundsOfCurve(fromX, fromY, segs[i][1], segs[i][2], segs[i][3], segs[i][4], segs[i][5], segs[i][6]);\n bounds.push({ x: bound[0].x + fx, y: bound[0].y + fy });\n bounds.push({ x: bound[1].x + fx, y: bound[1].y + fy });\n fromX = segs[i][5];\n fromY = segs[i][6];\n }\n return bounds;\n };\n\n /**\n * Draws arc\n * @param {CanvasRenderingContext2D} ctx\n * @param {Number} fx\n * @param {Number} fy\n * @param {Array} coords coords of the arc, without the front 'A/a'\n */\n function drawArc(ctx, fx, fy, coords) {\n coords = coords.slice(0).unshift('X'); // command A or a does not matter\n var beizers = fromArcToBeizers(fx, fy, coords);\n beizers.forEach(function(beizer) {\n ctx.bezierCurveTo.apply(ctx, beizer.slice(1));\n });\n };\n\n fabric.util.parsePath = parsePath;\n fabric.util.makePathSimpler = makePathSimpler;\n fabric.util.getPathSegmentsInfo = getPathSegmentsInfo;\n fabric.util.fromArcToBeizers = fromArcToBeizers;\n fabric.util.getBoundsOfCurve = getBoundsOfCurve;\n fabric.util.getPointOnPath = getPointOnPath;\n // kept because we do not want to make breaking changes.\n // but useless and deprecated.\n fabric.util.getBoundsOfArc = getBoundsOfArc;\n fabric.util.drawArc = drawArc;\n})();\n\n\n(function() {\n\n var slice = Array.prototype.slice;\n\n /**\n * Invokes method on all items in a given array\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} method Name of a method to invoke\n * @return {Array}\n */\n function invoke(array, method) {\n var args = slice.call(arguments, 2), result = [];\n for (var i = 0, len = array.length; i < len; i++) {\n result[i] = args.length ? array[i][method].apply(array[i], args) : array[i][method].call(array[i]);\n }\n return result;\n }\n\n /**\n * Finds maximum value in array (not necessarily \"first\" one)\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} byProperty\n * @return {*}\n */\n function max(array, byProperty) {\n return find(array, byProperty, function(value1, value2) {\n return value1 >= value2;\n });\n }\n\n /**\n * Finds minimum value in array (not necessarily \"first\" one)\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} byProperty\n * @return {*}\n */\n function min(array, byProperty) {\n return find(array, byProperty, function(value1, value2) {\n return value1 < value2;\n });\n }\n\n /**\n * @private\n */\n function fill(array, value) {\n var k = array.length;\n while (k--) {\n array[k] = value;\n }\n return array;\n }\n\n /**\n * @private\n */\n function find(array, byProperty, condition) {\n if (!array || array.length === 0) {\n return;\n }\n\n var i = array.length - 1,\n result = byProperty ? array[i][byProperty] : array[i];\n if (byProperty) {\n while (i--) {\n if (condition(array[i][byProperty], result)) {\n result = array[i][byProperty];\n }\n }\n }\n else {\n while (i--) {\n if (condition(array[i], result)) {\n result = array[i];\n }\n }\n }\n return result;\n }\n\n /**\n * @namespace fabric.util.array\n */\n fabric.util.array = {\n fill: fill,\n invoke: invoke,\n min: min,\n max: max\n };\n\n})();\n\n\n(function() {\n /**\n * Copies all enumerable properties of one js object to another\n * this does not and cannot compete with generic utils.\n * Does not clone or extend fabric.Object subclasses.\n * This is mostly for internal use and has extra handling for fabricJS objects\n * it skips the canvas and group properties in deep cloning.\n * @memberOf fabric.util.object\n * @param {Object} destination Where to copy to\n * @param {Object} source Where to copy from\n * @return {Object}\n */\n\n function extend(destination, source, deep) {\n // JScript DontEnum bug is not taken care of\n // the deep clone is for internal use, is not meant to avoid\n // javascript traps or cloning html element or self referenced objects.\n if (deep) {\n if (!fabric.isLikelyNode && source instanceof Element) {\n // avoid cloning deep images, canvases,\n destination = source;\n }\n else if (source instanceof Array) {\n destination = [];\n for (var i = 0, len = source.length; i < len; i++) {\n destination[i] = extend({ }, source[i], deep);\n }\n }\n else if (source && typeof source === 'object') {\n for (var property in source) {\n if (property === 'canvas' || property === 'group') {\n // we do not want to clone this props at all.\n // we want to keep the keys in the copy\n destination[property] = null;\n }\n else if (source.hasOwnProperty(property)) {\n destination[property] = extend({ }, source[property], deep);\n }\n }\n }\n else {\n // this sounds odd for an extend but is ok for recursive use\n destination = source;\n }\n }\n else {\n for (var property in source) {\n destination[property] = source[property];\n }\n }\n return destination;\n }\n\n /**\n * Creates an empty object and copies all enumerable properties of another object to it\n * @memberOf fabric.util.object\n * TODO: this function return an empty object if you try to clone null\n * @param {Object} object Object to clone\n * @return {Object}\n */\n function clone(object, deep) {\n return extend({ }, object, deep);\n }\n\n /** @namespace fabric.util.object */\n fabric.util.object = {\n extend: extend,\n clone: clone\n };\n fabric.util.object.extend(fabric.util, fabric.Observable);\n})();\n\n\n(function() {\n\n /**\n * Camelizes a string\n * @memberOf fabric.util.string\n * @param {String} string String to camelize\n * @return {String} Camelized version of a string\n */\n function camelize(string) {\n return string.replace(/-+(.)?/g, function(match, character) {\n return character ? character.toUpperCase() : '';\n });\n }\n\n /**\n * Capitalizes a string\n * @memberOf fabric.util.string\n * @param {String} string String to capitalize\n * @param {Boolean} [firstLetterOnly] If true only first letter is capitalized\n * and other letters stay untouched, if false first letter is capitalized\n * and other letters are converted to lowercase.\n * @return {String} Capitalized version of a string\n */\n function capitalize(string, firstLetterOnly) {\n return string.charAt(0).toUpperCase() +\n (firstLetterOnly ? string.slice(1) : string.slice(1).toLowerCase());\n }\n\n /**\n * Escapes XML in a string\n * @memberOf fabric.util.string\n * @param {String} string String to escape\n * @return {String} Escaped version of a string\n */\n function escapeXml(string) {\n return string.replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n /**\n * Divide a string in the user perceived single units\n * @memberOf fabric.util.string\n * @param {String} textstring String to escape\n * @return {Array} array containing the graphemes\n */\n function graphemeSplit(textstring) {\n var i = 0, chr, graphemes = [];\n for (i = 0, chr; i < textstring.length; i++) {\n if ((chr = getWholeChar(textstring, i)) === false) {\n continue;\n }\n graphemes.push(chr);\n }\n return graphemes;\n }\n\n // taken from mdn in the charAt doc page.\n function getWholeChar(str, i) {\n var code = str.charCodeAt(i);\n\n if (isNaN(code)) {\n return ''; // Position not found\n }\n if (code < 0xD800 || code > 0xDFFF) {\n return str.charAt(i);\n }\n\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xD800 <= code && code <= 0xDBFF) {\n if (str.length <= (i + 1)) {\n throw 'High surrogate without following low surrogate';\n }\n var next = str.charCodeAt(i + 1);\n if (0xDC00 > next || next > 0xDFFF) {\n throw 'High surrogate without following low surrogate';\n }\n return str.charAt(i) + str.charAt(i + 1);\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw 'Low surrogate without preceding high surrogate';\n }\n var prev = str.charCodeAt(i - 1);\n\n // (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xD800 > prev || prev > 0xDBFF) {\n throw 'Low surrogate without preceding high surrogate';\n }\n // We can pass over low surrogates now as the second component\n // in a pair which we have already processed\n return false;\n }\n\n\n /**\n * String utilities\n * @namespace fabric.util.string\n */\n fabric.util.string = {\n camelize: camelize,\n capitalize: capitalize,\n escapeXml: escapeXml,\n graphemeSplit: graphemeSplit\n };\n})();\n\n\n(function() {\n\n var slice = Array.prototype.slice, emptyFunction = function() { },\n\n IS_DONTENUM_BUGGY = (function() {\n for (var p in { toString: 1 }) {\n if (p === 'toString') {\n return false;\n }\n }\n return true;\n })(),\n\n /** @ignore */\n addMethods = function(klass, source, parent) {\n for (var property in source) {\n\n if (property in klass.prototype &&\n typeof klass.prototype[property] === 'function' &&\n (source[property] + '').indexOf('callSuper') > -1) {\n\n klass.prototype[property] = (function(property) {\n return function() {\n\n var superclass = this.constructor.superclass;\n this.constructor.superclass = parent;\n var returnValue = source[property].apply(this, arguments);\n this.constructor.superclass = superclass;\n\n if (property !== 'initialize') {\n return returnValue;\n }\n };\n })(property);\n }\n else {\n klass.prototype[property] = source[property];\n }\n\n if (IS_DONTENUM_BUGGY) {\n if (source.toString !== Object.prototype.toString) {\n klass.prototype.toString = source.toString;\n }\n if (source.valueOf !== Object.prototype.valueOf) {\n klass.prototype.valueOf = source.valueOf;\n }\n }\n }\n };\n\n function Subclass() { }\n\n function callSuper(methodName) {\n var parentMethod = null,\n _this = this;\n\n // climb prototype chain to find method not equal to callee's method\n while (_this.constructor.superclass) {\n var superClassMethod = _this.constructor.superclass.prototype[methodName];\n if (_this[methodName] !== superClassMethod) {\n parentMethod = superClassMethod;\n break;\n }\n // eslint-disable-next-line\n _this = _this.constructor.superclass.prototype;\n }\n\n if (!parentMethod) {\n return console.log('tried to callSuper ' + methodName + ', method not found in prototype chain', this);\n }\n\n return (arguments.length > 1)\n ? parentMethod.apply(this, slice.call(arguments, 1))\n : parentMethod.call(this);\n }\n\n /**\n * Helper for creation of \"classes\".\n * @memberOf fabric.util\n * @param {Function} [parent] optional \"Class\" to inherit from\n * @param {Object} [properties] Properties shared by all instances of this class\n * (be careful modifying objects defined here as this would affect all instances)\n */\n function createClass() {\n var parent = null,\n properties = slice.call(arguments, 0);\n\n if (typeof properties[0] === 'function') {\n parent = properties.shift();\n }\n function klass() {\n this.initialize.apply(this, arguments);\n }\n\n klass.superclass = parent;\n klass.subclasses = [];\n\n if (parent) {\n Subclass.prototype = parent.prototype;\n klass.prototype = new Subclass();\n parent.subclasses.push(klass);\n }\n for (var i = 0, length = properties.length; i < length; i++) {\n addMethods(klass, properties[i], parent);\n }\n if (!klass.prototype.initialize) {\n klass.prototype.initialize = emptyFunction;\n }\n klass.prototype.constructor = klass;\n klass.prototype.callSuper = callSuper;\n return klass;\n }\n\n fabric.util.createClass = createClass;\n})();\n\n\n(function () {\n // since ie11 can use addEventListener but they do not support options, i need to check\n var couldUseAttachEvent = !!fabric.document.createElement('div').attachEvent,\n touchEvents = ['touchstart', 'touchmove', 'touchend'];\n /**\n * Adds an event listener to an element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Function} handler\n */\n fabric.util.addListener = function(element, eventName, handler, options) {\n element && element.addEventListener(eventName, handler, couldUseAttachEvent ? false : options);\n };\n\n /**\n * Removes an event listener from an element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Function} handler\n */\n fabric.util.removeListener = function(element, eventName, handler, options) {\n element && element.removeEventListener(eventName, handler, couldUseAttachEvent ? false : options);\n };\n\n function getTouchInfo(event) {\n var touchProp = event.changedTouches;\n if (touchProp && touchProp[0]) {\n return touchProp[0];\n }\n return event;\n }\n\n fabric.util.getPointer = function(event) {\n var element = event.target,\n scroll = fabric.util.getScrollLeftTop(element),\n _evt = getTouchInfo(event);\n return {\n x: _evt.clientX + scroll.left,\n y: _evt.clientY + scroll.top\n };\n };\n\n fabric.util.isTouchEvent = function(event) {\n return touchEvents.indexOf(event.type) > -1 || event.pointerType === 'touch';\n };\n})();\n\n\n(function () {\n\n /**\n * Cross-browser wrapper for setting element's style\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {Object} styles\n * @return {HTMLElement} Element that was passed as a first argument\n */\n function setStyle(element, styles) {\n var elementStyle = element.style;\n if (!elementStyle) {\n return element;\n }\n if (typeof styles === 'string') {\n element.style.cssText += ';' + styles;\n return styles.indexOf('opacity') > -1\n ? setOpacity(element, styles.match(/opacity:\\s*(\\d?\\.?\\d*)/)[1])\n : element;\n }\n for (var property in styles) {\n if (property === 'opacity') {\n setOpacity(element, styles[property]);\n }\n else {\n var normalizedProperty = (property === 'float' || property === 'cssFloat')\n ? (typeof elementStyle.styleFloat === 'undefined' ? 'cssFloat' : 'styleFloat')\n : property;\n elementStyle[normalizedProperty] = styles[property];\n }\n }\n return element;\n }\n\n var parseEl = fabric.document.createElement('div'),\n supportsOpacity = typeof parseEl.style.opacity === 'string',\n supportsFilters = typeof parseEl.style.filter === 'string',\n reOpacity = /alpha\\s*\\(\\s*opacity\\s*=\\s*([^\\)]+)\\)/,\n\n /** @ignore */\n setOpacity = function (element) { return element; };\n\n if (supportsOpacity) {\n /** @ignore */\n setOpacity = function(element, value) {\n element.style.opacity = value;\n return element;\n };\n }\n else if (supportsFilters) {\n /** @ignore */\n setOpacity = function(element, value) {\n var es = element.style;\n if (element.currentStyle && !element.currentStyle.hasLayout) {\n es.zoom = 1;\n }\n if (reOpacity.test(es.filter)) {\n value = value >= 0.9999 ? '' : ('alpha(opacity=' + (value * 100) + ')');\n es.filter = es.filter.replace(reOpacity, value);\n }\n else {\n es.filter += ' alpha(opacity=' + (value * 100) + ')';\n }\n return element;\n };\n }\n\n fabric.util.setStyle = setStyle;\n\n})();\n\n\n(function() {\n\n var _slice = Array.prototype.slice;\n\n /**\n * Takes id and returns an element with that id (if one exists in a document)\n * @memberOf fabric.util\n * @param {String|HTMLElement} id\n * @return {HTMLElement|null}\n */\n function getById(id) {\n return typeof id === 'string' ? fabric.document.getElementById(id) : id;\n }\n\n var sliceCanConvertNodelists,\n /**\n * Converts an array-like object (e.g. arguments or NodeList) to an array\n * @memberOf fabric.util\n * @param {Object} arrayLike\n * @return {Array}\n */\n toArray = function(arrayLike) {\n return _slice.call(arrayLike, 0);\n };\n\n try {\n sliceCanConvertNodelists = toArray(fabric.document.childNodes) instanceof Array;\n }\n catch (err) { }\n\n if (!sliceCanConvertNodelists) {\n toArray = function(arrayLike) {\n var arr = new Array(arrayLike.length), i = arrayLike.length;\n while (i--) {\n arr[i] = arrayLike[i];\n }\n return arr;\n };\n }\n\n /**\n * Creates specified element with specified attributes\n * @memberOf fabric.util\n * @param {String} tagName Type of an element to create\n * @param {Object} [attributes] Attributes to set on an element\n * @return {HTMLElement} Newly created element\n */\n function makeElement(tagName, attributes) {\n var el = fabric.document.createElement(tagName);\n for (var prop in attributes) {\n if (prop === 'class') {\n el.className = attributes[prop];\n }\n else if (prop === 'for') {\n el.htmlFor = attributes[prop];\n }\n else {\n el.setAttribute(prop, attributes[prop]);\n }\n }\n return el;\n }\n\n /**\n * Adds class to an element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to add class to\n * @param {String} className Class to add to an element\n */\n function addClass(element, className) {\n if (element && (' ' + element.className + ' ').indexOf(' ' + className + ' ') === -1) {\n element.className += (element.className ? ' ' : '') + className;\n }\n }\n\n /**\n * Wraps element with another element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to wrap\n * @param {HTMLElement|String} wrapper Element to wrap with\n * @param {Object} [attributes] Attributes to set on a wrapper\n * @return {HTMLElement} wrapper\n */\n function wrapElement(element, wrapper, attributes) {\n if (typeof wrapper === 'string') {\n wrapper = makeElement(wrapper, attributes);\n }\n if (element.parentNode) {\n element.parentNode.replaceChild(wrapper, element);\n }\n wrapper.appendChild(element);\n return wrapper;\n }\n\n /**\n * Returns element scroll offsets\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to operate on\n * @return {Object} Object with left/top values\n */\n function getScrollLeftTop(element) {\n\n var left = 0,\n top = 0,\n docElement = fabric.document.documentElement,\n body = fabric.document.body || {\n scrollLeft: 0, scrollTop: 0\n };\n\n // While loop checks (and then sets element to) .parentNode OR .host\n // to account for ShadowDOM. We still want to traverse up out of ShadowDOM,\n // but the .parentNode of a root ShadowDOM node will always be null, instead\n // it should be accessed through .host. See http://stackoverflow.com/a/24765528/4383938\n while (element && (element.parentNode || element.host)) {\n\n // Set element to element parent, or 'host' in case of ShadowDOM\n element = element.parentNode || element.host;\n\n if (element === fabric.document) {\n left = body.scrollLeft || docElement.scrollLeft || 0;\n top = body.scrollTop || docElement.scrollTop || 0;\n }\n else {\n left += element.scrollLeft || 0;\n top += element.scrollTop || 0;\n }\n\n if (element.nodeType === 1 && element.style.position === 'fixed') {\n break;\n }\n }\n\n return { left: left, top: top };\n }\n\n /**\n * Returns offset for a given element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to get offset for\n * @return {Object} Object with \"left\" and \"top\" properties\n */\n function getElementOffset(element) {\n var docElem,\n doc = element && element.ownerDocument,\n box = { left: 0, top: 0 },\n offset = { left: 0, top: 0 },\n scrollLeftTop,\n offsetAttributes = {\n borderLeftWidth: 'left',\n borderTopWidth: 'top',\n paddingLeft: 'left',\n paddingTop: 'top'\n };\n\n if (!doc) {\n return offset;\n }\n\n for (var attr in offsetAttributes) {\n offset[offsetAttributes[attr]] += parseInt(getElementStyle(element, attr), 10) || 0;\n }\n\n docElem = doc.documentElement;\n if ( typeof element.getBoundingClientRect !== 'undefined' ) {\n box = element.getBoundingClientRect();\n }\n\n scrollLeftTop = getScrollLeftTop(element);\n\n return {\n left: box.left + scrollLeftTop.left - (docElem.clientLeft || 0) + offset.left,\n top: box.top + scrollLeftTop.top - (docElem.clientTop || 0) + offset.top\n };\n }\n\n /**\n * Returns style attribute value of a given element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to get style attribute for\n * @param {String} attr Style attribute to get for element\n * @return {String} Style attribute value of the given element.\n */\n var getElementStyle;\n if (fabric.document.defaultView && fabric.document.defaultView.getComputedStyle) {\n getElementStyle = function(element, attr) {\n var style = fabric.document.defaultView.getComputedStyle(element, null);\n return style ? style[attr] : undefined;\n };\n }\n else {\n getElementStyle = function(element, attr) {\n var value = element.style[attr];\n if (!value && element.currentStyle) {\n value = element.currentStyle[attr];\n }\n return value;\n };\n }\n\n (function () {\n var style = fabric.document.documentElement.style,\n selectProp = 'userSelect' in style\n ? 'userSelect'\n : 'MozUserSelect' in style\n ? 'MozUserSelect'\n : 'WebkitUserSelect' in style\n ? 'WebkitUserSelect'\n : 'KhtmlUserSelect' in style\n ? 'KhtmlUserSelect'\n : '';\n\n /**\n * Makes element unselectable\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to make unselectable\n * @return {HTMLElement} Element that was passed in\n */\n function makeElementUnselectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = fabric.util.falseFunction;\n }\n if (selectProp) {\n element.style[selectProp] = 'none';\n }\n else if (typeof element.unselectable === 'string') {\n element.unselectable = 'on';\n }\n return element;\n }\n\n /**\n * Makes element selectable\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to make selectable\n * @return {HTMLElement} Element that was passed in\n */\n function makeElementSelectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = null;\n }\n if (selectProp) {\n element.style[selectProp] = '';\n }\n else if (typeof element.unselectable === 'string') {\n element.unselectable = '';\n }\n return element;\n }\n\n fabric.util.makeElementUnselectable = makeElementUnselectable;\n fabric.util.makeElementSelectable = makeElementSelectable;\n })();\n\n function getNodeCanvas(element) {\n var impl = fabric.jsdomImplForWrapper(element);\n return impl._canvas || impl._image;\n };\n\n function cleanUpJsdomNode(element) {\n if (!fabric.isLikelyNode) {\n return;\n }\n var impl = fabric.jsdomImplForWrapper(element);\n if (impl) {\n impl._image = null;\n impl._canvas = null;\n // unsure if necessary\n impl._currentSrc = null;\n impl._attributes = null;\n impl._classList = null;\n }\n }\n\n function setImageSmoothing(ctx, value) {\n ctx.imageSmoothingEnabled = ctx.imageSmoothingEnabled || ctx.webkitImageSmoothingEnabled\n || ctx.mozImageSmoothingEnabled || ctx.msImageSmoothingEnabled || ctx.oImageSmoothingEnabled;\n ctx.imageSmoothingEnabled = value;\n }\n\n /**\n * setImageSmoothing sets the context imageSmoothingEnabled property.\n * Used by canvas and by ImageObject.\n * @memberOf fabric.util\n * @since 4.0.0\n * @param {HTMLRenderingContext2D} ctx to set on\n * @param {Boolean} value true or false\n */\n fabric.util.setImageSmoothing = setImageSmoothing;\n fabric.util.getById = getById;\n fabric.util.toArray = toArray;\n fabric.util.addClass = addClass;\n fabric.util.makeElement = makeElement;\n fabric.util.wrapElement = wrapElement;\n fabric.util.getScrollLeftTop = getScrollLeftTop;\n fabric.util.getElementOffset = getElementOffset;\n fabric.util.getNodeCanvas = getNodeCanvas;\n fabric.util.cleanUpJsdomNode = cleanUpJsdomNode;\n\n})();\n\n\n(function() {\n\n function addParamToUrl(url, param) {\n return url + (/\\?/.test(url) ? '&' : '?') + param;\n }\n\n function emptyFn() { }\n\n /**\n * Cross-browser abstraction for sending XMLHttpRequest\n * @memberOf fabric.util\n * @param {String} url URL to send XMLHttpRequest to\n * @param {Object} [options] Options object\n * @param {String} [options.method=\"GET\"]\n * @param {String} [options.parameters] parameters to append to url in GET or in body\n * @param {String} [options.body] body to send with POST or PUT request\n * @param {Function} options.onComplete Callback to invoke when request is completed\n * @return {XMLHttpRequest} request\n */\n function request(url, options) {\n options || (options = { });\n\n var method = options.method ? options.method.toUpperCase() : 'GET',\n onComplete = options.onComplete || function() { },\n xhr = new fabric.window.XMLHttpRequest(),\n body = options.body || options.parameters;\n\n /** @ignore */\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n onComplete(xhr);\n xhr.onreadystatechange = emptyFn;\n }\n };\n\n if (method === 'GET') {\n body = null;\n if (typeof options.parameters === 'string') {\n url = addParamToUrl(url, options.parameters);\n }\n }\n\n xhr.open(method, url, true);\n\n if (method === 'POST' || method === 'PUT') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n xhr.send(body);\n return xhr;\n }\n\n fabric.util.request = request;\n})();\n\n\n/**\n * Wrapper around `console.log` (when available)\n * @param {*} [values] Values to log\n */\nfabric.log = console.log;\n\n/**\n * Wrapper around `console.warn` (when available)\n * @param {*} [values] Values to log as a warning\n */\nfabric.warn = console.warn;\n\n\n(function() {\n\n function noop() {\n return false;\n }\n\n function defaultEasing(t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n }\n\n /**\n * Changes value from one to another within certain period of time, invoking callbacks as value is being changed.\n * @memberOf fabric.util\n * @param {Object} [options] Animation options\n * @param {Function} [options.onChange] Callback; invoked on every value change\n * @param {Function} [options.onComplete] Callback; invoked when value change is completed\n * @param {Number} [options.startValue=0] Starting value\n * @param {Number} [options.endValue=100] Ending value\n * @param {Number} [options.byValue=100] Value to modify the property by\n * @param {Function} [options.easing] Easing function\n * @param {Number} [options.duration=500] Duration of change (in ms)\n * @param {Function} [options.abort] Additional function with logic. If returns true, onComplete is called.\n */\n function animate(options) {\n\n requestAnimFrame(function(timestamp) {\n options || (options = { });\n\n var start = timestamp || +new Date(),\n duration = options.duration || 500,\n finish = start + duration, time,\n onChange = options.onChange || noop,\n abort = options.abort || noop,\n onComplete = options.onComplete || noop,\n easing = options.easing || defaultEasing,\n startValue = 'startValue' in options ? options.startValue : 0,\n endValue = 'endValue' in options ? options.endValue : 100,\n byValue = options.byValue || endValue - startValue;\n\n options.onStart && options.onStart();\n\n (function tick(ticktime) {\n // TODO: move abort call after calculation\n // and pass (current,valuePerc, timePerc) as arguments\n time = ticktime || +new Date();\n var currentTime = time > finish ? duration : (time - start),\n timePerc = currentTime / duration,\n current = easing(currentTime, startValue, byValue, duration),\n valuePerc = Math.abs((current - startValue) / byValue);\n if (abort()) {\n onComplete(endValue, 1, 1);\n return;\n }\n if (time > finish) {\n onChange(endValue, 1, 1);\n onComplete(endValue, 1, 1);\n return;\n }\n else {\n onChange(current, valuePerc, timePerc);\n requestAnimFrame(tick);\n }\n })(start);\n });\n }\n\n var _requestAnimFrame = fabric.window.requestAnimationFrame ||\n fabric.window.webkitRequestAnimationFrame ||\n fabric.window.mozRequestAnimationFrame ||\n fabric.window.oRequestAnimationFrame ||\n fabric.window.msRequestAnimationFrame ||\n function(callback) {\n return fabric.window.setTimeout(callback, 1000 / 60);\n };\n\n var _cancelAnimFrame = fabric.window.cancelAnimationFrame || fabric.window.clearTimeout;\n\n /**\n * requestAnimationFrame polyfill based on http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n * In order to get a precise start time, `requestAnimFrame` should be called as an entry into the method\n * @memberOf fabric.util\n * @param {Function} callback Callback to invoke\n * @param {DOMElement} element optional Element to associate with animation\n */\n function requestAnimFrame() {\n return _requestAnimFrame.apply(fabric.window, arguments);\n }\n\n function cancelAnimFrame() {\n return _cancelAnimFrame.apply(fabric.window, arguments);\n }\n\n fabric.util.animate = animate;\n fabric.util.requestAnimFrame = requestAnimFrame;\n fabric.util.cancelAnimFrame = cancelAnimFrame;\n})();\n\n\n(function() {\n // Calculate an in-between color. Returns a \"rgba()\" string.\n // Credit: Edwin Martin \n // http://www.bitstorm.org/jquery/color-animation/jquery.animate-colors.js\n function calculateColor(begin, end, pos) {\n var color = 'rgba('\n + parseInt((begin[0] + pos * (end[0] - begin[0])), 10) + ','\n + parseInt((begin[1] + pos * (end[1] - begin[1])), 10) + ','\n + parseInt((begin[2] + pos * (end[2] - begin[2])), 10);\n\n color += ',' + (begin && end ? parseFloat(begin[3] + pos * (end[3] - begin[3])) : 1);\n color += ')';\n return color;\n }\n\n /**\n * Changes the color from one to another within certain period of time, invoking callbacks as value is being changed.\n * @memberOf fabric.util\n * @param {String} fromColor The starting color in hex or rgb(a) format.\n * @param {String} toColor The starting color in hex or rgb(a) format.\n * @param {Number} [duration] Duration of change (in ms).\n * @param {Object} [options] Animation options\n * @param {Function} [options.onChange] Callback; invoked on every value change\n * @param {Function} [options.onComplete] Callback; invoked when value change is completed\n * @param {Function} [options.colorEasing] Easing function. Note that this function only take two arguments (currentTime, duration). Thus the regular animation easing functions cannot be used.\n * @param {Function} [options.abort] Additional function with logic. If returns true, onComplete is called.\n */\n function animateColor(fromColor, toColor, duration, options) {\n var startColor = new fabric.Color(fromColor).getSource(),\n endColor = new fabric.Color(toColor).getSource(),\n originalOnComplete = options.onComplete,\n originalOnChange = options.onChange;\n options = options || {};\n\n fabric.util.animate(fabric.util.object.extend(options, {\n duration: duration || 500,\n startValue: startColor,\n endValue: endColor,\n byValue: endColor,\n easing: function (currentTime, startValue, byValue, duration) {\n var posValue = options.colorEasing\n ? options.colorEasing(currentTime, duration)\n : 1 - Math.cos(currentTime / duration * (Math.PI / 2));\n return calculateColor(startValue, byValue, posValue);\n },\n // has to take in account for color restoring;\n onComplete: function(current, valuePerc, timePerc) {\n if (originalOnComplete) {\n return originalOnComplete(\n calculateColor(endColor, endColor, 0),\n valuePerc,\n timePerc\n );\n }\n },\n onChange: function(current, valuePerc, timePerc) {\n if (originalOnChange) {\n if (Array.isArray(current)) {\n return originalOnChange(\n calculateColor(current, current, 0),\n valuePerc,\n timePerc\n );\n }\n originalOnChange(current, valuePerc, timePerc);\n }\n }\n }));\n }\n\n fabric.util.animateColor = animateColor;\n\n})();\n\n\n(function() {\n\n function normalize(a, c, p, s) {\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n //handle the 0/0 case:\n if (c === 0 && a === 0) {\n s = p / (2 * Math.PI) * Math.asin(1);\n }\n else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n }\n return { a: a, c: c, p: p, s: s };\n }\n\n function elastic(opts, t, d) {\n return opts.a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin( (t * d - opts.s) * (2 * Math.PI) / opts.p );\n }\n\n /**\n * Cubic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n }\n\n /**\n * Cubic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutCubic(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t + b;\n }\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n\n /**\n * Quartic easing in\n * @memberOf fabric.util.ease\n */\n function easeInQuart(t, b, c, d) {\n return c * (t /= d) * t * t * t + b;\n }\n\n /**\n * Quartic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutQuart(t, b, c, d) {\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n }\n\n /**\n * Quartic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutQuart(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t * t + b;\n }\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n\n /**\n * Quintic easing in\n * @memberOf fabric.util.ease\n */\n function easeInQuint(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n }\n\n /**\n * Quintic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutQuint(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n }\n\n /**\n * Quintic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutQuint(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t * t * t + b;\n }\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n\n /**\n * Sinusoidal easing in\n * @memberOf fabric.util.ease\n */\n function easeInSine(t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n }\n\n /**\n * Sinusoidal easing out\n * @memberOf fabric.util.ease\n */\n function easeOutSine(t, b, c, d) {\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n }\n\n /**\n * Sinusoidal easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutSine(t, b, c, d) {\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n }\n\n /**\n * Exponential easing in\n * @memberOf fabric.util.ease\n */\n function easeInExpo(t, b, c, d) {\n return (t === 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;\n }\n\n /**\n * Exponential easing out\n * @memberOf fabric.util.ease\n */\n function easeOutExpo(t, b, c, d) {\n return (t === d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n }\n\n /**\n * Exponential easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutExpo(t, b, c, d) {\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n t /= d / 2;\n if (t < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n }\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n\n /**\n * Circular easing in\n * @memberOf fabric.util.ease\n */\n function easeInCirc(t, b, c, d) {\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n }\n\n /**\n * Circular easing out\n * @memberOf fabric.util.ease\n */\n function easeOutCirc(t, b, c, d) {\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n }\n\n /**\n * Circular easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutCirc(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n }\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n\n /**\n * Elastic easing in\n * @memberOf fabric.util.ease\n */\n function easeInElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n var opts = normalize(a, c, p, s);\n return -elastic(opts, t, d) + b;\n }\n\n /**\n * Elastic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n var opts = normalize(a, c, p, s);\n return opts.a * Math.pow(2, -10 * t) * Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) + opts.c + b;\n }\n\n /**\n * Elastic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d / 2;\n if (t === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n var opts = normalize(a, c, p, s);\n if (t < 1) {\n return -0.5 * elastic(opts, t, d) + b;\n }\n return opts.a * Math.pow(2, -10 * (t -= 1)) *\n Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) * 0.5 + opts.c + b;\n }\n\n /**\n * Backwards easing in\n * @memberOf fabric.util.ease\n */\n function easeInBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n }\n\n /**\n * Backwards easing out\n * @memberOf fabric.util.ease\n */\n function easeOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n }\n\n /**\n * Backwards easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n t /= d / 2;\n if (t < 1) {\n return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;\n }\n return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;\n }\n\n /**\n * Bouncing easing in\n * @memberOf fabric.util.ease\n */\n function easeInBounce(t, b, c, d) {\n return c - easeOutBounce (d - t, 0, c, d) + b;\n }\n\n /**\n * Bouncing easing out\n * @memberOf fabric.util.ease\n */\n function easeOutBounce(t, b, c, d) {\n if ((t /= d) < (1 / 2.75)) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < (2 / 2.75)) {\n return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b;\n }\n else if (t < (2.5 / 2.75)) {\n return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b;\n }\n }\n\n /**\n * Bouncing easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutBounce(t, b, c, d) {\n if (t < d / 2) {\n return easeInBounce (t * 2, 0, c, d) * 0.5 + b;\n }\n return easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n\n /**\n * Easing functions\n * See Easing Equations by Robert Penner\n * @namespace fabric.util.ease\n */\n fabric.util.ease = {\n\n /**\n * Quadratic easing in\n * @memberOf fabric.util.ease\n */\n easeInQuad: function(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n\n /**\n * Quadratic easing out\n * @memberOf fabric.util.ease\n */\n easeOutQuad: function(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n\n /**\n * Quadratic easing in and out\n * @memberOf fabric.util.ease\n */\n easeInOutQuad: function(t, b, c, d) {\n t /= (d / 2);\n if (t < 1) {\n return c / 2 * t * t + b;\n }\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n },\n\n /**\n * Cubic easing in\n * @memberOf fabric.util.ease\n */\n easeInCubic: function(t, b, c, d) {\n return c * (t /= d) * t * t + b;\n },\n\n easeOutCubic: easeOutCubic,\n easeInOutCubic: easeInOutCubic,\n easeInQuart: easeInQuart,\n easeOutQuart: easeOutQuart,\n easeInOutQuart: easeInOutQuart,\n easeInQuint: easeInQuint,\n easeOutQuint: easeOutQuint,\n easeInOutQuint: easeInOutQuint,\n easeInSine: easeInSine,\n easeOutSine: easeOutSine,\n easeInOutSine: easeInOutSine,\n easeInExpo: easeInExpo,\n easeOutExpo: easeOutExpo,\n easeInOutExpo: easeInOutExpo,\n easeInCirc: easeInCirc,\n easeOutCirc: easeOutCirc,\n easeInOutCirc: easeInOutCirc,\n easeInElastic: easeInElastic,\n easeOutElastic: easeOutElastic,\n easeInOutElastic: easeInOutElastic,\n easeInBack: easeInBack,\n easeOutBack: easeOutBack,\n easeInOutBack: easeInOutBack,\n easeInBounce: easeInBounce,\n easeOutBounce: easeOutBounce,\n easeInOutBounce: easeInOutBounce\n };\n\n})();\n\n\n(function(global) {\n\n 'use strict';\n\n /**\n * @name fabric\n * @namespace\n */\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n toFixed = fabric.util.toFixed,\n parseUnit = fabric.util.parseUnit,\n multiplyTransformMatrices = fabric.util.multiplyTransformMatrices,\n\n svgValidTagNames = ['path', 'circle', 'polygon', 'polyline', 'ellipse', 'rect', 'line',\n 'image', 'text'],\n svgViewBoxElements = ['symbol', 'image', 'marker', 'pattern', 'view', 'svg'],\n svgInvalidAncestors = ['pattern', 'defs', 'symbol', 'metadata', 'clipPath', 'mask', 'desc'],\n svgValidParents = ['symbol', 'g', 'a', 'svg', 'clipPath', 'defs'],\n\n attributesMap = {\n cx: 'left',\n x: 'left',\n r: 'radius',\n cy: 'top',\n y: 'top',\n display: 'visible',\n visibility: 'visible',\n transform: 'transformMatrix',\n 'fill-opacity': 'fillOpacity',\n 'fill-rule': 'fillRule',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'letter-spacing': 'charSpacing',\n 'paint-order': 'paintFirst',\n 'stroke-dasharray': 'strokeDashArray',\n 'stroke-dashoffset': 'strokeDashOffset',\n 'stroke-linecap': 'strokeLineCap',\n 'stroke-linejoin': 'strokeLineJoin',\n 'stroke-miterlimit': 'strokeMiterLimit',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-width': 'strokeWidth',\n 'text-decoration': 'textDecoration',\n 'text-anchor': 'textAnchor',\n opacity: 'opacity',\n 'clip-path': 'clipPath',\n 'clip-rule': 'clipRule',\n 'vector-effect': 'strokeUniform',\n 'image-rendering': 'imageSmoothing',\n },\n\n colorAttributes = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity'\n },\n\n fSize = 'font-size', cPath = 'clip-path';\n\n fabric.svgValidTagNamesRegEx = getSvgRegex(svgValidTagNames);\n fabric.svgViewBoxElementsRegEx = getSvgRegex(svgViewBoxElements);\n fabric.svgInvalidAncestorsRegEx = getSvgRegex(svgInvalidAncestors);\n fabric.svgValidParentsRegEx = getSvgRegex(svgValidParents);\n\n fabric.cssRules = { };\n fabric.gradientDefs = { };\n fabric.clipPaths = { };\n\n function normalizeAttr(attr) {\n // transform attribute names\n if (attr in attributesMap) {\n return attributesMap[attr];\n }\n return attr;\n }\n\n function normalizeValue(attr, value, parentAttributes, fontSize) {\n var isArray = Object.prototype.toString.call(value) === '[object Array]',\n parsed;\n\n if ((attr === 'fill' || attr === 'stroke') && value === 'none') {\n value = '';\n }\n else if (attr === 'strokeUniform') {\n return (value === 'non-scaling-stroke');\n }\n else if (attr === 'strokeDashArray') {\n if (value === 'none') {\n value = null;\n }\n else {\n value = value.replace(/,/g, ' ').split(/\\s+/).map(parseFloat);\n }\n }\n else if (attr === 'transformMatrix') {\n if (parentAttributes && parentAttributes.transformMatrix) {\n value = multiplyTransformMatrices(\n parentAttributes.transformMatrix, fabric.parseTransformAttribute(value));\n }\n else {\n value = fabric.parseTransformAttribute(value);\n }\n }\n else if (attr === 'visible') {\n value = value !== 'none' && value !== 'hidden';\n // display=none on parent element always takes precedence over child element\n if (parentAttributes && parentAttributes.visible === false) {\n value = false;\n }\n }\n else if (attr === 'opacity') {\n value = parseFloat(value);\n if (parentAttributes && typeof parentAttributes.opacity !== 'undefined') {\n value *= parentAttributes.opacity;\n }\n }\n else if (attr === 'textAnchor' /* text-anchor */) {\n value = value === 'start' ? 'left' : value === 'end' ? 'right' : 'center';\n }\n else if (attr === 'charSpacing') {\n // parseUnit returns px and we convert it to em\n parsed = parseUnit(value, fontSize) / fontSize * 1000;\n }\n else if (attr === 'paintFirst') {\n var fillIndex = value.indexOf('fill');\n var strokeIndex = value.indexOf('stroke');\n var value = 'fill';\n if (fillIndex > -1 && strokeIndex > -1 && strokeIndex < fillIndex) {\n value = 'stroke';\n }\n else if (fillIndex === -1 && strokeIndex > -1) {\n value = 'stroke';\n }\n }\n else if (attr === 'href' || attr === 'xlink:href' || attr === 'font') {\n return value;\n }\n else if (attr === 'imageSmoothing') {\n return (value === 'optimizeQuality' ? true : false);\n }\n else {\n parsed = isArray ? value.map(parseUnit) : parseUnit(value, fontSize);\n }\n\n return (!isArray && isNaN(parsed) ? value : parsed);\n }\n\n /**\n * @private\n */\n function getSvgRegex(arr) {\n return new RegExp('^(' + arr.join('|') + ')\\\\b', 'i');\n }\n\n /**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n function _setStrokeFillOpacity(attributes) {\n for (var attr in colorAttributes) {\n\n if (typeof attributes[colorAttributes[attr]] === 'undefined' || attributes[attr] === '') {\n continue;\n }\n\n if (typeof attributes[attr] === 'undefined') {\n if (!fabric.Object.prototype[attr]) {\n continue;\n }\n attributes[attr] = fabric.Object.prototype[attr];\n }\n\n if (attributes[attr].indexOf('url(') === 0) {\n continue;\n }\n\n var color = new fabric.Color(attributes[attr]);\n attributes[attr] = color.setAlpha(toFixed(color.getAlpha() * attributes[colorAttributes[attr]], 2)).toRgba();\n }\n return attributes;\n }\n\n /**\n * @private\n */\n function _getMultipleNodes(doc, nodeNames) {\n var nodeName, nodeArray = [], nodeList, i, len;\n for (i = 0, len = nodeNames.length; i < len; i++) {\n nodeName = nodeNames[i];\n nodeList = doc.getElementsByTagName(nodeName);\n nodeArray = nodeArray.concat(Array.prototype.slice.call(nodeList));\n }\n return nodeArray;\n }\n\n /**\n * Parses \"transform\" attribute, returning an array of values\n * @static\n * @function\n * @memberOf fabric\n * @param {String} attributeValue String containing attribute value\n * @return {Array} Array of 6 elements representing transformation matrix\n */\n fabric.parseTransformAttribute = (function() {\n function rotateMatrix(matrix, args) {\n var cos = fabric.util.cos(args[0]), sin = fabric.util.sin(args[0]),\n x = 0, y = 0;\n if (args.length === 3) {\n x = args[1];\n y = args[2];\n }\n\n matrix[0] = cos;\n matrix[1] = sin;\n matrix[2] = -sin;\n matrix[3] = cos;\n matrix[4] = x - (cos * x - sin * y);\n matrix[5] = y - (sin * x + cos * y);\n }\n\n function scaleMatrix(matrix, args) {\n var multiplierX = args[0],\n multiplierY = (args.length === 2) ? args[1] : args[0];\n\n matrix[0] = multiplierX;\n matrix[3] = multiplierY;\n }\n\n function skewMatrix(matrix, args, pos) {\n matrix[pos] = Math.tan(fabric.util.degreesToRadians(args[0]));\n }\n\n function translateMatrix(matrix, args) {\n matrix[4] = args[0];\n if (args.length === 2) {\n matrix[5] = args[1];\n }\n }\n\n // identity matrix\n var iMatrix = fabric.iMatrix,\n\n // == begin transform regexp\n number = fabric.reNum,\n\n commaWsp = fabric.commaWsp,\n\n skewX = '(?:(skewX)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n\n skewY = '(?:(skewY)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n\n rotate = '(?:(rotate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + ')' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n scale = '(?:(scale)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n translate = '(?:(translate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n matrix = '(?:(matrix)\\\\s*\\\\(\\\\s*' +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' +\n '\\\\s*\\\\))',\n\n transform = '(?:' +\n matrix + '|' +\n translate + '|' +\n scale + '|' +\n rotate + '|' +\n skewX + '|' +\n skewY +\n ')',\n\n transforms = '(?:' + transform + '(?:' + commaWsp + '*' + transform + ')*' + ')',\n\n transformList = '^\\\\s*(?:' + transforms + '?)\\\\s*$',\n\n // http://www.w3.org/TR/SVG/coords.html#TransformAttribute\n reTransformList = new RegExp(transformList),\n // == end transform regexp\n\n reTransform = new RegExp(transform, 'g');\n\n return function(attributeValue) {\n\n // start with identity matrix\n var matrix = iMatrix.concat(),\n matrices = [];\n\n // return if no argument was given or\n // an argument does not match transform attribute regexp\n if (!attributeValue || (attributeValue && !reTransformList.test(attributeValue))) {\n return matrix;\n }\n\n attributeValue.replace(reTransform, function(match) {\n\n var m = new RegExp(transform).exec(match).filter(function (match) {\n // match !== '' && match != null\n return (!!match);\n }),\n operation = m[1],\n args = m.slice(2).map(parseFloat);\n\n switch (operation) {\n case 'translate':\n translateMatrix(matrix, args);\n break;\n case 'rotate':\n args[0] = fabric.util.degreesToRadians(args[0]);\n rotateMatrix(matrix, args);\n break;\n case 'scale':\n scaleMatrix(matrix, args);\n break;\n case 'skewX':\n skewMatrix(matrix, args, 2);\n break;\n case 'skewY':\n skewMatrix(matrix, args, 1);\n break;\n case 'matrix':\n matrix = args;\n break;\n }\n\n // snapshot current matrix into matrices array\n matrices.push(matrix.concat());\n // reset\n matrix = iMatrix.concat();\n });\n\n var combinedMatrix = matrices[0];\n while (matrices.length > 1) {\n matrices.shift();\n combinedMatrix = fabric.util.multiplyTransformMatrices(combinedMatrix, matrices[0]);\n }\n return combinedMatrix;\n };\n })();\n\n /**\n * @private\n */\n function parseStyleString(style, oStyle) {\n var attr, value;\n style.replace(/;\\s*$/, '').split(';').forEach(function (chunk) {\n var pair = chunk.split(':');\n\n attr = pair[0].trim().toLowerCase();\n value = pair[1].trim();\n\n oStyle[attr] = value;\n });\n }\n\n /**\n * @private\n */\n function parseStyleObject(style, oStyle) {\n var attr, value;\n for (var prop in style) {\n if (typeof style[prop] === 'undefined') {\n continue;\n }\n\n attr = prop.toLowerCase();\n value = style[prop];\n\n oStyle[attr] = value;\n }\n }\n\n /**\n * @private\n */\n function getGlobalStylesForElement(element, svgUid) {\n var styles = { };\n for (var rule in fabric.cssRules[svgUid]) {\n if (elementMatchesRule(element, rule.split(' '))) {\n for (var property in fabric.cssRules[svgUid][rule]) {\n styles[property] = fabric.cssRules[svgUid][rule][property];\n }\n }\n }\n return styles;\n }\n\n /**\n * @private\n */\n function elementMatchesRule(element, selectors) {\n var firstMatching, parentMatching = true;\n //start from rightmost selector.\n firstMatching = selectorMatches(element, selectors.pop());\n if (firstMatching && selectors.length) {\n parentMatching = doesSomeParentMatch(element, selectors);\n }\n return firstMatching && parentMatching && (selectors.length === 0);\n }\n\n function doesSomeParentMatch(element, selectors) {\n var selector, parentMatching = true;\n while (element.parentNode && element.parentNode.nodeType === 1 && selectors.length) {\n if (parentMatching) {\n selector = selectors.pop();\n }\n element = element.parentNode;\n parentMatching = selectorMatches(element, selector);\n }\n return selectors.length === 0;\n }\n\n /**\n * @private\n */\n function selectorMatches(element, selector) {\n var nodeName = element.nodeName,\n classNames = element.getAttribute('class'),\n id = element.getAttribute('id'), matcher, i;\n // i check if a selector matches slicing away part from it.\n // if i get empty string i should match\n matcher = new RegExp('^' + nodeName, 'i');\n selector = selector.replace(matcher, '');\n if (id && selector.length) {\n matcher = new RegExp('#' + id + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n if (classNames && selector.length) {\n classNames = classNames.split(' ');\n for (i = classNames.length; i--;) {\n matcher = new RegExp('\\\\.' + classNames[i] + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n }\n return selector.length === 0;\n }\n\n /**\n * @private\n * to support IE8 missing getElementById on SVGdocument and on node xmlDOM\n */\n function elementById(doc, id) {\n var el;\n doc.getElementById && (el = doc.getElementById(id));\n if (el) {\n return el;\n }\n var node, i, len, nodelist = doc.getElementsByTagName('*');\n for (i = 0, len = nodelist.length; i < len; i++) {\n node = nodelist[i];\n if (id === node.getAttribute('id')) {\n return node;\n }\n }\n }\n\n /**\n * @private\n */\n function parseUseDirectives(doc) {\n var nodelist = _getMultipleNodes(doc, ['use', 'svg:use']), i = 0;\n while (nodelist.length && i < nodelist.length) {\n var el = nodelist[i],\n xlink = (el.getAttribute('xlink:href') || el.getAttribute('href')).substr(1),\n x = el.getAttribute('x') || 0,\n y = el.getAttribute('y') || 0,\n el2 = elementById(doc, xlink).cloneNode(true),\n currentTrans = (el2.getAttribute('transform') || '') + ' translate(' + x + ', ' + y + ')',\n parentNode, oldLength = nodelist.length, attr, j, attrs, len, namespace = fabric.svgNS;\n\n applyViewboxTransform(el2);\n if (/^svg$/i.test(el2.nodeName)) {\n var el3 = el2.ownerDocument.createElementNS(namespace, 'g');\n for (j = 0, attrs = el2.attributes, len = attrs.length; j < len; j++) {\n attr = attrs.item(j);\n el3.setAttributeNS(namespace, attr.nodeName, attr.nodeValue);\n }\n // el2.firstChild != null\n while (el2.firstChild) {\n el3.appendChild(el2.firstChild);\n }\n el2 = el3;\n }\n\n for (j = 0, attrs = el.attributes, len = attrs.length; j < len; j++) {\n attr = attrs.item(j);\n if (attr.nodeName === 'x' || attr.nodeName === 'y' ||\n attr.nodeName === 'xlink:href' || attr.nodeName === 'href') {\n continue;\n }\n\n if (attr.nodeName === 'transform') {\n currentTrans = attr.nodeValue + ' ' + currentTrans;\n }\n else {\n el2.setAttribute(attr.nodeName, attr.nodeValue);\n }\n }\n\n el2.setAttribute('transform', currentTrans);\n el2.setAttribute('instantiated_by_use', '1');\n el2.removeAttribute('id');\n parentNode = el.parentNode;\n parentNode.replaceChild(el2, el);\n // some browsers do not shorten nodelist after replaceChild (IE8)\n if (nodelist.length === oldLength) {\n i++;\n }\n }\n }\n\n // http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute\n // matches, e.g.: +14.56e-12, etc.\n var reViewBoxAttrValue = new RegExp(\n '^' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*' +\n '$'\n );\n\n /**\n * Add a element that envelop all child elements and makes the viewbox transformMatrix descend on all elements\n */\n function applyViewboxTransform(element) {\n if (!fabric.svgViewBoxElementsRegEx.test(element.nodeName)) {\n return;\n }\n var viewBoxAttr = element.getAttribute('viewBox'),\n scaleX = 1,\n scaleY = 1,\n minX = 0,\n minY = 0,\n viewBoxWidth, viewBoxHeight, matrix, el,\n widthAttr = element.getAttribute('width'),\n heightAttr = element.getAttribute('height'),\n x = element.getAttribute('x') || 0,\n y = element.getAttribute('y') || 0,\n preserveAspectRatio = element.getAttribute('preserveAspectRatio') || '',\n missingViewBox = (!viewBoxAttr || !(viewBoxAttr = viewBoxAttr.match(reViewBoxAttrValue))),\n missingDimAttr = (!widthAttr || !heightAttr || widthAttr === '100%' || heightAttr === '100%'),\n toBeParsed = missingViewBox && missingDimAttr,\n parsedDim = { }, translateMatrix = '', widthDiff = 0, heightDiff = 0;\n\n parsedDim.width = 0;\n parsedDim.height = 0;\n parsedDim.toBeParsed = toBeParsed;\n\n if (missingViewBox) {\n if (((x || y) && element.parentNode.nodeName !== '#document')) {\n translateMatrix = ' translate(' + parseUnit(x) + ' ' + parseUnit(y) + ') ';\n matrix = (element.getAttribute('transform') || '') + translateMatrix;\n element.setAttribute('transform', matrix);\n element.removeAttribute('x');\n element.removeAttribute('y');\n }\n }\n\n if (toBeParsed) {\n return parsedDim;\n }\n\n if (missingViewBox) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n // set a transform for elements that have x y and are inner(only) SVGs\n return parsedDim;\n }\n minX = -parseFloat(viewBoxAttr[1]);\n minY = -parseFloat(viewBoxAttr[2]);\n viewBoxWidth = parseFloat(viewBoxAttr[3]);\n viewBoxHeight = parseFloat(viewBoxAttr[4]);\n parsedDim.minX = minX;\n parsedDim.minY = minY;\n parsedDim.viewBoxWidth = viewBoxWidth;\n parsedDim.viewBoxHeight = viewBoxHeight;\n if (!missingDimAttr) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n scaleX = parsedDim.width / viewBoxWidth;\n scaleY = parsedDim.height / viewBoxHeight;\n }\n else {\n parsedDim.width = viewBoxWidth;\n parsedDim.height = viewBoxHeight;\n }\n\n // default is to preserve aspect ratio\n preserveAspectRatio = fabric.util.parsePreserveAspectRatioAttribute(preserveAspectRatio);\n if (preserveAspectRatio.alignX !== 'none') {\n //translate all container for the effect of Mid, Min, Max\n if (preserveAspectRatio.meetOrSlice === 'meet') {\n scaleY = scaleX = (scaleX > scaleY ? scaleY : scaleX);\n // calculate additional translation to move the viewbox\n }\n if (preserveAspectRatio.meetOrSlice === 'slice') {\n scaleY = scaleX = (scaleX > scaleY ? scaleX : scaleY);\n // calculate additional translation to move the viewbox\n }\n widthDiff = parsedDim.width - viewBoxWidth * scaleX;\n heightDiff = parsedDim.height - viewBoxHeight * scaleX;\n if (preserveAspectRatio.alignX === 'Mid') {\n widthDiff /= 2;\n }\n if (preserveAspectRatio.alignY === 'Mid') {\n heightDiff /= 2;\n }\n if (preserveAspectRatio.alignX === 'Min') {\n widthDiff = 0;\n }\n if (preserveAspectRatio.alignY === 'Min') {\n heightDiff = 0;\n }\n }\n\n if (scaleX === 1 && scaleY === 1 && minX === 0 && minY === 0 && x === 0 && y === 0) {\n return parsedDim;\n }\n if ((x || y) && element.parentNode.nodeName !== '#document') {\n translateMatrix = ' translate(' + parseUnit(x) + ' ' + parseUnit(y) + ') ';\n }\n\n matrix = translateMatrix + ' matrix(' + scaleX +\n ' 0' +\n ' 0 ' +\n scaleY + ' ' +\n (minX * scaleX + widthDiff) + ' ' +\n (minY * scaleY + heightDiff) + ') ';\n // seems unused.\n // parsedDim.viewboxTransform = fabric.parseTransformAttribute(matrix);\n if (element.nodeName === 'svg') {\n el = element.ownerDocument.createElementNS(fabric.svgNS, 'g');\n // element.firstChild != null\n while (element.firstChild) {\n el.appendChild(element.firstChild);\n }\n element.appendChild(el);\n }\n else {\n el = element;\n el.removeAttribute('x');\n el.removeAttribute('y');\n matrix = el.getAttribute('transform') + matrix;\n }\n el.setAttribute('transform', matrix);\n return parsedDim;\n }\n\n function hasAncestorWithNodeName(element, nodeName) {\n while (element && (element = element.parentNode)) {\n if (element.nodeName && nodeName.test(element.nodeName.replace('svg:', ''))\n && !element.getAttribute('instantiated_by_use')) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Parses an SVG document, converts it to an array of corresponding fabric.* instances and passes them to a callback\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @param {Function} callback Callback to call when parsing is finished;\n * It's being passed an array of elements (parsed from a document).\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n * @param {Object} [parsingOptions] options for parsing document\n * @param {String} [parsingOptions.crossOrigin] crossOrigin settings\n */\n fabric.parseSVGDocument = function(doc, callback, reviver, parsingOptions) {\n if (!doc) {\n return;\n }\n\n parseUseDirectives(doc);\n\n var svgUid = fabric.Object.__uid++, i, len,\n options = applyViewboxTransform(doc),\n descendants = fabric.util.toArray(doc.getElementsByTagName('*'));\n options.crossOrigin = parsingOptions && parsingOptions.crossOrigin;\n options.svgUid = svgUid;\n\n if (descendants.length === 0 && fabric.isLikelyNode) {\n // we're likely in node, where \"o3-xml\" library fails to gEBTN(\"*\")\n // https://github.com/ajaxorg/node-o3-xml/issues/21\n descendants = doc.selectNodes('//*[name(.)!=\"svg\"]');\n var arr = [];\n for (i = 0, len = descendants.length; i < len; i++) {\n arr[i] = descendants[i];\n }\n descendants = arr;\n }\n\n var elements = descendants.filter(function(el) {\n applyViewboxTransform(el);\n return fabric.svgValidTagNamesRegEx.test(el.nodeName.replace('svg:', '')) &&\n !hasAncestorWithNodeName(el, fabric.svgInvalidAncestorsRegEx); // http://www.w3.org/TR/SVG/struct.html#DefsElement\n });\n if (!elements || (elements && !elements.length)) {\n callback && callback([], {});\n return;\n }\n var clipPaths = { };\n descendants.filter(function(el) {\n return el.nodeName.replace('svg:', '') === 'clipPath';\n }).forEach(function(el) {\n var id = el.getAttribute('id');\n clipPaths[id] = fabric.util.toArray(el.getElementsByTagName('*')).filter(function(el) {\n return fabric.svgValidTagNamesRegEx.test(el.nodeName.replace('svg:', ''));\n });\n });\n fabric.gradientDefs[svgUid] = fabric.getGradientDefs(doc);\n fabric.cssRules[svgUid] = fabric.getCSSRules(doc);\n fabric.clipPaths[svgUid] = clipPaths;\n // Precedence of rules: style > class > attribute\n fabric.parseElements(elements, function(instances, elements) {\n if (callback) {\n callback(instances, options, elements, descendants);\n delete fabric.gradientDefs[svgUid];\n delete fabric.cssRules[svgUid];\n delete fabric.clipPaths[svgUid];\n }\n }, clone(options), reviver, parsingOptions);\n };\n\n function recursivelyParseGradientsXlink(doc, gradient) {\n var gradientsAttrs = ['gradientTransform', 'x1', 'x2', 'y1', 'y2', 'gradientUnits', 'cx', 'cy', 'r', 'fx', 'fy'],\n xlinkAttr = 'xlink:href',\n xLink = gradient.getAttribute(xlinkAttr).substr(1),\n referencedGradient = elementById(doc, xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient);\n }\n gradientsAttrs.forEach(function(attr) {\n if (referencedGradient && !gradient.hasAttribute(attr) && referencedGradient.hasAttribute(attr)) {\n gradient.setAttribute(attr, referencedGradient.getAttribute(attr));\n }\n });\n if (!gradient.children.length) {\n var referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n gradient.removeAttribute(xlinkAttr);\n }\n\n var reFontDeclaration = new RegExp(\n '(normal|italic)?\\\\s*(normal|small-caps)?\\\\s*' +\n '(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\\\s*(' +\n fabric.reNum +\n '(?:px|cm|mm|em|pt|pc|in)*)(?:\\\\/(normal|' + fabric.reNum + '))?\\\\s+(.*)');\n\n extend(fabric, {\n /**\n * Parses a short font declaration, building adding its properties to a style object\n * @static\n * @function\n * @memberOf fabric\n * @param {String} value font declaration\n * @param {Object} oStyle definition\n */\n parseFontDeclaration: function(value, oStyle) {\n var match = value.match(reFontDeclaration);\n\n if (!match) {\n return;\n }\n var fontStyle = match[1],\n // font variant is not used\n // fontVariant = match[2],\n fontWeight = match[3],\n fontSize = match[4],\n lineHeight = match[5],\n fontFamily = match[6];\n\n if (fontStyle) {\n oStyle.fontStyle = fontStyle;\n }\n if (fontWeight) {\n oStyle.fontWeight = isNaN(parseFloat(fontWeight)) ? fontWeight : parseFloat(fontWeight);\n }\n if (fontSize) {\n oStyle.fontSize = parseUnit(fontSize);\n }\n if (fontFamily) {\n oStyle.fontFamily = fontFamily;\n }\n if (lineHeight) {\n oStyle.lineHeight = lineHeight === 'normal' ? 1 : lineHeight;\n }\n },\n\n /**\n * Parses an SVG document, returning all of the gradient declarations found in it\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @return {Object} Gradient definitions; key corresponds to element id, value -- to gradient definition element\n */\n getGradientDefs: function(doc) {\n var tagArray = [\n 'linearGradient',\n 'radialGradient',\n 'svg:linearGradient',\n 'svg:radialGradient'],\n elList = _getMultipleNodes(doc, tagArray),\n el, j = 0, gradientDefs = { };\n j = elList.length;\n while (j--) {\n el = elList[j];\n if (el.getAttribute('xlink:href')) {\n recursivelyParseGradientsXlink(doc, el);\n }\n gradientDefs[el.getAttribute('id')] = el;\n }\n return gradientDefs;\n },\n\n /**\n * Returns an object of attributes' name/value, given element and an array of attribute names;\n * Parses parent \"g\" nodes recursively upwards.\n * @static\n * @memberOf fabric\n * @param {DOMElement} element Element to parse\n * @param {Array} attributes Array of attributes to parse\n * @return {Object} object containing parsed attributes' names/values\n */\n parseAttributes: function(element, attributes, svgUid) {\n\n if (!element) {\n return;\n }\n\n var value,\n parentAttributes = { },\n fontSize, parentFontSize;\n\n if (typeof svgUid === 'undefined') {\n svgUid = element.getAttribute('svgUid');\n }\n // if there's a parent container (`g` or `a` or `symbol` node), parse its attributes recursively upwards\n if (element.parentNode && fabric.svgValidParentsRegEx.test(element.parentNode.nodeName)) {\n parentAttributes = fabric.parseAttributes(element.parentNode, attributes, svgUid);\n }\n\n var ownAttributes = attributes.reduce(function(memo, attr) {\n value = element.getAttribute(attr);\n if (value) { // eslint-disable-line\n memo[attr] = value;\n }\n return memo;\n }, { });\n // add values parsed from style, which take precedence over attributes\n // (see: http://www.w3.org/TR/SVG/styling.html#UsingPresentationAttributes)\n var cssAttrs = extend(\n getGlobalStylesForElement(element, svgUid),\n fabric.parseStyleAttribute(element)\n );\n ownAttributes = extend(\n ownAttributes,\n cssAttrs\n );\n if (cssAttrs[cPath]) {\n element.setAttribute(cPath, cssAttrs[cPath]);\n }\n fontSize = parentFontSize = parentAttributes.fontSize || fabric.Text.DEFAULT_SVG_FONT_SIZE;\n if (ownAttributes[fSize]) {\n // looks like the minimum should be 9px when dealing with ems. this is what looks like in browsers.\n ownAttributes[fSize] = fontSize = parseUnit(ownAttributes[fSize], parentFontSize);\n }\n\n var normalizedAttr, normalizedValue, normalizedStyle = {};\n for (var attr in ownAttributes) {\n normalizedAttr = normalizeAttr(attr);\n normalizedValue = normalizeValue(normalizedAttr, ownAttributes[attr], parentAttributes, fontSize);\n normalizedStyle[normalizedAttr] = normalizedValue;\n }\n if (normalizedStyle && normalizedStyle.font) {\n fabric.parseFontDeclaration(normalizedStyle.font, normalizedStyle);\n }\n var mergedAttrs = extend(parentAttributes, normalizedStyle);\n return fabric.svgValidParentsRegEx.test(element.nodeName) ? mergedAttrs : _setStrokeFillOpacity(mergedAttrs);\n },\n\n /**\n * Transforms an array of svg elements to corresponding fabric.* instances\n * @static\n * @memberOf fabric\n * @param {Array} elements Array of elements to parse\n * @param {Function} callback Being passed an array of fabric instances (transformed from SVG elements)\n * @param {Object} [options] Options object\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n */\n parseElements: function(elements, callback, options, reviver, parsingOptions) {\n new fabric.ElementsParser(elements, callback, options, reviver, parsingOptions).parse();\n },\n\n /**\n * Parses \"style\" attribute, retuning an object with values\n * @static\n * @memberOf fabric\n * @param {SVGElement} element Element to parse\n * @return {Object} Objects with values parsed from style attribute of an element\n */\n parseStyleAttribute: function(element) {\n var oStyle = { },\n style = element.getAttribute('style');\n\n if (!style) {\n return oStyle;\n }\n\n if (typeof style === 'string') {\n parseStyleString(style, oStyle);\n }\n else {\n parseStyleObject(style, oStyle);\n }\n\n return oStyle;\n },\n\n /**\n * Parses \"points\" attribute, returning an array of values\n * @static\n * @memberOf fabric\n * @param {String} points points attribute string\n * @return {Array} array of points\n */\n parsePointsAttribute: function(points) {\n\n // points attribute is required and must not be empty\n if (!points) {\n return null;\n }\n\n // replace commas with whitespace and remove bookending whitespace\n points = points.replace(/,/g, ' ').trim();\n\n points = points.split(/\\s+/);\n var parsedPoints = [], i, len;\n\n for (i = 0, len = points.length; i < len; i += 2) {\n parsedPoints.push({\n x: parseFloat(points[i]),\n y: parseFloat(points[i + 1])\n });\n }\n\n // odd number of points is an error\n // if (parsedPoints.length % 2 !== 0) {\n // return null;\n // }\n\n return parsedPoints;\n },\n\n /**\n * Returns CSS rules for a given SVG document\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @return {Object} CSS rules of this document\n */\n getCSSRules: function(doc) {\n var styles = doc.getElementsByTagName('style'), i, len,\n allRules = { }, rules;\n\n // very crude parsing of style contents\n for (i = 0, len = styles.length; i < len; i++) {\n // \\n'\n ].join('');\n }\n\n return markup;\n },\n\n /**\n * @private\n */\n _setSVGObjects: function(markup, reviver) {\n var instance, i, len, objects = this._objects;\n for (i = 0, len = objects.length; i < len; i++) {\n instance = objects[i];\n if (instance.excludeFromExport) {\n continue;\n }\n this._setSVGObject(markup, instance, reviver);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function(markup, instance, reviver) {\n markup.push(instance.toSVG(reviver));\n },\n\n /**\n * @private\n */\n _setSVGBgOverlayImage: function(markup, property, reviver) {\n if (this[property] && !this[property].excludeFromExport && this[property].toSVG) {\n markup.push(this[property].toSVG(reviver));\n }\n },\n\n /**\n * @private\n */\n _setSVGBgOverlayColor: function(markup, property) {\n var filler = this[property + 'Color'], vpt = this.viewportTransform, finalWidth = this.width,\n finalHeight = this.height;\n if (!filler) {\n return;\n }\n if (filler.toLive) {\n var repeat = filler.repeat, iVpt = fabric.util.invertTransform(vpt), shouldInvert = this[property + 'Vpt'],\n additionalTransform = shouldInvert ? fabric.util.matrixToSVG(iVpt) : '';\n markup.push(\n '\\n'\n );\n }\n else {\n markup.push(\n '\\n'\n );\n }\n },\n /* _TO_SVG_END_ */\n\n /**\n * Moves an object or the objects of a multiple selection\n * to the bottom of the stack of drawn objects\n * @param {fabric.Object} object Object to send to back\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n sendToBack: function (object) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, objs;\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = objs.length; i--;) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n this._objects.unshift(obj);\n }\n }\n else {\n removeFromArray(this._objects, object);\n this._objects.unshift(object);\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Moves an object or the objects of a multiple selection\n * to the top of the stack of drawn objects\n * @param {fabric.Object} object Object to send\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n bringToFront: function (object) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, objs;\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n this._objects.push(obj);\n }\n }\n else {\n removeFromArray(this._objects, object);\n this._objects.push(object);\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Moves an object or a selection down in stack of drawn objects\n * An optional paramter, intersecting allowes to move the object in behind\n * the first intersecting object. Where intersection is calculated with\n * bounding box. If no intersection is found, there will not be change in the\n * stack.\n * @param {fabric.Object} object Object to send\n * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n sendBackwards: function (object, intersecting) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, idx, newIdx, objs, objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n if (idx > 0 + objsMoved) {\n newIdx = idx - 1;\n removeFromArray(this._objects, obj);\n this._objects.splice(newIdx, 0, obj);\n }\n objsMoved++;\n }\n }\n else {\n idx = this._objects.indexOf(object);\n if (idx !== 0) {\n // if object is not on the bottom of stack\n newIdx = this._findNewLowerIndex(object, idx, intersecting);\n removeFromArray(this._objects, object);\n this._objects.splice(newIdx, 0, object);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewLowerIndex: function(object, idx, intersecting) {\n var newIdx, i;\n\n if (intersecting) {\n newIdx = idx;\n\n // traverse down the stack looking for the nearest intersecting object\n for (i = idx - 1; i >= 0; --i) {\n\n var isIntersecting = object.intersectsWithObject(this._objects[i]) ||\n object.isContainedWithinObject(this._objects[i]) ||\n this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\n }\n }\n }\n else {\n newIdx = idx - 1;\n }\n\n return newIdx;\n },\n\n /**\n * Moves an object or a selection up in stack of drawn objects\n * An optional paramter, intersecting allowes to move the object in front\n * of the first intersecting object. Where intersection is calculated with\n * bounding box. If no intersection is found, there will not be change in the\n * stack.\n * @param {fabric.Object} object Object to send\n * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n bringForward: function (object, intersecting) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, idx, newIdx, objs, objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = objs.length; i--;) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n if (idx < this._objects.length - 1 - objsMoved) {\n newIdx = idx + 1;\n removeFromArray(this._objects, obj);\n this._objects.splice(newIdx, 0, obj);\n }\n objsMoved++;\n }\n }\n else {\n idx = this._objects.indexOf(object);\n if (idx !== this._objects.length - 1) {\n // if object is not on top of stack (last item in an array)\n newIdx = this._findNewUpperIndex(object, idx, intersecting);\n removeFromArray(this._objects, object);\n this._objects.splice(newIdx, 0, object);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewUpperIndex: function(object, idx, intersecting) {\n var newIdx, i, len;\n\n if (intersecting) {\n newIdx = idx;\n\n // traverse up the stack looking for the nearest intersecting object\n for (i = idx + 1, len = this._objects.length; i < len; ++i) {\n\n var isIntersecting = object.intersectsWithObject(this._objects[i]) ||\n object.isContainedWithinObject(this._objects[i]) ||\n this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\n }\n }\n }\n else {\n newIdx = idx + 1;\n }\n\n return newIdx;\n },\n\n /**\n * Moves an object to specified level in stack of drawn objects\n * @param {fabric.Object} object Object to send\n * @param {Number} index Position to move to\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n moveTo: function (object, index) {\n removeFromArray(this._objects, object);\n this._objects.splice(index, 0, object);\n return this.renderOnAddRemove && this.requestRenderAll();\n },\n\n /**\n * Clears a canvas element and dispose objects\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n dispose: function () {\n // cancel eventually ongoing renders\n if (this.isRendering) {\n fabric.util.cancelAnimFrame(this.isRendering);\n this.isRendering = 0;\n }\n this.forEachObject(function(object) {\n object.dispose && object.dispose();\n });\n this._objects = [];\n if (this.backgroundImage && this.backgroundImage.dispose) {\n this.backgroundImage.dispose();\n }\n this.backgroundImage = null;\n if (this.overlayImage && this.overlayImage.dispose) {\n this.overlayImage.dispose();\n }\n this.overlayImage = null;\n this._iTextInstances = null;\n this.contextContainer = null;\n fabric.util.cleanUpJsdomNode(this.lowerCanvasEl);\n this.lowerCanvasEl = undefined;\n return this;\n },\n\n /**\n * Returns a string representation of an instance\n * @return {String} string representation of an instance\n */\n toString: function () {\n return '#';\n }\n });\n\n extend(fabric.StaticCanvas.prototype, fabric.Observable);\n extend(fabric.StaticCanvas.prototype, fabric.Collection);\n extend(fabric.StaticCanvas.prototype, fabric.DataURLExporter);\n\n extend(fabric.StaticCanvas, /** @lends fabric.StaticCanvas */ {\n\n /**\n * @static\n * @type String\n * @default\n */\n EMPTY_JSON: '{\"objects\": [], \"background\": \"white\"}',\n\n /**\n * Provides a way to check support of some of the canvas methods\n * (either those of HTMLCanvasElement itself, or rendering context)\n *\n * @param {String} methodName Method to check support for;\n * Could be one of \"setLineDash\"\n * @return {Boolean | null} `true` if method is supported (or at least exists),\n * `null` if canvas element or context can not be initialized\n */\n supports: function (methodName) {\n var el = createCanvasElement();\n\n if (!el || !el.getContext) {\n return null;\n }\n\n var ctx = el.getContext('2d');\n if (!ctx) {\n return null;\n }\n\n switch (methodName) {\n\n case 'setLineDash':\n return typeof ctx.setLineDash !== 'undefined';\n\n default:\n return null;\n }\n }\n });\n\n /**\n * Returns JSON representation of canvas\n * @function\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {String} JSON string\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#serialization}\n * @see {@link http://jsfiddle.net/fabricjs/pec86/|jsFiddle demo}\n * @example JSON without additional properties\n * var json = canvas.toJSON();\n * @example JSON with additional properties included\n * var json = canvas.toJSON(['lockMovementX', 'lockMovementY', 'lockRotation', 'lockScalingX', 'lockScalingY']);\n * @example JSON without default values\n * canvas.includeDefaultValues = false;\n * var json = canvas.toJSON();\n */\n fabric.StaticCanvas.prototype.toJSON = fabric.StaticCanvas.prototype.toObject;\n\n if (fabric.isLikelyNode) {\n fabric.StaticCanvas.prototype.createPNGStream = function() {\n var impl = getNodeCanvas(this.lowerCanvasEl);\n return impl && impl.createPNGStream();\n };\n fabric.StaticCanvas.prototype.createJPEGStream = function(opts) {\n var impl = getNodeCanvas(this.lowerCanvasEl);\n return impl && impl.createJPEGStream(opts);\n };\n }\n})();\n\n\n/**\n * BaseBrush class\n * @class fabric.BaseBrush\n * @see {@link http://fabricjs.com/freedrawing|Freedrawing demo}\n */\nfabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype */ {\n\n /**\n * Color of a brush\n * @type String\n * @default\n */\n color: 'rgb(0, 0, 0)',\n\n /**\n * Width of a brush, has to be a Number, no string literals\n * @type Number\n * @default\n */\n width: 1,\n\n /**\n * Shadow object representing shadow of this shape.\n * Backwards incompatibility note: This property replaces \"shadowColor\" (String), \"shadowOffsetX\" (Number),\n * \"shadowOffsetY\" (Number) and \"shadowBlur\" (Number) since v1.2.12\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * Line endings style of a brush (one of \"butt\", \"round\", \"square\")\n * @type String\n * @default\n */\n strokeLineCap: 'round',\n\n /**\n * Corner style of a brush (one of \"bevel\", \"round\", \"miter\")\n * @type String\n * @default\n */\n strokeLineJoin: 'round',\n\n /**\n * Maximum miter length (used for strokeLineJoin = \"miter\") of a brush's\n * @type Number\n * @default\n */\n strokeMiterLimit: 10,\n\n /**\n * Stroke Dash Array.\n * @type Array\n * @default\n */\n strokeDashArray: null,\n\n /**\n * Sets brush styles\n * @private\n */\n _setBrushStyles: function() {\n var ctx = this.canvas.contextTop;\n ctx.strokeStyle = this.color;\n ctx.lineWidth = this.width;\n ctx.lineCap = this.strokeLineCap;\n ctx.miterLimit = this.strokeMiterLimit;\n ctx.lineJoin = this.strokeLineJoin;\n if (fabric.StaticCanvas.supports('setLineDash')) {\n ctx.setLineDash(this.strokeDashArray || []);\n }\n },\n\n /**\n * Sets the transformation on given context\n * @param {RenderingContext2d} ctx context to render on\n * @private\n */\n _saveAndTransform: function(ctx) {\n var v = this.canvas.viewportTransform;\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n },\n\n /**\n * Sets brush shadow styles\n * @private\n */\n _setShadow: function() {\n if (!this.shadow) {\n return;\n }\n\n var canvas = this.canvas,\n shadow = this.shadow,\n ctx = canvas.contextTop,\n zoom = canvas.getZoom();\n if (canvas && canvas._isRetinaScaling()) {\n zoom *= fabric.devicePixelRatio;\n }\n\n ctx.shadowColor = shadow.color;\n ctx.shadowBlur = shadow.blur * zoom;\n ctx.shadowOffsetX = shadow.offsetX * zoom;\n ctx.shadowOffsetY = shadow.offsetY * zoom;\n },\n\n needsFullRender: function() {\n var color = new fabric.Color(this.color);\n return color.getAlpha() < 1 || !!this.shadow;\n },\n\n /**\n * Removes brush shadow styles\n * @private\n */\n _resetShadow: function() {\n var ctx = this.canvas.contextTop;\n\n ctx.shadowColor = '';\n ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0;\n }\n});\n\n\n(function() {\n /**\n * PencilBrush class\n * @class fabric.PencilBrush\n * @extends fabric.BaseBrush\n */\n fabric.PencilBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.PencilBrush.prototype */ {\n\n /**\n * Discard points that are less than `decimate` pixel distant from each other\n * @type Number\n * @default 0.4\n */\n decimate: 0.4,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.PencilBrush} Instance of a pencil brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this._points = [];\n },\n\n /**\n * Invoked inside on mouse down and mouse move\n * @param {Object} pointer\n */\n _drawSegment: function (ctx, p1, p2) {\n var midPoint = p1.midPointFrom(p2);\n ctx.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n return midPoint;\n },\n\n /**\n * Inovoked on mouse down\n * @param {Object} pointer\n */\n onMouseDown: function(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\n this._prepareForDrawing(pointer);\n // capture coordinates immediately\n // this allows to draw dots (when movement never occurs)\n this._captureDrawingPath(pointer);\n this._render();\n },\n\n /**\n * Inovoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\n if (this._captureDrawingPath(pointer) && this._points.length > 1) {\n if (this.needsFullRender()) {\n // redraw curve\n // clear top canvas\n this.canvas.clearContext(this.canvas.contextTop);\n this._render();\n }\n else {\n var points = this._points, length = points.length, ctx = this.canvas.contextTop;\n // draw the curve update\n this._saveAndTransform(ctx);\n if (this.oldEnd) {\n ctx.beginPath();\n ctx.moveTo(this.oldEnd.x, this.oldEnd.y);\n }\n this.oldEnd = this._drawSegment(ctx, points[length - 2], points[length - 1], true);\n ctx.stroke();\n ctx.restore();\n }\n }\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function(options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return true;\n }\n this.oldEnd = undefined;\n this._finalizeAndAddPath();\n return false;\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _prepareForDrawing: function(pointer) {\n\n var p = new fabric.Point(pointer.x, pointer.y);\n\n this._reset();\n this._addPoint(p);\n this.canvas.contextTop.moveTo(p.x, p.y);\n },\n\n /**\n * @private\n * @param {fabric.Point} point Point to be added to points array\n */\n _addPoint: function(point) {\n if (this._points.length > 1 && point.eq(this._points[this._points.length - 1])) {\n return false;\n }\n this._points.push(point);\n return true;\n },\n\n /**\n * Clear points array and set contextTop canvas style.\n * @private\n */\n _reset: function() {\n this._points = [];\n this._setBrushStyles();\n this._setShadow();\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _captureDrawingPath: function(pointer) {\n var pointerPoint = new fabric.Point(pointer.x, pointer.y);\n return this._addPoint(pointerPoint);\n },\n\n /**\n * Draw a smooth path on the topCanvas using quadraticCurveTo\n * @private\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, len,\n p1 = this._points[0],\n p2 = this._points[1];\n\n this._saveAndTransform(ctx);\n ctx.beginPath();\n //if we only have 2 points in the path and they are the same\n //it means that the user only clicked the canvas without moving the mouse\n //then we should be drawing a dot. A path isn't drawn between two identical dots\n //that's why we set them apart a bit\n if (this._points.length === 2 && p1.x === p2.x && p1.y === p2.y) {\n var width = this.width / 1000;\n p1 = new fabric.Point(p1.x, p1.y);\n p2 = new fabric.Point(p2.x, p2.y);\n p1.x -= width;\n p2.x += width;\n }\n ctx.moveTo(p1.x, p1.y);\n\n for (i = 1, len = this._points.length; i < len; i++) {\n // we pick the point between pi + 1 & pi + 2 as the\n // end point and p1 as our control point.\n this._drawSegment(ctx, p1, p2);\n p1 = this._points[i];\n p2 = this._points[i + 1];\n }\n // Draw last line as a straight line while\n // we wait for the next point to be able to calculate\n // the bezier control point\n ctx.lineTo(p1.x, p1.y);\n ctx.stroke();\n ctx.restore();\n },\n\n /**\n * Converts points to SVG path\n * @param {Array} points Array of points\n * @return {String} SVG path\n */\n convertPointsToSVGPath: function(points) {\n var path = [], i, width = this.width / 1000,\n p1 = new fabric.Point(points[0].x, points[0].y),\n p2 = new fabric.Point(points[1].x, points[1].y),\n len = points.length, multSignX = 1, multSignY = 0, manyPoints = len > 2;\n\n if (manyPoints) {\n multSignX = points[2].x < p2.x ? -1 : points[2].x === p2.x ? 0 : 1;\n multSignY = points[2].y < p2.y ? -1 : points[2].y === p2.y ? 0 : 1;\n }\n path.push('M ', p1.x - multSignX * width, ' ', p1.y - multSignY * width, ' ');\n for (i = 1; i < len; i++) {\n if (!p1.eq(p2)) {\n var midPoint = p1.midPointFrom(p2);\n // p1 is our bezier control point\n // midpoint is our endpoint\n // start point is p(i-1) value.\n path.push('Q ', p1.x, ' ', p1.y, ' ', midPoint.x, ' ', midPoint.y, ' ');\n }\n p1 = points[i];\n if ((i + 1) < points.length) {\n p2 = points[i + 1];\n }\n }\n if (manyPoints) {\n multSignX = p1.x > points[i - 2].x ? 1 : p1.x === points[i - 2].x ? 0 : -1;\n multSignY = p1.y > points[i - 2].y ? 1 : p1.y === points[i - 2].y ? 0 : -1;\n }\n path.push('L ', p1.x + multSignX * width, ' ', p1.y + multSignY * width);\n return path;\n },\n\n /**\n * Creates fabric.Path object to add on canvas\n * @param {String} pathData Path data\n * @return {fabric.Path} Path to add on canvas\n */\n createPath: function(pathData) {\n var path = new fabric.Path(pathData, {\n fill: null,\n stroke: this.color,\n strokeWidth: this.width,\n strokeLineCap: this.strokeLineCap,\n strokeMiterLimit: this.strokeMiterLimit,\n strokeLineJoin: this.strokeLineJoin,\n strokeDashArray: this.strokeDashArray,\n });\n if (this.shadow) {\n this.shadow.affectStroke = true;\n path.shadow = new fabric.Shadow(this.shadow);\n }\n\n return path;\n },\n\n /**\n * Decimate poins array with the decimate value\n */\n decimatePoints: function(points, distance) {\n if (points.length <= 2) {\n return points;\n }\n var zoom = this.canvas.getZoom(), adjustedDistance = Math.pow(distance / zoom, 2),\n i, l = points.length - 1, lastPoint = points[0], newPoints = [lastPoint],\n cDistance;\n for (i = 1; i < l; i++) {\n cDistance = Math.pow(lastPoint.x - points[i].x, 2) + Math.pow(lastPoint.y - points[i].y, 2);\n if (cDistance >= adjustedDistance) {\n lastPoint = points[i];\n newPoints.push(lastPoint);\n }\n }\n if (newPoints.length === 1) {\n newPoints.push(new fabric.Point(newPoints[0].x, newPoints[0].y));\n }\n return newPoints;\n },\n\n /**\n * On mouseup after drawing the path on contextTop canvas\n * we use the points captured to create an new fabric path object\n * and add it to the fabric canvas.\n */\n _finalizeAndAddPath: function() {\n var ctx = this.canvas.contextTop;\n ctx.closePath();\n if (this.decimate) {\n this._points = this.decimatePoints(this._points, this.decimate);\n }\n var pathData = this.convertPointsToSVGPath(this._points).join('');\n if (pathData === 'M 0 0 Q 0 0 0 0 L 0 0') {\n // do not create 0 width/height paths, as they are\n // rendered inconsistently across browsers\n // Firefox 4, for example, renders a dot,\n // whereas Chrome 10 renders nothing\n this.canvas.requestRenderAll();\n return;\n }\n\n var path = this.createPath(pathData);\n this.canvas.clearContext(this.canvas.contextTop);\n this.canvas.fire('before:path:created', { path: path });\n this.canvas.add(path);\n this.canvas.requestRenderAll();\n path.setCoords();\n this._resetShadow();\n\n\n // fire event 'path' created\n this.canvas.fire('path:created', { path: path });\n }\n });\n})();\n\n\n/**\n * CircleBrush class\n * @class fabric.CircleBrush\n */\nfabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.CircleBrush.prototype */ {\n\n /**\n * Width of a brush\n * @type Number\n * @default\n */\n width: 10,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.CircleBrush} Instance of a circle brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this.points = [];\n },\n\n /**\n * Invoked inside on mouse down and mouse move\n * @param {Object} pointer\n */\n drawDot: function(pointer) {\n var point = this.addPoint(pointer),\n ctx = this.canvas.contextTop;\n this._saveAndTransform(ctx);\n this.dot(ctx, point);\n ctx.restore();\n },\n\n dot: function(ctx, point) {\n ctx.fillStyle = point.fill;\n ctx.beginPath();\n ctx.arc(point.x, point.y, point.radius, 0, Math.PI * 2, false);\n ctx.closePath();\n ctx.fill();\n },\n\n /**\n * Invoked on mouse down\n */\n onMouseDown: function(pointer) {\n this.points.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n this._setShadow();\n this.drawDot(pointer);\n },\n\n /**\n * Render the full state of the brush\n * @private\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, len,\n points = this.points;\n this._saveAndTransform(ctx);\n for (i = 0, len = points.length; i < len; i++) {\n this.dot(ctx, points[i]);\n }\n ctx.restore();\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer) {\n if (this.needsFullRender()) {\n this.canvas.clearContext(this.canvas.contextTop);\n this.addPoint(pointer);\n this._render();\n }\n else {\n this.drawDot(pointer);\n }\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove, i, len;\n this.canvas.renderOnAddRemove = false;\n\n var circles = [];\n\n for (i = 0, len = this.points.length; i < len; i++) {\n var point = this.points[i],\n circle = new fabric.Circle({\n radius: point.radius,\n left: point.x,\n top: point.y,\n originX: 'center',\n originY: 'center',\n fill: point.fill\n });\n\n this.shadow && (circle.shadow = new fabric.Shadow(this.shadow));\n\n circles.push(circle);\n }\n var group = new fabric.Group(circles);\n group.canvas = this.canvas;\n\n this.canvas.fire('before:path:created', { path: group });\n this.canvas.add(group);\n this.canvas.fire('path:created', { path: group });\n\n this.canvas.clearContext(this.canvas.contextTop);\n this._resetShadow();\n this.canvas.renderOnAddRemove = originalRenderOnAddRemove;\n this.canvas.requestRenderAll();\n },\n\n /**\n * @param {Object} pointer\n * @return {fabric.Point} Just added pointer point\n */\n addPoint: function(pointer) {\n var pointerPoint = new fabric.Point(pointer.x, pointer.y),\n\n circleRadius = fabric.util.getRandomInt(\n Math.max(0, this.width - 20), this.width + 20) / 2,\n\n circleColor = new fabric.Color(this.color)\n .setAlpha(fabric.util.getRandomInt(0, 100) / 100)\n .toRgba();\n\n pointerPoint.radius = circleRadius;\n pointerPoint.fill = circleColor;\n\n this.points.push(pointerPoint);\n\n return pointerPoint;\n }\n});\n\n\n/**\n * SprayBrush class\n * @class fabric.SprayBrush\n */\nfabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric.SprayBrush.prototype */ {\n\n /**\n * Width of a spray\n * @type Number\n * @default\n */\n width: 10,\n\n /**\n * Density of a spray (number of dots per chunk)\n * @type Number\n * @default\n */\n density: 20,\n\n /**\n * Width of spray dots\n * @type Number\n * @default\n */\n dotWidth: 1,\n\n /**\n * Width variance of spray dots\n * @type Number\n * @default\n */\n dotWidthVariance: 1,\n\n /**\n * Whether opacity of a dot should be random\n * @type Boolean\n * @default\n */\n randomOpacity: false,\n\n /**\n * Whether overlapping dots (rectangles) should be removed (for performance reasons)\n * @type Boolean\n * @default\n */\n optimizeOverlapping: true,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.SprayBrush} Instance of a spray brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this.sprayChunks = [];\n },\n\n /**\n * Invoked on mouse down\n * @param {Object} pointer\n */\n onMouseDown: function(pointer) {\n this.sprayChunks.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n this._setShadow();\n\n this.addSprayChunk(pointer);\n this.render(this.sprayChunkPoints);\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer) {\n this.addSprayChunk(pointer);\n this.render(this.sprayChunkPoints);\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove;\n this.canvas.renderOnAddRemove = false;\n\n var rects = [];\n\n for (var i = 0, ilen = this.sprayChunks.length; i < ilen; i++) {\n var sprayChunk = this.sprayChunks[i];\n\n for (var j = 0, jlen = sprayChunk.length; j < jlen; j++) {\n\n var rect = new fabric.Rect({\n width: sprayChunk[j].width,\n height: sprayChunk[j].width,\n left: sprayChunk[j].x + 1,\n top: sprayChunk[j].y + 1,\n originX: 'center',\n originY: 'center',\n fill: this.color\n });\n rects.push(rect);\n }\n }\n\n if (this.optimizeOverlapping) {\n rects = this._getOptimizedRects(rects);\n }\n\n var group = new fabric.Group(rects);\n this.shadow && group.set('shadow', new fabric.Shadow(this.shadow));\n this.canvas.fire('before:path:created', { path: group });\n this.canvas.add(group);\n this.canvas.fire('path:created', { path: group });\n\n this.canvas.clearContext(this.canvas.contextTop);\n this._resetShadow();\n this.canvas.renderOnAddRemove = originalRenderOnAddRemove;\n this.canvas.requestRenderAll();\n },\n\n /**\n * @private\n * @param {Array} rects\n */\n _getOptimizedRects: function(rects) {\n\n // avoid creating duplicate rects at the same coordinates\n var uniqueRects = { }, key, i, len;\n\n for (i = 0, len = rects.length; i < len; i++) {\n key = rects[i].left + '' + rects[i].top;\n if (!uniqueRects[key]) {\n uniqueRects[key] = rects[i];\n }\n }\n var uniqueRectsArray = [];\n for (key in uniqueRects) {\n uniqueRectsArray.push(uniqueRects[key]);\n }\n\n return uniqueRectsArray;\n },\n\n /**\n * Render new chunk of spray brush\n */\n render: function(sprayChunk) {\n var ctx = this.canvas.contextTop, i, len;\n ctx.fillStyle = this.color;\n\n this._saveAndTransform(ctx);\n\n for (i = 0, len = sprayChunk.length; i < len; i++) {\n var point = sprayChunk[i];\n if (typeof point.opacity !== 'undefined') {\n ctx.globalAlpha = point.opacity;\n }\n ctx.fillRect(point.x, point.y, point.width, point.width);\n }\n ctx.restore();\n },\n\n /**\n * Render all spray chunks\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, ilen;\n ctx.fillStyle = this.color;\n\n this._saveAndTransform(ctx);\n\n for (i = 0, ilen = this.sprayChunks.length; i < ilen; i++) {\n this.render(this.sprayChunks[i]);\n }\n ctx.restore();\n },\n\n /**\n * @param {Object} pointer\n */\n addSprayChunk: function(pointer) {\n this.sprayChunkPoints = [];\n\n var x, y, width, radius = this.width / 2, i;\n\n for (i = 0; i < this.density; i++) {\n\n x = fabric.util.getRandomInt(pointer.x - radius, pointer.x + radius);\n y = fabric.util.getRandomInt(pointer.y - radius, pointer.y + radius);\n\n if (this.dotWidthVariance) {\n width = fabric.util.getRandomInt(\n // bottom clamp width to 1\n Math.max(1, this.dotWidth - this.dotWidthVariance),\n this.dotWidth + this.dotWidthVariance);\n }\n else {\n width = this.dotWidth;\n }\n\n var point = new fabric.Point(x, y);\n point.width = width;\n\n if (this.randomOpacity) {\n point.opacity = fabric.util.getRandomInt(0, 100) / 100;\n }\n\n this.sprayChunkPoints.push(point);\n }\n\n this.sprayChunks.push(this.sprayChunkPoints);\n }\n});\n\n\n/**\n * PatternBrush class\n * @class fabric.PatternBrush\n * @extends fabric.BaseBrush\n */\nfabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fabric.PatternBrush.prototype */ {\n\n getPatternSrc: function() {\n\n var dotWidth = 20,\n dotDistance = 5,\n patternCanvas = fabric.util.createCanvasElement(),\n patternCtx = patternCanvas.getContext('2d');\n\n patternCanvas.width = patternCanvas.height = dotWidth + dotDistance;\n\n patternCtx.fillStyle = this.color;\n patternCtx.beginPath();\n patternCtx.arc(dotWidth / 2, dotWidth / 2, dotWidth / 2, 0, Math.PI * 2, false);\n patternCtx.closePath();\n patternCtx.fill();\n\n return patternCanvas;\n },\n\n getPatternSrcFunction: function() {\n return String(this.getPatternSrc).replace('this.color', '\"' + this.color + '\"');\n },\n\n /**\n * Creates \"pattern\" instance property\n */\n getPattern: function() {\n return this.canvas.contextTop.createPattern(this.source || this.getPatternSrc(), 'repeat');\n },\n\n /**\n * Sets brush styles\n */\n _setBrushStyles: function() {\n this.callSuper('_setBrushStyles');\n this.canvas.contextTop.strokeStyle = this.getPattern();\n },\n\n /**\n * Creates path\n */\n createPath: function(pathData) {\n var path = this.callSuper('createPath', pathData),\n topLeft = path._getLeftTopCoords().scalarAdd(path.strokeWidth / 2);\n\n path.stroke = new fabric.Pattern({\n source: this.source || this.getPatternSrcFunction(),\n offsetX: -topLeft.x,\n offsetY: -topLeft.y\n });\n return path;\n }\n});\n\n\n(function() {\n\n var getPointer = fabric.util.getPointer,\n degreesToRadians = fabric.util.degreesToRadians,\n abs = Math.abs,\n supportLineDash = fabric.StaticCanvas.supports('setLineDash'),\n isTouchEvent = fabric.util.isTouchEvent,\n STROKE_OFFSET = 0.5;\n\n /**\n * Canvas class\n * @class fabric.Canvas\n * @extends fabric.StaticCanvas\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#canvas}\n * @see {@link fabric.Canvas#initialize} for constructor definition\n *\n * @fires object:modified at the end of a transform or any change when statefull is true\n * @fires object:rotating while an object is being rotated from the control\n * @fires object:scaling while an object is being scaled by controls\n * @fires object:moving while an object is being dragged\n * @fires object:skewing while an object is being skewed from the controls\n *\n * @fires before:transform before a transform is is started\n * @fires before:selection:cleared\n * @fires selection:cleared\n * @fires selection:updated\n * @fires selection:created\n *\n * @fires path:created after a drawing operation ends and the path is added\n * @fires mouse:down\n * @fires mouse:move\n * @fires mouse:up\n * @fires mouse:down:before on mouse down, before the inner fabric logic runs\n * @fires mouse:move:before on mouse move, before the inner fabric logic runs\n * @fires mouse:up:before on mouse up, before the inner fabric logic runs\n * @fires mouse:over\n * @fires mouse:out\n * @fires mouse:dblclick whenever a native dbl click event fires on the canvas.\n *\n * @fires dragover\n * @fires dragenter\n * @fires dragleave\n * @fires drop\n * @fires after:render at the end of the render process, receives the context in the callback\n * @fires before:render at start the render process, receives the context in the callback\n *\n * the following events are deprecated:\n * @fires object:rotated at the end of a rotation transform\n * @fires object:scaled at the end of a scale transform\n * @fires object:moved at the end of translation transform\n * @fires object:skewed at the end of a skew transform\n */\n fabric.Canvas = fabric.util.createClass(fabric.StaticCanvas, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * Constructor\n * @param {HTMLElement | String} el <canvas> element to initialize instance on\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(el, options) {\n options || (options = { });\n this.renderAndResetBound = this.renderAndReset.bind(this);\n this.requestRenderAllBound = this.requestRenderAll.bind(this);\n this._initStatic(el, options);\n this._initInteractive();\n this._createCacheCanvas();\n },\n\n /**\n * When true, objects can be transformed by one side (unproportionally)\n * when dragged on the corners that normally would not do that.\n * @type Boolean\n * @default\n * @since fabric 4.0 // changed name and default value\n */\n uniformScaling: true,\n\n /**\n * Indicates which key switches uniform scaling.\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled.\n * totally wrong named. this sounds like `uniform scaling`\n * if Canvas.uniformScaling is true, pressing this will set it to false\n * and viceversa.\n * @since 1.6.2\n * @type String\n * @default\n */\n uniScaleKey: 'shiftKey',\n\n /**\n * When true, objects use center point as the origin of scale transformation.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredScaling: false,\n\n /**\n * When true, objects use center point as the origin of rotate transformation.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredRotation: false,\n\n /**\n * Indicates which key enable centered Transform\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled feature disabled.\n * @since 1.6.2\n * @type String\n * @default\n */\n centeredKey: 'altKey',\n\n /**\n * Indicates which key enable alternate action on corner\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled feature disabled.\n * @since 1.6.2\n * @type String\n * @default\n */\n altActionKey: 'shiftKey',\n\n /**\n * Indicates that canvas is interactive. This property should not be changed.\n * @type Boolean\n * @default\n */\n interactive: true,\n\n /**\n * Indicates whether group selection should be enabled\n * @type Boolean\n * @default\n */\n selection: true,\n\n /**\n * Indicates which key or keys enable multiple click selection\n * Pass value as a string or array of strings\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or empty or containing any other string that is not a modifier key\n * feature is disabled.\n * @since 1.6.2\n * @type String|Array\n * @default\n */\n selectionKey: 'shiftKey',\n\n /**\n * Indicates which key enable alternative selection\n * in case of target overlapping with active object\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * For a series of reason that come from the general expectations on how\n * things should work, this feature works only for preserveObjectStacking true.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled.\n * @since 1.6.5\n * @type null|String\n * @default\n */\n altSelectionKey: null,\n\n /**\n * Color of selection\n * @type String\n * @default\n */\n selectionColor: 'rgba(100, 100, 255, 0.3)', // blue\n\n /**\n * Default dash array pattern\n * If not empty the selection border is dashed\n * @type Array\n */\n selectionDashArray: [],\n\n /**\n * Color of the border of selection (usually slightly darker than color of selection itself)\n * @type String\n * @default\n */\n selectionBorderColor: 'rgba(255, 255, 255, 0.3)',\n\n /**\n * Width of a line used in object/group selection\n * @type Number\n * @default\n */\n selectionLineWidth: 1,\n\n /**\n * Select only shapes that are fully contained in the dragged selection rectangle.\n * @type Boolean\n * @default\n */\n selectionFullyContained: false,\n\n /**\n * Default cursor value used when hovering over an object on canvas\n * @type String\n * @default\n */\n hoverCursor: 'move',\n\n /**\n * Default cursor value used when moving an object on canvas\n * @type String\n * @default\n */\n moveCursor: 'move',\n\n /**\n * Default cursor value used for the entire canvas\n * @type String\n * @default\n */\n defaultCursor: 'default',\n\n /**\n * Cursor value used during free drawing\n * @type String\n * @default\n */\n freeDrawingCursor: 'crosshair',\n\n /**\n * Cursor value used for rotation point\n * @type String\n * @default\n */\n rotationCursor: 'crosshair',\n\n /**\n * Cursor value used for disabled elements ( corners with disabled action )\n * @type String\n * @since 2.0.0\n * @default\n */\n notAllowedCursor: 'not-allowed',\n\n /**\n * Default element class that's given to wrapper (div) element of canvas\n * @type String\n * @default\n */\n containerClass: 'canvas-container',\n\n /**\n * When true, object detection happens on per-pixel basis rather than on per-bounding-box\n * @type Boolean\n * @default\n */\n perPixelTargetFind: false,\n\n /**\n * Number of pixels around target pixel to tolerate (consider active) during object detection\n * @type Number\n * @default\n */\n targetFindTolerance: 0,\n\n /**\n * When true, target detection is skipped. Target detection will return always undefined.\n * click selection won't work anymore, events will fire with no targets.\n * if something is selected before setting it to true, it will be deselected at the first click.\n * area selection will still work. check the `selection` property too.\n * if you deactivate both, you should look into staticCanvas.\n * @type Boolean\n * @default\n */\n skipTargetFind: false,\n\n /**\n * When true, mouse events on canvas (mousedown/mousemove/mouseup) result in free drawing.\n * After mousedown, mousemove creates a shape,\n * and then mouseup finalizes it and adds an instance of `fabric.Path` onto canvas.\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-4#free_drawing}\n * @type Boolean\n * @default\n */\n isDrawingMode: false,\n\n /**\n * Indicates whether objects should remain in current stack position when selected.\n * When false objects are brought to top and rendered as part of the selection group\n * @type Boolean\n * @default\n */\n preserveObjectStacking: false,\n\n /**\n * Indicates the angle that an object will lock to while rotating.\n * @type Number\n * @since 1.6.7\n * @default\n */\n snapAngle: 0,\n\n /**\n * Indicates the distance from the snapAngle the rotation will lock to the snapAngle.\n * When `null`, the snapThreshold will default to the snapAngle.\n * @type null|Number\n * @since 1.6.7\n * @default\n */\n snapThreshold: null,\n\n /**\n * Indicates if the right click on canvas can output the context menu or not\n * @type Boolean\n * @since 1.6.5\n * @default\n */\n stopContextMenu: false,\n\n /**\n * Indicates if the canvas can fire right click events\n * @type Boolean\n * @since 1.6.5\n * @default\n */\n fireRightClick: false,\n\n /**\n * Indicates if the canvas can fire middle click events\n * @type Boolean\n * @since 1.7.8\n * @default\n */\n fireMiddleClick: false,\n\n /**\n * Keep track of the subTargets for Mouse Events\n * @type fabric.Object[]\n */\n targets: [],\n\n /**\n * Keep track of the hovered target\n * @type fabric.Object\n * @private\n */\n _hoveredTarget: null,\n\n /**\n * hold the list of nested targets hovered\n * @type fabric.Object[]\n * @private\n */\n _hoveredTargets: [],\n\n /**\n * @private\n */\n _initInteractive: function() {\n this._currentTransform = null;\n this._groupSelector = null;\n this._initWrapperElement();\n this._createUpperCanvas();\n this._initEventListeners();\n\n this._initRetinaScaling();\n\n this.freeDrawingBrush = fabric.PencilBrush && new fabric.PencilBrush(this);\n\n this.calcOffset();\n },\n\n /**\n * Divides objects in two groups, one to render immediately\n * and one to render as activeGroup.\n * @return {Array} objects to render immediately and pushes the other in the activeGroup.\n */\n _chooseObjectsToRender: function() {\n var activeObjects = this.getActiveObjects(),\n object, objsToRender, activeGroupObjects;\n\n if (activeObjects.length > 0 && !this.preserveObjectStacking) {\n objsToRender = [];\n activeGroupObjects = [];\n for (var i = 0, length = this._objects.length; i < length; i++) {\n object = this._objects[i];\n if (activeObjects.indexOf(object) === -1 ) {\n objsToRender.push(object);\n }\n else {\n activeGroupObjects.push(object);\n }\n }\n if (activeObjects.length > 1) {\n this._activeObject._objects = activeGroupObjects;\n }\n objsToRender.push.apply(objsToRender, activeGroupObjects);\n }\n else {\n objsToRender = this._objects;\n }\n return objsToRender;\n },\n\n /**\n * Renders both the top canvas and the secondary container canvas.\n * @return {fabric.Canvas} instance\n * @chainable\n */\n renderAll: function () {\n if (this.contextTopDirty && !this._groupSelector && !this.isDrawingMode) {\n this.clearContext(this.contextTop);\n this.contextTopDirty = false;\n }\n if (this.hasLostContext) {\n this.renderTopLayer(this.contextTop);\n }\n var canvasToDrawOn = this.contextContainer;\n this.renderCanvas(canvasToDrawOn, this._chooseObjectsToRender());\n return this;\n },\n\n renderTopLayer: function(ctx) {\n ctx.save();\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this.freeDrawingBrush && this.freeDrawingBrush._render();\n this.contextTopDirty = true;\n }\n // we render the top context - last object\n if (this.selection && this._groupSelector) {\n this._drawSelection(ctx);\n this.contextTopDirty = true;\n }\n ctx.restore();\n },\n\n /**\n * Method to render only the top canvas.\n * Also used to render the group selection box.\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n renderTop: function () {\n var ctx = this.contextTop;\n this.clearContext(ctx);\n this.renderTopLayer(ctx);\n this.fire('after:render');\n return this;\n },\n\n /**\n * @private\n */\n _normalizePointer: function (object, pointer) {\n var m = object.calcTransformMatrix(),\n invertedM = fabric.util.invertTransform(m),\n vptPointer = this.restorePointerVpt(pointer);\n return fabric.util.transformPoint(vptPointer, invertedM);\n },\n\n /**\n * Returns true if object is transparent at a certain location\n * @param {fabric.Object} target Object to check\n * @param {Number} x Left coordinate\n * @param {Number} y Top coordinate\n * @return {Boolean}\n */\n isTargetTransparent: function (target, x, y) {\n // in case the target is the activeObject, we cannot execute this optimization\n // because we need to draw controls too.\n if (target.shouldCache() && target._cacheCanvas && target !== this._activeObject) {\n var normalizedPointer = this._normalizePointer(target, {x: x, y: y}),\n targetRelativeX = Math.max(target.cacheTranslationX + (normalizedPointer.x * target.zoomX), 0),\n targetRelativeY = Math.max(target.cacheTranslationY + (normalizedPointer.y * target.zoomY), 0);\n\n var isTransparent = fabric.util.isTransparent(\n target._cacheContext, Math.round(targetRelativeX), Math.round(targetRelativeY), this.targetFindTolerance);\n\n return isTransparent;\n }\n\n var ctx = this.contextCache,\n originalColor = target.selectionBackgroundColor, v = this.viewportTransform;\n\n target.selectionBackgroundColor = '';\n\n this.clearContext(ctx);\n\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n target.render(ctx);\n ctx.restore();\n\n target === this._activeObject && target._renderControls(ctx, {\n hasBorders: false,\n transparentCorners: false\n }, {\n hasBorders: false,\n });\n\n target.selectionBackgroundColor = originalColor;\n\n var isTransparent = fabric.util.isTransparent(\n ctx, x, y, this.targetFindTolerance);\n\n return isTransparent;\n },\n\n /**\n * takes an event and determins if selection key has been pressed\n * @private\n * @param {Event} e Event object\n */\n _isSelectionKeyPressed: function(e) {\n var selectionKeyPressed = false;\n\n if (Object.prototype.toString.call(this.selectionKey) === '[object Array]') {\n selectionKeyPressed = !!this.selectionKey.find(function(key) { return e[key] === true; });\n }\n else {\n selectionKeyPressed = e[this.selectionKey];\n }\n\n return selectionKeyPressed;\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _shouldClearSelection: function (e, target) {\n var activeObjects = this.getActiveObjects(),\n activeObject = this._activeObject;\n\n return (\n !target\n ||\n (target &&\n activeObject &&\n activeObjects.length > 1 &&\n activeObjects.indexOf(target) === -1 &&\n activeObject !== target &&\n !this._isSelectionKeyPressed(e))\n ||\n (target && !target.evented)\n ||\n (target &&\n !target.selectable &&\n activeObject &&\n activeObject !== target)\n );\n },\n\n /**\n * centeredScaling from object can't override centeredScaling from canvas.\n * this should be fixed, since object setting should take precedence over canvas.\n * also this should be something that will be migrated in the control properties.\n * as ability to define the origin of the transformation that the control provide.\n * @private\n * @param {fabric.Object} target\n * @param {String} action\n * @param {Boolean} altKey\n */\n _shouldCenterTransform: function (target, action, altKey) {\n if (!target) {\n return;\n }\n\n var centerTransform;\n\n if (action === 'scale' || action === 'scaleX' || action === 'scaleY' || action === 'resizing') {\n centerTransform = this.centeredScaling || target.centeredScaling;\n }\n else if (action === 'rotate') {\n centerTransform = this.centeredRotation || target.centeredRotation;\n }\n\n return centerTransform ? !altKey : altKey;\n },\n\n /**\n * should disappear before release 4.0\n * @private\n */\n _getOriginFromCorner: function(target, corner) {\n var origin = {\n x: target.originX,\n y: target.originY\n };\n\n if (corner === 'ml' || corner === 'tl' || corner === 'bl') {\n origin.x = 'right';\n }\n else if (corner === 'mr' || corner === 'tr' || corner === 'br') {\n origin.x = 'left';\n }\n\n if (corner === 'tl' || corner === 'mt' || corner === 'tr') {\n origin.y = 'bottom';\n }\n else if (corner === 'bl' || corner === 'mb' || corner === 'br') {\n origin.y = 'top';\n }\n else if (corner === 'mtr') {\n origin.x = 'center';\n origin.y = 'center';\n }\n return origin;\n },\n\n /**\n * @private\n * @param {Boolean} alreadySelected true if target is already selected\n * @param {String} corner a string representing the corner ml, mr, tl ...\n * @param {Event} e Event object\n * @param {fabric.Object} [target] inserted back to help overriding. Unused\n */\n _getActionFromCorner: function(alreadySelected, corner, e, target) {\n if (!corner || !alreadySelected) {\n return 'drag';\n }\n var control = target.controls[corner];\n return control.getActionName(e, control, target);\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _setupCurrentTransform: function (e, target, alreadySelected) {\n if (!target) {\n return;\n }\n\n var pointer = this.getPointer(e), corner = target.__corner,\n actionHandler = (alreadySelected && corner) ?\n target.controls[corner].getActionHandler() : fabric.controlsUtils.dragHandler,\n action = this._getActionFromCorner(alreadySelected, corner, e, target),\n origin = this._getOriginFromCorner(target, corner),\n altKey = e[this.centeredKey],\n transform = {\n target: target,\n action: action,\n actionHandler: actionHandler,\n corner: corner,\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n skewX: target.skewX,\n skewY: target.skewY,\n // used by transation\n offsetX: pointer.x - target.left,\n offsetY: pointer.y - target.top,\n originX: origin.x,\n originY: origin.y,\n ex: pointer.x,\n ey: pointer.y,\n lastX: pointer.x,\n lastY: pointer.y,\n // unsure they are useful anymore.\n // left: target.left,\n // top: target.top,\n theta: degreesToRadians(target.angle),\n // end of unsure\n width: target.width * target.scaleX,\n shiftKey: e.shiftKey,\n altKey: altKey,\n original: fabric.util.saveObjectTransform(target),\n };\n\n if (this._shouldCenterTransform(target, action, altKey)) {\n transform.originX = 'center';\n transform.originY = 'center';\n }\n transform.original.originX = origin.x;\n transform.original.originY = origin.y;\n this._currentTransform = transform;\n this._beforeTransform(e);\n },\n\n /**\n * Set the cursor type of the canvas element\n * @param {String} value Cursor type of the canvas element.\n * @see http://www.w3.org/TR/css3-ui/#cursor\n */\n setCursor: function (value) {\n this.upperCanvasEl.style.cursor = value;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx to draw the selection on\n */\n _drawSelection: function (ctx) {\n var groupSelector = this._groupSelector,\n left = groupSelector.left,\n top = groupSelector.top,\n aleft = abs(left),\n atop = abs(top);\n\n if (this.selectionColor) {\n ctx.fillStyle = this.selectionColor;\n\n ctx.fillRect(\n groupSelector.ex - ((left > 0) ? 0 : -left),\n groupSelector.ey - ((top > 0) ? 0 : -top),\n aleft,\n atop\n );\n }\n\n if (!this.selectionLineWidth || !this.selectionBorderColor) {\n return;\n }\n ctx.lineWidth = this.selectionLineWidth;\n ctx.strokeStyle = this.selectionBorderColor;\n\n // selection border\n if (this.selectionDashArray.length > 1 && !supportLineDash) {\n\n var px = groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft),\n py = groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop);\n\n ctx.beginPath();\n\n fabric.util.drawDashedLine(ctx, px, py, px + aleft, py, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px, py + atop - 1, px + aleft, py + atop - 1, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px, py, px, py + atop, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px + aleft - 1, py, px + aleft - 1, py + atop, this.selectionDashArray);\n\n ctx.closePath();\n ctx.stroke();\n }\n else {\n fabric.Object.prototype._setLineDash.call(this, ctx, this.selectionDashArray);\n ctx.strokeRect(\n groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft),\n groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop),\n aleft,\n atop\n );\n }\n },\n\n /**\n * Method that determines what object we are clicking on\n * the skipGroup parameter is for internal use, is needed for shift+click action\n * 11/09/2018 TODO: would be cool if findTarget could discern between being a full target\n * or the outside part of the corner.\n * @param {Event} e mouse event\n * @param {Boolean} skipGroup when true, activeGroup is skipped and only objects are traversed through\n * @return {fabric.Object} the target found\n */\n findTarget: function (e, skipGroup) {\n if (this.skipTargetFind) {\n return;\n }\n\n var ignoreZoom = true,\n pointer = this.getPointer(e, ignoreZoom),\n activeObject = this._activeObject,\n aObjects = this.getActiveObjects(),\n activeTarget, activeTargetSubs,\n isTouch = isTouchEvent(e);\n\n // first check current group (if one exists)\n // active group does not check sub targets like normal groups.\n // if active group just exits.\n this.targets = [];\n\n if (aObjects.length > 1 && !skipGroup && activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n return activeObject;\n }\n // if we hit the corner of an activeObject, let's return that.\n if (aObjects.length === 1 && activeObject._findTargetCorner(pointer, isTouch)) {\n return activeObject;\n }\n if (aObjects.length === 1 &&\n activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n if (!this.preserveObjectStacking) {\n return activeObject;\n }\n else {\n activeTarget = activeObject;\n activeTargetSubs = this.targets;\n this.targets = [];\n }\n }\n var target = this._searchPossibleTargets(this._objects, pointer);\n if (e[this.altSelectionKey] && target && activeTarget && target !== activeTarget) {\n target = activeTarget;\n this.targets = activeTargetSubs;\n }\n return target;\n },\n\n /**\n * Checks point is inside the object.\n * @param {Object} [pointer] x,y object of point coordinates we want to check.\n * @param {fabric.Object} obj Object to test against\n * @param {Object} [globalPointer] x,y object of point coordinates relative to canvas used to search per pixel target.\n * @return {Boolean} true if point is contained within an area of given object\n * @private\n */\n _checkTarget: function(pointer, obj, globalPointer) {\n if (obj &&\n obj.visible &&\n obj.evented &&\n // http://www.geog.ubc.ca/courses/klink/gis.notes/ncgia/u32.html\n // http://idav.ucdavis.edu/~okreylos/TAship/Spring2000/PointInPolygon.html\n (obj.containsPoint(pointer) || !!obj._findTargetCorner(pointer))\n ) {\n if ((this.perPixelTargetFind || obj.perPixelTargetFind) && !obj.isEditing) {\n var isTransparent = this.isTargetTransparent(obj, globalPointer.x, globalPointer.y);\n if (!isTransparent) {\n return true;\n }\n }\n else {\n return true;\n }\n }\n },\n\n /**\n * Function used to search inside objects an object that contains pointer in bounding box or that contains pointerOnCanvas when painted\n * @param {Array} [objects] objects array to look into\n * @param {Object} [pointer] x,y object of point coordinates we want to check.\n * @return {fabric.Object} object that contains pointer\n * @private\n */\n _searchPossibleTargets: function(objects, pointer) {\n // Cache all targets where their bounding box contains point.\n var target, i = objects.length, subTarget;\n // Do not check for currently grouped objects, since we check the parent group itself.\n // until we call this function specifically to search inside the activeGroup\n while (i--) {\n var objToCheck = objects[i];\n var pointerToUse = objToCheck.group ?\n this._normalizePointer(objToCheck.group, pointer) : pointer;\n if (this._checkTarget(pointerToUse, objToCheck, pointer)) {\n target = objects[i];\n if (target.subTargetCheck && target instanceof fabric.Group) {\n subTarget = this._searchPossibleTargets(target._objects, pointer);\n subTarget && this.targets.push(subTarget);\n }\n break;\n }\n }\n return target;\n },\n\n /**\n * Returns pointer coordinates without the effect of the viewport\n * @param {Object} pointer with \"x\" and \"y\" number values\n * @return {Object} object with \"x\" and \"y\" number values\n */\n restorePointerVpt: function(pointer) {\n return fabric.util.transformPoint(\n pointer,\n fabric.util.invertTransform(this.viewportTransform)\n );\n },\n\n /**\n * Returns pointer coordinates relative to canvas.\n * Can return coordinates with or without viewportTransform.\n * ignoreZoom false gives back coordinates that represent\n * the point clicked on canvas element.\n * ignoreZoom true gives back coordinates after being processed\n * by the viewportTransform ( sort of coordinates of what is displayed\n * on the canvas where you are clicking.\n * ignoreZoom true = HTMLElement coordinates relative to top,left\n * ignoreZoom false, default = fabric space coordinates, the same used for shape position\n * To interact with your shapes top and left you want to use ignoreZoom true\n * most of the time, while ignoreZoom false will give you coordinates\n * compatible with the object.oCoords system.\n * of the time.\n * @param {Event} e\n * @param {Boolean} ignoreZoom\n * @return {Object} object with \"x\" and \"y\" number values\n */\n getPointer: function (e, ignoreZoom) {\n // return cached values if we are in the event processing chain\n if (this._absolutePointer && !ignoreZoom) {\n return this._absolutePointer;\n }\n if (this._pointer && ignoreZoom) {\n return this._pointer;\n }\n\n var pointer = getPointer(e),\n upperCanvasEl = this.upperCanvasEl,\n bounds = upperCanvasEl.getBoundingClientRect(),\n boundsWidth = bounds.width || 0,\n boundsHeight = bounds.height || 0,\n cssScale;\n\n if (!boundsWidth || !boundsHeight ) {\n if ('top' in bounds && 'bottom' in bounds) {\n boundsHeight = Math.abs( bounds.top - bounds.bottom );\n }\n if ('right' in bounds && 'left' in bounds) {\n boundsWidth = Math.abs( bounds.right - bounds.left );\n }\n }\n\n this.calcOffset();\n pointer.x = pointer.x - this._offset.left;\n pointer.y = pointer.y - this._offset.top;\n if (!ignoreZoom) {\n pointer = this.restorePointerVpt(pointer);\n }\n\n var retinaScaling = this.getRetinaScaling();\n if (retinaScaling !== 1) {\n pointer.x /= retinaScaling;\n pointer.y /= retinaScaling;\n }\n\n if (boundsWidth === 0 || boundsHeight === 0) {\n // If bounds are not available (i.e. not visible), do not apply scale.\n cssScale = { width: 1, height: 1 };\n }\n else {\n cssScale = {\n width: upperCanvasEl.width / boundsWidth,\n height: upperCanvasEl.height / boundsHeight\n };\n }\n\n return {\n x: pointer.x * cssScale.width,\n y: pointer.y * cssScale.height\n };\n },\n\n /**\n * @private\n * @throws {CANVAS_INIT_ERROR} If canvas can not be initialized\n */\n _createUpperCanvas: function () {\n var lowerCanvasClass = this.lowerCanvasEl.className.replace(/\\s*lower-canvas\\s*/, ''),\n lowerCanvasEl = this.lowerCanvasEl, upperCanvasEl = this.upperCanvasEl;\n\n // there is no need to create a new upperCanvas element if we have already one.\n if (upperCanvasEl) {\n upperCanvasEl.className = '';\n }\n else {\n upperCanvasEl = this._createCanvasElement();\n this.upperCanvasEl = upperCanvasEl;\n }\n fabric.util.addClass(upperCanvasEl, 'upper-canvas ' + lowerCanvasClass);\n\n this.wrapperEl.appendChild(upperCanvasEl);\n\n this._copyCanvasStyle(lowerCanvasEl, upperCanvasEl);\n this._applyCanvasStyle(upperCanvasEl);\n this.contextTop = upperCanvasEl.getContext('2d');\n },\n\n /**\n * @private\n */\n _createCacheCanvas: function () {\n this.cacheCanvasEl = this._createCanvasElement();\n this.cacheCanvasEl.setAttribute('width', this.width);\n this.cacheCanvasEl.setAttribute('height', this.height);\n this.contextCache = this.cacheCanvasEl.getContext('2d');\n },\n\n /**\n * @private\n */\n _initWrapperElement: function () {\n this.wrapperEl = fabric.util.wrapElement(this.lowerCanvasEl, 'div', {\n 'class': this.containerClass\n });\n fabric.util.setStyle(this.wrapperEl, {\n width: this.width + 'px',\n height: this.height + 'px',\n position: 'relative'\n });\n fabric.util.makeElementUnselectable(this.wrapperEl);\n },\n\n /**\n * @private\n * @param {HTMLElement} element canvas element to apply styles on\n */\n _applyCanvasStyle: function (element) {\n var width = this.width || element.width,\n height = this.height || element.height;\n\n fabric.util.setStyle(element, {\n position: 'absolute',\n width: width + 'px',\n height: height + 'px',\n left: 0,\n top: 0,\n 'touch-action': this.allowTouchScrolling ? 'manipulation' : 'none',\n '-ms-touch-action': this.allowTouchScrolling ? 'manipulation' : 'none'\n });\n element.width = width;\n element.height = height;\n fabric.util.makeElementUnselectable(element);\n },\n\n /**\n * Copy the entire inline style from one element (fromEl) to another (toEl)\n * @private\n * @param {Element} fromEl Element style is copied from\n * @param {Element} toEl Element copied style is applied to\n */\n _copyCanvasStyle: function (fromEl, toEl) {\n toEl.style.cssText = fromEl.style.cssText;\n },\n\n /**\n * Returns context of canvas where object selection is drawn\n * @return {CanvasRenderingContext2D}\n */\n getSelectionContext: function() {\n return this.contextTop;\n },\n\n /**\n * Returns <canvas> element on which object selection is drawn\n * @return {HTMLCanvasElement}\n */\n getSelectionElement: function () {\n return this.upperCanvasEl;\n },\n\n /**\n * Returns currently active object\n * @return {fabric.Object} active object\n */\n getActiveObject: function () {\n return this._activeObject;\n },\n\n /**\n * Returns an array with the current selected objects\n * @return {fabric.Object} active object\n */\n getActiveObjects: function () {\n var active = this._activeObject;\n if (active) {\n if (active.type === 'activeSelection' && active._objects) {\n return active._objects.slice(0);\n }\n else {\n return [active];\n }\n }\n return [];\n },\n\n /**\n * @private\n * @param {fabric.Object} obj Object that was removed\n */\n _onObjectRemoved: function(obj) {\n // removing active object should fire \"selection:cleared\" events\n if (obj === this._activeObject) {\n this.fire('before:selection:cleared', { target: obj });\n this._discardActiveObject();\n this.fire('selection:cleared', { target: obj });\n obj.fire('deselected');\n }\n if (obj === this._hoveredTarget){\n this._hoveredTarget = null;\n this._hoveredTargets = [];\n }\n this.callSuper('_onObjectRemoved', obj);\n },\n\n /**\n * @private\n * Compares the old activeObject with the current one and fires correct events\n * @param {fabric.Object} obj old activeObject\n */\n _fireSelectionEvents: function(oldObjects, e) {\n var somethingChanged = false, objects = this.getActiveObjects(),\n added = [], removed = [], opt = { e: e };\n oldObjects.forEach(function(oldObject) {\n if (objects.indexOf(oldObject) === -1) {\n somethingChanged = true;\n oldObject.fire('deselected', opt);\n removed.push(oldObject);\n }\n });\n objects.forEach(function(object) {\n if (oldObjects.indexOf(object) === -1) {\n somethingChanged = true;\n object.fire('selected', opt);\n added.push(object);\n }\n });\n if (oldObjects.length > 0 && objects.length > 0) {\n opt.selected = added;\n opt.deselected = removed;\n // added for backward compatibility\n opt.updated = added[0] || removed[0];\n opt.target = this._activeObject;\n somethingChanged && this.fire('selection:updated', opt);\n }\n else if (objects.length > 0) {\n opt.selected = added;\n // added for backward compatibility\n opt.target = this._activeObject;\n this.fire('selection:created', opt);\n }\n else if (oldObjects.length > 0) {\n opt.deselected = removed;\n this.fire('selection:cleared', opt);\n }\n },\n\n /**\n * Sets given object as the only active object on canvas\n * @param {fabric.Object} object Object to set as an active one\n * @param {Event} [e] Event (passed along when firing \"object:selected\")\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n setActiveObject: function (object, e) {\n var currentActives = this.getActiveObjects();\n this._setActiveObject(object, e);\n this._fireSelectionEvents(currentActives, e);\n return this;\n },\n\n /**\n * @private\n * @param {Object} object to set as active\n * @param {Event} [e] Event (passed along when firing \"object:selected\")\n * @return {Boolean} true if the selection happened\n */\n _setActiveObject: function(object, e) {\n if (this._activeObject === object) {\n return false;\n }\n if (!this._discardActiveObject(e, object)) {\n return false;\n }\n if (object.onSelect({ e: e })) {\n return false;\n }\n this._activeObject = object;\n return true;\n },\n\n /**\n * @private\n */\n _discardActiveObject: function(e, object) {\n var obj = this._activeObject;\n if (obj) {\n // onDeselect return TRUE to cancel selection;\n if (obj.onDeselect({ e: e, object: object })) {\n return false;\n }\n this._activeObject = null;\n }\n return true;\n },\n\n /**\n * Discards currently active object and fire events. If the function is called by fabric\n * as a consequence of a mouse event, the event is passed as a parameter and\n * sent to the fire function for the custom events. When used as a method the\n * e param does not have any application.\n * @param {event} e\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n discardActiveObject: function (e) {\n var currentActives = this.getActiveObjects(), activeObject = this.getActiveObject();\n if (currentActives.length) {\n this.fire('before:selection:cleared', { target: activeObject, e: e });\n }\n this._discardActiveObject(e);\n this._fireSelectionEvents(currentActives, e);\n return this;\n },\n\n /**\n * Clears a canvas element and removes all event listeners\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n dispose: function () {\n var wrapper = this.wrapperEl;\n this.removeListeners();\n wrapper.removeChild(this.upperCanvasEl);\n wrapper.removeChild(this.lowerCanvasEl);\n this.contextCache = null;\n this.contextTop = null;\n ['upperCanvasEl', 'cacheCanvasEl'].forEach((function(element) {\n fabric.util.cleanUpJsdomNode(this[element]);\n this[element] = undefined;\n }).bind(this));\n if (wrapper.parentNode) {\n wrapper.parentNode.replaceChild(this.lowerCanvasEl, this.wrapperEl);\n }\n delete this.wrapperEl;\n fabric.StaticCanvas.prototype.dispose.call(this);\n return this;\n },\n\n /**\n * Clears all contexts (background, main, top) of an instance\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n clear: function () {\n // this.discardActiveGroup();\n this.discardActiveObject();\n this.clearContext(this.contextTop);\n return this.callSuper('clear');\n },\n\n /**\n * Draws objects' controls (borders/controls)\n * @param {CanvasRenderingContext2D} ctx Context to render controls on\n */\n drawControls: function(ctx) {\n var activeObject = this._activeObject;\n\n if (activeObject) {\n activeObject._renderControls(ctx);\n }\n },\n\n /**\n * @private\n */\n _toObject: function(instance, methodName, propertiesToInclude) {\n //If the object is part of the current selection group, it should\n //be transformed appropriately\n //i.e. it should be serialised as it would appear if the selection group\n //were to be destroyed.\n var originalProperties = this._realizeGroupTransformOnObject(instance),\n object = this.callSuper('_toObject', instance, methodName, propertiesToInclude);\n //Undo the damage we did by changing all of its properties\n this._unwindGroupTransformOnObject(instance, originalProperties);\n return object;\n },\n\n /**\n * Realises an object's group transformation on it\n * @private\n * @param {fabric.Object} [instance] the object to transform (gets mutated)\n * @returns the original values of instance which were changed\n */\n _realizeGroupTransformOnObject: function(instance) {\n if (instance.group && instance.group.type === 'activeSelection' && this._activeObject === instance.group) {\n var layoutProps = ['angle', 'flipX', 'flipY', 'left', 'scaleX', 'scaleY', 'skewX', 'skewY', 'top'];\n //Copy all the positionally relevant properties across now\n var originalValues = {};\n layoutProps.forEach(function(prop) {\n originalValues[prop] = instance[prop];\n });\n this._activeObject.realizeTransform(instance);\n return originalValues;\n }\n else {\n return null;\n }\n },\n\n /**\n * Restores the changed properties of instance\n * @private\n * @param {fabric.Object} [instance] the object to un-transform (gets mutated)\n * @param {Object} [originalValues] the original values of instance, as returned by _realizeGroupTransformOnObject\n */\n _unwindGroupTransformOnObject: function(instance, originalValues) {\n if (originalValues) {\n instance.set(originalValues);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function(markup, instance, reviver) {\n //If the object is in a selection group, simulate what would happen to that\n //object when the group is deselected\n var originalProperties = this._realizeGroupTransformOnObject(instance);\n this.callSuper('_setSVGObject', markup, instance, reviver);\n this._unwindGroupTransformOnObject(instance, originalProperties);\n },\n\n setViewportTransform: function (vpt) {\n if (this.renderOnAddRemove && this._activeObject && this._activeObject.isEditing) {\n this._activeObject.clearContextTop();\n }\n fabric.StaticCanvas.prototype.setViewportTransform.call(this, vpt);\n }\n });\n\n // copying static properties manually to work around Opera's bug,\n // where \"prototype\" property is enumerable and overrides existing prototype\n for (var prop in fabric.StaticCanvas) {\n if (prop !== 'prototype') {\n fabric.Canvas[prop] = fabric.StaticCanvas[prop];\n }\n }\n})();\n\n\n(function() {\n\n var addListener = fabric.util.addListener,\n removeListener = fabric.util.removeListener,\n RIGHT_CLICK = 3, MIDDLE_CLICK = 2, LEFT_CLICK = 1,\n addEventOptions = { passive: false };\n\n function checkClick(e, value) {\n return e.button && (e.button === value - 1);\n }\n\n fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * Contains the id of the touch event that owns the fabric transform\n * @type Number\n * @private\n */\n mainTouchId: null,\n\n /**\n * Adds mouse listeners to canvas\n * @private\n */\n _initEventListeners: function () {\n // in case we initialized the class twice. This should not happen normally\n // but in some kind of applications where the canvas element may be changed\n // this is a workaround to having double listeners.\n this.removeListeners();\n this._bindEvents();\n this.addOrRemove(addListener, 'add');\n },\n\n /**\n * return an event prefix pointer or mouse.\n * @private\n */\n _getEventPrefix: function () {\n return this.enablePointerEvents ? 'pointer' : 'mouse';\n },\n\n addOrRemove: function(functor, eventjsFunctor) {\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n functor(fabric.window, 'resize', this._onResize);\n functor(canvasElement, eventTypePrefix + 'down', this._onMouseDown);\n functor(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n functor(canvasElement, eventTypePrefix + 'out', this._onMouseOut);\n functor(canvasElement, eventTypePrefix + 'enter', this._onMouseEnter);\n functor(canvasElement, 'wheel', this._onMouseWheel);\n functor(canvasElement, 'contextmenu', this._onContextMenu);\n functor(canvasElement, 'dblclick', this._onDoubleClick);\n functor(canvasElement, 'dragover', this._onDragOver);\n functor(canvasElement, 'dragenter', this._onDragEnter);\n functor(canvasElement, 'dragleave', this._onDragLeave);\n functor(canvasElement, 'drop', this._onDrop);\n if (!this.enablePointerEvents) {\n functor(canvasElement, 'touchstart', this._onTouchStart, addEventOptions);\n }\n if (typeof eventjs !== 'undefined' && eventjsFunctor in eventjs) {\n eventjs[eventjsFunctor](canvasElement, 'gesture', this._onGesture);\n eventjs[eventjsFunctor](canvasElement, 'drag', this._onDrag);\n eventjs[eventjsFunctor](canvasElement, 'orientation', this._onOrientationChange);\n eventjs[eventjsFunctor](canvasElement, 'shake', this._onShake);\n eventjs[eventjsFunctor](canvasElement, 'longpress', this._onLongPress);\n }\n },\n\n /**\n * Removes all event listeners\n */\n removeListeners: function() {\n this.addOrRemove(removeListener, 'remove');\n // if you dispose on a mouseDown, before mouse up, you need to clean document to...\n var eventTypePrefix = this._getEventPrefix();\n removeListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n removeListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n removeListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n removeListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n },\n\n /**\n * @private\n */\n _bindEvents: function() {\n if (this.eventsBound) {\n // for any reason we pass here twice we do not want to bind events twice.\n return;\n }\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onTouchStart = this._onTouchStart.bind(this);\n this._onMouseMove = this._onMouseMove.bind(this);\n this._onMouseUp = this._onMouseUp.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onResize = this._onResize.bind(this);\n this._onGesture = this._onGesture.bind(this);\n this._onDrag = this._onDrag.bind(this);\n this._onShake = this._onShake.bind(this);\n this._onLongPress = this._onLongPress.bind(this);\n this._onOrientationChange = this._onOrientationChange.bind(this);\n this._onMouseWheel = this._onMouseWheel.bind(this);\n this._onMouseOut = this._onMouseOut.bind(this);\n this._onMouseEnter = this._onMouseEnter.bind(this);\n this._onContextMenu = this._onContextMenu.bind(this);\n this._onDoubleClick = this._onDoubleClick.bind(this);\n this._onDragOver = this._onDragOver.bind(this);\n this._onDragEnter = this._simpleEventHandler.bind(this, 'dragenter');\n this._onDragLeave = this._simpleEventHandler.bind(this, 'dragleave');\n this._onDrop = this._simpleEventHandler.bind(this, 'drop');\n this.eventsBound = true;\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js gesture\n * @param {Event} [self] Inner Event object\n */\n _onGesture: function(e, self) {\n this.__onTransformGesture && this.__onTransformGesture(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js drag\n * @param {Event} [self] Inner Event object\n */\n _onDrag: function(e, self) {\n this.__onDrag && this.__onDrag(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on wheel event\n */\n _onMouseWheel: function(e) {\n this.__onMouseWheel(e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseOut: function(e) {\n var target = this._hoveredTarget;\n this.fire('mouse:out', { target: target, e: e });\n this._hoveredTarget = null;\n target && target.fire('mouseout', { e: e });\n\n var _this = this;\n this._hoveredTargets.forEach(function(_target){\n _this.fire('mouse:out', { target: target, e: e });\n _target && target.fire('mouseout', { e: e });\n });\n this._hoveredTargets = [];\n\n if (this._iTextInstances) {\n this._iTextInstances.forEach(function(obj) {\n if (obj.isEditing) {\n obj.hiddenTextarea.focus();\n }\n });\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseenter\n */\n _onMouseEnter: function(e) {\n // This find target and consequent 'mouse:over' is used to\n // clear old instances on hovered target.\n // calling findTarget has the side effect of killing target.__corner.\n // as a short term fix we are not firing this if we are currently transforming.\n // as a long term fix we need to separate the action of finding a target with the\n // side effects we added to it.\n if (!this._currentTransform && !this.findTarget(e)) {\n this.fire('mouse:over', { target: null, e: e });\n this._hoveredTarget = null;\n this._hoveredTargets = [];\n }\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js orientation change\n * @param {Event} [self] Inner Event object\n */\n _onOrientationChange: function(e, self) {\n this.__onOrientationChange && this.__onOrientationChange(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n * @param {Event} [self] Inner Event object\n */\n _onShake: function(e, self) {\n this.__onShake && this.__onShake(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n * @param {Event} [self] Inner Event object\n */\n _onLongPress: function(e, self) {\n this.__onLongPress && this.__onLongPress(e, self);\n },\n\n /**\n * prevent default to allow drop event to be fired\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n */\n _onDragOver: function(e) {\n e.preventDefault();\n var target = this._simpleEventHandler('dragover', e);\n this._fireEnterLeaveEvents(target, e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onContextMenu: function (e) {\n if (this.stopContextMenu) {\n e.stopPropagation();\n e.preventDefault();\n }\n return false;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onDoubleClick: function (e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'dblclick');\n this._resetTransformEventData(e);\n },\n\n /**\n * Return a the id of an event.\n * returns either the pointerId or the identifier or 0 for the mouse event\n * @private\n * @param {Event} evt Event object\n */\n getPointerId: function(evt) {\n var changedTouches = evt.changedTouches;\n\n if (changedTouches) {\n return changedTouches[0] && changedTouches[0].identifier;\n }\n\n if (this.enablePointerEvents) {\n return evt.pointerId;\n }\n\n return -1;\n },\n\n /**\n * Determines if an event has the id of the event that is considered main\n * @private\n * @param {evt} event Event object\n */\n _isMainEvent: function(evt) {\n if (evt.isPrimary === true) {\n return true;\n }\n if (evt.isPrimary === false) {\n return false;\n }\n if (evt.type === 'touchend' && evt.touches.length === 0) {\n return true;\n }\n if (evt.changedTouches) {\n return evt.changedTouches[0].identifier === this.mainTouchId;\n }\n return true;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onTouchStart: function(e) {\n e.preventDefault();\n if (this.mainTouchId === null) {\n this.mainTouchId = this.getPointerId(e);\n }\n this.__onMouseDown(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n addListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n addListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n // Unbind mousedown to prevent double triggers from touch devices\n removeListener(canvasElement, eventTypePrefix + 'down', this._onMouseDown);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseDown: function (e) {\n this.__onMouseDown(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n removeListener(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n addListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n addListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onTouchEnd: function(e) {\n if (e.touches.length > 0) {\n // if there are still touches stop here\n return;\n }\n this.__onMouseUp(e);\n this._resetTransformEventData();\n this.mainTouchId = null;\n var eventTypePrefix = this._getEventPrefix();\n removeListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n removeListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n var _this = this;\n if (this._willAddMouseDown) {\n clearTimeout(this._willAddMouseDown);\n }\n this._willAddMouseDown = setTimeout(function() {\n // Wait 400ms before rebinding mousedown to prevent double triggers\n // from touch devices\n addListener(_this.upperCanvasEl, eventTypePrefix + 'down', _this._onMouseDown);\n _this._willAddMouseDown = 0;\n }, 400);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n _onMouseUp: function (e) {\n this.__onMouseUp(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n if (this._isMainEvent(e)) {\n removeListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n removeListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n addListener(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n _onMouseMove: function (e) {\n !this.allowTouchScrolling && e.preventDefault && e.preventDefault();\n this.__onMouseMove(e);\n },\n\n /**\n * @private\n */\n _onResize: function () {\n this.calcOffset();\n },\n\n /**\n * Decides whether the canvas should be redrawn in mouseup and mousedown events.\n * @private\n * @param {Object} target\n */\n _shouldRender: function(target) {\n var activeObject = this._activeObject;\n\n if (\n !!activeObject !== !!target ||\n (activeObject && target && (activeObject !== target))\n ) {\n // this covers: switch of target, from target to no target, selection of target\n // multiSelection with key and mouse\n return true;\n }\n else if (activeObject && activeObject.isEditing) {\n // if we mouse up/down over a editing textbox a cursor change,\n // there is no need to re render\n return false;\n }\n return false;\n },\n\n /**\n * Method that defines the actions when mouse is released on canvas.\n * The method resets the currentTransform parameters, store the image corner\n * position in the image object and render the canvas on top.\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n __onMouseUp: function (e) {\n var target, transform = this._currentTransform,\n groupSelector = this._groupSelector, shouldRender = false,\n isClick = (!groupSelector || (groupSelector.left === 0 && groupSelector.top === 0));\n this._cacheTransformEventData(e);\n target = this._target;\n this._handleEvent(e, 'up:before');\n // if right/middle click just fire events and return\n // target undefined will make the _handleEvent search the target\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'up', RIGHT_CLICK, isClick);\n }\n return;\n }\n\n if (checkClick(e, MIDDLE_CLICK)) {\n if (this.fireMiddleClick) {\n this._handleEvent(e, 'up', MIDDLE_CLICK, isClick);\n }\n this._resetTransformEventData();\n return;\n }\n\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this._onMouseUpInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n if (transform) {\n this._finalizeCurrentTransform(e);\n shouldRender = transform.actionPerformed;\n }\n if (!isClick) {\n var targetWasActive = target === this._activeObject;\n this._maybeGroupObjects(e);\n if (!shouldRender) {\n shouldRender = (\n this._shouldRender(target) ||\n (!targetWasActive && target === this._activeObject)\n );\n }\n }\n if (target) {\n var corner = target._findTargetCorner(\n this.getPointer(e, true),\n fabric.util.isTouchEvent(e)\n );\n var control = target.controls[corner],\n mouseUpHandler = control && control.getMouseUpHandler(e, target, control);\n if (mouseUpHandler) {\n mouseUpHandler(e, target, control);\n }\n target.isMoving = false;\n }\n this._setCursorFromEvent(e, target);\n this._handleEvent(e, 'up', LEFT_CLICK, isClick);\n this._groupSelector = null;\n this._currentTransform = null;\n // reset the target information about which corner is selected\n target && (target.__corner = 0);\n if (shouldRender) {\n this.requestRenderAll();\n }\n else if (!isClick) {\n this.renderTop();\n }\n },\n\n /**\n * @private\n * Handle event firing for target and subtargets\n * @param {Event} e event from mouse\n * @param {String} eventType event to fire (up, down or move)\n * @return {Fabric.Object} target return the the target found, for internal reasons.\n */\n _simpleEventHandler: function(eventType, e) {\n var target = this.findTarget(e),\n targets = this.targets,\n options = {\n e: e,\n target: target,\n subTargets: targets,\n };\n this.fire(eventType, options);\n target && target.fire(eventType, options);\n if (!targets) {\n return target;\n }\n for (var i = 0; i < targets.length; i++) {\n targets[i].fire(eventType, options);\n }\n return target;\n },\n\n /**\n * @private\n * Handle event firing for target and subtargets\n * @param {Event} e event from mouse\n * @param {String} eventType event to fire (up, down or move)\n * @param {fabric.Object} targetObj receiving event\n * @param {Number} [button] button used in the event 1 = left, 2 = middle, 3 = right\n * @param {Boolean} isClick for left button only, indicates that the mouse up happened without move.\n */\n _handleEvent: function(e, eventType, button, isClick) {\n var target = this._target,\n targets = this.targets || [],\n options = {\n e: e,\n target: target,\n subTargets: targets,\n button: button || LEFT_CLICK,\n isClick: isClick || false,\n pointer: this._pointer,\n absolutePointer: this._absolutePointer,\n transform: this._currentTransform\n };\n if (eventType === 'up') {\n options.currentTarget = this.findTarget(e);\n options.currentSubTargets = this.targets;\n }\n this.fire('mouse:' + eventType, options);\n target && target.fire('mouse' + eventType, options);\n for (var i = 0; i < targets.length; i++) {\n targets[i].fire('mouse' + eventType, options);\n }\n },\n\n /**\n * @private\n * @param {Event} e send the mouse event that generate the finalize down, so it can be used in the event\n */\n _finalizeCurrentTransform: function(e) {\n\n var transform = this._currentTransform,\n target = transform.target,\n eventName,\n options = {\n e: e,\n target: target,\n transform: transform,\n action: transform.action,\n };\n\n if (target._scaling) {\n target._scaling = false;\n }\n\n target.setCoords();\n\n if (transform.actionPerformed || (this.stateful && target.hasStateChanged())) {\n if (transform.actionPerformed) {\n // this is not friendly to the new control api.\n // is deprecated.\n eventName = this._addEventOptions(options, transform);\n this._fire(eventName, options);\n }\n this._fire('modified', options);\n }\n },\n\n /**\n * Mutate option object in order to add by property and give back the event name.\n * @private\n * @deprecated since 4.2.0\n * @param {Object} options to mutate\n * @param {Object} transform to inspect action from\n */\n _addEventOptions: function(options, transform) {\n // we can probably add more details at low cost\n // scale change, rotation changes, translation changes\n var eventName, by;\n switch (transform.action) {\n case 'scaleX':\n eventName = 'scaled';\n by = 'x';\n break;\n case 'scaleY':\n eventName = 'scaled';\n by = 'y';\n break;\n case 'skewX':\n eventName = 'skewed';\n by = 'x';\n break;\n case 'skewY':\n eventName = 'skewed';\n by = 'y';\n break;\n case 'scale':\n eventName = 'scaled';\n by = 'equally';\n break;\n case 'rotate':\n eventName = 'rotated';\n break;\n case 'drag':\n eventName = 'moved';\n break;\n }\n options.by = by;\n return eventName;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseDownInDrawingMode: function(e) {\n this._isCurrentlyDrawing = true;\n if (this.getActiveObject()) {\n this.discardActiveObject(e).requestRenderAll();\n }\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseDown(pointer, { e: e, pointer: pointer });\n this._handleEvent(e, 'down');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n _onMouseMoveInDrawingMode: function(e) {\n if (this._isCurrentlyDrawing) {\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseMove(pointer, { e: e, pointer: pointer });\n }\n this.setCursor(this.freeDrawingCursor);\n this._handleEvent(e, 'move');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n _onMouseUpInDrawingMode: function(e) {\n var pointer = this.getPointer(e);\n this._isCurrentlyDrawing = this.freeDrawingBrush.onMouseUp({ e: e, pointer: pointer });\n this._handleEvent(e, 'up');\n },\n\n /**\n * Method that defines the actions when mouse is clicked on canvas.\n * The method inits the currentTransform parameters and renders all the\n * canvas so the current image can be placed on the top canvas and the rest\n * in on the container one.\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n __onMouseDown: function (e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'down:before');\n var target = this._target;\n // if right click just fire events\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'down', RIGHT_CLICK);\n }\n return;\n }\n\n if (checkClick(e, MIDDLE_CLICK)) {\n if (this.fireMiddleClick) {\n this._handleEvent(e, 'down', MIDDLE_CLICK);\n }\n return;\n }\n\n if (this.isDrawingMode) {\n this._onMouseDownInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n // ignore if some object is being transformed at this moment\n if (this._currentTransform) {\n return;\n }\n\n var pointer = this._pointer;\n // save pointer for check in __onMouseUp event\n this._previousPointer = pointer;\n var shouldRender = this._shouldRender(target),\n shouldGroup = this._shouldGroup(e, target);\n if (this._shouldClearSelection(e, target)) {\n this.discardActiveObject(e);\n }\n else if (shouldGroup) {\n this._handleGrouping(e, target);\n target = this._activeObject;\n }\n\n if (this.selection && (!target ||\n (!target.selectable && !target.isEditing && target !== this._activeObject))) {\n this._groupSelector = {\n ex: pointer.x,\n ey: pointer.y,\n top: 0,\n left: 0\n };\n }\n\n if (target) {\n var alreadySelected = target === this._activeObject;\n if (target.selectable) {\n this.setActiveObject(target, e);\n }\n var corner = target._findTargetCorner(\n this.getPointer(e, true),\n fabric.util.isTouchEvent(e)\n );\n target.__corner = corner;\n if (target === this._activeObject && (corner || !shouldGroup)) {\n var control = target.controls[corner],\n mouseDownHandler = control && control.getMouseDownHandler(e, target, control);\n if (mouseDownHandler) {\n mouseDownHandler(e, target, control);\n }\n this._setupCurrentTransform(e, target, alreadySelected);\n }\n }\n this._handleEvent(e, 'down');\n // we must renderAll so that we update the visuals\n (shouldRender || shouldGroup) && this.requestRenderAll();\n },\n\n /**\n * reset cache form common information needed during event processing\n * @private\n */\n _resetTransformEventData: function() {\n this._target = null;\n this._pointer = null;\n this._absolutePointer = null;\n },\n\n /**\n * Cache common information needed during event processing\n * @private\n * @param {Event} e Event object fired on event\n */\n _cacheTransformEventData: function(e) {\n // reset in order to avoid stale caching\n this._resetTransformEventData();\n this._pointer = this.getPointer(e, true);\n this._absolutePointer = this.restorePointerVpt(this._pointer);\n this._target = this._currentTransform ? this._currentTransform.target : this.findTarget(e) || null;\n },\n\n /**\n * @private\n */\n _beforeTransform: function(e) {\n var t = this._currentTransform;\n this.stateful && t.target.saveState();\n this.fire('before:transform', {\n e: e,\n transform: t,\n });\n },\n\n /**\n * Method that defines the actions when mouse is hovering the canvas.\n * The currentTransform parameter will define whether the user is rotating/scaling/translating\n * an image or neither of them (only hovering). A group selection is also possible and would cancel\n * all any other type of action.\n * In case of an image transformation only the top canvas will be rendered.\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n __onMouseMove: function (e) {\n this._handleEvent(e, 'move:before');\n this._cacheTransformEventData(e);\n var target, pointer;\n\n if (this.isDrawingMode) {\n this._onMouseMoveInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n var groupSelector = this._groupSelector;\n\n // We initially clicked in an empty area, so we draw a box for multiple selection\n if (groupSelector) {\n pointer = this._pointer;\n\n groupSelector.left = pointer.x - groupSelector.ex;\n groupSelector.top = pointer.y - groupSelector.ey;\n\n this.renderTop();\n }\n else if (!this._currentTransform) {\n target = this.findTarget(e) || null;\n this._setCursorFromEvent(e, target);\n this._fireOverOutEvents(target, e);\n }\n else {\n this._transformObject(e);\n }\n this._handleEvent(e, 'move');\n this._resetTransformEventData();\n },\n\n /**\n * Manage the mouseout, mouseover events for the fabric object on the canvas\n * @param {Fabric.Object} target the target where the target from the mousemove event\n * @param {Event} e Event object fired on mousemove\n * @private\n */\n _fireOverOutEvents: function(target, e) {\n var _hoveredTarget = this._hoveredTarget,\n _hoveredTargets = this._hoveredTargets, targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _hoveredTarget,\n evtOut: 'mouseout',\n canvasEvtOut: 'mouse:out',\n evtIn: 'mouseover',\n canvasEvtIn: 'mouse:over',\n });\n for (var i = 0; i < length; i++){\n this.fireSyntheticInOutEvents(targets[i], e, {\n oldTarget: _hoveredTargets[i],\n evtOut: 'mouseout',\n evtIn: 'mouseover',\n });\n }\n this._hoveredTarget = target;\n this._hoveredTargets = this.targets.concat();\n },\n\n /**\n * Manage the dragEnter, dragLeave events for the fabric objects on the canvas\n * @param {Fabric.Object} target the target where the target from the onDrag event\n * @param {Event} e Event object fired on ondrag\n * @private\n */\n _fireEnterLeaveEvents: function(target, e) {\n var _draggedoverTarget = this._draggedoverTarget,\n _hoveredTargets = this._hoveredTargets, targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _draggedoverTarget,\n evtOut: 'dragleave',\n evtIn: 'dragenter',\n });\n for (var i = 0; i < length; i++) {\n this.fireSyntheticInOutEvents(targets[i], e, {\n oldTarget: _hoveredTargets[i],\n evtOut: 'dragleave',\n evtIn: 'dragenter',\n });\n }\n this._draggedoverTarget = target;\n },\n\n /**\n * Manage the synthetic in/out events for the fabric objects on the canvas\n * @param {Fabric.Object} target the target where the target from the supported events\n * @param {Event} e Event object fired\n * @param {Object} config configuration for the function to work\n * @param {String} config.targetName property on the canvas where the old target is stored\n * @param {String} [config.canvasEvtOut] name of the event to fire at canvas level for out\n * @param {String} config.evtOut name of the event to fire for out\n * @param {String} [config.canvasEvtIn] name of the event to fire at canvas level for in\n * @param {String} config.evtIn name of the event to fire for in\n * @private\n */\n fireSyntheticInOutEvents: function(target, e, config) {\n var inOpt, outOpt, oldTarget = config.oldTarget, outFires, inFires,\n targetChanged = oldTarget !== target, canvasEvtIn = config.canvasEvtIn, canvasEvtOut = config.canvasEvtOut;\n if (targetChanged) {\n inOpt = { e: e, target: target, previousTarget: oldTarget };\n outOpt = { e: e, target: oldTarget, nextTarget: target };\n }\n inFires = target && targetChanged;\n outFires = oldTarget && targetChanged;\n if (outFires) {\n canvasEvtOut && this.fire(canvasEvtOut, outOpt);\n oldTarget.fire(config.evtOut, outOpt);\n }\n if (inFires) {\n canvasEvtIn && this.fire(canvasEvtIn, inOpt);\n target.fire(config.evtIn, inOpt);\n }\n },\n\n /**\n * Method that defines actions when an Event Mouse Wheel\n * @param {Event} e Event object fired on mouseup\n */\n __onMouseWheel: function(e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'wheel');\n this._resetTransformEventData();\n },\n\n /**\n * @private\n * @param {Event} e Event fired on mousemove\n */\n _transformObject: function(e) {\n var pointer = this.getPointer(e),\n transform = this._currentTransform;\n\n transform.reset = false;\n transform.target.isMoving = true;\n transform.shiftKey = e.shiftKey;\n transform.altKey = e[this.centeredKey];\n\n this._performTransformAction(e, transform, pointer);\n transform.actionPerformed && this.requestRenderAll();\n },\n\n /**\n * @private\n */\n _performTransformAction: function(e, transform, pointer) {\n var x = pointer.x,\n y = pointer.y,\n action = transform.action,\n actionPerformed = false,\n actionHandler = transform.actionHandler;\n // this object could be created from the function in the control handlers\n\n\n if (actionHandler) {\n actionPerformed = actionHandler(e, transform, x, y);\n }\n if (action === 'drag' && actionPerformed) {\n this.setCursor(transform.target.moveCursor || this.moveCursor);\n }\n transform.actionPerformed = transform.actionPerformed || actionPerformed;\n },\n\n /**\n * @private\n */\n _fire: fabric.controlsUtils.fireEvent,\n\n /**\n * Sets the cursor depending on where the canvas is being hovered.\n * Note: very buggy in Opera\n * @param {Event} e Event object\n * @param {Object} target Object that the mouse is hovering, if so.\n */\n _setCursorFromEvent: function (e, target) {\n if (!target) {\n this.setCursor(this.defaultCursor);\n return false;\n }\n var hoverCursor = target.hoverCursor || this.hoverCursor,\n activeSelection = this._activeObject && this._activeObject.type === 'activeSelection' ?\n this._activeObject : null,\n // only show proper corner when group selection is not active\n corner = (!activeSelection || !activeSelection.contains(target))\n // here we call findTargetCorner always with undefined for the touch parameter.\n // we assume that if you are using a cursor you do not need to interact with\n // the bigger touch area.\n && target._findTargetCorner(this.getPointer(e, true));\n\n if (!corner) {\n if (target.subTargetCheck){\n // hoverCursor should come from top-most subTarget,\n // so we walk the array backwards\n this.targets.concat().reverse().map(function(_target){\n hoverCursor = _target.hoverCursor || hoverCursor;\n });\n }\n this.setCursor(hoverCursor);\n }\n else {\n this.setCursor(this.getCornerCursor(corner, target, e));\n }\n },\n\n /**\n * @private\n */\n getCornerCursor: function(corner, target, e) {\n var control = target.controls[corner];\n return control.cursorStyleHandler(e, control, target);\n }\n });\n})();\n\n\n(function() {\n\n var min = Math.min,\n max = Math.max;\n\n fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n * @return {Boolean}\n */\n _shouldGroup: function(e, target) {\n var activeObject = this._activeObject;\n return activeObject && this._isSelectionKeyPressed(e) && target && target.selectable && this.selection &&\n (activeObject !== target || activeObject.type === 'activeSelection') && !target.onSelect({ e: e });\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _handleGrouping: function (e, target) {\n var activeObject = this._activeObject;\n // avoid multi select when shift click on a corner\n if (activeObject.__corner) {\n return;\n }\n if (target === activeObject) {\n // if it's a group, find target again, using activeGroup objects\n target = this.findTarget(e, true);\n // if even object is not found or we are on activeObjectCorner, bail out\n if (!target || !target.selectable) {\n return;\n }\n }\n if (activeObject && activeObject.type === 'activeSelection') {\n this._updateActiveSelection(target, e);\n }\n else {\n this._createActiveSelection(target, e);\n }\n },\n\n /**\n * @private\n */\n _updateActiveSelection: function(target, e) {\n var activeSelection = this._activeObject,\n currentActiveObjects = activeSelection._objects.slice(0);\n if (activeSelection.contains(target)) {\n activeSelection.removeWithUpdate(target);\n this._hoveredTarget = target;\n this._hoveredTargets = this.targets.concat();\n if (activeSelection.size() === 1) {\n // activate last remaining object\n this._setActiveObject(activeSelection.item(0), e);\n }\n }\n else {\n activeSelection.addWithUpdate(target);\n this._hoveredTarget = activeSelection;\n this._hoveredTargets = this.targets.concat();\n }\n this._fireSelectionEvents(currentActiveObjects, e);\n },\n\n /**\n * @private\n */\n _createActiveSelection: function(target, e) {\n var currentActives = this.getActiveObjects(), group = this._createGroup(target);\n this._hoveredTarget = group;\n // ISSUE 4115: should we consider subTargets here?\n // this._hoveredTargets = [];\n // this._hoveredTargets = this.targets.concat();\n this._setActiveObject(group, e);\n this._fireSelectionEvents(currentActives, e);\n },\n\n /**\n * @private\n * @param {Object} target\n */\n _createGroup: function(target) {\n var objects = this._objects,\n isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target),\n groupObjects = isActiveLower\n ? [this._activeObject, target]\n : [target, this._activeObject];\n this._activeObject.isEditing && this._activeObject.exitEditing();\n return new fabric.ActiveSelection(groupObjects, {\n canvas: this\n });\n },\n\n /**\n * @private\n * @param {Event} e mouse event\n */\n _groupSelectedObjects: function (e) {\n\n var group = this._collectObjects(e),\n aGroup;\n\n // do not create group for 1 element only\n if (group.length === 1) {\n this.setActiveObject(group[0], e);\n }\n else if (group.length > 1) {\n aGroup = new fabric.ActiveSelection(group.reverse(), {\n canvas: this\n });\n this.setActiveObject(aGroup, e);\n }\n },\n\n /**\n * @private\n */\n _collectObjects: function(e) {\n var group = [],\n currentObject,\n x1 = this._groupSelector.ex,\n y1 = this._groupSelector.ey,\n x2 = x1 + this._groupSelector.left,\n y2 = y1 + this._groupSelector.top,\n selectionX1Y1 = new fabric.Point(min(x1, x2), min(y1, y2)),\n selectionX2Y2 = new fabric.Point(max(x1, x2), max(y1, y2)),\n allowIntersect = !this.selectionFullyContained,\n isClick = x1 === x2 && y1 === y2;\n // we iterate reverse order to collect top first in case of click.\n for (var i = this._objects.length; i--; ) {\n currentObject = this._objects[i];\n\n if (!currentObject || !currentObject.selectable || !currentObject.visible) {\n continue;\n }\n\n if ((allowIntersect && currentObject.intersectsWithRect(selectionX1Y1, selectionX2Y2)) ||\n currentObject.isContainedWithinRect(selectionX1Y1, selectionX2Y2) ||\n (allowIntersect && currentObject.containsPoint(selectionX1Y1)) ||\n (allowIntersect && currentObject.containsPoint(selectionX2Y2))\n ) {\n group.push(currentObject);\n // only add one object if it's a click\n if (isClick) {\n break;\n }\n }\n }\n\n if (group.length > 1) {\n group = group.filter(function(object) {\n return !object.onSelect({ e: e });\n });\n }\n\n return group;\n },\n\n /**\n * @private\n */\n _maybeGroupObjects: function(e) {\n if (this.selection && this._groupSelector) {\n this._groupSelectedObjects(e);\n }\n this.setCursor(this.defaultCursor);\n // clear selection and current transformation\n this._groupSelector = null;\n }\n });\n\n})();\n\n\n(function () {\n fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Exports canvas element to a dataurl image. Note that when multiplier is used, cropping is scaled appropriately\n * @param {Object} [options] Options object\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by, to have consistent\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 2.0.0\n * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format\n * @see {@link http://jsfiddle.net/fabricjs/NfZVb/|jsFiddle demo}\n * @example Generate jpeg dataURL with lower quality\n * var dataURL = canvas.toDataURL({\n * format: 'jpeg',\n * quality: 0.8\n * });\n * @example Generate cropped png dataURL (clipping of canvas)\n * var dataURL = canvas.toDataURL({\n * format: 'png',\n * left: 100,\n * top: 100,\n * width: 200,\n * height: 200\n * });\n * @example Generate double scaled png dataURL\n * var dataURL = canvas.toDataURL({\n * format: 'png',\n * multiplier: 2\n * });\n */\n toDataURL: function (options) {\n options || (options = { });\n\n var format = options.format || 'png',\n quality = options.quality || 1,\n multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? this.getRetinaScaling() : 1),\n canvasEl = this.toCanvasElement(multiplier, options);\n return fabric.util.toDataURL(canvasEl, format, quality);\n },\n\n /**\n * Create a new HTMLCanvas element painted with the current canvas content.\n * No need to resize the actual one or repaint it.\n * Will transfer object ownership to a new canvas, paint it, and set everything back.\n * This is an intermediary step used to get to a dataUrl but also it is useful to\n * create quick image copies of a canvas without passing for the dataUrl string\n * @param {Number} [multiplier] a zoom factor.\n * @param {Object} [cropping] Cropping informations\n * @param {Number} [cropping.left] Cropping left offset.\n * @param {Number} [cropping.top] Cropping top offset.\n * @param {Number} [cropping.width] Cropping width.\n * @param {Number} [cropping.height] Cropping height.\n */\n toCanvasElement: function(multiplier, cropping) {\n multiplier = multiplier || 1;\n cropping = cropping || { };\n var scaledWidth = (cropping.width || this.width) * multiplier,\n scaledHeight = (cropping.height || this.height) * multiplier,\n zoom = this.getZoom(),\n originalWidth = this.width,\n originalHeight = this.height,\n newZoom = zoom * multiplier,\n vp = this.viewportTransform,\n translateX = (vp[4] - (cropping.left || 0)) * multiplier,\n translateY = (vp[5] - (cropping.top || 0)) * multiplier,\n originalInteractive = this.interactive,\n newVp = [newZoom, 0, 0, newZoom, translateX, translateY],\n originalRetina = this.enableRetinaScaling,\n canvasEl = fabric.util.createCanvasElement(),\n originalContextTop = this.contextTop;\n canvasEl.width = scaledWidth;\n canvasEl.height = scaledHeight;\n this.contextTop = null;\n this.enableRetinaScaling = false;\n this.interactive = false;\n this.viewportTransform = newVp;\n this.width = scaledWidth;\n this.height = scaledHeight;\n this.calcViewportBoundaries();\n this.renderCanvas(canvasEl.getContext('2d'), this._objects);\n this.viewportTransform = vp;\n this.width = originalWidth;\n this.height = originalHeight;\n this.calcViewportBoundaries();\n this.interactive = originalInteractive;\n this.enableRetinaScaling = originalRetina;\n this.contextTop = originalContextTop;\n return canvasEl;\n },\n });\n\n})();\n\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n /**\n * Populates canvas with data from the specified JSON.\n * JSON format must conform to the one of {@link fabric.Canvas#toJSON}\n * @param {String|Object} json JSON string or object\n * @param {Function} callback Callback, invoked when json is parsed\n * and corresponding objects (e.g: {@link fabric.Image})\n * are initialized\n * @param {Function} [reviver] Method for further parsing of JSON elements, called after each fabric object created.\n * @return {fabric.Canvas} instance\n * @chainable\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#deserialization}\n * @see {@link http://jsfiddle.net/fabricjs/fmgXt/|jsFiddle demo}\n * @example loadFromJSON\n * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas));\n * @example loadFromJSON with reviver\n * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas), function(o, object) {\n * // `o` = json object\n * // `object` = fabric.Object instance\n * // ... do some stuff ...\n * });\n */\n loadFromJSON: function (json, callback, reviver) {\n if (!json) {\n return;\n }\n\n // serialize if it wasn't already\n var serialized = (typeof json === 'string')\n ? JSON.parse(json)\n : fabric.util.object.clone(json);\n\n var _this = this,\n clipPath = serialized.clipPath,\n renderOnAddRemove = this.renderOnAddRemove;\n\n this.renderOnAddRemove = false;\n\n delete serialized.clipPath;\n\n this._enlivenObjects(serialized.objects, function (enlivenedObjects) {\n _this.clear();\n _this._setBgOverlay(serialized, function () {\n if (clipPath) {\n _this._enlivenObjects([clipPath], function (enlivenedCanvasClip) {\n _this.clipPath = enlivenedCanvasClip[0];\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n });\n }\n else {\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n }\n });\n }, reviver);\n return this;\n },\n\n /**\n * @private\n * @param {Object} serialized Object with background and overlay information\n * @param {Array} restored canvas objects\n * @param {Function} cached renderOnAddRemove callback\n * @param {Function} callback Invoked after all background and overlay images/patterns loaded\n */\n __setupCanvas: function(serialized, enlivenedObjects, renderOnAddRemove, callback) {\n var _this = this;\n enlivenedObjects.forEach(function(obj, index) {\n // we splice the array just in case some custom classes restored from JSON\n // will add more object to canvas at canvas init.\n _this.insertAt(obj, index);\n });\n this.renderOnAddRemove = renderOnAddRemove;\n // remove parts i cannot set as options\n delete serialized.objects;\n delete serialized.backgroundImage;\n delete serialized.overlayImage;\n delete serialized.background;\n delete serialized.overlay;\n // this._initOptions does too many things to just\n // call it. Normally loading an Object from JSON\n // create the Object instance. Here the Canvas is\n // already an instance and we are just loading things over it\n this._setOptions(serialized);\n this.renderAll();\n callback && callback();\n },\n\n /**\n * @private\n * @param {Object} serialized Object with background and overlay information\n * @param {Function} callback Invoked after all background and overlay images/patterns loaded\n */\n _setBgOverlay: function(serialized, callback) {\n var loaded = {\n backgroundColor: false,\n overlayColor: false,\n backgroundImage: false,\n overlayImage: false\n };\n\n if (!serialized.backgroundImage && !serialized.overlayImage && !serialized.background && !serialized.overlay) {\n callback && callback();\n return;\n }\n\n var cbIfLoaded = function () {\n if (loaded.backgroundImage && loaded.overlayImage && loaded.backgroundColor && loaded.overlayColor) {\n callback && callback();\n }\n };\n\n this.__setBgOverlay('backgroundImage', serialized.backgroundImage, loaded, cbIfLoaded);\n this.__setBgOverlay('overlayImage', serialized.overlayImage, loaded, cbIfLoaded);\n this.__setBgOverlay('backgroundColor', serialized.background, loaded, cbIfLoaded);\n this.__setBgOverlay('overlayColor', serialized.overlay, loaded, cbIfLoaded);\n },\n\n /**\n * @private\n * @param {String} property Property to set (backgroundImage, overlayImage, backgroundColor, overlayColor)\n * @param {(Object|String)} value Value to set\n * @param {Object} loaded Set loaded property to true if property is set\n * @param {Object} callback Callback function to invoke after property is set\n */\n __setBgOverlay: function(property, value, loaded, callback) {\n var _this = this;\n\n if (!value) {\n loaded[property] = true;\n callback && callback();\n return;\n }\n\n if (property === 'backgroundImage' || property === 'overlayImage') {\n fabric.util.enlivenObjects([value], function(enlivedObject){\n _this[property] = enlivedObject[0];\n loaded[property] = true;\n callback && callback();\n });\n }\n else {\n this['set' + fabric.util.string.capitalize(property, true)](value, function() {\n loaded[property] = true;\n callback && callback();\n });\n }\n },\n\n /**\n * @private\n * @param {Array} objects\n * @param {Function} callback\n * @param {Function} [reviver]\n */\n _enlivenObjects: function (objects, callback, reviver) {\n if (!objects || objects.length === 0) {\n callback && callback([]);\n return;\n }\n\n fabric.util.enlivenObjects(objects, function(enlivenedObjects) {\n callback && callback(enlivenedObjects);\n }, null, reviver);\n },\n\n /**\n * @private\n * @param {String} format\n * @param {Function} callback\n */\n _toDataURL: function (format, callback) {\n this.clone(function (clone) {\n callback(clone.toDataURL(format));\n });\n },\n\n /**\n * @private\n * @param {String} format\n * @param {Number} multiplier\n * @param {Function} callback\n */\n _toDataURLWithMultiplier: function (format, multiplier, callback) {\n this.clone(function (clone) {\n callback(clone.toDataURLWithMultiplier(format, multiplier));\n });\n },\n\n /**\n * Clones canvas instance\n * @param {Object} [callback] Receives cloned instance as a first argument\n * @param {Array} [properties] Array of properties to include in the cloned canvas and children\n */\n clone: function (callback, properties) {\n var data = JSON.stringify(this.toJSON(properties));\n this.cloneWithoutData(function(clone) {\n clone.loadFromJSON(data, function() {\n callback && callback(clone);\n });\n });\n },\n\n /**\n * Clones canvas instance without cloning existing data.\n * This essentially copies canvas dimensions, clipping properties, etc.\n * but leaves data empty (so that you can populate it with your own)\n * @param {Object} [callback] Receives cloned instance as a first argument\n */\n cloneWithoutData: function(callback) {\n var el = fabric.util.createCanvasElement();\n\n el.width = this.width;\n el.height = this.height;\n\n var clone = new fabric.Canvas(el);\n if (this.backgroundImage) {\n clone.setBackgroundImage(this.backgroundImage.src, function() {\n clone.renderAll();\n callback && callback(clone);\n });\n clone.backgroundImageOpacity = this.backgroundImageOpacity;\n clone.backgroundImageStretch = this.backgroundImageStretch;\n }\n else {\n callback && callback(clone);\n }\n }\n});\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n toFixed = fabric.util.toFixed,\n capitalize = fabric.util.string.capitalize,\n degreesToRadians = fabric.util.degreesToRadians,\n supportsLineDash = fabric.StaticCanvas.supports('setLineDash'),\n objectCaching = !fabric.isLikelyNode,\n ALIASING_LIMIT = 2;\n\n if (fabric.Object) {\n return;\n }\n\n /**\n * Root object class from which all 2d shape classes inherit from\n * @class fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#objects}\n * @see {@link fabric.Object#initialize} for constructor definition\n *\n * @fires added\n * @fires removed\n *\n * @fires selected\n * @fires deselected\n * @fires modified\n * @fires modified\n * @fires moved\n * @fires scaled\n * @fires rotated\n * @fires skewed\n *\n * @fires rotating\n * @fires scaling\n * @fires moving\n * @fires skewing\n *\n * @fires mousedown\n * @fires mouseup\n * @fires mouseover\n * @fires mouseout\n * @fires mousewheel\n * @fires mousedblclick\n *\n * @fires dragover\n * @fires dragenter\n * @fires dragleave\n * @fires drop\n */\n fabric.Object = fabric.util.createClass(fabric.CommonMethods, /** @lends fabric.Object.prototype */ {\n\n /**\n * Type of an object (rect, circle, path, etc.).\n * Note that this property is meant to be read-only and not meant to be modified.\n * If you modify, certain parts of Fabric (such as JSON loading) won't work correctly.\n * @type String\n * @default\n */\n type: 'object',\n\n /**\n * Horizontal origin of transformation of an object (one of \"left\", \"right\", \"center\")\n * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups\n * @type String\n * @default\n */\n originX: 'left',\n\n /**\n * Vertical origin of transformation of an object (one of \"top\", \"bottom\", \"center\")\n * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups\n * @type String\n * @default\n */\n originY: 'top',\n\n /**\n * Top position of an object. Note that by default it's relative to object top. You can change this by setting originY={top/center/bottom}\n * @type Number\n * @default\n */\n top: 0,\n\n /**\n * Left position of an object. Note that by default it's relative to object left. You can change this by setting originX={left/center/right}\n * @type Number\n * @default\n */\n left: 0,\n\n /**\n * Object width\n * @type Number\n * @default\n */\n width: 0,\n\n /**\n * Object height\n * @type Number\n * @default\n */\n height: 0,\n\n /**\n * Object scale factor (horizontal)\n * @type Number\n * @default\n */\n scaleX: 1,\n\n /**\n * Object scale factor (vertical)\n * @type Number\n * @default\n */\n scaleY: 1,\n\n /**\n * When true, an object is rendered as flipped horizontally\n * @type Boolean\n * @default\n */\n flipX: false,\n\n /**\n * When true, an object is rendered as flipped vertically\n * @type Boolean\n * @default\n */\n flipY: false,\n\n /**\n * Opacity of an object\n * @type Number\n * @default\n */\n opacity: 1,\n\n /**\n * Angle of rotation of an object (in degrees)\n * @type Number\n * @default\n */\n angle: 0,\n\n /**\n * Angle of skew on x axes of an object (in degrees)\n * @type Number\n * @default\n */\n skewX: 0,\n\n /**\n * Angle of skew on y axes of an object (in degrees)\n * @type Number\n * @default\n */\n skewY: 0,\n\n /**\n * Size of object's controlling corners (in pixels)\n * @type Number\n * @default\n */\n cornerSize: 13,\n\n /**\n * Size of object's controlling corners when touch interaction is detected\n * @type Number\n * @default\n */\n touchCornerSize: 24,\n\n /**\n * When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)\n * @type Boolean\n * @default\n */\n transparentCorners: true,\n\n /**\n * Default cursor value used when hovering over this object on canvas\n * @type String\n * @default\n */\n hoverCursor: null,\n\n /**\n * Default cursor value used when moving this object on canvas\n * @type String\n * @default\n */\n moveCursor: null,\n\n /**\n * Padding between object and its controlling borders (in pixels)\n * @type Number\n * @default\n */\n padding: 0,\n\n /**\n * Color of controlling borders of an object (when it's active)\n * @type String\n * @default\n */\n borderColor: 'rgb(178,204,255)',\n\n /**\n * Array specifying dash pattern of an object's borders (hasBorder must be true)\n * @since 1.6.2\n * @type Array\n */\n borderDashArray: null,\n\n /**\n * Color of controlling corners of an object (when it's active)\n * @type String\n * @default\n */\n cornerColor: 'rgb(178,204,255)',\n\n /**\n * Color of controlling corners of an object (when it's active and transparentCorners false)\n * @since 1.6.2\n * @type String\n * @default\n */\n cornerStrokeColor: null,\n\n /**\n * Specify style of control, 'rect' or 'circle'\n * @since 1.6.2\n * @type String\n */\n cornerStyle: 'rect',\n\n /**\n * Array specifying dash pattern of an object's control (hasBorder must be true)\n * @since 1.6.2\n * @type Array\n */\n cornerDashArray: null,\n\n /**\n * When true, this object will use center point as the origin of transformation\n * when being scaled via the controls.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredScaling: false,\n\n /**\n * When true, this object will use center point as the origin of transformation\n * when being rotated via the controls.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredRotation: true,\n\n /**\n * Color of object's fill\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n fill: 'rgb(0,0,0)',\n\n /**\n * Fill rule used to fill an object\n * accepted values are nonzero, evenodd\n * Backwards incompatibility note: This property was used for setting globalCompositeOperation until v1.4.12 (use `fabric.Object#globalCompositeOperation` instead)\n * @type String\n * @default\n */\n fillRule: 'nonzero',\n\n /**\n * Composite rule used for canvas globalCompositeOperation\n * @type String\n * @default\n */\n globalCompositeOperation: 'source-over',\n\n /**\n * Background color of an object.\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n backgroundColor: '',\n\n /**\n * Selection Background color of an object. colored layer behind the object when it is active.\n * does not mix good with globalCompositeOperation methods.\n * @type String\n * @default\n */\n selectionBackgroundColor: '',\n\n /**\n * When defined, an object is rendered via stroke and this property specifies its color\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n stroke: null,\n\n /**\n * Width of a stroke used to render this object\n * @type Number\n * @default\n */\n strokeWidth: 1,\n\n /**\n * Array specifying dash pattern of an object's stroke (stroke must be defined)\n * @type Array\n */\n strokeDashArray: null,\n\n /**\n * Line offset of an object's stroke\n * @type Number\n * @default\n */\n strokeDashOffset: 0,\n\n /**\n * Line endings style of an object's stroke (one of \"butt\", \"round\", \"square\")\n * @type String\n * @default\n */\n strokeLineCap: 'butt',\n\n /**\n * Corner style of an object's stroke (one of \"bevil\", \"round\", \"miter\")\n * @type String\n * @default\n */\n strokeLineJoin: 'miter',\n\n /**\n * Maximum miter length (used for strokeLineJoin = \"miter\") of an object's stroke\n * @type Number\n * @default\n */\n strokeMiterLimit: 4,\n\n /**\n * Shadow object representing shadow of this shape\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * Opacity of object's controlling borders when object is active and moving\n * @type Number\n * @default\n */\n borderOpacityWhenMoving: 0.4,\n\n /**\n * Scale factor of object's controlling borders\n * bigger number will make a thicker border\n * border is 1, so this is basically a border tickness\n * since there is no way to change the border itself.\n * @type Number\n * @default\n */\n borderScaleFactor: 1,\n\n /**\n * Minimum allowed scale value of an object\n * @type Number\n * @default\n */\n minScaleLimit: 0,\n\n /**\n * When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection).\n * But events still fire on it.\n * @type Boolean\n * @default\n */\n selectable: true,\n\n /**\n * When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4\n * @type Boolean\n * @default\n */\n evented: true,\n\n /**\n * When set to `false`, an object is not rendered on canvas\n * @type Boolean\n * @default\n */\n visible: true,\n\n /**\n * When set to `false`, object's controls are not displayed and can not be used to manipulate object\n * @type Boolean\n * @default\n */\n hasControls: true,\n\n /**\n * When set to `false`, object's controlling borders are not rendered\n * @type Boolean\n * @default\n */\n hasBorders: true,\n\n /**\n * When set to `true`, objects are \"found\" on canvas on per-pixel basis rather than according to bounding box\n * @type Boolean\n * @default\n */\n perPixelTargetFind: false,\n\n /**\n * When `false`, default object's values are not included in its serialization\n * @type Boolean\n * @default\n */\n includeDefaultValues: true,\n\n /**\n * When `true`, object horizontal movement is locked\n * @type Boolean\n * @default\n */\n lockMovementX: false,\n\n /**\n * When `true`, object vertical movement is locked\n * @type Boolean\n * @default\n */\n lockMovementY: false,\n\n /**\n * When `true`, object rotation is locked\n * @type Boolean\n * @default\n */\n lockRotation: false,\n\n /**\n * When `true`, object horizontal scaling is locked\n * @type Boolean\n * @default\n */\n lockScalingX: false,\n\n /**\n * When `true`, object vertical scaling is locked\n * @type Boolean\n * @default\n */\n lockScalingY: false,\n\n /**\n * When `true`, object horizontal skewing is locked\n * @type Boolean\n * @default\n */\n lockSkewingX: false,\n\n /**\n * When `true`, object vertical skewing is locked\n * @type Boolean\n * @default\n */\n lockSkewingY: false,\n\n /**\n * When `true`, object cannot be flipped by scaling into negative values\n * @type Boolean\n * @default\n */\n lockScalingFlip: false,\n\n /**\n * When `true`, object is not exported in OBJECT/JSON\n * @since 1.6.3\n * @type Boolean\n * @default\n */\n excludeFromExport: false,\n\n /**\n * When `true`, object is cached on an additional canvas.\n * When `false`, object is not cached unless necessary ( clipPath )\n * default to true\n * @since 1.7.0\n * @type Boolean\n * @default true\n */\n objectCaching: objectCaching,\n\n /**\n * When `true`, object properties are checked for cache invalidation. In some particular\n * situation you may want this to be disabled ( spray brush, very big, groups)\n * or if your application does not allow you to modify properties for groups child you want\n * to disable it for groups.\n * default to false\n * since 1.7.0\n * @type Boolean\n * @default false\n */\n statefullCache: false,\n\n /**\n * When `true`, cache does not get updated during scaling. The picture will get blocky if scaled\n * too much and will be redrawn with correct details at the end of scaling.\n * this setting is performance and application dependant.\n * default to true\n * since 1.7.0\n * @type Boolean\n * @default true\n */\n noScaleCache: true,\n\n /**\n * When `false`, the stoke width will scale with the object.\n * When `true`, the stroke will always match the exact pixel size entered for stroke width.\n * default to false\n * @since 2.6.0\n * @type Boolean\n * @default false\n * @type Boolean\n * @default false\n */\n strokeUniform: false,\n\n /**\n * When set to `true`, object's cache will be rerendered next render call.\n * since 1.7.0\n * @type Boolean\n * @default true\n */\n dirty: true,\n\n /**\n * keeps the value of the last hovered corner during mouse move.\n * 0 is no corner, or 'mt', 'ml', 'mtr' etc..\n * It should be private, but there is no harm in using it as\n * a read-only property.\n * @type number|string|any\n * @default 0\n */\n __corner: 0,\n\n /**\n * Determines if the fill or the stroke is drawn first (one of \"fill\" or \"stroke\")\n * @type String\n * @default\n */\n paintFirst: 'fill',\n\n /**\n * List of properties to consider when checking if state\n * of an object is changed (fabric.Object#hasStateChanged)\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: (\n 'top left width height scaleX scaleY flipX flipY originX originY transformMatrix ' +\n 'stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit ' +\n 'angle opacity fill globalCompositeOperation shadow visible backgroundColor ' +\n 'skewX skewY fillRule paintFirst clipPath strokeUniform'\n ).split(' '),\n\n /**\n * List of properties to consider when checking if cache needs refresh\n * Those properties are checked by statefullCache ON ( or lazy mode if we want ) or from single\n * calls to Object.set(key, value). If the key is in this list, the object is marked as dirty\n * and refreshed at the next render\n * @type Array\n */\n cacheProperties: (\n 'fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform' +\n ' strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath'\n ).split(' '),\n\n /**\n * List of properties to consider for animating colors.\n * @type Array\n */\n colorProperties: (\n 'fill stroke backgroundColor'\n ).split(' '),\n\n /**\n * a fabricObject that, without stroke define a clipping area with their shape. filled in black\n * the clipPath object gets used when the object has rendered, and the context is placed in the center\n * of the object cacheCanvas.\n * If you want 0,0 of a clipPath to align with an object center, use clipPath.originX/Y to 'center'\n * @type fabric.Object\n */\n clipPath: undefined,\n\n /**\n * Meaningful ONLY when the object is used as clipPath.\n * if true, the clipPath will make the object clip to the outside of the clipPath\n * since 2.4.0\n * @type boolean\n * @default false\n */\n inverted: false,\n\n /**\n * Meaningful ONLY when the object is used as clipPath.\n * if true, the clipPath will have its top and left relative to canvas, and will\n * not be influenced by the object transform. This will make the clipPath relative\n * to the canvas, but clipping just a particular object.\n * WARNING this is beta, this feature may change or be renamed.\n * since 2.4.0\n * @type boolean\n * @default false\n */\n absolutePositioned: false,\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n if (options) {\n this.setOptions(options);\n }\n },\n\n /**\n * Create a the canvas used to keep the cached copy of the object\n * @private\n */\n _createCacheCanvas: function() {\n this._cacheProperties = {};\n this._cacheCanvas = fabric.util.createCanvasElement();\n this._cacheContext = this._cacheCanvas.getContext('2d');\n this._updateCacheCanvas();\n // if canvas gets created, is empty, so dirty.\n this.dirty = true;\n },\n\n /**\n * Limit the cache dimensions so that X * Y do not cross fabric.perfLimitSizeTotal\n * and each side do not cross fabric.cacheSideLimit\n * those numbers are configurable so that you can get as much detail as you want\n * making bargain with performances.\n * @param {Object} dims\n * @param {Object} dims.width width of canvas\n * @param {Object} dims.height height of canvas\n * @param {Object} dims.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @param {Object} dims.zoomY zoomY zoom value to unscale the canvas before drawing cache\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _limitCacheSize: function(dims) {\n var perfLimitSizeTotal = fabric.perfLimitSizeTotal,\n width = dims.width, height = dims.height,\n max = fabric.maxCacheSideLimit, min = fabric.minCacheSideLimit;\n if (width <= max && height <= max && width * height <= perfLimitSizeTotal) {\n if (width < min) {\n dims.width = min;\n }\n if (height < min) {\n dims.height = min;\n }\n return dims;\n }\n var ar = width / height, limitedDims = fabric.util.limitDimsByArea(ar, perfLimitSizeTotal),\n capValue = fabric.util.capValue,\n x = capValue(min, limitedDims.x, max),\n y = capValue(min, limitedDims.y, max);\n if (width > x) {\n dims.zoomX /= width / x;\n dims.width = x;\n dims.capped = true;\n }\n if (height > y) {\n dims.zoomY /= height / y;\n dims.height = y;\n dims.capped = true;\n }\n return dims;\n },\n\n /**\n * Return the dimension and the zoom level needed to create a cache canvas\n * big enough to host the object to be cached.\n * @private\n * @return {Object}.x width of object to be cached\n * @return {Object}.y height of object to be cached\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _getCacheCanvasDimensions: function() {\n var objectScale = this.getTotalObjectScaling(),\n // caculate dimensions without skewing\n dim = this._getTransformedDimensions(0, 0),\n neededX = dim.x * objectScale.scaleX / this.scaleX,\n neededY = dim.y * objectScale.scaleY / this.scaleY;\n return {\n // for sure this ALIASING_LIMIT is slightly creating problem\n // in situation in which the cache canvas gets an upper limit\n // also objectScale contains already scaleX and scaleY\n width: neededX + ALIASING_LIMIT,\n height: neededY + ALIASING_LIMIT,\n zoomX: objectScale.scaleX,\n zoomY: objectScale.scaleY,\n x: neededX,\n y: neededY\n };\n },\n\n /**\n * Update width and height of the canvas for cache\n * returns true or false if canvas needed resize.\n * @private\n * @return {Boolean} true if the canvas has been resized\n */\n _updateCacheCanvas: function() {\n var targetCanvas = this.canvas;\n if (this.noScaleCache && targetCanvas && targetCanvas._currentTransform) {\n var target = targetCanvas._currentTransform.target,\n action = targetCanvas._currentTransform.action;\n if (this === target && action.slice && action.slice(0, 5) === 'scale') {\n return false;\n }\n }\n var canvas = this._cacheCanvas,\n dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n minCacheSize = fabric.minCacheSideLimit,\n width = dims.width, height = dims.height, drawingWidth, drawingHeight,\n zoomX = dims.zoomX, zoomY = dims.zoomY,\n dimensionsChanged = width !== this.cacheWidth || height !== this.cacheHeight,\n zoomChanged = this.zoomX !== zoomX || this.zoomY !== zoomY,\n shouldRedraw = dimensionsChanged || zoomChanged,\n additionalWidth = 0, additionalHeight = 0, shouldResizeCanvas = false;\n if (dimensionsChanged) {\n var canvasWidth = this._cacheCanvas.width,\n canvasHeight = this._cacheCanvas.height,\n sizeGrowing = width > canvasWidth || height > canvasHeight,\n sizeShrinking = (width < canvasWidth * 0.9 || height < canvasHeight * 0.9) &&\n canvasWidth > minCacheSize && canvasHeight > minCacheSize;\n shouldResizeCanvas = sizeGrowing || sizeShrinking;\n if (sizeGrowing && !dims.capped && (width > minCacheSize || height > minCacheSize)) {\n additionalWidth = width * 0.1;\n additionalHeight = height * 0.1;\n }\n }\n if (shouldRedraw) {\n if (shouldResizeCanvas) {\n canvas.width = Math.ceil(width + additionalWidth);\n canvas.height = Math.ceil(height + additionalHeight);\n }\n else {\n this._cacheContext.setTransform(1, 0, 0, 1, 0, 0);\n this._cacheContext.clearRect(0, 0, canvas.width, canvas.height);\n }\n drawingWidth = dims.x / 2;\n drawingHeight = dims.y / 2;\n this.cacheTranslationX = Math.round(canvas.width / 2 - drawingWidth) + drawingWidth;\n this.cacheTranslationY = Math.round(canvas.height / 2 - drawingHeight) + drawingHeight;\n this.cacheWidth = width;\n this.cacheHeight = height;\n this._cacheContext.translate(this.cacheTranslationX, this.cacheTranslationY);\n this._cacheContext.scale(zoomX, zoomY);\n this.zoomX = zoomX;\n this.zoomY = zoomY;\n return true;\n }\n return false;\n },\n\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n setOptions: function(options) {\n this._setOptions(options);\n this._initGradient(options.fill, 'fill');\n this._initGradient(options.stroke, 'stroke');\n this._initPattern(options.fill, 'fill');\n this._initPattern(options.stroke, 'stroke');\n },\n\n /**\n * Transforms context when rendering an object\n * @param {CanvasRenderingContext2D} ctx Context\n */\n transform: function(ctx) {\n var needFullTransform = (this.group && !this.group._transformDone) ||\n (this.group && this.canvas && ctx === this.canvas.contextTop);\n var m = this.calcTransformMatrix(!needFullTransform);\n ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n },\n\n /**\n * Returns an object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,\n\n object = {\n type: this.type,\n version: fabric.version,\n originX: this.originX,\n originY: this.originY,\n left: toFixed(this.left, NUM_FRACTION_DIGITS),\n top: toFixed(this.top, NUM_FRACTION_DIGITS),\n width: toFixed(this.width, NUM_FRACTION_DIGITS),\n height: toFixed(this.height, NUM_FRACTION_DIGITS),\n fill: (this.fill && this.fill.toObject) ? this.fill.toObject() : this.fill,\n stroke: (this.stroke && this.stroke.toObject) ? this.stroke.toObject() : this.stroke,\n strokeWidth: toFixed(this.strokeWidth, NUM_FRACTION_DIGITS),\n strokeDashArray: this.strokeDashArray ? this.strokeDashArray.concat() : this.strokeDashArray,\n strokeLineCap: this.strokeLineCap,\n strokeDashOffset: this.strokeDashOffset,\n strokeLineJoin: this.strokeLineJoin,\n // strokeUniform: this.strokeUniform,\n strokeMiterLimit: toFixed(this.strokeMiterLimit, NUM_FRACTION_DIGITS),\n scaleX: toFixed(this.scaleX, NUM_FRACTION_DIGITS),\n scaleY: toFixed(this.scaleY, NUM_FRACTION_DIGITS),\n angle: toFixed(this.angle, NUM_FRACTION_DIGITS),\n flipX: this.flipX,\n flipY: this.flipY,\n opacity: toFixed(this.opacity, NUM_FRACTION_DIGITS),\n shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow,\n visible: this.visible,\n backgroundColor: this.backgroundColor,\n fillRule: this.fillRule,\n paintFirst: this.paintFirst,\n globalCompositeOperation: this.globalCompositeOperation,\n skewX: toFixed(this.skewX, NUM_FRACTION_DIGITS),\n skewY: toFixed(this.skewY, NUM_FRACTION_DIGITS),\n };\n\n if (this.clipPath) {\n object.clipPath = this.clipPath.toObject(propertiesToInclude);\n object.clipPath.inverted = this.clipPath.inverted;\n object.clipPath.absolutePositioned = this.clipPath.absolutePositioned;\n }\n\n fabric.util.populateWithProperties(this, object, propertiesToInclude);\n if (!this.includeDefaultValues) {\n object = this._removeDefaultValues(object);\n }\n\n return object;\n },\n\n /**\n * Returns (dataless) object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n // will be overwritten by subclasses\n return this.toObject(propertiesToInclude);\n },\n\n /**\n * @private\n * @param {Object} object\n */\n _removeDefaultValues: function(object) {\n var prototype = fabric.util.getKlass(object.type).prototype,\n stateProperties = prototype.stateProperties;\n stateProperties.forEach(function(prop) {\n if (prop === 'left' || prop === 'top') {\n return;\n }\n if (object[prop] === prototype[prop]) {\n delete object[prop];\n }\n var isArray = Object.prototype.toString.call(object[prop]) === '[object Array]' &&\n Object.prototype.toString.call(prototype[prop]) === '[object Array]';\n\n // basically a check for [] === []\n if (isArray && object[prop].length === 0 && prototype[prop].length === 0) {\n delete object[prop];\n }\n });\n\n return object;\n },\n\n /**\n * Returns a string representation of an instance\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Return the object scale factor counting also the group scaling\n * @return {Object} object with scaleX and scaleY properties\n */\n getObjectScaling: function() {\n var options = fabric.util.qrDecompose(this.calcTransformMatrix());\n return { scaleX: Math.abs(options.scaleX), scaleY: Math.abs(options.scaleY) };\n },\n\n /**\n * Return the object scale factor counting also the group scaling, zoom and retina\n * @return {Object} object with scaleX and scaleY properties\n */\n getTotalObjectScaling: function() {\n var scale = this.getObjectScaling(), scaleX = scale.scaleX, scaleY = scale.scaleY;\n if (this.canvas) {\n var zoom = this.canvas.getZoom();\n var retina = this.canvas.getRetinaScaling();\n scaleX *= zoom * retina;\n scaleY *= zoom * retina;\n }\n return { scaleX: scaleX, scaleY: scaleY };\n },\n\n /**\n * Return the object opacity counting also the group property\n * @return {Number}\n */\n getObjectOpacity: function() {\n var opacity = this.opacity;\n if (this.group) {\n opacity *= this.group.getObjectOpacity();\n }\n return opacity;\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Object} thisArg\n */\n _set: function(key, value) {\n var shouldConstrainValue = (key === 'scaleX' || key === 'scaleY'),\n isChanged = this[key] !== value, groupNeedsUpdate = false;\n\n if (shouldConstrainValue) {\n value = this._constrainScale(value);\n }\n if (key === 'scaleX' && value < 0) {\n this.flipX = !this.flipX;\n value *= -1;\n }\n else if (key === 'scaleY' && value < 0) {\n this.flipY = !this.flipY;\n value *= -1;\n }\n else if (key === 'shadow' && value && !(value instanceof fabric.Shadow)) {\n value = new fabric.Shadow(value);\n }\n else if (key === 'dirty' && this.group) {\n this.group.set('dirty', value);\n }\n\n this[key] = value;\n\n if (isChanged) {\n groupNeedsUpdate = this.group && this.group.isOnACache();\n if (this.cacheProperties.indexOf(key) > -1) {\n this.dirty = true;\n groupNeedsUpdate && this.group.set('dirty', true);\n }\n else if (groupNeedsUpdate && this.stateProperties.indexOf(key) > -1) {\n this.group.set('dirty', true);\n }\n }\n\n return this;\n },\n\n /**\n * This callback function is called by the parent group of an object every\n * time a non-delegated property changes on the group. It is passed the key\n * and value as parameters. Not adding in this function's signature to avoid\n * Travis build error about unused variables.\n */\n setOnGroup: function() {\n // implemented by sub-classes, as needed.\n },\n\n /**\n * Retrieves viewportTransform from Object's canvas if possible\n * @method getViewportTransform\n * @memberOf fabric.Object.prototype\n * @return {Array}\n */\n getViewportTransform: function() {\n if (this.canvas && this.canvas.viewportTransform) {\n return this.canvas.viewportTransform;\n }\n return fabric.iMatrix.concat();\n },\n\n /*\n * @private\n * return if the object would be visible in rendering\n * @memberOf fabric.Object.prototype\n * @return {Boolean}\n */\n isNotVisible: function() {\n return this.opacity === 0 ||\n (!this.width && !this.height && this.strokeWidth === 0) ||\n !this.visible;\n },\n\n /**\n * Renders an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n // do not render if width/height are zeros or object is not visible\n if (this.isNotVisible()) {\n return;\n }\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n ctx.save();\n this._setupCompositeOperation(ctx);\n this.drawSelectionBackground(ctx);\n this.transform(ctx);\n this._setOpacity(ctx);\n this._setShadow(ctx, this);\n if (this.shouldCache()) {\n this.renderCache();\n this.drawCacheOnCanvas(ctx);\n }\n else {\n this._removeCacheCanvas();\n this.dirty = false;\n this.drawObject(ctx);\n if (this.objectCaching && this.statefullCache) {\n this.saveState({ propertySet: 'cacheProperties' });\n }\n }\n ctx.restore();\n },\n\n renderCache: function(options) {\n options = options || {};\n if (!this._cacheCanvas) {\n this._createCacheCanvas();\n }\n if (this.isCacheDirty()) {\n this.statefullCache && this.saveState({ propertySet: 'cacheProperties' });\n this.drawObject(this._cacheContext, options.forClipping);\n this.dirty = false;\n }\n },\n\n /**\n * Remove cacheCanvas and its dimensions from the objects\n */\n _removeCacheCanvas: function() {\n this._cacheCanvas = null;\n this.cacheWidth = 0;\n this.cacheHeight = 0;\n },\n\n /**\n * return true if the object will draw a stroke\n * Does not consider text styles. This is just a shortcut used at rendering time\n * We want it to be an aproximation and be fast.\n * wrote to avoid extra caching, it has to return true when stroke happens,\n * can guess when it will not happen at 100% chance, does not matter if it misses\n * some use case where the stroke is invisible.\n * @since 3.0.0\n * @returns Boolean\n */\n hasStroke: function() {\n return this.stroke && this.stroke !== 'transparent' && this.strokeWidth !== 0;\n },\n\n /**\n * return true if the object will draw a fill\n * Does not consider text styles. This is just a shortcut used at rendering time\n * We want it to be an aproximation and be fast.\n * wrote to avoid extra caching, it has to return true when fill happens,\n * can guess when it will not happen at 100% chance, does not matter if it misses\n * some use case where the fill is invisible.\n * @since 3.0.0\n * @returns Boolean\n */\n hasFill: function() {\n return this.fill && this.fill !== 'transparent';\n },\n\n /**\n * When set to `true`, force the object to have its own cache, even if it is inside a group\n * it may be needed when your object behave in a particular way on the cache and always needs\n * its own isolated canvas to render correctly.\n * Created to be overridden\n * since 1.7.12\n * @returns Boolean\n */\n needsItsOwnCache: function() {\n if (this.paintFirst === 'stroke' &&\n this.hasFill() && this.hasStroke() && typeof this.shadow === 'object') {\n return true;\n }\n if (this.clipPath) {\n return true;\n }\n return false;\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * Read as: cache if is needed, or if the feature is enabled but we are not already caching.\n * @return {Boolean}\n */\n shouldCache: function() {\n this.ownCaching = this.needsItsOwnCache() || (\n this.objectCaching &&\n (!this.group || !this.group.isOnACache())\n );\n return this.ownCaching;\n },\n\n /**\n * Check if this object or a child object will cast a shadow\n * used by Group.shouldCache to know if child has a shadow recursively\n * @return {Boolean}\n */\n willDrawShadow: function() {\n return !!this.shadow && (this.shadow.offsetX !== 0 || this.shadow.offsetY !== 0);\n },\n\n /**\n * Execute the drawing operation for an object clipPath\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawClipPathOnCache: function(ctx) {\n var path = this.clipPath;\n ctx.save();\n // DEBUG: uncomment this line, comment the following\n // ctx.globalAlpha = 0.4\n if (path.inverted) {\n ctx.globalCompositeOperation = 'destination-out';\n }\n else {\n ctx.globalCompositeOperation = 'destination-in';\n }\n //ctx.scale(1 / 2, 1 / 2);\n if (path.absolutePositioned) {\n var m = fabric.util.invertTransform(this.calcTransformMatrix());\n ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n path.transform(ctx);\n ctx.scale(1 / path.zoomX, 1 / path.zoomY);\n ctx.drawImage(path._cacheCanvas, -path.cacheTranslationX, -path.cacheTranslationY);\n ctx.restore();\n },\n\n /**\n * Execute the drawing operation for an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawObject: function(ctx, forClipping) {\n var originalFill = this.fill, originalStroke = this.stroke;\n if (forClipping) {\n this.fill = 'black';\n this.stroke = '';\n this._setClippingProperties(ctx);\n }\n else {\n this._renderBackground(ctx);\n this._setStrokeStyles(ctx, this);\n this._setFillStyles(ctx, this);\n }\n this._render(ctx);\n this._drawClipPath(ctx);\n this.fill = originalFill;\n this.stroke = originalStroke;\n },\n\n _drawClipPath: function(ctx) {\n var path = this.clipPath;\n if (!path) { return; }\n // needed to setup a couple of variables\n // path canvas gets overridden with this one.\n // TODO find a better solution?\n path.canvas = this.canvas;\n path.shouldCache();\n path._transformDone = true;\n path.renderCache({ forClipping: true });\n this.drawClipPathOnCache(ctx);\n },\n\n /**\n * Paint the cached copy of the object on the target context.\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawCacheOnCanvas: function(ctx) {\n ctx.scale(1 / this.zoomX, 1 / this.zoomY);\n ctx.drawImage(this._cacheCanvas, -this.cacheTranslationX, -this.cacheTranslationY);\n },\n\n /**\n * Check if cache is dirty\n * @param {Boolean} skipCanvas skip canvas checks because this object is painted\n * on parent canvas.\n */\n isCacheDirty: function(skipCanvas) {\n if (this.isNotVisible()) {\n return false;\n }\n if (this._cacheCanvas && !skipCanvas && this._updateCacheCanvas()) {\n // in this case the context is already cleared.\n return true;\n }\n else {\n if (this.dirty ||\n (this.clipPath && this.clipPath.absolutePositioned) ||\n (this.statefullCache && this.hasStateChanged('cacheProperties'))\n ) {\n if (this._cacheCanvas && !skipCanvas) {\n var width = this.cacheWidth / this.zoomX;\n var height = this.cacheHeight / this.zoomY;\n this._cacheContext.clearRect(-width / 2, -height / 2, width, height);\n }\n return true;\n }\n }\n return false;\n },\n\n /**\n * Draws a background for the object big as its untransformed dimensions\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderBackground: function(ctx) {\n if (!this.backgroundColor) {\n return;\n }\n var dim = this._getNonTransformedDimensions();\n ctx.fillStyle = this.backgroundColor;\n\n ctx.fillRect(\n -dim.x / 2,\n -dim.y / 2,\n dim.x,\n dim.y\n );\n // if there is background color no other shadows\n // should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _setOpacity: function(ctx) {\n if (this.group && !this.group._transformDone) {\n ctx.globalAlpha = this.getObjectOpacity();\n }\n else {\n ctx.globalAlpha *= this.opacity;\n }\n },\n\n _setStrokeStyles: function(ctx, decl) {\n if (decl.stroke) {\n ctx.lineWidth = decl.strokeWidth;\n ctx.lineCap = decl.strokeLineCap;\n ctx.lineDashOffset = decl.strokeDashOffset;\n ctx.lineJoin = decl.strokeLineJoin;\n ctx.miterLimit = decl.strokeMiterLimit;\n ctx.strokeStyle = decl.stroke.toLive\n ? decl.stroke.toLive(ctx, this)\n : decl.stroke;\n }\n },\n\n _setFillStyles: function(ctx, decl) {\n if (decl.fill) {\n ctx.fillStyle = decl.fill.toLive\n ? decl.fill.toLive(ctx, this)\n : decl.fill;\n }\n },\n\n _setClippingProperties: function(ctx) {\n ctx.globalAlpha = 1;\n ctx.strokeStyle = 'transparent';\n ctx.fillStyle = '#000000';\n },\n\n /**\n * @private\n * Sets line dash\n * @param {CanvasRenderingContext2D} ctx Context to set the dash line on\n * @param {Array} dashArray array representing dashes\n * @param {Function} alternative function to call if browser does not support lineDash\n */\n _setLineDash: function(ctx, dashArray, alternative) {\n if (!dashArray || dashArray.length === 0) {\n return;\n }\n // Spec requires the concatenation of two copies the dash list when the number of elements is odd\n if (1 & dashArray.length) {\n dashArray.push.apply(dashArray, dashArray);\n }\n if (supportsLineDash) {\n ctx.setLineDash(dashArray);\n }\n else {\n alternative && alternative(ctx);\n }\n },\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n */\n _renderControls: function(ctx, styleOverride) {\n var vpt = this.getViewportTransform(),\n matrix = this.calcTransformMatrix(),\n options, drawBorders, drawControls;\n styleOverride = styleOverride || { };\n drawBorders = typeof styleOverride.hasBorders !== 'undefined' ? styleOverride.hasBorders : this.hasBorders;\n drawControls = typeof styleOverride.hasControls !== 'undefined' ? styleOverride.hasControls : this.hasControls;\n matrix = fabric.util.multiplyTransformMatrices(vpt, matrix);\n options = fabric.util.qrDecompose(matrix);\n ctx.save();\n ctx.translate(options.translateX, options.translateY);\n ctx.lineWidth = 1 * this.borderScaleFactor;\n if (!this.group) {\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n }\n if (styleOverride.forActiveSelection) {\n ctx.rotate(degreesToRadians(options.angle));\n drawBorders && this.drawBordersInGroup(ctx, options, styleOverride);\n }\n else {\n ctx.rotate(degreesToRadians(this.angle));\n drawBorders && this.drawBorders(ctx, styleOverride);\n }\n drawControls && this.drawControls(ctx, styleOverride);\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _setShadow: function(ctx) {\n if (!this.shadow) {\n return;\n }\n\n var shadow = this.shadow, canvas = this.canvas, scaling,\n multX = (canvas && canvas.viewportTransform[0]) || 1,\n multY = (canvas && canvas.viewportTransform[3]) || 1;\n if (shadow.nonScaling) {\n scaling = { scaleX: 1, scaleY: 1 };\n }\n else {\n scaling = this.getObjectScaling();\n }\n if (canvas && canvas._isRetinaScaling()) {\n multX *= fabric.devicePixelRatio;\n multY *= fabric.devicePixelRatio;\n }\n ctx.shadowColor = shadow.color;\n ctx.shadowBlur = shadow.blur * fabric.browserShadowBlurConstant *\n (multX + multY) * (scaling.scaleX + scaling.scaleY) / 4;\n ctx.shadowOffsetX = shadow.offsetX * multX * scaling.scaleX;\n ctx.shadowOffsetY = shadow.offsetY * multY * scaling.scaleY;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _removeShadow: function(ctx) {\n if (!this.shadow) {\n return;\n }\n\n ctx.shadowColor = '';\n ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} filler fabric.Pattern or fabric.Gradient\n * @return {Object} offset.offsetX offset for text rendering\n * @return {Object} offset.offsetY offset for text rendering\n */\n _applyPatternGradientTransform: function(ctx, filler) {\n if (!filler || !filler.toLive) {\n return { offsetX: 0, offsetY: 0 };\n }\n var t = filler.gradientTransform || filler.patternTransform;\n var offsetX = -this.width / 2 + filler.offsetX || 0,\n offsetY = -this.height / 2 + filler.offsetY || 0;\n\n if (filler.gradientUnits === 'percentage') {\n ctx.transform(this.width, 0, 0, this.height, offsetX, offsetY);\n }\n else {\n ctx.transform(1, 0, 0, 1, offsetX, offsetY);\n }\n if (t) {\n ctx.transform(t[0], t[1], t[2], t[3], t[4], t[5]);\n }\n return { offsetX: offsetX, offsetY: offsetY };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderPaintInOrder: function(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderStroke(ctx);\n this._renderFill(ctx);\n }\n else {\n this._renderFill(ctx);\n this._renderStroke(ctx);\n }\n },\n\n /**\n * @private\n * function that actually render something on the context.\n * empty here to allow Obects to work on tests to benchmark fabric functionalites\n * not related to rendering\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(/* ctx */) {\n\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderFill: function(ctx) {\n if (!this.fill) {\n return;\n }\n\n ctx.save();\n this._applyPatternGradientTransform(ctx, this.fill);\n if (this.fillRule === 'evenodd') {\n ctx.fill('evenodd');\n }\n else {\n ctx.fill();\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderStroke: function(ctx) {\n if (!this.stroke || this.strokeWidth === 0) {\n return;\n }\n\n if (this.shadow && !this.shadow.affectStroke) {\n this._removeShadow(ctx);\n }\n\n ctx.save();\n if (this.strokeUniform && this.group) {\n var scaling = this.getObjectScaling();\n ctx.scale(1 / scaling.scaleX, 1 / scaling.scaleY);\n }\n else if (this.strokeUniform) {\n ctx.scale(1 / this.scaleX, 1 / this.scaleY);\n }\n this._setLineDash(ctx, this.strokeDashArray, this._renderDashedStroke);\n if (this.stroke.toLive && this.stroke.gradientUnits === 'percentage') {\n // need to transform gradient in a pattern.\n // this is a slow process. If you are hitting this codepath, and the object\n // is not using caching, you should consider switching it on.\n // we need a canvas as big as the current object caching canvas.\n this._applyPatternForTransformedGradient(ctx, this.stroke);\n }\n else {\n this._applyPatternGradientTransform(ctx, this.stroke);\n }\n ctx.stroke();\n ctx.restore();\n },\n\n /**\n * This function try to patch the missing gradientTransform on canvas gradients.\n * transforming a context to transform the gradient, is going to transform the stroke too.\n * we want to transform the gradient but not the stroke operation, so we create\n * a transformed gradient on a pattern and then we use the pattern instead of the gradient.\n * this method has drwabacks: is slow, is in low resolution, needs a patch for when the size\n * is limited.\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {fabric.Gradient} filler a fabric gradient instance\n */\n _applyPatternForTransformedGradient: function(ctx, filler) {\n var dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n pCanvas = fabric.util.createCanvasElement(), pCtx, retinaScaling = this.canvas.getRetinaScaling(),\n width = dims.x / this.scaleX / retinaScaling, height = dims.y / this.scaleY / retinaScaling;\n pCanvas.width = width;\n pCanvas.height = height;\n pCtx = pCanvas.getContext('2d');\n pCtx.beginPath(); pCtx.moveTo(0, 0); pCtx.lineTo(width, 0); pCtx.lineTo(width, height);\n pCtx.lineTo(0, height); pCtx.closePath();\n pCtx.translate(width / 2, height / 2);\n pCtx.scale(\n dims.zoomX / this.scaleX / retinaScaling,\n dims.zoomY / this.scaleY / retinaScaling\n );\n this._applyPatternGradientTransform(pCtx, filler);\n pCtx.fillStyle = filler.toLive(ctx);\n pCtx.fill();\n ctx.translate(-this.width / 2 - this.strokeWidth / 2, -this.height / 2 - this.strokeWidth / 2);\n ctx.scale(\n retinaScaling * this.scaleX / dims.zoomX,\n retinaScaling * this.scaleY / dims.zoomY\n );\n ctx.strokeStyle = pCtx.createPattern(pCanvas, 'no-repeat');\n },\n\n /**\n * This function is an helper for svg import. it returns the center of the object in the svg\n * untransformed coordinates\n * @private\n * @return {Object} center point from element coordinates\n */\n _findCenterFromElement: function() {\n return { x: this.left + this.width / 2, y: this.top + this.height / 2 };\n },\n\n /**\n * This function is an helper for svg import. it decompose the transformMatrix\n * and assign properties to object.\n * untransformed coordinates\n * @private\n * @chainable\n */\n _assignTransformMatrixProps: function() {\n if (this.transformMatrix) {\n var options = fabric.util.qrDecompose(this.transformMatrix);\n this.flipX = false;\n this.flipY = false;\n this.set('scaleX', options.scaleX);\n this.set('scaleY', options.scaleY);\n this.angle = options.angle;\n this.skewX = options.skewX;\n this.skewY = 0;\n }\n },\n\n /**\n * This function is an helper for svg import. it removes the transform matrix\n * and set to object properties that fabricjs can handle\n * @private\n * @param {Object} preserveAspectRatioOptions\n * @return {thisArg}\n */\n _removeTransformMatrix: function(preserveAspectRatioOptions) {\n var center = this._findCenterFromElement();\n if (this.transformMatrix) {\n this._assignTransformMatrixProps();\n center = fabric.util.transformPoint(center, this.transformMatrix);\n }\n this.transformMatrix = null;\n if (preserveAspectRatioOptions) {\n this.scaleX *= preserveAspectRatioOptions.scaleX;\n this.scaleY *= preserveAspectRatioOptions.scaleY;\n this.cropX = preserveAspectRatioOptions.cropX;\n this.cropY = preserveAspectRatioOptions.cropY;\n center.x += preserveAspectRatioOptions.offsetLeft;\n center.y += preserveAspectRatioOptions.offsetTop;\n this.width = preserveAspectRatioOptions.width;\n this.height = preserveAspectRatioOptions.height;\n }\n this.setPositionByOrigin(center, 'center', 'center');\n },\n\n /**\n * Clones an instance, using a callback method will work for every object.\n * @param {Function} callback Callback is invoked with a clone as a first argument\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n */\n clone: function(callback, propertiesToInclude) {\n var objectForm = this.toObject(propertiesToInclude);\n if (this.constructor.fromObject) {\n this.constructor.fromObject(objectForm, callback);\n }\n else {\n fabric.Object._fromObject('Object', objectForm, callback);\n }\n },\n\n /**\n * Creates an instance of fabric.Image out of an object\n * could make use of both toDataUrl or toCanvasElement.\n * @param {Function} callback callback, invoked with an instance as a first argument\n * @param {Object} [options] for clone as image, passed to toDataURL\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {fabric.Object} thisArg\n */\n cloneAsImage: function(callback, options) {\n var canvasEl = this.toCanvasElement(options);\n if (callback) {\n callback(new fabric.Image(canvasEl));\n }\n return this;\n },\n\n /**\n * Converts an object into a HTMLCanvas element\n * @param {Object} options Options object\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {HTMLCanvasElement} Returns DOM element with the fabric.Object\n */\n toCanvasElement: function(options) {\n options || (options = { });\n\n var utils = fabric.util, origParams = utils.saveObjectTransform(this),\n originalGroup = this.group,\n originalShadow = this.shadow, abs = Math.abs,\n multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? fabric.devicePixelRatio : 1);\n delete this.group;\n if (options.withoutTransform) {\n utils.resetObjectTransform(this);\n }\n if (options.withoutShadow) {\n this.shadow = null;\n }\n\n var el = fabric.util.createCanvasElement(),\n // skip canvas zoom and calculate with setCoords now.\n boundingRect = this.getBoundingRect(true, true),\n shadow = this.shadow, scaling,\n shadowOffset = { x: 0, y: 0 }, shadowBlur,\n width, height;\n\n if (shadow) {\n shadowBlur = shadow.blur;\n if (shadow.nonScaling) {\n scaling = { scaleX: 1, scaleY: 1 };\n }\n else {\n scaling = this.getObjectScaling();\n }\n // consider non scaling shadow.\n shadowOffset.x = 2 * Math.round(abs(shadow.offsetX) + shadowBlur) * (abs(scaling.scaleX));\n shadowOffset.y = 2 * Math.round(abs(shadow.offsetY) + shadowBlur) * (abs(scaling.scaleY));\n }\n width = boundingRect.width + shadowOffset.x;\n height = boundingRect.height + shadowOffset.y;\n // if the current width/height is not an integer\n // we need to make it so.\n el.width = Math.ceil(width);\n el.height = Math.ceil(height);\n var canvas = new fabric.StaticCanvas(el, {\n enableRetinaScaling: false,\n renderOnAddRemove: false,\n skipOffscreen: false,\n });\n if (options.format === 'jpeg') {\n canvas.backgroundColor = '#fff';\n }\n this.setPositionByOrigin(new fabric.Point(canvas.width / 2, canvas.height / 2), 'center', 'center');\n\n var originalCanvas = this.canvas;\n canvas.add(this);\n var canvasEl = canvas.toCanvasElement(multiplier || 1, options);\n this.shadow = originalShadow;\n this.set('canvas', originalCanvas);\n if (originalGroup) {\n this.group = originalGroup;\n }\n this.set(origParams).setCoords();\n // canvas.dispose will call image.dispose that will nullify the elements\n // since this canvas is a simple element for the process, we remove references\n // to objects in this way in order to avoid object trashing.\n canvas._objects = [];\n canvas.dispose();\n canvas = null;\n\n return canvasEl;\n },\n\n /**\n * Converts an object into a data-url-like string\n * @param {Object} options Options object\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format\n */\n toDataURL: function(options) {\n options || (options = { });\n return fabric.util.toDataURL(this.toCanvasElement(options), options.format || 'png', options.quality || 1);\n },\n\n /**\n * Returns true if specified type is identical to the type of an instance\n * @param {String} type Type to check against\n * @return {Boolean}\n */\n isType: function(type) {\n return this.type === type;\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity of this instance (is 1 unless subclassed)\n */\n complexity: function() {\n return 1;\n },\n\n /**\n * Returns a JSON representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} JSON\n */\n toJSON: function(propertiesToInclude) {\n // delegate, not alias\n return this.toObject(propertiesToInclude);\n },\n\n /**\n * Sets \"angle\" of an instance with centered rotation\n * @param {Number} angle Angle value (in degrees)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n rotate: function(angle) {\n var shouldCenterOrigin = (this.originX !== 'center' || this.originY !== 'center') && this.centeredRotation;\n\n if (shouldCenterOrigin) {\n this._setOriginToCenter();\n }\n\n this.set('angle', angle);\n\n if (shouldCenterOrigin) {\n this._resetOrigin();\n }\n\n return this;\n },\n\n /**\n * Centers object horizontally on canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n centerH: function () {\n this.canvas && this.canvas.centerObjectH(this);\n return this;\n },\n\n /**\n * Centers object horizontally on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenterH: function () {\n this.canvas && this.canvas.viewportCenterObjectH(this);\n return this;\n },\n\n /**\n * Centers object vertically on canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n centerV: function () {\n this.canvas && this.canvas.centerObjectV(this);\n return this;\n },\n\n /**\n * Centers object vertically on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenterV: function () {\n this.canvas && this.canvas.viewportCenterObjectV(this);\n return this;\n },\n\n /**\n * Centers object vertically and horizontally on canvas to which is was added last\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n center: function () {\n this.canvas && this.canvas.centerObject(this);\n return this;\n },\n\n /**\n * Centers object on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenter: function () {\n this.canvas && this.canvas.viewportCenterObject(this);\n return this;\n },\n\n /**\n * Returns coordinates of a pointer relative to an object\n * @param {Event} e Event to operate upon\n * @param {Object} [pointer] Pointer to operate upon (instead of event)\n * @return {Object} Coordinates of a pointer (x, y)\n */\n getLocalPointer: function(e, pointer) {\n pointer = pointer || this.canvas.getPointer(e);\n var pClicked = new fabric.Point(pointer.x, pointer.y),\n objectLeftTop = this._getLeftTopCoords();\n if (this.angle) {\n pClicked = fabric.util.rotatePoint(\n pClicked, objectLeftTop, degreesToRadians(-this.angle));\n }\n return {\n x: pClicked.x - objectLeftTop.x,\n y: pClicked.y - objectLeftTop.y\n };\n },\n\n /**\n * Sets canvas globalCompositeOperation for specific object\n * custom composition operation for the particular object can be specified using globalCompositeOperation property\n * @param {CanvasRenderingContext2D} ctx Rendering canvas context\n */\n _setupCompositeOperation: function (ctx) {\n if (this.globalCompositeOperation) {\n ctx.globalCompositeOperation = this.globalCompositeOperation;\n }\n }\n });\n\n fabric.util.createAccessors && fabric.util.createAccessors(fabric.Object);\n\n extend(fabric.Object.prototype, fabric.Observable);\n\n /**\n * Defines the number of fraction digits to use when serializing object values.\n * You can use it to increase/decrease precision of such values like left, top, scaleX, scaleY, etc.\n * @static\n * @memberOf fabric.Object\n * @constant\n * @type Number\n */\n fabric.Object.NUM_FRACTION_DIGITS = 2;\n\n fabric.Object._fromObject = function(className, object, callback, extraParam) {\n var klass = fabric[className];\n object = clone(object, true);\n fabric.util.enlivenPatterns([object.fill, object.stroke], function(patterns) {\n if (typeof patterns[0] !== 'undefined') {\n object.fill = patterns[0];\n }\n if (typeof patterns[1] !== 'undefined') {\n object.stroke = patterns[1];\n }\n fabric.util.enlivenObjects([object.clipPath], function(enlivedProps) {\n object.clipPath = enlivedProps[0];\n var instance = extraParam ? new klass(object[extraParam], object) : new klass(object);\n callback && callback(instance);\n });\n });\n };\n\n /**\n * Unique id used internally when creating SVG elements\n * @static\n * @memberOf fabric.Object\n * @type Number\n */\n fabric.Object.__uid = 0;\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n\n var degreesToRadians = fabric.util.degreesToRadians,\n originXOffset = {\n left: -0.5,\n center: 0,\n right: 0.5\n },\n originYOffset = {\n top: -0.5,\n center: 0,\n bottom: 0.5\n };\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Translates the coordinates from a set of origin to another (based on the object's dimensions)\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @param {String} fromOriginX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} fromOriginY Vertical origin: 'top', 'center' or 'bottom'\n * @param {String} toOriginX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} toOriginY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToGivenOrigin: function(point, fromOriginX, fromOriginY, toOriginX, toOriginY) {\n var x = point.x,\n y = point.y,\n offsetX, offsetY, dim;\n\n if (typeof fromOriginX === 'string') {\n fromOriginX = originXOffset[fromOriginX];\n }\n else {\n fromOriginX -= 0.5;\n }\n\n if (typeof toOriginX === 'string') {\n toOriginX = originXOffset[toOriginX];\n }\n else {\n toOriginX -= 0.5;\n }\n\n offsetX = toOriginX - fromOriginX;\n\n if (typeof fromOriginY === 'string') {\n fromOriginY = originYOffset[fromOriginY];\n }\n else {\n fromOriginY -= 0.5;\n }\n\n if (typeof toOriginY === 'string') {\n toOriginY = originYOffset[toOriginY];\n }\n else {\n toOriginY -= 0.5;\n }\n\n offsetY = toOriginY - fromOriginY;\n\n if (offsetX || offsetY) {\n dim = this._getTransformedDimensions();\n x = point.x + offsetX * dim.x;\n y = point.y + offsetY * dim.y;\n }\n\n return new fabric.Point(x, y);\n },\n\n /**\n * Translates the coordinates from origin to center coordinates (based on the object's dimensions)\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToCenterPoint: function(point, originX, originY) {\n var p = this.translateToGivenOrigin(point, originX, originY, 'center', 'center');\n if (this.angle) {\n return fabric.util.rotatePoint(p, point, degreesToRadians(this.angle));\n }\n return p;\n },\n\n /**\n * Translates the coordinates from center to origin coordinates (based on the object's dimensions)\n * @param {fabric.Point} center The point which corresponds to center of the object\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToOriginPoint: function(center, originX, originY) {\n var p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n if (this.angle) {\n return fabric.util.rotatePoint(p, center, degreesToRadians(this.angle));\n }\n return p;\n },\n\n /**\n * Returns the real center coordinates of the object\n * @return {fabric.Point}\n */\n getCenterPoint: function() {\n var leftTop = new fabric.Point(this.left, this.top);\n return this.translateToCenterPoint(leftTop, this.originX, this.originY);\n },\n\n /**\n * Returns the coordinates of the object based on center coordinates\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @return {fabric.Point}\n */\n // getOriginPoint: function(center) {\n // return this.translateToOriginPoint(center, this.originX, this.originY);\n // },\n\n /**\n * Returns the coordinates of the object as if it has a different origin\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n getPointByOrigin: function(originX, originY) {\n var center = this.getCenterPoint();\n return this.translateToOriginPoint(center, originX, originY);\n },\n\n /**\n * Returns the point in local coordinates\n * @param {fabric.Point} point The point relative to the global coordinate system\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n toLocalPoint: function(point, originX, originY) {\n var center = this.getCenterPoint(),\n p, p2;\n\n if (typeof originX !== 'undefined' && typeof originY !== 'undefined' ) {\n p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n }\n else {\n p = new fabric.Point(this.left, this.top);\n }\n\n p2 = new fabric.Point(point.x, point.y);\n if (this.angle) {\n p2 = fabric.util.rotatePoint(p2, center, -degreesToRadians(this.angle));\n }\n return p2.subtractEquals(p);\n },\n\n /**\n * Returns the point in global coordinates\n * @param {fabric.Point} The point relative to the local coordinate system\n * @return {fabric.Point}\n */\n // toGlobalPoint: function(point) {\n // return fabric.util.rotatePoint(point, this.getCenterPoint(), degreesToRadians(this.angle)).addEquals(new fabric.Point(this.left, this.top));\n // },\n\n /**\n * Sets the position of the object taking into consideration the object's origin\n * @param {fabric.Point} pos The new position of the object\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {void}\n */\n setPositionByOrigin: function(pos, originX, originY) {\n var center = this.translateToCenterPoint(pos, originX, originY),\n position = this.translateToOriginPoint(center, this.originX, this.originY);\n this.set('left', position.x);\n this.set('top', position.y);\n },\n\n /**\n * @param {String} to One of 'left', 'center', 'right'\n */\n adjustPosition: function(to) {\n var angle = degreesToRadians(this.angle),\n hypotFull = this.getScaledWidth(),\n xFull = fabric.util.cos(angle) * hypotFull,\n yFull = fabric.util.sin(angle) * hypotFull,\n offsetFrom, offsetTo;\n\n //TODO: this function does not consider mixed situation like top, center.\n if (typeof this.originX === 'string') {\n offsetFrom = originXOffset[this.originX];\n }\n else {\n offsetFrom = this.originX - 0.5;\n }\n if (typeof to === 'string') {\n offsetTo = originXOffset[to];\n }\n else {\n offsetTo = to - 0.5;\n }\n this.left += xFull * (offsetTo - offsetFrom);\n this.top += yFull * (offsetTo - offsetFrom);\n this.setCoords();\n this.originX = to;\n },\n\n /**\n * Sets the origin/position of the object to it's center point\n * @private\n * @return {void}\n */\n _setOriginToCenter: function() {\n this._originalOriginX = this.originX;\n this._originalOriginY = this.originY;\n\n var center = this.getCenterPoint();\n\n this.originX = 'center';\n this.originY = 'center';\n\n this.left = center.x;\n this.top = center.y;\n },\n\n /**\n * Resets the origin/position of the object to it's original origin\n * @private\n * @return {void}\n */\n _resetOrigin: function() {\n var originPoint = this.translateToOriginPoint(\n this.getCenterPoint(),\n this._originalOriginX,\n this._originalOriginY);\n\n this.originX = this._originalOriginX;\n this.originY = this._originalOriginY;\n\n this.left = originPoint.x;\n this.top = originPoint.y;\n\n this._originalOriginX = null;\n this._originalOriginY = null;\n },\n\n /**\n * @private\n */\n _getLeftTopCoords: function() {\n return this.translateToOriginPoint(this.getCenterPoint(), 'left', 'top');\n },\n });\n\n})();\n\n\n(function() {\n\n function arrayFromCoords(coords) {\n return [\n new fabric.Point(coords.tl.x, coords.tl.y),\n new fabric.Point(coords.tr.x, coords.tr.y),\n new fabric.Point(coords.br.x, coords.br.y),\n new fabric.Point(coords.bl.x, coords.bl.y)\n ];\n }\n\n var util = fabric.util,\n degreesToRadians = util.degreesToRadians,\n multiplyMatrices = util.multiplyTransformMatrices,\n transformPoint = util.transformPoint;\n\n util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Describe object's corner position in canvas element coordinates.\n * properties are depending on control keys and padding the main controls.\n * each property is an object with x, y and corner.\n * The `corner` property contains in a similar manner the 4 points of the\n * interactive area of the corner.\n * The coordinates depends from the controls positionHandler and are used\n * to draw and locate controls\n * @memberOf fabric.Object.prototype\n */\n oCoords: null,\n\n /**\n * Describe object's corner position in canvas object absolute coordinates\n * properties are tl,tr,bl,br and describe the four main corner.\n * each property is an object with x, y, instance of Fabric.Point.\n * The coordinates depends from this properties: width, height, scaleX, scaleY\n * skewX, skewY, angle, strokeWidth, top, left.\n * Those coordinates are useful to understand where an object is. They get updated\n * with oCoords but they do not need to be updated when zoom or panning change.\n * The coordinates get updated with @method setCoords.\n * You can calculate them without updating with @method calcACoords();\n * @memberOf fabric.Object.prototype\n */\n aCoords: null,\n\n /**\n * Describe object's corner position in canvas element coordinates.\n * includes padding. Used of object detection.\n * set and refreshed with setCoords and calcCoords.\n * @memberOf fabric.Object.prototype\n */\n lineCoords: null,\n\n /**\n * storage for object transform matrix\n */\n ownMatrixCache: null,\n\n /**\n * storage for object full transform matrix\n */\n matrixCache: null,\n\n /**\n * custom controls interface\n * controls are added by default_controls.js\n */\n controls: { },\n\n /**\n * return correct set of coordinates for intersection\n * this will return either aCoords or lineCoords.\n * @param {Boolean} absolute will return aCoords if true or lineCoords\n * @return {Object} {tl, tr, br, bl} points\n */\n _getCoords: function(absolute, calculate) {\n if (calculate) {\n return (absolute ? this.calcACoords() : this.calcLineCoords());\n }\n if (!this.aCoords || !this.lineCoords) {\n this.setCoords(true);\n }\n return (absolute ? this.aCoords : this.lineCoords);\n },\n\n /**\n * return correct set of coordinates for intersection\n * this will return either aCoords or lineCoords.\n * The coords are returned in an array.\n * @return {Array} [tl, tr, br, bl] of points\n */\n getCoords: function(absolute, calculate) {\n return arrayFromCoords(this._getCoords(absolute, calculate));\n },\n\n /**\n * Checks if object intersects with an area formed by 2 points\n * @param {Object} pointTL top-left point of area\n * @param {Object} pointBR bottom-right point of area\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object intersects with an area formed by 2 points\n */\n intersectsWithRect: function(pointTL, pointBR, absolute, calculate) {\n var coords = this.getCoords(absolute, calculate),\n intersection = fabric.Intersection.intersectPolygonRectangle(\n coords,\n pointTL,\n pointBR\n );\n return intersection.status === 'Intersection';\n },\n\n /**\n * Checks if object intersects with another object\n * @param {Object} other Object to test\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object intersects with another object\n */\n intersectsWithObject: function(other, absolute, calculate) {\n var intersection = fabric.Intersection.intersectPolygonPolygon(\n this.getCoords(absolute, calculate),\n other.getCoords(absolute, calculate)\n );\n\n return intersection.status === 'Intersection'\n || other.isContainedWithinObject(this, absolute, calculate)\n || this.isContainedWithinObject(other, absolute, calculate);\n },\n\n /**\n * Checks if object is fully contained within area of another object\n * @param {Object} other Object to test\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is fully contained within area of another object\n */\n isContainedWithinObject: function(other, absolute, calculate) {\n var points = this.getCoords(absolute, calculate),\n otherCoords = absolute ? other.aCoords : other.lineCoords,\n i = 0, lines = other._getImageLines(otherCoords);\n for (; i < 4; i++) {\n if (!other.containsPoint(points[i], lines)) {\n return false;\n }\n }\n return true;\n },\n\n /**\n * Checks if object is fully contained within area formed by 2 points\n * @param {Object} pointTL top-left point of area\n * @param {Object} pointBR bottom-right point of area\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is fully contained within area formed by 2 points\n */\n isContainedWithinRect: function(pointTL, pointBR, absolute, calculate) {\n var boundingRect = this.getBoundingRect(absolute, calculate);\n\n return (\n boundingRect.left >= pointTL.x &&\n boundingRect.left + boundingRect.width <= pointBR.x &&\n boundingRect.top >= pointTL.y &&\n boundingRect.top + boundingRect.height <= pointBR.y\n );\n },\n\n /**\n * Checks if point is inside the object\n * @param {fabric.Point} point Point to check against\n * @param {Object} [lines] object returned from @method _getImageLines\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if point is inside the object\n */\n containsPoint: function(point, lines, absolute, calculate) {\n var coords = this._getCoords(absolute, calculate),\n lines = lines || this._getImageLines(coords),\n xPoints = this._findCrossPoints(point, lines);\n // if xPoints is odd then point is inside the object\n return (xPoints !== 0 && xPoints % 2 === 1);\n },\n\n /**\n * Checks if object is contained within the canvas with current viewportTransform\n * the check is done stopping at first point that appears on screen\n * @param {Boolean} [calculate] use coordinates of current position instead of .aCoords\n * @return {Boolean} true if object is fully or partially contained within canvas\n */\n isOnScreen: function(calculate) {\n if (!this.canvas) {\n return false;\n }\n var pointTL = this.canvas.vptCoords.tl, pointBR = this.canvas.vptCoords.br;\n var points = this.getCoords(true, calculate);\n // if some point is on screen, the object is on screen.\n if (points.some(function(point) {\n return point.x <= pointBR.x && point.x >= pointTL.x &&\n point.y <= pointBR.y && point.y >= pointTL.y;\n })) {\n return true;\n }\n // no points on screen, check intersection with absolute coordinates\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\n return this._containsCenterOfCanvas(pointTL, pointBR, calculate);\n },\n\n /**\n * Checks if the object contains the midpoint between canvas extremities\n * Does not make sense outside the context of isOnScreen and isPartiallyOnScreen\n * @private\n * @param {Fabric.Point} pointTL Top Left point\n * @param {Fabric.Point} pointBR Top Right point\n * @param {Boolean} calculate use coordinates of current position instead of .oCoords\n * @return {Boolean} true if the object contains the point\n */\n _containsCenterOfCanvas: function(pointTL, pointBR, calculate) {\n // worst case scenario the object is so big that contains the screen\n var centerPoint = { x: (pointTL.x + pointBR.x) / 2, y: (pointTL.y + pointBR.y) / 2 };\n if (this.containsPoint(centerPoint, null, true, calculate)) {\n return true;\n }\n return false;\n },\n\n /**\n * Checks if object is partially contained within the canvas with current viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is partially contained within canvas\n */\n isPartiallyOnScreen: function(calculate) {\n if (!this.canvas) {\n return false;\n }\n var pointTL = this.canvas.vptCoords.tl, pointBR = this.canvas.vptCoords.br;\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\n var allPointsAreOutside = this.getCoords(true, calculate).every(function(point) {\n return (point.x >= pointBR.x || point.x <= pointTL.x) &&\n (point.y >= pointBR.y || point.y <= pointTL.y);\n });\n return allPointsAreOutside && this._containsCenterOfCanvas(pointTL, pointBR, calculate);\n },\n\n /**\n * Method that returns an object with the object edges in it, given the coordinates of the corners\n * @private\n * @param {Object} oCoords Coordinates of the object corners\n */\n _getImageLines: function(oCoords) {\n\n var lines = {\n topline: {\n o: oCoords.tl,\n d: oCoords.tr\n },\n rightline: {\n o: oCoords.tr,\n d: oCoords.br\n },\n bottomline: {\n o: oCoords.br,\n d: oCoords.bl\n },\n leftline: {\n o: oCoords.bl,\n d: oCoords.tl\n }\n };\n\n // // debugging\n // if (this.canvas.contextTop) {\n // this.canvas.contextTop.fillRect(lines.bottomline.d.x, lines.bottomline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.bottomline.o.x, lines.bottomline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.leftline.d.x, lines.leftline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.leftline.o.x, lines.leftline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.topline.d.x, lines.topline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.topline.o.x, lines.topline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.rightline.d.x, lines.rightline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.rightline.o.x, lines.rightline.o.y, 2, 2);\n // }\n\n return lines;\n },\n\n /**\n * Helper method to determine how many cross points are between the 4 object edges\n * and the horizontal line determined by a point on canvas\n * @private\n * @param {fabric.Point} point Point to check\n * @param {Object} lines Coordinates of the object being evaluated\n */\n // remove yi, not used but left code here just in case.\n _findCrossPoints: function(point, lines) {\n var b1, b2, a1, a2, xi, // yi,\n xcount = 0,\n iLine;\n\n for (var lineKey in lines) {\n iLine = lines[lineKey];\n // optimisation 1: line below point. no cross\n if ((iLine.o.y < point.y) && (iLine.d.y < point.y)) {\n continue;\n }\n // optimisation 2: line above point. no cross\n if ((iLine.o.y >= point.y) && (iLine.d.y >= point.y)) {\n continue;\n }\n // optimisation 3: vertical line case\n if ((iLine.o.x === iLine.d.x) && (iLine.o.x >= point.x)) {\n xi = iLine.o.x;\n // yi = point.y;\n }\n // calculate the intersection point\n else {\n b1 = 0;\n b2 = (iLine.d.y - iLine.o.y) / (iLine.d.x - iLine.o.x);\n a1 = point.y - b1 * point.x;\n a2 = iLine.o.y - b2 * iLine.o.x;\n\n xi = -(a1 - a2) / (b1 - b2);\n // yi = a1 + b1 * xi;\n }\n // dont count xi < point.x cases\n if (xi >= point.x) {\n xcount += 1;\n }\n // optimisation 4: specific for square images\n if (xcount === 2) {\n break;\n }\n }\n return xcount;\n },\n\n /**\n * Returns coordinates of object's bounding rectangle (left, top, width, height)\n * the box is intended as aligned to axis of canvas.\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords / .aCoords\n * @return {Object} Object with left, top, width, height properties\n */\n getBoundingRect: function(absolute, calculate) {\n var coords = this.getCoords(absolute, calculate);\n return util.makeBoundingBoxFromPoints(coords);\n },\n\n /**\n * Returns width of an object's bounding box counting transformations\n * before 2.0 it was named getWidth();\n * @return {Number} width value\n */\n getScaledWidth: function() {\n return this._getTransformedDimensions().x;\n },\n\n /**\n * Returns height of an object bounding box counting transformations\n * before 2.0 it was named getHeight();\n * @return {Number} height value\n */\n getScaledHeight: function() {\n return this._getTransformedDimensions().y;\n },\n\n /**\n * Makes sure the scale is valid and modifies it if necessary\n * @private\n * @param {Number} value\n * @return {Number}\n */\n _constrainScale: function(value) {\n if (Math.abs(value) < this.minScaleLimit) {\n if (value < 0) {\n return -this.minScaleLimit;\n }\n else {\n return this.minScaleLimit;\n }\n }\n else if (value === 0) {\n return 0.0001;\n }\n return value;\n },\n\n /**\n * Scales an object (equally by x and y)\n * @param {Number} value Scale factor\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scale: function(value) {\n this._set('scaleX', value);\n this._set('scaleY', value);\n return this.setCoords();\n },\n\n /**\n * Scales an object to a given width, with respect to bounding box (scaling by x/y equally)\n * @param {Number} value New width value\n * @param {Boolean} absolute ignore viewport\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scaleToWidth: function(value, absolute) {\n // adjust to bounding rect factor so that rotated shapes would fit as well\n var boundingRectFactor = this.getBoundingRect(absolute).width / this.getScaledWidth();\n return this.scale(value / this.width / boundingRectFactor);\n },\n\n /**\n * Scales an object to a given height, with respect to bounding box (scaling by x/y equally)\n * @param {Number} value New height value\n * @param {Boolean} absolute ignore viewport\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scaleToHeight: function(value, absolute) {\n // adjust to bounding rect factor so that rotated shapes would fit as well\n var boundingRectFactor = this.getBoundingRect(absolute).height / this.getScaledHeight();\n return this.scale(value / this.height / boundingRectFactor);\n },\n\n /**\n * Calculates and returns the .coords of an object.\n * unused by the library, only for the end dev.\n * @return {Object} Object with tl, tr, br, bl ....\n * @chainable\n * @deprecated\n */\n calcCoords: function(absolute) {\n // this is a compatibility function to avoid removing calcCoords now.\n if (absolute) {\n return this.calcACoords();\n }\n return this.calcOCoords();\n },\n\n calcLineCoords: function() {\n var vpt = this.getViewportTransform(),\n padding = this.padding, angle = degreesToRadians(this.angle),\n cos = util.cos(angle), sin = util.sin(angle),\n cosP = cos * padding, sinP = sin * padding, cosPSinP = cosP + sinP,\n cosPMinusSinP = cosP - sinP, aCoords = this.calcACoords();\n\n var lineCoords = {\n tl: transformPoint(aCoords.tl, vpt),\n tr: transformPoint(aCoords.tr, vpt),\n bl: transformPoint(aCoords.bl, vpt),\n br: transformPoint(aCoords.br, vpt),\n };\n\n if (padding) {\n lineCoords.tl.x -= cosPMinusSinP;\n lineCoords.tl.y -= cosPSinP;\n lineCoords.tr.x += cosPSinP;\n lineCoords.tr.y -= cosPMinusSinP;\n lineCoords.bl.x -= cosPSinP;\n lineCoords.bl.y += cosPMinusSinP;\n lineCoords.br.x += cosPMinusSinP;\n lineCoords.br.y += cosPSinP;\n }\n\n return lineCoords;\n },\n\n calcOCoords: function() {\n var rotateMatrix = this._calcRotateMatrix(),\n translateMatrix = this._calcTranslateMatrix(),\n vpt = this.getViewportTransform(),\n startMatrix = multiplyMatrices(vpt, translateMatrix),\n finalMatrix = multiplyMatrices(startMatrix, rotateMatrix),\n finalMatrix = multiplyMatrices(finalMatrix, [1 / vpt[0], 0, 0, 1 / vpt[3], 0, 0]),\n dim = this._calculateCurrentDimensions(),\n coords = {};\n this.forEachControl(function(control, key, fabricObject) {\n coords[key] = control.positionHandler(dim, finalMatrix, fabricObject);\n });\n\n // debug code\n // var canvas = this.canvas;\n // setTimeout(function() {\n // canvas.contextTop.clearRect(0, 0, 700, 700);\n // canvas.contextTop.fillStyle = 'green';\n // Object.keys(coords).forEach(function(key) {\n // var control = coords[key];\n // canvas.contextTop.fillRect(control.x, control.y, 3, 3);\n // });\n // }, 50);\n return coords;\n },\n\n calcACoords: function() {\n var rotateMatrix = this._calcRotateMatrix(),\n translateMatrix = this._calcTranslateMatrix(),\n finalMatrix = multiplyMatrices(translateMatrix, rotateMatrix),\n dim = this._getTransformedDimensions(),\n w = dim.x / 2, h = dim.y / 2;\n return {\n // corners\n tl: transformPoint({ x: -w, y: -h }, finalMatrix),\n tr: transformPoint({ x: w, y: -h }, finalMatrix),\n bl: transformPoint({ x: -w, y: h }, finalMatrix),\n br: transformPoint({ x: w, y: h }, finalMatrix)\n };\n },\n\n /**\n * Sets corner position coordinates based on current angle, width and height.\n * oCoords are used to find the corners\n * aCoords are used to quickly find an object on the canvas\n * lineCoords are used to quickly find object during pointer events.\n * See {@link https://github.com/kangax/fabric.js/wiki/When-to-call-setCoords|When-to-call-setCoords}\n * @param {Boolean} [skipCorners] skip calculation of oCoords.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setCoords: function(skipCorners) {\n this.aCoords = this.calcACoords();\n // in case we are in a group, for how the inner group target check works,\n // lineCoords are exactly aCoords. Since the vpt gets absorbed by the normalized pointer.\n this.lineCoords = this.group ? this.aCoords : this.calcLineCoords();\n if (skipCorners) {\n return this;\n }\n // set coordinates of the draggable boxes in the corners used to scale/rotate the image\n this.oCoords = this.calcOCoords();\n this._setCornerCoords && this._setCornerCoords();\n return this;\n },\n\n /**\n * calculate rotation matrix of an object\n * @return {Array} rotation matrix for the object\n */\n _calcRotateMatrix: function() {\n return util.calcRotateMatrix(this);\n },\n\n /**\n * calculate the translation matrix for an object transform\n * @return {Array} rotation matrix for the object\n */\n _calcTranslateMatrix: function() {\n var center = this.getCenterPoint();\n return [1, 0, 0, 1, center.x, center.y];\n },\n\n transformMatrixKey: function(skipGroup) {\n var sep = '_', prefix = '';\n if (!skipGroup && this.group) {\n prefix = this.group.transformMatrixKey(skipGroup) + sep;\n };\n return prefix + this.top + sep + this.left + sep + this.scaleX + sep + this.scaleY +\n sep + this.skewX + sep + this.skewY + sep + this.angle + sep + this.originX + sep + this.originY +\n sep + this.width + sep + this.height + sep + this.strokeWidth + this.flipX + this.flipY;\n },\n\n /**\n * calculate transform matrix that represents the current transformations from the\n * object's properties.\n * @param {Boolean} [skipGroup] return transform matrix for object not counting parent transformations\n * There are some situation in which this is useful to avoid the fake rotation.\n * @return {Array} transform matrix for the object\n */\n calcTransformMatrix: function(skipGroup) {\n var matrix = this.calcOwnMatrix();\n if (skipGroup || !this.group) {\n return matrix;\n }\n var key = this.transformMatrixKey(skipGroup), cache = this.matrixCache || (this.matrixCache = {});\n if (cache.key === key) {\n return cache.value;\n }\n if (this.group) {\n matrix = multiplyMatrices(this.group.calcTransformMatrix(false), matrix);\n }\n cache.key = key;\n cache.value = matrix;\n return matrix;\n },\n\n /**\n * calculate transform matrix that represents the current transformations from the\n * object's properties, this matrix does not include the group transformation\n * @return {Array} transform matrix for the object\n */\n calcOwnMatrix: function() {\n var key = this.transformMatrixKey(true), cache = this.ownMatrixCache || (this.ownMatrixCache = {});\n if (cache.key === key) {\n return cache.value;\n }\n var tMatrix = this._calcTranslateMatrix(),\n options = {\n angle: this.angle,\n translateX: tMatrix[4],\n translateY: tMatrix[5],\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n skewX: this.skewX,\n skewY: this.skewY,\n flipX: this.flipX,\n flipY: this.flipY,\n };\n cache.key = key;\n cache.value = util.composeMatrix(options);\n return cache.value;\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n * @deprecated since 3.4.0, please use fabric.util._calcDimensionsTransformMatrix\n * not including or including flipX, flipY to emulate the flipping boolean\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _calcDimensionsTransformMatrix: function(skewX, skewY, flipping) {\n return util.calcDimensionsMatrix({\n skewX: skewX,\n skewY: skewY,\n scaleX: this.scaleX * (flipping && this.flipX ? -1 : 1),\n scaleY: this.scaleY * (flipping && this.flipY ? -1 : 1)\n });\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _getNonTransformedDimensions: function() {\n var strokeWidth = this.strokeWidth,\n w = this.width + strokeWidth,\n h = this.height + strokeWidth;\n return { x: w, y: h };\n },\n\n /*\n * Calculate object bounding box dimensions from its properties scale, skew.\n * @param {Number} skewX, a value to override current skewX\n * @param {Number} skewY, a value to override current skewY\n * @private\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _getTransformedDimensions: function(skewX, skewY) {\n if (typeof skewX === 'undefined') {\n skewX = this.skewX;\n }\n if (typeof skewY === 'undefined') {\n skewY = this.skewY;\n }\n var dimensions = this._getNonTransformedDimensions(), dimX, dimY,\n noSkew = skewX === 0 && skewY === 0;\n\n if (this.strokeUniform) {\n dimX = this.width;\n dimY = this.height;\n }\n else {\n dimX = dimensions.x;\n dimY = dimensions.y;\n }\n if (noSkew) {\n return this._finalizeDimensions(dimX * this.scaleX, dimY * this.scaleY);\n }\n var bbox = util.sizeAfterTransform(dimX, dimY, {\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n skewX: skewX,\n skewY: skewY,\n });\n return this._finalizeDimensions(bbox.x, bbox.y);\n },\n\n /*\n * Calculate object bounding box dimensions from its properties scale, skew.\n * @param Number width width of the bbox\n * @param Number height height of the bbox\n * @private\n * @return {Object} .x finalized width dimension\n * @return {Object} .y finalized height dimension\n */\n _finalizeDimensions: function(width, height) {\n return this.strokeUniform ?\n { x: width + this.strokeWidth, y: height + this.strokeWidth }\n :\n { x: width, y: height };\n },\n\n /*\n * Calculate object dimensions for controls box, including padding and canvas zoom.\n * and active selection\n * private\n */\n _calculateCurrentDimensions: function() {\n var vpt = this.getViewportTransform(),\n dim = this._getTransformedDimensions(),\n p = transformPoint(dim, vpt, true);\n return p.scalarAdd(2 * this.padding);\n },\n });\n})();\n\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Moves an object to the bottom of the stack of drawn objects\n * @return {fabric.Object} thisArg\n * @chainable\n */\n sendToBack: function() {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendToBack.call(this.group, this);\n }\n else if (this.canvas) {\n this.canvas.sendToBack(this);\n }\n return this;\n },\n\n /**\n * Moves an object to the top of the stack of drawn objects\n * @return {fabric.Object} thisArg\n * @chainable\n */\n bringToFront: function() {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringToFront.call(this.group, this);\n }\n else if (this.canvas) {\n this.canvas.bringToFront(this);\n }\n return this;\n },\n\n /**\n * Moves an object down in stack of drawn objects\n * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n sendBackwards: function(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendBackwards.call(this.group, this, intersecting);\n }\n else if (this.canvas) {\n this.canvas.sendBackwards(this, intersecting);\n }\n return this;\n },\n\n /**\n * Moves an object up in stack of drawn objects\n * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n bringForward: function(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringForward.call(this.group, this, intersecting);\n }\n else if (this.canvas) {\n this.canvas.bringForward(this, intersecting);\n }\n return this;\n },\n\n /**\n * Moves an object to specified level in stack of drawn objects\n * @param {Number} index New position of object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n moveTo: function(index) {\n if (this.group && this.group.type !== 'activeSelection') {\n fabric.StaticCanvas.prototype.moveTo.call(this.group, this, index);\n }\n else if (this.canvas) {\n this.canvas.moveTo(this, index);\n }\n return this;\n }\n});\n\n\n/* _TO_SVG_START_ */\n(function() {\n function getSvgColorString(prop, value) {\n if (!value) {\n return prop + ': none; ';\n }\n else if (value.toLive) {\n return prop + ': url(#SVGID_' + value.id + '); ';\n }\n else {\n var color = new fabric.Color(value),\n str = prop + ': ' + color.toRgb() + '; ',\n opacity = color.getAlpha();\n if (opacity !== 1) {\n //change the color in rgb + opacity\n str += prop + '-opacity: ' + opacity.toString() + '; ';\n }\n return str;\n }\n }\n\n var toFixed = fabric.util.toFixed;\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles: function(skipShadow) {\n\n var fillRule = this.fillRule ? this.fillRule : 'nonzero',\n strokeWidth = this.strokeWidth ? this.strokeWidth : '0',\n strokeDashArray = this.strokeDashArray ? this.strokeDashArray.join(' ') : 'none',\n strokeDashOffset = this.strokeDashOffset ? this.strokeDashOffset : '0',\n strokeLineCap = this.strokeLineCap ? this.strokeLineCap : 'butt',\n strokeLineJoin = this.strokeLineJoin ? this.strokeLineJoin : 'miter',\n strokeMiterLimit = this.strokeMiterLimit ? this.strokeMiterLimit : '4',\n opacity = typeof this.opacity !== 'undefined' ? this.opacity : '1',\n visibility = this.visible ? '' : ' visibility: hidden;',\n filter = skipShadow ? '' : this.getSvgFilter(),\n fill = getSvgColorString('fill', this.fill),\n stroke = getSvgColorString('stroke', this.stroke);\n\n return [\n stroke,\n 'stroke-width: ', strokeWidth, '; ',\n 'stroke-dasharray: ', strokeDashArray, '; ',\n 'stroke-linecap: ', strokeLineCap, '; ',\n 'stroke-dashoffset: ', strokeDashOffset, '; ',\n 'stroke-linejoin: ', strokeLineJoin, '; ',\n 'stroke-miterlimit: ', strokeMiterLimit, '; ',\n fill,\n 'fill-rule: ', fillRule, '; ',\n 'opacity: ', opacity, ';',\n filter,\n visibility\n ].join('');\n },\n\n /**\n * Returns styles-string for svg-export\n * @param {Object} style the object from which to retrieve style properties\n * @param {Boolean} useWhiteSpace a boolean to include an additional attribute in the style.\n * @return {String}\n */\n getSvgSpanStyles: function(style, useWhiteSpace) {\n var term = '; ';\n var fontFamily = style.fontFamily ?\n 'font-family: ' + (((style.fontFamily.indexOf('\\'') === -1 && style.fontFamily.indexOf('\"') === -1) ?\n '\\'' + style.fontFamily + '\\'' : style.fontFamily)) + term : '';\n var strokeWidth = style.strokeWidth ? 'stroke-width: ' + style.strokeWidth + term : '',\n fontFamily = fontFamily,\n fontSize = style.fontSize ? 'font-size: ' + style.fontSize + 'px' + term : '',\n fontStyle = style.fontStyle ? 'font-style: ' + style.fontStyle + term : '',\n fontWeight = style.fontWeight ? 'font-weight: ' + style.fontWeight + term : '',\n fill = style.fill ? getSvgColorString('fill', style.fill) : '',\n stroke = style.stroke ? getSvgColorString('stroke', style.stroke) : '',\n textDecoration = this.getSvgTextDecoration(style),\n deltaY = style.deltaY ? 'baseline-shift: ' + (-style.deltaY) + '; ' : '';\n if (textDecoration) {\n textDecoration = 'text-decoration: ' + textDecoration + term;\n }\n\n return [\n stroke,\n strokeWidth,\n fontFamily,\n fontSize,\n fontStyle,\n fontWeight,\n textDecoration,\n fill,\n deltaY,\n useWhiteSpace ? 'white-space: pre; ' : ''\n ].join('');\n },\n\n /**\n * Returns text-decoration property for svg-export\n * @param {Object} style the object from which to retrieve style properties\n * @return {String}\n */\n getSvgTextDecoration: function(style) {\n return ['overline', 'underline', 'line-through'].filter(function(decoration) {\n return style[decoration.replace('-', '')];\n }).join(' ');\n },\n\n /**\n * Returns filter for svg shadow\n * @return {String}\n */\n getSvgFilter: function() {\n return this.shadow ? 'filter: url(#SVGID_' + this.shadow.id + ');' : '';\n },\n\n /**\n * Returns id attribute for svg output\n * @return {String}\n */\n getSvgCommons: function() {\n return [\n this.id ? 'id=\"' + this.id + '\" ' : '',\n this.clipPath ? 'clip-path=\"url(#' + this.clipPath.clipPathId + ')\" ' : '',\n ].join('');\n },\n\n /**\n * Returns transform-string for svg-export\n * @param {Boolean} use the full transform or the single object one.\n * @return {String}\n */\n getSvgTransform: function(full, additionalTransform) {\n var transform = full ? this.calcTransformMatrix() : this.calcOwnMatrix(),\n svgTransform = 'transform=\"' + fabric.util.matrixToSVG(transform);\n return svgTransform +\n (additionalTransform || '') + '\" ';\n },\n\n _setSVGBg: function(textBgRects) {\n if (this.backgroundColor) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push(\n '\\t\\t\\n');\n }\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n return this._createBaseSVGMarkup(this._toSVG(reviver), { reviver: reviver });\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n return '\\t' + this._createBaseClipPathSVGMarkup(this._toSVG(reviver), { reviver: reviver });\n },\n\n /**\n * @private\n */\n _createBaseClipPathSVGMarkup: function(objectMarkup, options) {\n options = options || {};\n var reviver = options.reviver,\n additionalTransform = options.additionalTransform || '',\n commonPieces = [\n this.getSvgTransform(true, additionalTransform),\n this.getSvgCommons(),\n ].join(''),\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS');\n objectMarkup[index] = commonPieces;\n return reviver ? reviver(objectMarkup.join('')) : objectMarkup.join('');\n },\n\n /**\n * @private\n */\n _createBaseSVGMarkup: function(objectMarkup, options) {\n options = options || {};\n var noStyle = options.noStyle,\n reviver = options.reviver,\n styleInfo = noStyle ? '' : 'style=\"' + this.getSvgStyles() + '\" ',\n shadowInfo = options.withShadow ? 'style=\"' + this.getSvgFilter() + '\" ' : '',\n clipPath = this.clipPath,\n vectorEffect = this.strokeUniform ? 'vector-effect=\"non-scaling-stroke\" ' : '',\n absoluteClipPath = clipPath && clipPath.absolutePositioned,\n stroke = this.stroke, fill = this.fill, shadow = this.shadow,\n commonPieces, markup = [], clipPathMarkup,\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS'),\n additionalTransform = options.additionalTransform;\n if (clipPath) {\n clipPath.clipPathId = 'CLIPPATH_' + fabric.Object.__uid++;\n clipPathMarkup = '\\n' +\n clipPath.toClipPathSVG(reviver) +\n '\\n';\n }\n if (absoluteClipPath) {\n markup.push(\n '\\n'\n );\n }\n markup.push(\n '\\n'\n );\n commonPieces = [\n styleInfo,\n vectorEffect,\n noStyle ? '' : this.addPaintOrder(), ' ',\n additionalTransform ? 'transform=\"' + additionalTransform + '\" ' : '',\n ].join('');\n objectMarkup[index] = commonPieces;\n if (fill && fill.toLive) {\n markup.push(fill.toSVG(this));\n }\n if (stroke && stroke.toLive) {\n markup.push(stroke.toSVG(this));\n }\n if (shadow) {\n markup.push(shadow.toSVG(this));\n }\n if (clipPath) {\n markup.push(clipPathMarkup);\n }\n markup.push(objectMarkup.join(''));\n markup.push('\\n');\n absoluteClipPath && markup.push('\\n');\n return reviver ? reviver(markup.join('')) : markup.join('');\n },\n\n addPaintOrder: function() {\n return this.paintFirst !== 'fill' ? ' paint-order=\"' + this.paintFirst + '\" ' : '';\n }\n });\n})();\n/* _TO_SVG_END_ */\n\n\n(function() {\n\n var extend = fabric.util.object.extend,\n originalSet = 'stateProperties';\n\n /*\n Depends on `stateProperties`\n */\n function saveProps(origin, destination, props) {\n var tmpObj = { }, deep = true;\n props.forEach(function(prop) {\n tmpObj[prop] = origin[prop];\n });\n\n extend(origin[destination], tmpObj, deep);\n }\n\n function _isEqual(origValue, currentValue, firstPass) {\n if (origValue === currentValue) {\n // if the objects are identical, return\n return true;\n }\n else if (Array.isArray(origValue)) {\n if (!Array.isArray(currentValue) || origValue.length !== currentValue.length) {\n return false;\n }\n for (var i = 0, len = origValue.length; i < len; i++) {\n if (!_isEqual(origValue[i], currentValue[i])) {\n return false;\n }\n }\n return true;\n }\n else if (origValue && typeof origValue === 'object') {\n var keys = Object.keys(origValue), key;\n if (!currentValue ||\n typeof currentValue !== 'object' ||\n (!firstPass && keys.length !== Object.keys(currentValue).length)\n ) {\n return false;\n }\n for (var i = 0, len = keys.length; i < len; i++) {\n key = keys[i];\n // since clipPath is in the statefull cache list and the clipPath objects\n // would be iterated as an object, this would lead to possible infinite recursion\n // we do not want to compare those.\n if (key === 'canvas' || key === 'group') {\n continue;\n }\n if (!_isEqual(origValue[key], currentValue[key])) {\n return false;\n }\n }\n return true;\n }\n }\n\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Returns true if object state (one of its state properties) was changed\n * @param {String} [propertySet] optional name for the set of property we want to save\n * @return {Boolean} true if instance' state has changed since `{@link fabric.Object#saveState}` was called\n */\n hasStateChanged: function(propertySet) {\n propertySet = propertySet || originalSet;\n var dashedPropertySet = '_' + propertySet;\n if (Object.keys(this[dashedPropertySet]).length < this[propertySet].length) {\n return true;\n }\n return !_isEqual(this[dashedPropertySet], this, true);\n },\n\n /**\n * Saves state of an object\n * @param {Object} [options] Object with additional `stateProperties` array to include when saving state\n * @return {fabric.Object} thisArg\n */\n saveState: function(options) {\n var propertySet = options && options.propertySet || originalSet,\n destination = '_' + propertySet;\n if (!this[destination]) {\n return this.setupState(options);\n }\n saveProps(this, destination, this[propertySet]);\n if (options && options.stateProperties) {\n saveProps(this, destination, options.stateProperties);\n }\n return this;\n },\n\n /**\n * Setups state of an object\n * @param {Object} [options] Object with additional `stateProperties` array to include when saving state\n * @return {fabric.Object} thisArg\n */\n setupState: function(options) {\n options = options || { };\n var propertySet = options.propertySet || originalSet;\n options.propertySet = propertySet;\n this['_' + propertySet] = { };\n this.saveState(options);\n return this;\n }\n });\n})();\n\n\n(function() {\n\n var degreesToRadians = fabric.util.degreesToRadians;\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Determines which corner has been clicked\n * @private\n * @param {Object} pointer The pointer indicating the mouse position\n * @return {String|Boolean} corner code (tl, tr, bl, br, etc.), or false if nothing is found\n */\n _findTargetCorner: function(pointer, forTouch) {\n // objects in group, anykind, are not self modificable,\n // must not return an hovered corner.\n if (!this.hasControls || this.group || (!this.canvas || this.canvas._activeObject !== this)) {\n return false;\n }\n\n var ex = pointer.x,\n ey = pointer.y,\n xPoints,\n lines, keys = Object.keys(this.oCoords),\n j = keys.length - 1, i;\n this.__corner = 0;\n\n // cycle in reverse order so we pick first the one on top\n for (; j >= 0; j--) {\n i = keys[j];\n if (!this.isControlVisible(i)) {\n continue;\n }\n\n lines = this._getImageLines(forTouch ? this.oCoords[i].touchCorner : this.oCoords[i].corner);\n // debugging\n\n // this.canvas.contextTop.fillRect(lines.bottomline.d.x, lines.bottomline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.bottomline.o.x, lines.bottomline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.leftline.d.x, lines.leftline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.leftline.o.x, lines.leftline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.topline.d.x, lines.topline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.topline.o.x, lines.topline.o.y, 2, 2);\n //\n // this.canvas.contextTop.fillRect(lines.rightline.d.x, lines.rightline.d.y, 2, 2);\n // this.canvas.contextTop.fillRect(lines.rightline.o.x, lines.rightline.o.y, 2, 2);\n\n xPoints = this._findCrossPoints({ x: ex, y: ey }, lines);\n if (xPoints !== 0 && xPoints % 2 === 1) {\n this.__corner = i;\n return i;\n }\n }\n return false;\n },\n\n /**\n * Calls a function for each control. The function gets called,\n * with the control, the object that is calling the iterator and the control's key\n * @param {Function} fn function to iterate over the controls over\n */\n forEachControl: function(fn) {\n for (var i in this.controls) {\n fn(this.controls[i], i, this);\n };\n },\n\n /**\n * Sets the coordinates of the draggable boxes in the corners of\n * the image used to scale/rotate it.\n * note: if we would switch to ROUND corner area, all of this would disappear.\n * everything would resolve to a single point and a pythagorean theorem for the distance\n * @private\n */\n _setCornerCoords: function() {\n var coords = this.oCoords,\n newTheta = degreesToRadians(45 - this.angle),\n cosTheta = fabric.util.cos(newTheta),\n sinTheta = fabric.util.sin(newTheta),\n /* Math.sqrt(2 * Math.pow(this.cornerSize, 2)) / 2, */\n /* 0.707106 stands for sqrt(2)/2 */\n cornerHypotenuse = this.cornerSize * 0.707106,\n touchHypotenuse = this.touchCornerSize * 0.707106,\n cosHalfOffset = cornerHypotenuse * cosTheta,\n sinHalfOffset = cornerHypotenuse * sinTheta,\n touchCosHalfOffset = touchHypotenuse * cosTheta,\n touchSinHalfOffset = touchHypotenuse * sinTheta,\n x, y;\n\n for (var control in coords) {\n x = coords[control].x;\n y = coords[control].y;\n coords[control].corner = {\n tl: {\n x: x - sinHalfOffset,\n y: y - cosHalfOffset\n },\n tr: {\n x: x + cosHalfOffset,\n y: y - sinHalfOffset\n },\n bl: {\n x: x - cosHalfOffset,\n y: y + sinHalfOffset\n },\n br: {\n x: x + sinHalfOffset,\n y: y + cosHalfOffset\n }\n };\n coords[control].touchCorner = {\n tl: {\n x: x - touchSinHalfOffset,\n y: y - touchCosHalfOffset\n },\n tr: {\n x: x + touchCosHalfOffset,\n y: y - touchSinHalfOffset\n },\n bl: {\n x: x - touchCosHalfOffset,\n y: y + touchSinHalfOffset\n },\n br: {\n x: x + touchSinHalfOffset,\n y: y + touchCosHalfOffset\n }\n };\n }\n },\n\n /**\n * Draws a colored layer behind the object, inside its selection borders.\n * Requires public options: padding, selectionBackgroundColor\n * this function is called when the context is transformed\n * has checks to be skipped when the object is on a staticCanvas\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawSelectionBackground: function(ctx) {\n if (!this.selectionBackgroundColor ||\n (this.canvas && !this.canvas.interactive) ||\n (this.canvas && this.canvas._activeObject !== this)\n ) {\n return this;\n }\n ctx.save();\n var center = this.getCenterPoint(), wh = this._calculateCurrentDimensions(),\n vpt = this.canvas.viewportTransform;\n ctx.translate(center.x, center.y);\n ctx.scale(1 / vpt[0], 1 / vpt[3]);\n ctx.rotate(degreesToRadians(this.angle));\n ctx.fillStyle = this.selectionBackgroundColor;\n ctx.fillRect(-wh.x / 2, -wh.y / 2, wh.x, wh.y);\n ctx.restore();\n return this;\n },\n\n /**\n * Draws borders of an object's bounding box.\n * Requires public properties: width, height\n * Requires public options: padding, borderColor\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawBorders: function(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n var wh = this._calculateCurrentDimensions(),\n strokeWidth = this.borderScaleFactor,\n width = wh.x + strokeWidth,\n height = wh.y + strokeWidth,\n hasControls = typeof styleOverride.hasControls !== 'undefined' ?\n styleOverride.hasControls : this.hasControls,\n shouldStroke = false;\n\n ctx.save();\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n\n ctx.strokeRect(\n -width / 2,\n -height / 2,\n width,\n height\n );\n\n if (hasControls) {\n ctx.beginPath();\n this.forEachControl(function(control, key, fabricObject) {\n // in this moment, the ctx is centered on the object.\n // width and height of the above function are the size of the bbox.\n if (control.withConnection && control.getVisibility(fabricObject, key)) {\n // reset movement for each control\n shouldStroke = true;\n ctx.moveTo(control.x * width, control.y * height);\n ctx.lineTo(\n control.x * width + control.offsetX,\n control.y * height + control.offsetY\n );\n }\n });\n if (shouldStroke) {\n ctx.stroke();\n }\n }\n ctx.restore();\n return this;\n },\n\n /**\n * Draws borders of an object's bounding box when it is inside a group.\n * Requires public properties: width, height\n * Requires public options: padding, borderColor\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {object} options object representing current object parameters\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawBordersInGroup: function(ctx, options, styleOverride) {\n styleOverride = styleOverride || {};\n var bbox = fabric.util.sizeAfterTransform(this.width, this.height, options),\n strokeWidth = this.strokeWidth,\n strokeUniform = this.strokeUniform,\n borderScaleFactor = this.borderScaleFactor,\n width =\n bbox.x + strokeWidth * (strokeUniform ? this.canvas.getZoom() : options.scaleX) + borderScaleFactor,\n height =\n bbox.y + strokeWidth * (strokeUniform ? this.canvas.getZoom() : options.scaleY) + borderScaleFactor;\n ctx.save();\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n ctx.strokeRect(\n -width / 2,\n -height / 2,\n width,\n height\n );\n\n ctx.restore();\n return this;\n },\n\n /**\n * Draws corners of an object's bounding box.\n * Requires public properties: width, height\n * Requires public options: cornerSize, padding\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawControls: function(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n ctx.save();\n ctx.setTransform(this.canvas.getRetinaScaling(), 0, 0, this.canvas.getRetinaScaling(), 0, 0);\n ctx.strokeStyle = ctx.fillStyle = styleOverride.cornerColor || this.cornerColor;\n if (!this.transparentCorners) {\n ctx.strokeStyle = styleOverride.cornerStrokeColor || this.cornerStrokeColor;\n }\n this._setLineDash(ctx, styleOverride.cornerDashArray || this.cornerDashArray, null);\n this.setCoords();\n this.forEachControl(function(control, key, fabricObject) {\n if (control.getVisibility(fabricObject, key)) {\n control.render(ctx,\n fabricObject.oCoords[key].x,\n fabricObject.oCoords[key].y, styleOverride, fabricObject);\n }\n });\n ctx.restore();\n\n return this;\n },\n\n /**\n * Returns true if the specified control is visible, false otherwise.\n * @param {String} controlKey The key of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.\n * @returns {Boolean} true if the specified control is visible, false otherwise\n */\n isControlVisible: function(controlKey) {\n return this.controls[controlKey] && this.controls[controlKey].getVisibility(this, controlKey);\n },\n\n /**\n * Sets the visibility of the specified control.\n * @param {String} controlKey The key of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.\n * @param {Boolean} visible true to set the specified control visible, false otherwise\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setControlVisible: function(controlKey, visible) {\n if (!this._controlsVisibility) {\n this._controlsVisibility = {};\n }\n this._controlsVisibility[controlKey] = visible;\n return this;\n },\n\n /**\n * Sets the visibility state of object controls.\n * @param {Object} [options] Options object\n * @param {Boolean} [options.bl] true to enable the bottom-left control, false to disable it\n * @param {Boolean} [options.br] true to enable the bottom-right control, false to disable it\n * @param {Boolean} [options.mb] true to enable the middle-bottom control, false to disable it\n * @param {Boolean} [options.ml] true to enable the middle-left control, false to disable it\n * @param {Boolean} [options.mr] true to enable the middle-right control, false to disable it\n * @param {Boolean} [options.mt] true to enable the middle-top control, false to disable it\n * @param {Boolean} [options.tl] true to enable the top-left control, false to disable it\n * @param {Boolean} [options.tr] true to enable the top-right control, false to disable it\n * @param {Boolean} [options.mtr] true to enable the middle-top-rotate control, false to disable it\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setControlsVisibility: function(options) {\n options || (options = { });\n\n for (var p in options) {\n this.setControlVisible(p, options[p]);\n }\n return this;\n },\n\n\n /**\n * This callback function is called every time _discardActiveObject or _setActiveObject\n * try to to deselect this object. If the function returns true, the process is cancelled\n * @param {Object} [options] options sent from the upper functions\n * @param {Event} [options.e] event if the process is generated by an event\n */\n onDeselect: function() {\n // implemented by sub-classes, as needed.\n },\n\n\n /**\n * This callback function is called every time _discardActiveObject or _setActiveObject\n * try to to select this object. If the function returns true, the process is cancelled\n * @param {Object} [options] options sent from the upper functions\n * @param {Event} [options.e] event if the process is generated by an event\n */\n onSelect: function() {\n // implemented by sub-classes, as needed.\n }\n });\n})();\n\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Animation duration (in ms) for fx* methods\n * @type Number\n * @default\n */\n FX_DURATION: 500,\n\n /**\n * Centers object horizontally with animation.\n * @param {fabric.Object} object Object to center\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxCenterObjectH: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.left,\n endValue: this.getCenter().left,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('left', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function() {\n object.setCoords();\n onComplete();\n }\n });\n\n return this;\n },\n\n /**\n * Centers object vertically with animation.\n * @param {fabric.Object} object Object to center\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxCenterObjectV: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.top,\n endValue: this.getCenter().top,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('top', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function() {\n object.setCoords();\n onComplete();\n }\n });\n\n return this;\n },\n\n /**\n * Same as `fabric.Canvas#remove` but animated\n * @param {fabric.Object} object Object to remove\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxRemove: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.opacity,\n endValue: 0,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('opacity', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function () {\n _this.remove(object);\n onComplete();\n }\n });\n\n return this;\n }\n});\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Animates object's properties\n * @param {String|Object} property Property to animate (if string) or properties to animate (if object)\n * @param {Number|Object} value Value to animate property to (if string was given first) or options object\n * @return {fabric.Object} thisArg\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#animation}\n * @chainable\n *\n * As object — multiple properties\n *\n * object.animate({ left: ..., top: ... });\n * object.animate({ left: ..., top: ... }, { duration: ... });\n *\n * As string — one property\n *\n * object.animate('left', ...);\n * object.animate('left', { duration: ... });\n *\n */\n animate: function() {\n if (arguments[0] && typeof arguments[0] === 'object') {\n var propsToAnimate = [], prop, skipCallbacks;\n for (prop in arguments[0]) {\n propsToAnimate.push(prop);\n }\n for (var i = 0, len = propsToAnimate.length; i < len; i++) {\n prop = propsToAnimate[i];\n skipCallbacks = i !== len - 1;\n this._animate(prop, arguments[0][prop], arguments[1], skipCallbacks);\n }\n }\n else {\n this._animate.apply(this, arguments);\n }\n return this;\n },\n\n /**\n * @private\n * @param {String} property Property to animate\n * @param {String} to Value to animate to\n * @param {Object} [options] Options object\n * @param {Boolean} [skipCallbacks] When true, callbacks like onchange and oncomplete are not invoked\n */\n _animate: function(property, to, options, skipCallbacks) {\n var _this = this, propPair;\n\n to = to.toString();\n\n if (!options) {\n options = { };\n }\n else {\n options = fabric.util.object.clone(options);\n }\n\n if (~property.indexOf('.')) {\n propPair = property.split('.');\n }\n\n var propIsColor =\n _this.colorProperties.indexOf(property) > -1 ||\n (propPair && _this.colorProperties.indexOf(propPair[1]) > -1);\n\n var currentValue = propPair\n ? this.get(propPair[0])[propPair[1]]\n : this.get(property);\n\n if (!('from' in options)) {\n options.from = currentValue;\n }\n\n if (!propIsColor) {\n if (~to.indexOf('=')) {\n to = currentValue + parseFloat(to.replace('=', ''));\n }\n else {\n to = parseFloat(to);\n }\n }\n\n var _options = {\n startValue: options.from,\n endValue: to,\n byValue: options.by,\n easing: options.easing,\n duration: options.duration,\n abort: options.abort && function () {\n return options.abort.call(_this);\n },\n onChange: function (value, valueProgress, timeProgress) {\n if (propPair) {\n _this[propPair[0]][propPair[1]] = value;\n }\n else {\n _this.set(property, value);\n }\n if (skipCallbacks) {\n return;\n }\n options.onChange && options.onChange(value, valueProgress, timeProgress);\n },\n onComplete: function (value, valueProgress, timeProgress) {\n if (skipCallbacks) {\n return;\n }\n\n _this.setCoords();\n options.onComplete && options.onComplete(value, valueProgress, timeProgress);\n }\n };\n\n if (propIsColor) {\n fabric.util.animateColor(_options.startValue, _options.endValue, _options.duration, _options);\n }\n else {\n fabric.util.animate(_options);\n }\n }\n});\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n coordProps = { x1: 1, x2: 1, y1: 1, y2: 1 },\n supportsLineDash = fabric.StaticCanvas.supports('setLineDash');\n\n if (fabric.Line) {\n fabric.warn('fabric.Line is already defined');\n return;\n }\n\n /**\n * Line class\n * @class fabric.Line\n * @extends fabric.Object\n * @see {@link fabric.Line#initialize} for constructor definition\n */\n fabric.Line = fabric.util.createClass(fabric.Object, /** @lends fabric.Line.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'line',\n\n /**\n * x value or first line edge\n * @type Number\n * @default\n */\n x1: 0,\n\n /**\n * y value or first line edge\n * @type Number\n * @default\n */\n y1: 0,\n\n /**\n * x value or second line edge\n * @type Number\n * @default\n */\n x2: 0,\n\n /**\n * y value or second line edge\n * @type Number\n * @default\n */\n y2: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('x1', 'x2', 'y1', 'y2'),\n\n /**\n * Constructor\n * @param {Array} [points] Array of points\n * @param {Object} [options] Options object\n * @return {fabric.Line} thisArg\n */\n initialize: function(points, options) {\n if (!points) {\n points = [0, 0, 0, 0];\n }\n\n this.callSuper('initialize', options);\n\n this.set('x1', points[0]);\n this.set('y1', points[1]);\n this.set('x2', points[2]);\n this.set('y2', points[3]);\n\n this._setWidthHeight(options);\n },\n\n /**\n * @private\n * @param {Object} [options] Options\n */\n _setWidthHeight: function(options) {\n options || (options = { });\n\n this.width = Math.abs(this.x2 - this.x1);\n this.height = Math.abs(this.y2 - this.y1);\n\n this.left = 'left' in options\n ? options.left\n : this._getLeftToOriginX();\n\n this.top = 'top' in options\n ? options.top\n : this._getTopToOriginY();\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n if (typeof coordProps[key] !== 'undefined') {\n this._setWidthHeight();\n }\n return this;\n },\n\n /**\n * @private\n * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line.\n */\n _getLeftToOriginX: makeEdgeToOriginGetter(\n { // property names\n origin: 'originX',\n axis1: 'x1',\n axis2: 'x2',\n dimension: 'width'\n },\n { // possible values of origin\n nearest: 'left',\n center: 'center',\n farthest: 'right'\n }\n ),\n\n /**\n * @private\n * @return {Number} topToOriginY Distance from top edge of canvas to originY of Line.\n */\n _getTopToOriginY: makeEdgeToOriginGetter(\n { // property names\n origin: 'originY',\n axis1: 'y1',\n axis2: 'y2',\n dimension: 'height'\n },\n { // possible values of origin\n nearest: 'top',\n center: 'center',\n farthest: 'bottom'\n }\n ),\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n\n if (!this.strokeDashArray || this.strokeDashArray && supportsLineDash) {\n // move from center (of virtual box) to its left/top corner\n // we can't assume x1, y1 is top left and x2, y2 is bottom right\n var p = this.calcLinePoints();\n ctx.moveTo(p.x1, p.y1);\n ctx.lineTo(p.x2, p.y2);\n }\n\n ctx.lineWidth = this.strokeWidth;\n\n // TODO: test this\n // make sure setting \"fill\" changes color of a line\n // (by copying fillStyle to strokeStyle, since line is stroked, not filled)\n var origStrokeStyle = ctx.strokeStyle;\n ctx.strokeStyle = this.stroke || ctx.fillStyle;\n this.stroke && this._renderStroke(ctx);\n ctx.strokeStyle = origStrokeStyle;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var p = this.calcLinePoints();\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, p.x1, p.y1, p.x2, p.y2, this.strokeDashArray);\n ctx.closePath();\n },\n\n /**\n * This function is an helper for svg import. it returns the center of the object in the svg\n * untransformed coordinates\n * @private\n * @return {Object} center point from element coordinates\n */\n _findCenterFromElement: function() {\n return {\n x: (this.x1 + this.x2) / 2,\n y: (this.y1 + this.y2) / 2,\n };\n },\n\n /**\n * Returns object representation of an instance\n * @methd toObject\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), this.calcLinePoints());\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n */\n _getNonTransformedDimensions: function() {\n var dim = this.callSuper('_getNonTransformedDimensions');\n if (this.strokeLineCap === 'butt') {\n if (this.width === 0) {\n dim.y -= this.strokeWidth;\n }\n if (this.height === 0) {\n dim.x -= this.strokeWidth;\n }\n }\n return dim;\n },\n\n /**\n * Recalculates line points given width and height\n * @private\n */\n calcLinePoints: function() {\n var xMult = this.x1 <= this.x2 ? -1 : 1,\n yMult = this.y1 <= this.y2 ? -1 : 1,\n x1 = (xMult * this.width * 0.5),\n y1 = (yMult * this.height * 0.5),\n x2 = (xMult * this.width * -0.5),\n y2 = (yMult * this.height * -0.5);\n\n return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var p = this.calcLinePoints();\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Line.fromElement})\n * @static\n * @memberOf fabric.Line\n * @see http://www.w3.org/TR/SVG/shapes.html#LineElement\n */\n fabric.Line.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x1 y1 x2 y2'.split(' '));\n\n /**\n * Returns fabric.Line instance from an SVG element\n * @static\n * @memberOf fabric.Line\n * @param {SVGElement} element Element to parse\n * @param {Object} [options] Options object\n * @param {Function} [callback] callback function invoked after parsing\n */\n fabric.Line.fromElement = function(element, callback, options) {\n options = options || { };\n var parsedAttributes = fabric.parseAttributes(element, fabric.Line.ATTRIBUTE_NAMES),\n points = [\n parsedAttributes.x1 || 0,\n parsedAttributes.y1 || 0,\n parsedAttributes.x2 || 0,\n parsedAttributes.y2 || 0\n ];\n callback(new fabric.Line(points, extend(parsedAttributes, options)));\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Line instance from an object representation\n * @static\n * @memberOf fabric.Line\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n */\n fabric.Line.fromObject = function(object, callback) {\n function _callback(instance) {\n delete instance.points;\n callback && callback(instance);\n };\n var options = clone(object, true);\n options.points = [object.x1, object.y1, object.x2, object.y2];\n fabric.Object._fromObject('Line', options, _callback, 'points');\n };\n\n /**\n * Produces a function that calculates distance from canvas edge to Line origin.\n */\n function makeEdgeToOriginGetter(propertyNames, originValues) {\n var origin = propertyNames.origin,\n axis1 = propertyNames.axis1,\n axis2 = propertyNames.axis2,\n dimension = propertyNames.dimension,\n nearest = originValues.nearest,\n center = originValues.center,\n farthest = originValues.farthest;\n\n return function() {\n switch (this.get(origin)) {\n case nearest:\n return Math.min(this.get(axis1), this.get(axis2));\n case center:\n return Math.min(this.get(axis1), this.get(axis2)) + (0.5 * this.get(dimension));\n case farthest:\n return Math.max(this.get(axis1), this.get(axis2));\n }\n };\n\n }\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n pi = Math.PI;\n\n if (fabric.Circle) {\n fabric.warn('fabric.Circle is already defined.');\n return;\n }\n\n /**\n * Circle class\n * @class fabric.Circle\n * @extends fabric.Object\n * @see {@link fabric.Circle#initialize} for constructor definition\n */\n fabric.Circle = fabric.util.createClass(fabric.Object, /** @lends fabric.Circle.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'circle',\n\n /**\n * Radius of this circle\n * @type Number\n * @default\n */\n radius: 0,\n\n /**\n * Start angle of the circle, moving clockwise\n * deprectated type, this should be in degree, this was an oversight.\n * probably will change to degrees in next major version\n * @type Number\n * @default 0\n */\n startAngle: 0,\n\n /**\n * End angle of the circle\n * deprectated type, this should be in degree, this was an oversight.\n * probably will change to degrees in next major version\n * @type Number\n * @default 2Pi\n */\n endAngle: pi * 2,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('radius', 'startAngle', 'endAngle'),\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Circle} thisArg\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n\n if (key === 'radius') {\n this.setRadius(value);\n }\n\n return this;\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['radius', 'startAngle', 'endAngle'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var svgString, x = 0, y = 0,\n angle = (this.endAngle - this.startAngle) % ( 2 * pi);\n\n if (angle === 0) {\n svgString = [\n '\\n'\n ];\n }\n else {\n var startX = fabric.util.cos(this.startAngle) * this.radius,\n startY = fabric.util.sin(this.startAngle) * this.radius,\n endX = fabric.util.cos(this.endAngle) * this.radius,\n endY = fabric.util.sin(this.endAngle) * this.radius,\n largeFlag = angle > pi ? '1' : '0';\n svgString = [\n '\\n'\n ];\n }\n return svgString;\n },\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n ctx.arc(\n 0,\n 0,\n this.radius,\n this.startAngle,\n this.endAngle, false);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusX: function() {\n return this.get('radius') * this.get('scaleX');\n },\n\n /**\n * Returns vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusY: function() {\n return this.get('radius') * this.get('scaleY');\n },\n\n /**\n * Sets radius of an object (and updates width accordingly)\n * @return {fabric.Circle} thisArg\n */\n setRadius: function(value) {\n this.radius = value;\n return this.set('width', value * 2).set('height', value * 2);\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Circle.fromElement})\n * @static\n * @memberOf fabric.Circle\n * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement\n */\n fabric.Circle.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy r'.split(' '));\n\n /**\n * Returns {@link fabric.Circle} instance from an SVG element\n * @static\n * @memberOf fabric.Circle\n * @param {SVGElement} element Element to parse\n * @param {Function} [callback] Options callback invoked after parsing is finished\n * @param {Object} [options] Options object\n * @throws {Error} If value of `r` attribute is missing or invalid\n */\n fabric.Circle.fromElement = function(element, callback) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Circle.ATTRIBUTE_NAMES);\n\n if (!isValidRadius(parsedAttributes)) {\n throw new Error('value of `r` attribute is required and can not be negative');\n }\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.radius;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.radius;\n callback(new fabric.Circle(parsedAttributes));\n };\n\n /**\n * @private\n */\n function isValidRadius(attributes) {\n return (('radius' in attributes) && (attributes.radius >= 0));\n }\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Circle} instance from an object representation\n * @static\n * @memberOf fabric.Circle\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n * @return {Object} Instance of fabric.Circle\n */\n fabric.Circle.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Circle', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Triangle) {\n fabric.warn('fabric.Triangle is already defined');\n return;\n }\n\n /**\n * Triangle class\n * @class fabric.Triangle\n * @extends fabric.Object\n * @return {fabric.Triangle} thisArg\n * @see {@link fabric.Triangle#initialize} for constructor definition\n */\n fabric.Triangle = fabric.util.createClass(fabric.Object, /** @lends fabric.Triangle.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'triangle',\n\n /**\n * Width is set to 100 to compensate the old initialize code that was setting it to 100\n * @type Number\n * @default\n */\n width: 100,\n\n /**\n * Height is set to 100 to compensate the old initialize code that was setting it to 100\n * @type Number\n * @default\n */\n height: 100,\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\n\n ctx.beginPath();\n ctx.moveTo(-widthBy2, heightBy2);\n ctx.lineTo(0, -heightBy2);\n ctx.lineTo(widthBy2, heightBy2);\n ctx.closePath();\n\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, -widthBy2, heightBy2, 0, -heightBy2, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, 0, -heightBy2, widthBy2, heightBy2, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, widthBy2, heightBy2, -widthBy2, heightBy2, this.strokeDashArray);\n ctx.closePath();\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2,\n points = [\n -widthBy2 + ' ' + heightBy2,\n '0 ' + -heightBy2,\n widthBy2 + ' ' + heightBy2\n ].join(',');\n return [\n ''\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /**\n * Returns {@link fabric.Triangle} instance from an object representation\n * @static\n * @memberOf fabric.Triangle\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n */\n fabric.Triangle.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Triangle', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n piBy2 = Math.PI * 2;\n\n if (fabric.Ellipse) {\n fabric.warn('fabric.Ellipse is already defined.');\n return;\n }\n\n /**\n * Ellipse class\n * @class fabric.Ellipse\n * @extends fabric.Object\n * @return {fabric.Ellipse} thisArg\n * @see {@link fabric.Ellipse#initialize} for constructor definition\n */\n fabric.Ellipse = fabric.util.createClass(fabric.Object, /** @lends fabric.Ellipse.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'ellipse',\n\n /**\n * Horizontal radius\n * @type Number\n * @default\n */\n rx: 0,\n\n /**\n * Vertical radius\n * @type Number\n * @default\n */\n ry: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('rx', 'ry'),\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n * @return {fabric.Ellipse} thisArg\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n this.set('rx', options && options.rx || 0);\n this.set('ry', options && options.ry || 0);\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Ellipse} thisArg\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n switch (key) {\n\n case 'rx':\n this.rx = value;\n this.set('width', value * 2);\n break;\n\n case 'ry':\n this.ry = value;\n this.set('height', value * 2);\n break;\n\n }\n return this;\n },\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRx: function() {\n return this.get('rx') * this.get('scaleX');\n },\n\n /**\n * Returns Vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRy: function() {\n return this.get('ry') * this.get('scaleY');\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(\n 0,\n 0,\n this.rx,\n 0,\n piBy2,\n false);\n ctx.restore();\n this._renderPaintInOrder(ctx);\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Ellipse.fromElement})\n * @static\n * @memberOf fabric.Ellipse\n * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement\n */\n fabric.Ellipse.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy rx ry'.split(' '));\n\n /**\n * Returns {@link fabric.Ellipse} instance from an SVG element\n * @static\n * @memberOf fabric.Ellipse\n * @param {SVGElement} element Element to parse\n * @param {Function} [callback] Options callback invoked after parsing is finished\n * @return {fabric.Ellipse}\n */\n fabric.Ellipse.fromElement = function(element, callback) {\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Ellipse.ATTRIBUTE_NAMES);\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;\n callback(new fabric.Ellipse(parsedAttributes));\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Ellipse} instance from an object representation\n * @static\n * @memberOf fabric.Ellipse\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n * @return {fabric.Ellipse}\n */\n fabric.Ellipse.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Ellipse', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend;\n\n if (fabric.Rect) {\n fabric.warn('fabric.Rect is already defined');\n return;\n }\n\n /**\n * Rectangle class\n * @class fabric.Rect\n * @extends fabric.Object\n * @return {fabric.Rect} thisArg\n * @see {@link fabric.Rect#initialize} for constructor definition\n */\n fabric.Rect = fabric.util.createClass(fabric.Object, /** @lends fabric.Rect.prototype */ {\n\n /**\n * List of properties to consider when checking if state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('rx', 'ry'),\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'rect',\n\n /**\n * Horizontal border radius\n * @type Number\n * @default\n */\n rx: 0,\n\n /**\n * Vertical border radius\n * @type Number\n * @default\n */\n ry: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('rx', 'ry'),\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n this._initRxRy();\n },\n\n /**\n * Initializes rx/ry attributes\n * @private\n */\n _initRxRy: function() {\n if (this.rx && !this.ry) {\n this.ry = this.rx;\n }\n else if (this.ry && !this.rx) {\n this.rx = this.ry;\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n\n // 1x1 case (used in spray brush) optimization was removed because\n // with caching and higher zoom level this makes more damage than help\n\n var rx = this.rx ? Math.min(this.rx, this.width / 2) : 0,\n ry = this.ry ? Math.min(this.ry, this.height / 2) : 0,\n w = this.width,\n h = this.height,\n x = -this.width / 2,\n y = -this.height / 2,\n isRounded = rx !== 0 || ry !== 0,\n /* \"magic number\" for bezier approximations of arcs (http://itc.ktu.lt/itc354/Riskus354.pdf) */\n k = 1 - 0.5522847498;\n ctx.beginPath();\n\n ctx.moveTo(x + rx, y);\n\n ctx.lineTo(x + w - rx, y);\n isRounded && ctx.bezierCurveTo(x + w - k * rx, y, x + w, y + k * ry, x + w, y + ry);\n\n ctx.lineTo(x + w, y + h - ry);\n isRounded && ctx.bezierCurveTo(x + w, y + h - k * ry, x + w - k * rx, y + h, x + w - rx, y + h);\n\n ctx.lineTo(x + rx, y + h);\n isRounded && ctx.bezierCurveTo(x + k * rx, y + h, x, y + h - k * ry, x, y + h - ry);\n\n ctx.lineTo(x, y + ry);\n isRounded && ctx.bezierCurveTo(x, y + k * ry, x + k * rx, y, x + rx, y);\n\n ctx.closePath();\n\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray);\n ctx.closePath();\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var x = -this.width / 2, y = -this.height / 2;\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Rect.fromElement`)\n * @static\n * @memberOf fabric.Rect\n * @see: http://www.w3.org/TR/SVG/shapes.html#RectElement\n */\n fabric.Rect.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x y rx ry width height'.split(' '));\n\n /**\n * Returns {@link fabric.Rect} instance from an SVG element\n * @static\n * @memberOf fabric.Rect\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Rect.fromElement = function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n options = options || { };\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Rect.ATTRIBUTE_NAMES);\n parsedAttributes.left = parsedAttributes.left || 0;\n parsedAttributes.top = parsedAttributes.top || 0;\n parsedAttributes.height = parsedAttributes.height || 0;\n parsedAttributes.width = parsedAttributes.width || 0;\n var rect = new fabric.Rect(extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes));\n rect.visible = rect.visible && rect.width > 0 && rect.height > 0;\n callback(rect);\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Rect} instance from an object representation\n * @static\n * @memberOf fabric.Rect\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Rect instance is created\n */\n fabric.Rect.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Rect', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n min = fabric.util.array.min,\n max = fabric.util.array.max,\n toFixed = fabric.util.toFixed;\n\n if (fabric.Polyline) {\n fabric.warn('fabric.Polyline is already defined');\n return;\n }\n\n /**\n * Polyline class\n * @class fabric.Polyline\n * @extends fabric.Object\n * @see {@link fabric.Polyline#initialize} for constructor definition\n */\n fabric.Polyline = fabric.util.createClass(fabric.Object, /** @lends fabric.Polyline.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'polyline',\n\n /**\n * Points array\n * @type Array\n * @default\n */\n points: null,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('points'),\n\n /**\n * Constructor\n * @param {Array} points Array of points (where each point is an object with x and y)\n * @param {Object} [options] Options object\n * @return {fabric.Polyline} thisArg\n * @example\n * var poly = new fabric.Polyline([\n * { x: 10, y: 10 },\n * { x: 50, y: 30 },\n * { x: 40, y: 70 },\n * { x: 60, y: 50 },\n * { x: 100, y: 150 },\n * { x: 40, y: 100 }\n * ], {\n * stroke: 'red',\n * left: 100,\n * top: 100\n * });\n */\n initialize: function(points, options) {\n options = options || {};\n this.points = points || [];\n this.callSuper('initialize', options);\n this._setPositionDimensions(options);\n },\n\n _setPositionDimensions: function(options) {\n var calcDim = this._calcDimensions(options), correctLeftTop;\n this.width = calcDim.width;\n this.height = calcDim.height;\n if (!options.fromSVG) {\n correctLeftTop = this.translateToGivenOrigin(\n { x: calcDim.left - this.strokeWidth / 2, y: calcDim.top - this.strokeWidth / 2 },\n 'left',\n 'top',\n this.originX,\n this.originY\n );\n }\n if (typeof options.left === 'undefined') {\n this.left = options.fromSVG ? calcDim.left : correctLeftTop.x;\n }\n if (typeof options.top === 'undefined') {\n this.top = options.fromSVG ? calcDim.top : correctLeftTop.y;\n }\n this.pathOffset = {\n x: calcDim.left + this.width / 2,\n y: calcDim.top + this.height / 2\n };\n },\n\n /**\n * Calculate the polygon min and max point from points array,\n * returning an object with left, top, widht, height to measure the\n * polygon size\n * @return {Object} object.left X coordinate of the polygon leftmost point\n * @return {Object} object.top Y coordinate of the polygon topmost point\n * @return {Object} object.width distance between X coordinates of the polygon leftmost and rightmost point\n * @return {Object} object.height distance between Y coordinates of the polygon topmost and bottommost point\n * @private\n */\n _calcDimensions: function() {\n\n var points = this.points,\n minX = min(points, 'x') || 0,\n minY = min(points, 'y') || 0,\n maxX = max(points, 'x') || 0,\n maxY = max(points, 'y') || 0,\n width = (maxX - minX),\n height = (maxY - minY);\n\n return {\n left: minX,\n top: minY,\n width: width,\n height: height\n };\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n points: this.points.concat()\n });\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var points = [], diffX = this.pathOffset.x, diffY = this.pathOffset.y,\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n\n for (var i = 0, len = this.points.length; i < len; i++) {\n points.push(\n toFixed(this.points[i].x - diffX, NUM_FRACTION_DIGITS), ',',\n toFixed(this.points[i].y - diffY, NUM_FRACTION_DIGITS), ' '\n );\n }\n return [\n '<' + this.type + ' ', 'COMMON_PARTS',\n 'points=\"', points.join(''),\n '\" />\\n'\n ];\n },\n /* _TO_SVG_END_ */\n\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n commonRender: function(ctx) {\n var point, len = this.points.length,\n x = this.pathOffset.x,\n y = this.pathOffset.y;\n\n if (!len || isNaN(this.points[len - 1].y)) {\n // do not draw if no points or odd points\n // NaN comes from parseFloat of a empty string in parser\n return false;\n }\n ctx.beginPath();\n ctx.moveTo(this.points[0].x - x, this.points[0].y - y);\n for (var i = 0; i < len; i++) {\n point = this.points[i];\n ctx.lineTo(point.x - x, point.y - y);\n }\n return true;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var p1, p2;\n\n ctx.beginPath();\n for (var i = 0, len = this.points.length; i < len; i++) {\n p1 = this.points[i];\n p2 = this.points[i + 1] || p1;\n fabric.util.drawDashedLine(ctx, p1.x, p1.y, p2.x, p2.y, this.strokeDashArray);\n }\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity of this instance\n */\n complexity: function() {\n return this.get('points').length;\n }\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Polyline.fromElement})\n * @static\n * @memberOf fabric.Polyline\n * @see: http://www.w3.org/TR/SVG/shapes.html#PolylineElement\n */\n fabric.Polyline.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\n\n /**\n * Returns fabric.Polyline instance from an SVG element\n * @static\n * @memberOf fabric.Polyline\n * @param {SVGElement} element Element to parser\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Polyline.fromElementGenerator = function(_class) {\n return function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n options || (options = { });\n\n var points = fabric.parsePointsAttribute(element.getAttribute('points')),\n parsedAttributes = fabric.parseAttributes(element, fabric[_class].ATTRIBUTE_NAMES);\n parsedAttributes.fromSVG = true;\n callback(new fabric[_class](points, extend(parsedAttributes, options)));\n };\n };\n\n fabric.Polyline.fromElement = fabric.Polyline.fromElementGenerator('Polyline');\n\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Polyline instance from an object representation\n * @static\n * @memberOf fabric.Polyline\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Polyline.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Polyline', object, callback, 'points');\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Polygon) {\n fabric.warn('fabric.Polygon is already defined');\n return;\n }\n\n /**\n * Polygon class\n * @class fabric.Polygon\n * @extends fabric.Polyline\n * @see {@link fabric.Polygon#initialize} for constructor definition\n */\n fabric.Polygon = fabric.util.createClass(fabric.Polyline, /** @lends fabric.Polygon.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'polygon',\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\n ctx.closePath();\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n this.callSuper('_renderDashedStroke', ctx);\n ctx.closePath();\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Polygon.fromElement`)\n * @static\n * @memberOf fabric.Polygon\n * @see: http://www.w3.org/TR/SVG/shapes.html#PolygonElement\n */\n fabric.Polygon.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\n\n /**\n * Returns {@link fabric.Polygon} instance from an SVG element\n * @static\n * @memberOf fabric.Polygon\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Polygon.fromElement = fabric.Polyline.fromElementGenerator('Polygon');\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Polygon instance from an object representation\n * @static\n * @memberOf fabric.Polygon\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Polygon.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Polygon', object, callback, 'points');\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n min = fabric.util.array.min,\n max = fabric.util.array.max,\n extend = fabric.util.object.extend,\n _toString = Object.prototype.toString,\n toFixed = fabric.util.toFixed;\n\n if (fabric.Path) {\n fabric.warn('fabric.Path is already defined');\n return;\n }\n\n /**\n * Path class\n * @class fabric.Path\n * @extends fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#path_and_pathgroup}\n * @see {@link fabric.Path#initialize} for constructor definition\n */\n fabric.Path = fabric.util.createClass(fabric.Object, /** @lends fabric.Path.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'path',\n\n /**\n * Array of path points\n * @type Array\n * @default\n */\n path: null,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('path', 'fillRule'),\n\n stateProperties: fabric.Object.prototype.stateProperties.concat('path'),\n\n /**\n * Constructor\n * @param {Array|String} path Path data (sequence of coordinates and corresponding \"command\" tokens)\n * @param {Object} [options] Options object\n * @return {fabric.Path} thisArg\n */\n initialize: function(path, options) {\n options = options || { };\n this.callSuper('initialize', options);\n if (!path) {\n path = [];\n }\n\n var fromArray = _toString.call(path) === '[object Array]';\n\n this.path = fromArray\n ? fabric.util.makePathSimpler(path)\n\n : fabric.util.makePathSimpler(\n fabric.util.parsePath(path)\n );\n\n if (!this.path) {\n return;\n }\n fabric.Polyline.prototype._setPositionDimensions.call(this, options);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render path on\n */\n _renderPathCommands: function(ctx) {\n var current, // current instruction\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0, // current x\n y = 0, // current y\n controlX = 0, // current control point x\n controlY = 0, // current control point y\n l = -this.pathOffset.x,\n t = -this.pathOffset.y;\n\n ctx.beginPath();\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n\n current = this.path[i];\n\n switch (current[0]) { // first letter\n\n case 'L': // lineto, absolute\n x = current[1];\n y = current[2];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'M': // moveTo, absolute\n x = current[1];\n y = current[2];\n subpathStartX = x;\n subpathStartY = y;\n ctx.moveTo(x + l, y + t);\n break;\n\n case 'C': // bezierCurveTo, absolute\n x = current[5];\n y = current[6];\n controlX = current[3];\n controlY = current[4];\n ctx.bezierCurveTo(\n current[1] + l,\n current[2] + t,\n controlX + l,\n controlY + t,\n x + l,\n y + t\n );\n break;\n\n case 'Q': // quadraticCurveTo, absolute\n ctx.quadraticCurveTo(\n current[1] + l,\n current[2] + t,\n current[3] + l,\n current[4] + t\n );\n x = current[3];\n y = current[4];\n controlX = current[1];\n controlY = current[2];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n ctx.closePath();\n break;\n }\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render path on\n */\n _render: function(ctx) {\n this._renderPathCommands(ctx);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} string representation of an instance\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n path: this.path.map(function(item) { return item.slice(); }),\n });\n },\n\n /**\n * Returns dataless object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n var o = this.toObject(['sourcePath'].concat(propertiesToInclude));\n if (o.sourcePath) {\n delete o.path;\n }\n return o;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var path = this.path.map(function(path) {\n return path.join(' ');\n }).join(' ');\n return [\n '\\n'\n ];\n },\n\n _getOffsetTransform: function() {\n var digits = fabric.Object.NUM_FRACTION_DIGITS;\n return ' translate(' + toFixed(-this.pathOffset.x, digits) + ', ' +\n toFixed(-this.pathOffset.y, digits) + ')';\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n var additionalTransform = this._getOffsetTransform();\n return '\\t' + this._createBaseClipPathSVGMarkup(\n this._toSVG(), { reviver: reviver, additionalTransform: additionalTransform }\n );\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n var additionalTransform = this._getOffsetTransform();\n return this._createBaseSVGMarkup(this._toSVG(), { reviver: reviver, additionalTransform: additionalTransform });\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns number representation of an instance complexity\n * @return {Number} complexity of this instance\n */\n complexity: function() {\n return this.path.length;\n },\n\n /**\n * @private\n */\n _calcDimensions: function() {\n\n var aX = [],\n aY = [],\n current, // current instruction\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0, // current x\n y = 0, // current y\n bounds;\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n\n current = this.path[i];\n\n switch (current[0]) { // first letter\n\n case 'L': // lineto, absolute\n x = current[1];\n y = current[2];\n bounds = [];\n break;\n\n case 'M': // moveTo, absolute\n x = current[1];\n y = current[2];\n subpathStartX = x;\n subpathStartY = y;\n bounds = [];\n break;\n\n case 'C': // bezierCurveTo, absolute\n bounds = fabric.util.getBoundsOfCurve(x, y,\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6]\n );\n x = current[5];\n y = current[6];\n break;\n\n case 'Q': // quadraticCurveTo, absolute\n bounds = fabric.util.getBoundsOfCurve(x, y,\n current[1],\n current[2],\n current[1],\n current[2],\n current[3],\n current[4]\n );\n x = current[3];\n y = current[4];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n break;\n }\n bounds.forEach(function (point) {\n aX.push(point.x);\n aY.push(point.y);\n });\n aX.push(x);\n aY.push(y);\n }\n\n var minX = min(aX) || 0,\n minY = min(aY) || 0,\n maxX = max(aX) || 0,\n maxY = max(aY) || 0,\n deltaX = maxX - minX,\n deltaY = maxY - minY;\n\n return {\n left: minX,\n top: minY,\n width: deltaX,\n height: deltaY\n };\n }\n });\n\n /**\n * Creates an instance of fabric.Path from an object\n * @static\n * @memberOf fabric.Path\n * @param {Object} object\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Path.fromObject = function(object, callback) {\n if (typeof object.sourcePath === 'string') {\n var pathUrl = object.sourcePath;\n fabric.loadSVGFromURL(pathUrl, function (elements) {\n var path = elements[0];\n path.setOptions(object);\n callback && callback(path);\n });\n }\n else {\n fabric.Object._fromObject('Path', object, callback, 'path');\n }\n };\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Path.fromElement`)\n * @static\n * @memberOf fabric.Path\n * @see http://www.w3.org/TR/SVG/paths.html#PathElement\n */\n fabric.Path.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(['d']);\n\n /**\n * Creates an instance of fabric.Path from an SVG element\n * @static\n * @memberOf fabric.Path\n * @param {SVGElement} element to parse\n * @param {Function} callback Callback to invoke when an fabric.Path instance is created\n * @param {Object} [options] Options object\n * @param {Function} [callback] Options callback invoked after parsing is finished\n */\n fabric.Path.fromElement = function(element, callback, options) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Path.ATTRIBUTE_NAMES);\n parsedAttributes.fromSVG = true;\n callback(new fabric.Path(parsedAttributes.d, extend(parsedAttributes, options)));\n };\n /* _FROM_SVG_END_ */\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n min = fabric.util.array.min,\n max = fabric.util.array.max;\n\n if (fabric.Group) {\n return;\n }\n\n /**\n * Group class\n * @class fabric.Group\n * @extends fabric.Object\n * @mixes fabric.Collection\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#groups}\n * @see {@link fabric.Group#initialize} for constructor definition\n */\n fabric.Group = fabric.util.createClass(fabric.Object, fabric.Collection, /** @lends fabric.Group.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'group',\n\n /**\n * Width of stroke\n * @type Number\n * @default\n */\n strokeWidth: 0,\n\n /**\n * Indicates if click, mouseover, mouseout events & hoverCursor should also check for subtargets\n * @type Boolean\n * @default\n */\n subTargetCheck: false,\n\n /**\n * Groups are container, do not render anything on theyr own, ence no cache properties\n * @type Array\n * @default\n */\n cacheProperties: [],\n\n /**\n * setOnGroup is a method used for TextBox that is no more used since 2.0.0 The behavior is still\n * available setting this boolean to true.\n * @type Boolean\n * @since 2.0.0\n * @default\n */\n useSetOnGroup: false,\n\n /**\n * Constructor\n * @param {Object} objects Group objects\n * @param {Object} [options] Options object\n * @param {Boolean} [isAlreadyGrouped] if true, objects have been grouped already.\n * @return {Object} thisArg\n */\n initialize: function(objects, options, isAlreadyGrouped) {\n options = options || {};\n this._objects = [];\n // if objects enclosed in a group have been grouped already,\n // we cannot change properties of objects.\n // Thus we need to set options to group without objects,\n isAlreadyGrouped && this.callSuper('initialize', options);\n this._objects = objects || [];\n for (var i = this._objects.length; i--; ) {\n this._objects[i].group = this;\n }\n\n if (!isAlreadyGrouped) {\n var center = options && options.centerPoint;\n // we want to set origins before calculating the bounding box.\n // so that the topleft can be set with that in mind.\n // if specific top and left are passed, are overwritten later\n // with the callSuper('initialize', options)\n if (options.originX !== undefined) {\n this.originX = options.originX;\n }\n if (options.originY !== undefined) {\n this.originY = options.originY;\n }\n // if coming from svg i do not want to calc bounds.\n // i assume width and height are passed along options\n center || this._calcBounds();\n this._updateObjectsCoords(center);\n delete options.centerPoint;\n this.callSuper('initialize', options);\n }\n else {\n this._updateObjectsACoords();\n }\n\n this.setCoords();\n },\n\n /**\n * @private\n */\n _updateObjectsACoords: function() {\n var skipControls = true;\n for (var i = this._objects.length; i--; ){\n this._objects[i].setCoords(skipControls);\n }\n },\n\n /**\n * @private\n * @param {Boolean} [skipCoordsChange] if true, coordinates of objects enclosed in a group do not change\n */\n _updateObjectsCoords: function(center) {\n var center = center || this.getCenterPoint();\n for (var i = this._objects.length; i--; ){\n this._updateObjectCoords(this._objects[i], center);\n }\n },\n\n /**\n * @private\n * @param {Object} object\n * @param {fabric.Point} center, current center of group.\n */\n _updateObjectCoords: function(object, center) {\n var objectLeft = object.left,\n objectTop = object.top,\n skipControls = true;\n\n object.set({\n left: objectLeft - center.x,\n top: objectTop - center.y\n });\n object.group = this;\n object.setCoords(skipControls);\n },\n\n /**\n * Returns string represenation of a group\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Adds an object to a group; Then recalculates group's dimension, position.\n * @param {Object} object\n * @return {fabric.Group} thisArg\n * @chainable\n */\n addWithUpdate: function(object) {\n this._restoreObjectsState();\n fabric.util.resetObjectTransform(this);\n if (object) {\n this._objects.push(object);\n object.group = this;\n object._set('canvas', this.canvas);\n }\n this._calcBounds();\n this._updateObjectsCoords();\n this.setCoords();\n this.dirty = true;\n return this;\n },\n\n /**\n * Removes an object from a group; Then recalculates group's dimension, position.\n * @param {Object} object\n * @return {fabric.Group} thisArg\n * @chainable\n */\n removeWithUpdate: function(object) {\n this._restoreObjectsState();\n fabric.util.resetObjectTransform(this);\n\n this.remove(object);\n this._calcBounds();\n this._updateObjectsCoords();\n this.setCoords();\n this.dirty = true;\n return this;\n },\n\n /**\n * @private\n */\n _onObjectAdded: function(object) {\n this.dirty = true;\n object.group = this;\n object._set('canvas', this.canvas);\n },\n\n /**\n * @private\n */\n _onObjectRemoved: function(object) {\n this.dirty = true;\n delete object.group;\n },\n\n /**\n * @private\n */\n _set: function(key, value) {\n var i = this._objects.length;\n if (this.useSetOnGroup) {\n while (i--) {\n this._objects[i].setOnGroup(key, value);\n }\n }\n if (key === 'canvas') {\n while (i--) {\n this._objects[i]._set(key, value);\n }\n }\n fabric.Object.prototype._set.call(this, key, value);\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var _includeDefaultValues = this.includeDefaultValues;\n var objsToObject = this._objects.map(function(obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n var _obj = obj.toObject(propertiesToInclude);\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\n var obj = fabric.Object.prototype.toObject.call(this, propertiesToInclude);\n obj.objects = objsToObject;\n return obj;\n },\n\n /**\n * Returns object representation of an instance, in dataless mode.\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n var objsToObject, sourcePath = this.sourcePath;\n if (sourcePath) {\n objsToObject = sourcePath;\n }\n else {\n var _includeDefaultValues = this.includeDefaultValues;\n objsToObject = this._objects.map(function(obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n var _obj = obj.toDatalessObject(propertiesToInclude);\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\n }\n var obj = fabric.Object.prototype.toDatalessObject.call(this, propertiesToInclude);\n obj.objects = objsToObject;\n return obj;\n },\n\n /**\n * Renders instance on a given context\n * @param {CanvasRenderingContext2D} ctx context to render instance on\n */\n render: function(ctx) {\n this._transformDone = true;\n this.callSuper('render', ctx);\n this._transformDone = false;\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group is already cached.\n * @return {Boolean}\n */\n shouldCache: function() {\n var ownCache = fabric.Object.prototype.shouldCache.call(this);\n if (ownCache) {\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].willDrawShadow()) {\n this.ownCaching = false;\n return false;\n }\n }\n }\n return ownCache;\n },\n\n /**\n * Check if this object or a child object will cast a shadow\n * @return {Boolean}\n */\n willDrawShadow: function() {\n if (fabric.Object.prototype.willDrawShadow.call(this)) {\n return true;\n }\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].willDrawShadow()) {\n return true;\n }\n }\n return false;\n },\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache: function() {\n return this.ownCaching || (this.group && this.group.isOnACache());\n },\n\n /**\n * Execute the drawing operation for an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawObject: function(ctx) {\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i].render(ctx);\n }\n this._drawClipPath(ctx);\n },\n\n /**\n * Check if cache is dirty\n */\n isCacheDirty: function(skipCanvas) {\n if (this.callSuper('isCacheDirty', skipCanvas)) {\n return true;\n }\n if (!this.statefullCache) {\n return false;\n }\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].isCacheDirty(true)) {\n if (this._cacheCanvas) {\n // if this group has not a cache canvas there is nothing to clean\n var x = this.cacheWidth / this.zoomX, y = this.cacheHeight / this.zoomY;\n this._cacheContext.clearRect(-x / 2, -y / 2, x, y);\n }\n return true;\n }\n }\n return false;\n },\n\n /**\n * Retores original state of each of group objects (original state is that which was before group was created).\n * @private\n * @return {fabric.Group} thisArg\n * @chainable\n */\n _restoreObjectsState: function() {\n this._objects.forEach(this._restoreObjectState, this);\n return this;\n },\n\n /**\n * Realises the transform from this group onto the supplied object\n * i.e. it tells you what would happen if the supplied object was in\n * the group, and then the group was destroyed. It mutates the supplied\n * object.\n * @param {fabric.Object} object\n * @return {fabric.Object} transformedObject\n */\n realizeTransform: function(object) {\n var matrix = object.calcTransformMatrix(),\n options = fabric.util.qrDecompose(matrix),\n center = new fabric.Point(options.translateX, options.translateY);\n object.flipX = false;\n object.flipY = false;\n object.set('scaleX', options.scaleX);\n object.set('scaleY', options.scaleY);\n object.skewX = options.skewX;\n object.skewY = options.skewY;\n object.angle = options.angle;\n object.setPositionByOrigin(center, 'center', 'center');\n return object;\n },\n\n /**\n * Restores original state of a specified object in group\n * @private\n * @param {fabric.Object} object\n * @return {fabric.Group} thisArg\n */\n _restoreObjectState: function(object) {\n this.realizeTransform(object);\n delete object.group;\n object.setCoords();\n return this;\n },\n\n /**\n * Destroys a group (restoring state of its objects)\n * @return {fabric.Group} thisArg\n * @chainable\n */\n destroy: function() {\n // when group is destroyed objects needs to get a repaint to be eventually\n // displayed on canvas.\n this._objects.forEach(function(object) {\n object.set('dirty', true);\n });\n return this._restoreObjectsState();\n },\n\n /**\n * make a group an active selection, remove the group from canvas\n * the group has to be on canvas for this to work.\n * @return {fabric.ActiveSelection} thisArg\n * @chainable\n */\n toActiveSelection: function() {\n if (!this.canvas) {\n return;\n }\n var objects = this._objects, canvas = this.canvas;\n this._objects = [];\n var options = this.toObject();\n delete options.objects;\n var activeSelection = new fabric.ActiveSelection([]);\n activeSelection.set(options);\n activeSelection.type = 'activeSelection';\n canvas.remove(this);\n objects.forEach(function(object) {\n object.group = activeSelection;\n object.dirty = true;\n canvas.add(object);\n });\n activeSelection.canvas = canvas;\n activeSelection._objects = objects;\n canvas._activeObject = activeSelection;\n activeSelection.setCoords();\n return activeSelection;\n },\n\n /**\n * Destroys a group (restoring state of its objects)\n * @return {fabric.Group} thisArg\n * @chainable\n */\n ungroupOnCanvas: function() {\n return this._restoreObjectsState();\n },\n\n /**\n * Sets coordinates of all objects inside group\n * @return {fabric.Group} thisArg\n * @chainable\n */\n setObjectsCoords: function() {\n var skipControls = true;\n this.forEachObject(function(object) {\n object.setCoords(skipControls);\n });\n return this;\n },\n\n /**\n * @private\n */\n _calcBounds: function(onlyWidthHeight) {\n var aX = [],\n aY = [],\n o, prop,\n props = ['tr', 'br', 'bl', 'tl'],\n i = 0, iLen = this._objects.length,\n j, jLen = props.length;\n\n for ( ; i < iLen; ++i) {\n o = this._objects[i];\n o.aCoords = o.calcACoords();\n for (j = 0; j < jLen; j++) {\n prop = props[j];\n aX.push(o.aCoords[prop].x);\n aY.push(o.aCoords[prop].y);\n }\n }\n\n this._getBounds(aX, aY, onlyWidthHeight);\n },\n\n /**\n * @private\n */\n _getBounds: function(aX, aY, onlyWidthHeight) {\n var minXY = new fabric.Point(min(aX), min(aY)),\n maxXY = new fabric.Point(max(aX), max(aY)),\n top = minXY.y || 0, left = minXY.x || 0,\n width = (maxXY.x - minXY.x) || 0,\n height = (maxXY.y - minXY.y) || 0;\n this.width = width;\n this.height = height;\n if (!onlyWidthHeight) {\n // the bounding box always finds the topleft most corner.\n // whatever is the group origin, we set up here the left/top position.\n this.setPositionByOrigin({ x: left, y: top }, 'left', 'top');\n }\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n _toSVG: function(reviver) {\n var svgString = ['\\n'];\n\n for (var i = 0, len = this._objects.length; i < len; i++) {\n svgString.push('\\t\\t', this._objects[i].toSVG(reviver));\n }\n svgString.push('\\n');\n return svgString;\n },\n\n /**\n * Returns styles-string for svg-export, specific version for group\n * @return {String}\n */\n getSvgStyles: function() {\n var opacity = typeof this.opacity !== 'undefined' && this.opacity !== 1 ?\n 'opacity: ' + this.opacity + ';' : '',\n visibility = this.visible ? '' : ' visibility: hidden;';\n return [\n opacity,\n this.getSvgFilter(),\n visibility\n ].join('');\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n var svgString = [];\n\n for (var i = 0, len = this._objects.length; i < len; i++) {\n svgString.push('\\t', this._objects[i].toClipPathSVG(reviver));\n }\n\n return this._createBaseClipPathSVGMarkup(svgString, { reviver: reviver });\n },\n /* _TO_SVG_END_ */\n });\n\n /**\n * Returns {@link fabric.Group} instance from an object representation\n * @static\n * @memberOf fabric.Group\n * @param {Object} object Object to create a group from\n * @param {Function} [callback] Callback to invoke when an group instance is created\n */\n fabric.Group.fromObject = function(object, callback) {\n var objects = object.objects,\n options = fabric.util.object.clone(object, true);\n delete options.objects;\n if (typeof objects === 'string') {\n // it has to be an url or something went wrong.\n fabric.loadSVGFromURL(objects, function (elements) {\n var group = fabric.util.groupSVGElements(elements, object, objects);\n group.set(options);\n callback && callback(group);\n });\n return;\n }\n fabric.util.enlivenObjects(objects, function(enlivenedObjects) {\n fabric.util.enlivenObjects([object.clipPath], function(enlivedClipPath) {\n var options = fabric.util.object.clone(object, true);\n options.clipPath = enlivedClipPath[0];\n delete options.objects;\n callback && callback(new fabric.Group(enlivenedObjects, options, true));\n });\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.ActiveSelection) {\n return;\n }\n\n /**\n * Group class\n * @class fabric.ActiveSelection\n * @extends fabric.Group\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#groups}\n * @see {@link fabric.ActiveSelection#initialize} for constructor definition\n */\n fabric.ActiveSelection = fabric.util.createClass(fabric.Group, /** @lends fabric.ActiveSelection.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'activeSelection',\n\n /**\n * Constructor\n * @param {Object} objects ActiveSelection objects\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(objects, options) {\n options = options || {};\n this._objects = objects || [];\n for (var i = this._objects.length; i--; ) {\n this._objects[i].group = this;\n }\n\n if (options.originX) {\n this.originX = options.originX;\n }\n if (options.originY) {\n this.originY = options.originY;\n }\n this._calcBounds();\n this._updateObjectsCoords();\n fabric.Object.prototype.initialize.call(this, options);\n this.setCoords();\n },\n\n /**\n * Change te activeSelection to a normal group,\n * High level function that automatically adds it to canvas as\n * active object. no events fired.\n * @since 2.0.0\n * @return {fabric.Group}\n */\n toGroup: function() {\n var objects = this._objects.concat();\n this._objects = [];\n var options = fabric.Object.prototype.toObject.call(this);\n var newGroup = new fabric.Group([]);\n delete options.type;\n newGroup.set(options);\n objects.forEach(function(object) {\n object.canvas.remove(object);\n object.group = newGroup;\n });\n newGroup._objects = objects;\n if (!this.canvas) {\n return newGroup;\n }\n var canvas = this.canvas;\n canvas.add(newGroup);\n canvas._activeObject = newGroup;\n newGroup.setCoords();\n return newGroup;\n },\n\n /**\n * If returns true, deselection is cancelled.\n * @since 2.0.0\n * @return {Boolean} [cancel]\n */\n onDeselect: function() {\n this.destroy();\n return false;\n },\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * @return {Boolean}\n */\n shouldCache: function() {\n return false;\n },\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache: function() {\n return false;\n },\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n * @param {Object} [childrenOverride] properties to override the children overrides\n */\n _renderControls: function(ctx, styleOverride, childrenOverride) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n this.callSuper('_renderControls', ctx, styleOverride);\n childrenOverride = childrenOverride || { };\n if (typeof childrenOverride.hasControls === 'undefined') {\n childrenOverride.hasControls = false;\n }\n childrenOverride.forActiveSelection = true;\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i]._renderControls(ctx, childrenOverride);\n }\n ctx.restore();\n },\n });\n\n /**\n * Returns {@link fabric.ActiveSelection} instance from an object representation\n * @static\n * @memberOf fabric.ActiveSelection\n * @param {Object} object Object to create a group from\n * @param {Function} [callback] Callback to invoke when an ActiveSelection instance is created\n */\n fabric.ActiveSelection.fromObject = function(object, callback) {\n fabric.util.enlivenObjects(object.objects, function(enlivenedObjects) {\n delete object.objects;\n callback && callback(new fabric.ActiveSelection(enlivenedObjects, object, true));\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var extend = fabric.util.object.extend;\n\n if (!global.fabric) {\n global.fabric = { };\n }\n\n if (global.fabric.Image) {\n fabric.warn('fabric.Image is already defined.');\n return;\n }\n\n /**\n * Image class\n * @class fabric.Image\n * @extends fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#images}\n * @see {@link fabric.Image#initialize} for constructor definition\n */\n fabric.Image = fabric.util.createClass(fabric.Object, /** @lends fabric.Image.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'image',\n\n /**\n * Width of a stroke.\n * For image quality a stroke multiple of 2 gives better results.\n * @type Number\n * @default\n */\n strokeWidth: 0,\n\n /**\n * When calling {@link fabric.Image.getSrc}, return value from element src with `element.getAttribute('src')`.\n * This allows for relative urls as image src.\n * @since 2.7.0\n * @type Boolean\n * @default\n */\n srcFromAttribute: false,\n\n /**\n * private\n * contains last value of scaleX to detect\n * if the Image got resized after the last Render\n * @type Number\n */\n _lastScaleX: 1,\n\n /**\n * private\n * contains last value of scaleY to detect\n * if the Image got resized after the last Render\n * @type Number\n */\n _lastScaleY: 1,\n\n /**\n * private\n * contains last value of scaling applied by the apply filter chain\n * @type Number\n */\n _filterScalingX: 1,\n\n /**\n * private\n * contains last value of scaling applied by the apply filter chain\n * @type Number\n */\n _filterScalingY: 1,\n\n /**\n * minimum scale factor under which any resizeFilter is triggered to resize the image\n * 0 will disable the automatic resize. 1 will trigger automatically always.\n * number bigger than 1 are not implemented yet.\n * @type Number\n */\n minimumScaleTrigger: 0.5,\n\n /**\n * List of properties to consider when checking if\n * state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('cropX', 'cropY'),\n\n /**\n * key used to retrieve the texture representing this image\n * @since 2.0.0\n * @type String\n * @default\n */\n cacheKey: '',\n\n /**\n * Image crop in pixels from original image size.\n * @since 2.0.0\n * @type Number\n * @default\n */\n cropX: 0,\n\n /**\n * Image crop in pixels from original image size.\n * @since 2.0.0\n * @type Number\n * @default\n */\n cropY: 0,\n\n /**\n * Indicates whether this canvas will use image smoothing when painting this image.\n * Also influence if the cacheCanvas for this image uses imageSmoothing\n * @since 4.0.0-beta.11\n * @type Boolean\n * @default\n */\n imageSmoothing: true,\n\n /**\n * Constructor\n * @param {HTMLImageElement | String} element Image element\n * @param {Object} [options] Options object\n * @param {function} [callback] callback function to call after eventual filters applied.\n * @return {fabric.Image} thisArg\n */\n initialize: function(element, options) {\n options || (options = { });\n this.filters = [];\n this.cacheKey = 'texture' + fabric.Object.__uid++;\n this.callSuper('initialize', options);\n this._initElement(element, options);\n },\n\n /**\n * Returns image element which this instance if based on\n * @return {HTMLImageElement} Image element\n */\n getElement: function() {\n return this._element || {};\n },\n\n /**\n * Sets image element for this instance to a specified one.\n * If filters defined they are applied to new image.\n * You might need to call `canvas.renderAll` and `object.setCoords` after replacing, to render new image and update controls area.\n * @param {HTMLImageElement} element\n * @param {Object} [options] Options object\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setElement: function(element, options) {\n this.removeTexture(this.cacheKey);\n this.removeTexture(this.cacheKey + '_filtered');\n this._element = element;\n this._originalElement = element;\n this._initConfig(options);\n if (this.filters.length !== 0) {\n this.applyFilters();\n }\n // resizeFilters work on the already filtered copy.\n // we need to apply resizeFilters AFTER normal filters.\n // applyResizeFilters is run more often than normal fiters\n // and is triggered by user interactions rather than dev code\n if (this.resizeFilter) {\n this.applyResizeFilters();\n }\n return this;\n },\n\n /**\n * Delete a single texture if in webgl mode\n */\n removeTexture: function(key) {\n var backend = fabric.filterBackend;\n if (backend && backend.evictCachesForKey) {\n backend.evictCachesForKey(key);\n }\n },\n\n /**\n * Delete textures, reference to elements and eventually JSDOM cleanup\n */\n dispose: function() {\n this.removeTexture(this.cacheKey);\n this.removeTexture(this.cacheKey + '_filtered');\n this._cacheContext = undefined;\n ['_originalElement', '_element', '_filteredEl', '_cacheCanvas'].forEach((function(element) {\n fabric.util.cleanUpJsdomNode(this[element]);\n this[element] = undefined;\n }).bind(this));\n },\n\n /**\n * Get the crossOrigin value (of the corresponding image element)\n */\n getCrossOrigin: function() {\n return this._originalElement && (this._originalElement.crossOrigin || null);\n },\n\n /**\n * Returns original size of an image\n * @return {Object} Object with \"width\" and \"height\" properties\n */\n getOriginalSize: function() {\n var element = this.getElement();\n return {\n width: element.naturalWidth || element.width,\n height: element.naturalHeight || element.height\n };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _stroke: function(ctx) {\n if (!this.stroke || this.strokeWidth === 0) {\n return;\n }\n var w = this.width / 2, h = this.height / 2;\n ctx.beginPath();\n ctx.moveTo(-w, -h);\n ctx.lineTo(w, -h);\n ctx.lineTo(w, h);\n ctx.lineTo(-w, h);\n ctx.lineTo(-w, -h);\n ctx.closePath();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\n\n ctx.save();\n this._setStrokeStyles(ctx, this);\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray);\n ctx.closePath();\n ctx.restore();\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var filters = [];\n\n this.filters.forEach(function(filterObj) {\n if (filterObj) {\n filters.push(filterObj.toObject());\n }\n });\n var object = extend(\n this.callSuper(\n 'toObject',\n ['cropX', 'cropY'].concat(propertiesToInclude)\n ), {\n src: this.getSrc(),\n crossOrigin: this.getCrossOrigin(),\n filters: filters,\n });\n if (this.resizeFilter) {\n object.resizeFilter = this.resizeFilter.toObject();\n }\n return object;\n },\n\n /**\n * Returns true if an image has crop applied, inspecting values of cropX,cropY,width,hight.\n * @return {Boolean}\n */\n hasCrop: function() {\n return this.cropX || this.cropY || this.width < this._element.width || this.height < this._element.height;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var svgString = [], imageMarkup = [], strokeSvg, element = this._element,\n x = -this.width / 2, y = -this.height / 2, clipPath = '', imageRendering = '';\n if (!element) {\n return [];\n }\n if (this.hasCrop()) {\n var clipPathId = fabric.Object.__uid++;\n svgString.push(\n '\\n',\n '\\t\\n',\n '\\n'\n );\n clipPath = ' clip-path=\"url(#imageCrop_' + clipPathId + ')\" ';\n }\n if (!this.imageSmoothing) {\n imageRendering = '\" image-rendering=\"optimizeSpeed';\n }\n imageMarkup.push('\\t element with actual transformation, then offsetting object to the top/left\n // so that object's center aligns with container's left/top\n '\" width=\"', element.width || element.naturalWidth,\n '\" height=\"', element.height || element.height,\n imageRendering,\n '\"', clipPath,\n '>\\n');\n\n if (this.stroke || this.strokeDashArray) {\n var origFill = this.fill;\n this.fill = null;\n strokeSvg = [\n '\\t\\n'\n ];\n this.fill = origFill;\n }\n if (this.paintFirst !== 'fill') {\n svgString = svgString.concat(strokeSvg, imageMarkup);\n }\n else {\n svgString = svgString.concat(imageMarkup, strokeSvg);\n }\n return svgString;\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns source of an image\n * @param {Boolean} filtered indicates if the src is needed for svg\n * @return {String} Source of an image\n */\n getSrc: function(filtered) {\n var element = filtered ? this._element : this._originalElement;\n if (element) {\n if (element.toDataURL) {\n return element.toDataURL();\n }\n\n if (this.srcFromAttribute) {\n return element.getAttribute('src');\n }\n else {\n return element.src;\n }\n }\n else {\n return this.src || '';\n }\n },\n\n /**\n * Sets source of an image\n * @param {String} src Source string (URL)\n * @param {Function} [callback] Callback is invoked when image has been loaded (and all filters have been applied)\n * @param {Object} [options] Options object\n * @param {String} [options.crossOrigin] crossOrigin value (one of \"\", \"anonymous\", \"use-credentials\")\n * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setSrc: function(src, callback, options) {\n fabric.util.loadImage(src, function(img, isError) {\n this.setElement(img, options);\n this._setWidthHeight();\n callback && callback(this, isError);\n }, this, options && options.crossOrigin);\n return this;\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} String representation of an instance\n */\n toString: function() {\n return '#';\n },\n\n applyResizeFilters: function() {\n var filter = this.resizeFilter,\n minimumScale = this.minimumScaleTrigger,\n objectScale = this.getTotalObjectScaling(),\n scaleX = objectScale.scaleX,\n scaleY = objectScale.scaleY,\n elementToFilter = this._filteredEl || this._originalElement;\n if (this.group) {\n this.set('dirty', true);\n }\n if (!filter || (scaleX > minimumScale && scaleY > minimumScale)) {\n this._element = elementToFilter;\n this._filterScalingX = 1;\n this._filterScalingY = 1;\n this._lastScaleX = scaleX;\n this._lastScaleY = scaleY;\n return;\n }\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n var canvasEl = fabric.util.createCanvasElement(),\n cacheKey = this._filteredEl ? (this.cacheKey + '_filtered') : this.cacheKey,\n sourceWidth = elementToFilter.width, sourceHeight = elementToFilter.height;\n canvasEl.width = sourceWidth;\n canvasEl.height = sourceHeight;\n this._element = canvasEl;\n this._lastScaleX = filter.scaleX = scaleX;\n this._lastScaleY = filter.scaleY = scaleY;\n fabric.filterBackend.applyFilters(\n [filter], elementToFilter, sourceWidth, sourceHeight, this._element, cacheKey);\n this._filterScalingX = canvasEl.width / this._originalElement.width;\n this._filterScalingY = canvasEl.height / this._originalElement.height;\n },\n\n /**\n * Applies filters assigned to this image (from \"filters\" array) or from filter param\n * @method applyFilters\n * @param {Array} filters to be applied\n * @param {Boolean} forResizing specify if the filter operation is a resize operation\n * @return {thisArg} return the fabric.Image object\n * @chainable\n */\n applyFilters: function(filters) {\n\n filters = filters || this.filters || [];\n filters = filters.filter(function(filter) { return filter && !filter.isNeutralState(); });\n this.set('dirty', true);\n\n // needs to clear out or WEBGL will not resize correctly\n this.removeTexture(this.cacheKey + '_filtered');\n\n if (filters.length === 0) {\n this._element = this._originalElement;\n this._filteredEl = null;\n this._filterScalingX = 1;\n this._filterScalingY = 1;\n return this;\n }\n\n var imgElement = this._originalElement,\n sourceWidth = imgElement.naturalWidth || imgElement.width,\n sourceHeight = imgElement.naturalHeight || imgElement.height;\n\n if (this._element === this._originalElement) {\n // if the element is the same we need to create a new element\n var canvasEl = fabric.util.createCanvasElement();\n canvasEl.width = sourceWidth;\n canvasEl.height = sourceHeight;\n this._element = canvasEl;\n this._filteredEl = canvasEl;\n }\n else {\n // clear the existing element to get new filter data\n // also dereference the eventual resized _element\n this._element = this._filteredEl;\n this._filteredEl.getContext('2d').clearRect(0, 0, sourceWidth, sourceHeight);\n // we also need to resize again at next renderAll, so remove saved _lastScaleX/Y\n this._lastScaleX = 1;\n this._lastScaleY = 1;\n }\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n fabric.filterBackend.applyFilters(\n filters, this._originalElement, sourceWidth, sourceHeight, this._element, this.cacheKey);\n if (this._originalElement.width !== this._element.width ||\n this._originalElement.height !== this._element.height) {\n this._filterScalingX = this._element.width / this._originalElement.width;\n this._filterScalingY = this._element.height / this._originalElement.height;\n }\n return this;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n fabric.util.setImageSmoothing(ctx, this.imageSmoothing);\n if (this.isMoving !== true && this.resizeFilter && this._needsResize()) {\n this.applyResizeFilters();\n }\n this._stroke(ctx);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Paint the cached copy of the object on the target context.\n * it will set the imageSmoothing for the draw operation\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawCacheOnCanvas: function(ctx) {\n fabric.util.setImageSmoothing(ctx, this.imageSmoothing);\n fabric.Object.prototype.drawCacheOnCanvas.call(this, ctx);\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * This is the special image version where we would like to avoid caching where possible.\n * Essentially images do not benefit from caching. They may require caching, and in that\n * case we do it. Also caching an image usually ends in a loss of details.\n * A full performance audit should be done.\n * @return {Boolean}\n */\n shouldCache: function() {\n return this.needsItsOwnCache();\n },\n\n _renderFill: function(ctx) {\n var elementToDraw = this._element;\n if (!elementToDraw) {\n return;\n }\n var scaleX = this._filterScalingX, scaleY = this._filterScalingY,\n w = this.width, h = this.height, min = Math.min, max = Math.max,\n // crop values cannot be lesser than 0.\n cropX = max(this.cropX, 0), cropY = max(this.cropY, 0),\n elWidth = elementToDraw.naturalWidth || elementToDraw.width,\n elHeight = elementToDraw.naturalHeight || elementToDraw.height,\n sX = cropX * scaleX,\n sY = cropY * scaleY,\n // the width height cannot exceed element width/height, starting from the crop offset.\n sW = min(w * scaleX, elWidth - sX),\n sH = min(h * scaleY, elHeight - sY),\n x = -w / 2, y = -h / 2,\n maxDestW = min(w, elWidth / scaleX - cropX),\n maxDestH = min(h, elHeight / scaleX - cropY);\n\n elementToDraw && ctx.drawImage(elementToDraw, sX, sY, sW, sH, x, y, maxDestW, maxDestH);\n },\n\n /**\n * needed to check if image needs resize\n * @private\n */\n _needsResize: function() {\n var scale = this.getTotalObjectScaling();\n return (scale.scaleX !== this._lastScaleX || scale.scaleY !== this._lastScaleY);\n },\n\n /**\n * @private\n */\n _resetWidthHeight: function() {\n this.set(this.getOriginalSize());\n },\n\n /**\n * The Image class's initialization method. This method is automatically\n * called by the constructor.\n * @private\n * @param {HTMLImageElement|String} element The element representing the image\n * @param {Object} [options] Options object\n */\n _initElement: function(element, options) {\n this.setElement(fabric.util.getById(element), options);\n fabric.util.addClass(this.getElement(), fabric.Image.CSS_CANVAS);\n },\n\n /**\n * @private\n * @param {Object} [options] Options object\n */\n _initConfig: function(options) {\n options || (options = { });\n this.setOptions(options);\n this._setWidthHeight(options);\n },\n\n /**\n * @private\n * @param {Array} filters to be initialized\n * @param {Function} callback Callback to invoke when all fabric.Image.filters instances are created\n */\n _initFilters: function(filters, callback) {\n if (filters && filters.length) {\n fabric.util.enlivenObjects(filters, function(enlivenedObjects) {\n callback && callback(enlivenedObjects);\n }, 'fabric.Image.filters');\n }\n else {\n callback && callback();\n }\n },\n\n /**\n * @private\n * Set the width and the height of the image object, using the element or the\n * options.\n * @param {Object} [options] Object with width/height properties\n */\n _setWidthHeight: function(options) {\n options || (options = { });\n var el = this.getElement();\n this.width = options.width || el.naturalWidth || el.width || 0;\n this.height = options.height || el.naturalHeight || el.height || 0;\n },\n\n /**\n * Calculate offset for center and scale factor for the image in order to respect\n * the preserveAspectRatio attribute\n * @private\n * @return {Object}\n */\n parsePreserveAspectRatioAttribute: function() {\n var pAR = fabric.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio || ''),\n rWidth = this._element.width, rHeight = this._element.height,\n scaleX = 1, scaleY = 1, offsetLeft = 0, offsetTop = 0, cropX = 0, cropY = 0,\n offset, pWidth = this.width, pHeight = this.height, parsedAttributes = { width: pWidth, height: pHeight };\n if (pAR && (pAR.alignX !== 'none' || pAR.alignY !== 'none')) {\n if (pAR.meetOrSlice === 'meet') {\n scaleX = scaleY = fabric.util.findScaleToFit(this._element, parsedAttributes);\n offset = (pWidth - rWidth * scaleX) / 2;\n if (pAR.alignX === 'Min') {\n offsetLeft = -offset;\n }\n if (pAR.alignX === 'Max') {\n offsetLeft = offset;\n }\n offset = (pHeight - rHeight * scaleY) / 2;\n if (pAR.alignY === 'Min') {\n offsetTop = -offset;\n }\n if (pAR.alignY === 'Max') {\n offsetTop = offset;\n }\n }\n if (pAR.meetOrSlice === 'slice') {\n scaleX = scaleY = fabric.util.findScaleToCover(this._element, parsedAttributes);\n offset = rWidth - pWidth / scaleX;\n if (pAR.alignX === 'Mid') {\n cropX = offset / 2;\n }\n if (pAR.alignX === 'Max') {\n cropX = offset;\n }\n offset = rHeight - pHeight / scaleY;\n if (pAR.alignY === 'Mid') {\n cropY = offset / 2;\n }\n if (pAR.alignY === 'Max') {\n cropY = offset;\n }\n rWidth = pWidth / scaleX;\n rHeight = pHeight / scaleY;\n }\n }\n else {\n scaleX = pWidth / rWidth;\n scaleY = pHeight / rHeight;\n }\n return {\n width: rWidth,\n height: rHeight,\n scaleX: scaleX,\n scaleY: scaleY,\n offsetLeft: offsetLeft,\n offsetTop: offsetTop,\n cropX: cropX,\n cropY: cropY\n };\n }\n });\n\n /**\n * Default CSS class name for canvas\n * @static\n * @type String\n * @default\n */\n fabric.Image.CSS_CANVAS = 'canvas-img';\n\n /**\n * Alias for getSrc\n * @static\n */\n fabric.Image.prototype.getSvgSrc = fabric.Image.prototype.getSrc;\n\n /**\n * Creates an instance of fabric.Image from its object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} callback Callback to invoke when an image instance is created\n */\n fabric.Image.fromObject = function(_object, callback) {\n var object = fabric.util.object.clone(_object);\n fabric.util.loadImage(object.src, function(img, isError) {\n if (isError) {\n callback && callback(null, true);\n return;\n }\n fabric.Image.prototype._initFilters.call(object, object.filters, function(filters) {\n object.filters = filters || [];\n fabric.Image.prototype._initFilters.call(object, [object.resizeFilter], function(resizeFilters) {\n object.resizeFilter = resizeFilters[0];\n fabric.util.enlivenObjects([object.clipPath], function(enlivedProps) {\n object.clipPath = enlivedProps[0];\n var image = new fabric.Image(img, object);\n callback(image, false);\n });\n });\n });\n }, null, object.crossOrigin);\n };\n\n /**\n * Creates an instance of fabric.Image from an URL string\n * @static\n * @param {String} url URL to create an image from\n * @param {Function} [callback] Callback to invoke when image is created (newly created image is passed as a first argument). Second argument is a boolean indicating if an error occured or not.\n * @param {Object} [imgOptions] Options object\n */\n fabric.Image.fromURL = function(url, callback, imgOptions) {\n fabric.util.loadImage(url, function(img, isError) {\n callback && callback(new fabric.Image(img, imgOptions), isError);\n }, null, imgOptions && imgOptions.crossOrigin);\n };\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Image.fromElement})\n * @static\n * @see {@link http://www.w3.org/TR/SVG/struct.html#ImageElement}\n */\n fabric.Image.ATTRIBUTE_NAMES =\n fabric.SHARED_ATTRIBUTES.concat(\n 'x y width height preserveAspectRatio xlink:href crossOrigin image-rendering'.split(' ')\n );\n\n /**\n * Returns {@link fabric.Image} instance from an SVG element\n * @static\n * @param {SVGElement} element Element to parse\n * @param {Object} [options] Options object\n * @param {Function} callback Callback to execute when fabric.Image object is created\n * @return {fabric.Image} Instance of fabric.Image\n */\n fabric.Image.fromElement = function(element, callback, options) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Image.ATTRIBUTE_NAMES);\n fabric.Image.fromURL(parsedAttributes['xlink:href'], callback,\n extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes));\n };\n /* _FROM_SVG_END_ */\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * @private\n * @return {Number} angle value\n */\n _getAngleValueForStraighten: function() {\n var angle = this.angle % 360;\n if (angle > 0) {\n return Math.round((angle - 1) / 90) * 90;\n }\n return Math.round(angle / 90) * 90;\n },\n\n /**\n * Straightens an object (rotating it from current angle to one of 0, 90, 180, 270, etc. depending on which is closer)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n straighten: function() {\n this.rotate(this._getAngleValueForStraighten());\n return this;\n },\n\n /**\n * Same as {@link fabric.Object.prototype.straighten} but with animation\n * @param {Object} callbacks Object with callback functions\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Object} thisArg\n * @chainable\n */\n fxStraighten: function(callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: this.get('angle'),\n endValue: this._getAngleValueForStraighten(),\n duration: this.FX_DURATION,\n onChange: function(value) {\n _this.rotate(value);\n onChange();\n },\n onComplete: function() {\n _this.setCoords();\n onComplete();\n },\n });\n\n return this;\n }\n});\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Straightens object, then rerenders canvas\n * @param {fabric.Object} object Object to straighten\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n straightenObject: function (object) {\n object.straighten();\n this.requestRenderAll();\n return this;\n },\n\n /**\n * Same as {@link fabric.Canvas.prototype.straightenObject}, but animated\n * @param {fabric.Object} object Object to straighten\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxStraightenObject: function (object) {\n object.fxStraighten({\n onChange: this.requestRenderAllBound\n });\n return this;\n }\n});\n\n\n(function() {\n\n 'use strict';\n\n /**\n * Tests if webgl supports certain precision\n * @param {WebGL} Canvas WebGL context to test on\n * @param {String} Precision to test can be any of following: 'lowp', 'mediump', 'highp'\n * @returns {Boolean} Whether the user's browser WebGL supports given precision.\n */\n function testPrecision(gl, precision){\n var fragmentSource = 'precision ' + precision + ' float;\\nvoid main(){}';\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n return false;\n }\n return true;\n }\n\n /**\n * Indicate whether this filtering backend is supported by the user's browser.\n * @param {Number} tileSize check if the tileSize is supported\n * @returns {Boolean} Whether the user's browser supports WebGL.\n */\n fabric.isWebglSupported = function(tileSize) {\n if (fabric.isLikelyNode) {\n return false;\n }\n tileSize = tileSize || fabric.WebglFilterBackend.prototype.tileSize;\n var canvas = document.createElement('canvas');\n var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n var isSupported = false;\n // eslint-disable-next-line\n if (gl) {\n fabric.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n isSupported = fabric.maxTextureSize >= tileSize;\n var precisions = ['highp', 'mediump', 'lowp'];\n for (var i = 0; i < 3; i++){\n if (testPrecision(gl, precisions[i])){\n fabric.webGlPrecision = precisions[i];\n break;\n };\n }\n }\n this.isSupported = isSupported;\n return isSupported;\n };\n\n fabric.WebglFilterBackend = WebglFilterBackend;\n\n /**\n * WebGL filter backend.\n */\n function WebglFilterBackend(options) {\n if (options && options.tileSize) {\n this.tileSize = options.tileSize;\n }\n this.setupGLContext(this.tileSize, this.tileSize);\n this.captureGPUInfo();\n };\n\n WebglFilterBackend.prototype = /** @lends fabric.WebglFilterBackend.prototype */ {\n\n tileSize: 2048,\n\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you problably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: {\n\n },\n\n /**\n * Setup a WebGL context suitable for filtering, and bind any needed event handlers.\n */\n setupGLContext: function(width, height) {\n this.dispose();\n this.createWebGLCanvas(width, height);\n // eslint-disable-next-line\n this.aPosition = new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]);\n this.chooseFastestCopyGLTo2DMethod(width, height);\n },\n\n /**\n * Pick a method to copy data from GL context to 2d canvas. In some browsers using\n * putImageData is faster than drawImage for that specific operation.\n */\n chooseFastestCopyGLTo2DMethod: function(width, height) {\n var canMeasurePerf = typeof window.performance !== 'undefined', canUseImageData;\n try {\n new ImageData(1, 1);\n canUseImageData = true;\n }\n catch (e) {\n canUseImageData = false;\n }\n // eslint-disable-next-line no-undef\n var canUseArrayBuffer = typeof ArrayBuffer !== 'undefined';\n // eslint-disable-next-line no-undef\n var canUseUint8Clamped = typeof Uint8ClampedArray !== 'undefined';\n\n if (!(canMeasurePerf && canUseImageData && canUseArrayBuffer && canUseUint8Clamped)) {\n return;\n }\n\n var targetCanvas = fabric.util.createCanvasElement();\n // eslint-disable-next-line no-undef\n var imageBuffer = new ArrayBuffer(width * height * 4);\n if (fabric.forceGLPutImageData) {\n this.imageBuffer = imageBuffer;\n this.copyGLTo2D = copyGLTo2DPutImageData;\n return;\n }\n var testContext = {\n imageBuffer: imageBuffer,\n destinationWidth: width,\n destinationHeight: height,\n targetCanvas: targetCanvas\n };\n var startTime, drawImageTime, putImageDataTime;\n targetCanvas.width = width;\n targetCanvas.height = height;\n\n startTime = window.performance.now();\n copyGLTo2DDrawImage.call(testContext, this.gl, testContext);\n drawImageTime = window.performance.now() - startTime;\n\n startTime = window.performance.now();\n copyGLTo2DPutImageData.call(testContext, this.gl, testContext);\n putImageDataTime = window.performance.now() - startTime;\n\n if (drawImageTime > putImageDataTime) {\n this.imageBuffer = imageBuffer;\n this.copyGLTo2D = copyGLTo2DPutImageData;\n }\n else {\n this.copyGLTo2D = copyGLTo2DDrawImage;\n }\n },\n\n /**\n * Create a canvas element and associated WebGL context and attaches them as\n * class properties to the GLFilterBackend class.\n */\n createWebGLCanvas: function(width, height) {\n var canvas = fabric.util.createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n var glOptions = {\n alpha: true,\n premultipliedAlpha: false,\n depth: false,\n stencil: false,\n antialias: false\n },\n gl = canvas.getContext('webgl', glOptions);\n if (!gl) {\n gl = canvas.getContext('experimental-webgl', glOptions);\n }\n if (!gl) {\n return;\n }\n gl.clearColor(0, 0, 0, 0);\n // this canvas can fire webglcontextlost and webglcontextrestored\n this.canvas = canvas;\n this.gl = gl;\n },\n\n /**\n * Attempts to apply the requested filters to the source provided, drawing the filtered output\n * to the provided target canvas.\n *\n * @param {Array} filters The filters to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} source The source to be filtered.\n * @param {Number} width The width of the source input.\n * @param {Number} height The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n * @param {String|undefined} cacheKey A key used to cache resources related to the source. If\n * omitted, caching will be skipped.\n */\n applyFilters: function(filters, source, width, height, targetCanvas, cacheKey) {\n var gl = this.gl;\n var cachedTexture;\n if (cacheKey) {\n cachedTexture = this.getCachedTexture(cacheKey, source);\n }\n var pipelineState = {\n originalWidth: source.width || source.originalWidth,\n originalHeight: source.height || source.originalHeight,\n sourceWidth: width,\n sourceHeight: height,\n destinationWidth: width,\n destinationHeight: height,\n context: gl,\n sourceTexture: this.createTexture(gl, width, height, !cachedTexture && source),\n targetTexture: this.createTexture(gl, width, height),\n originalTexture: cachedTexture ||\n this.createTexture(gl, width, height, !cachedTexture && source),\n passes: filters.length,\n webgl: true,\n aPosition: this.aPosition,\n programCache: this.programCache,\n pass: 0,\n filterBackend: this,\n targetCanvas: targetCanvas\n };\n var tempFbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, tempFbo);\n filters.forEach(function(filter) { filter && filter.applyTo(pipelineState); });\n resizeCanvasIfNeeded(pipelineState);\n this.copyGLTo2D(gl, pipelineState);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.deleteTexture(pipelineState.sourceTexture);\n gl.deleteTexture(pipelineState.targetTexture);\n gl.deleteFramebuffer(tempFbo);\n targetCanvas.getContext('2d').setTransform(1, 0, 0, 1, 0, 0);\n return pipelineState;\n },\n\n /**\n * Detach event listeners, remove references, and clean up caches.\n */\n dispose: function() {\n if (this.canvas) {\n this.canvas = null;\n this.gl = null;\n }\n this.clearWebGLCaches();\n },\n\n /**\n * Wipe out WebGL-related caches.\n */\n clearWebGLCaches: function() {\n this.programCache = {};\n this.textureCache = {};\n },\n\n /**\n * Create a WebGL texture object.\n *\n * Accepts specific dimensions to initialize the textuer to or a source image.\n *\n * @param {WebGLRenderingContext} gl The GL context to use for creating the texture.\n * @param {Number} width The width to initialize the texture at.\n * @param {Number} height The height to initialize the texture.\n * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source for the texture data.\n * @returns {WebGLTexture}\n */\n createTexture: function(gl, width, height, textureImageSource) {\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n if (textureImageSource) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, textureImageSource);\n }\n else {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n }\n return texture;\n },\n\n /**\n * Can be optionally used to get a texture from the cache array\n *\n * If an existing texture is not found, a new texture is created and cached.\n *\n * @param {String} uniqueId A cache key to use to find an existing texture.\n * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source to use to create the\n * texture cache entry if one does not already exist.\n */\n getCachedTexture: function(uniqueId, textureImageSource) {\n if (this.textureCache[uniqueId]) {\n return this.textureCache[uniqueId];\n }\n else {\n var texture = this.createTexture(\n this.gl, textureImageSource.width, textureImageSource.height, textureImageSource);\n this.textureCache[uniqueId] = texture;\n return texture;\n }\n },\n\n /**\n * Clear out cached resources related to a source image that has been\n * filtered previously.\n *\n * @param {String} cacheKey The cache key provided when the source image was filtered.\n */\n evictCachesForKey: function(cacheKey) {\n if (this.textureCache[cacheKey]) {\n this.gl.deleteTexture(this.textureCache[cacheKey]);\n delete this.textureCache[cacheKey];\n }\n },\n\n copyGLTo2D: copyGLTo2DDrawImage,\n\n /**\n * Attempt to extract GPU information strings from a WebGL context.\n *\n * Useful information when debugging or blacklisting specific GPUs.\n *\n * @returns {Object} A GPU info object with renderer and vendor strings.\n */\n captureGPUInfo: function() {\n if (this.gpuInfo) {\n return this.gpuInfo;\n }\n var gl = this.gl, gpuInfo = { renderer: '', vendor: '' };\n if (!gl) {\n return gpuInfo;\n }\n var ext = gl.getExtension('WEBGL_debug_renderer_info');\n if (ext) {\n var renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);\n var vendor = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);\n if (renderer) {\n gpuInfo.renderer = renderer.toLowerCase();\n }\n if (vendor) {\n gpuInfo.vendor = vendor.toLowerCase();\n }\n }\n this.gpuInfo = gpuInfo;\n return gpuInfo;\n },\n };\n})();\n\nfunction resizeCanvasIfNeeded(pipelineState) {\n var targetCanvas = pipelineState.targetCanvas,\n width = targetCanvas.width, height = targetCanvas.height,\n dWidth = pipelineState.destinationWidth,\n dHeight = pipelineState.destinationHeight;\n\n if (width !== dWidth || height !== dHeight) {\n targetCanvas.width = dWidth;\n targetCanvas.height = dHeight;\n }\n}\n\n/**\n * Copy an input WebGL canvas on to an output 2D canvas.\n *\n * The WebGL canvas is assumed to be upside down, with the top-left pixel of the\n * desired output image appearing in the bottom-left corner of the WebGL canvas.\n *\n * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.\n * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.\n * @param {Object} pipelineState The 2D target canvas to copy on to.\n */\nfunction copyGLTo2DDrawImage(gl, pipelineState) {\n var glCanvas = gl.canvas, targetCanvas = pipelineState.targetCanvas,\n ctx = targetCanvas.getContext('2d');\n ctx.translate(0, targetCanvas.height); // move it down again\n ctx.scale(1, -1); // vertical flip\n // where is my image on the big glcanvas?\n var sourceY = glCanvas.height - targetCanvas.height;\n ctx.drawImage(glCanvas, 0, sourceY, targetCanvas.width, targetCanvas.height, 0, 0,\n targetCanvas.width, targetCanvas.height);\n}\n\n/**\n * Copy an input WebGL canvas on to an output 2D canvas using 2d canvas' putImageData\n * API. Measurably faster than using ctx.drawImage in Firefox (version 54 on OSX Sierra).\n *\n * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.\n * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.\n * @param {Object} pipelineState The 2D target canvas to copy on to.\n */\nfunction copyGLTo2DPutImageData(gl, pipelineState) {\n var targetCanvas = pipelineState.targetCanvas, ctx = targetCanvas.getContext('2d'),\n dWidth = pipelineState.destinationWidth,\n dHeight = pipelineState.destinationHeight,\n numBytes = dWidth * dHeight * 4;\n\n // eslint-disable-next-line no-undef\n var u8 = new Uint8Array(this.imageBuffer, 0, numBytes);\n // eslint-disable-next-line no-undef\n var u8Clamped = new Uint8ClampedArray(this.imageBuffer, 0, numBytes);\n\n gl.readPixels(0, 0, dWidth, dHeight, gl.RGBA, gl.UNSIGNED_BYTE, u8);\n var imgData = new ImageData(u8Clamped, dWidth, dHeight);\n ctx.putImageData(imgData, 0, 0);\n}\n\n\n(function() {\n\n 'use strict';\n\n var noop = function() {};\n\n fabric.Canvas2dFilterBackend = Canvas2dFilterBackend;\n\n /**\n * Canvas 2D filter backend.\n */\n function Canvas2dFilterBackend() {};\n\n Canvas2dFilterBackend.prototype = /** @lends fabric.Canvas2dFilterBackend.prototype */ {\n evictCachesForKey: noop,\n dispose: noop,\n clearWebGLCaches: noop,\n\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: {\n\n },\n\n /**\n * Apply a set of filters against a source image and draw the filtered output\n * to the provided destination canvas.\n *\n * @param {EnhancedFilter} filters The filter to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.\n * @param {Number} sourceWidth The width of the source input.\n * @param {Number} sourceHeight The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n */\n applyFilters: function(filters, sourceElement, sourceWidth, sourceHeight, targetCanvas) {\n var ctx = targetCanvas.getContext('2d');\n ctx.drawImage(sourceElement, 0, 0, sourceWidth, sourceHeight);\n var imageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n var originalImageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n var pipelineState = {\n sourceWidth: sourceWidth,\n sourceHeight: sourceHeight,\n imageData: imageData,\n originalEl: sourceElement,\n originalImageData: originalImageData,\n canvasEl: targetCanvas,\n ctx: ctx,\n filterBackend: this,\n };\n filters.forEach(function(filter) { filter.applyTo(pipelineState); });\n if (pipelineState.imageData.width !== sourceWidth || pipelineState.imageData.height !== sourceHeight) {\n targetCanvas.width = pipelineState.imageData.width;\n targetCanvas.height = pipelineState.imageData.height;\n }\n ctx.putImageData(pipelineState.imageData, 0, 0);\n return pipelineState;\n },\n\n };\n})();\n\n\n/**\n * @namespace fabric.Image.filters\n * @memberOf fabric.Image\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#image_filters}\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n */\nfabric.Image = fabric.Image || { };\nfabric.Image.filters = fabric.Image.filters || { };\n\n/**\n * Root filter class from which all filter classes inherit from\n * @class fabric.Image.filters.BaseFilter\n * @memberOf fabric.Image.filters\n */\nfabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Image.filters.BaseFilter.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'BaseFilter',\n\n /**\n * Array of attributes to send with buffers. do not modify\n * @private\n */\n\n vertexSource: 'attribute vec2 aPosition;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vTexCoord = aPosition;\\n' +\n 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' +\n '}',\n\n fragmentSource: 'precision highp float;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'void main() {\\n' +\n 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' +\n '}',\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n if (options) {\n this.setOptions(options);\n }\n },\n\n /**\n * Sets filter's properties from options\n * @param {Object} [options] Options object\n */\n setOptions: function(options) {\n for (var prop in options) {\n this[prop] = options[prop];\n }\n },\n\n /**\n * Compile this filter's shader program.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context to use for shader compilation.\n * @param {String} fragmentSource fragmentShader source for compilation\n * @param {String} vertexSource vertexShader source for compilation\n */\n createProgram: function(gl, fragmentSource, vertexSource) {\n fragmentSource = fragmentSource || this.fragmentSource;\n vertexSource = vertexSource || this.vertexSource;\n if (fabric.webGlPrecision !== 'highp'){\n fragmentSource = fragmentSource.replace(\n /precision highp float/g,\n 'precision ' + fabric.webGlPrecision + ' float'\n );\n }\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexSource);\n gl.compileShader(vertexShader);\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Vertex shader compile error for ' + this.type + ': ' +\n gl.getShaderInfoLog(vertexShader)\n );\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Fragment shader compile error for ' + this.type + ': ' +\n gl.getShaderInfoLog(fragmentShader)\n );\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Shader link error for \"${this.type}\" ' +\n gl.getProgramInfoLog(program)\n );\n }\n\n var attributeLocations = this.getAttributeLocations(gl, program);\n var uniformLocations = this.getUniformLocations(gl, program) || { };\n uniformLocations.uStepW = gl.getUniformLocation(program, 'uStepW');\n uniformLocations.uStepH = gl.getUniformLocation(program, 'uStepH');\n return {\n program: program,\n attributeLocations: attributeLocations,\n uniformLocations: uniformLocations\n };\n },\n\n /**\n * Return a map of attribute names to WebGLAttributeLocation objects.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {WebGLShaderProgram} program The shader program from which to take attribute locations.\n * @returns {Object} A map of attribute names to attribute locations.\n */\n getAttributeLocations: function(gl, program) {\n return {\n aPosition: gl.getAttribLocation(program, 'aPosition'),\n };\n },\n\n /**\n * Return a map of uniform names to WebGLUniformLocation objects.\n *\n * Intended to be overridden by subclasses.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {WebGLShaderProgram} program The shader program from which to take uniform locations.\n * @returns {Object} A map of uniform names to uniform locations.\n */\n getUniformLocations: function (/* gl, program */) {\n // in case i do not need any special uniform i need to return an empty object\n return { };\n },\n\n /**\n * Send attribute data from this filter to its shader program on the GPU.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {Object} attributeLocations A map of shader attribute names to their locations.\n */\n sendAttributeData: function(gl, attributeLocations, aPositionData) {\n var attributeLocation = attributeLocations.aPosition;\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.enableVertexAttribArray(attributeLocation);\n gl.vertexAttribPointer(attributeLocation, 2, gl.FLOAT, false, 0, 0);\n gl.bufferData(gl.ARRAY_BUFFER, aPositionData, gl.STATIC_DRAW);\n },\n\n _setupFrameBuffer: function(options) {\n var gl = options.context, width, height;\n if (options.passes > 1) {\n width = options.destinationWidth;\n height = options.destinationHeight;\n if (options.sourceWidth !== width || options.sourceHeight !== height) {\n gl.deleteTexture(options.targetTexture);\n options.targetTexture = options.filterBackend.createTexture(gl, width, height);\n }\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D,\n options.targetTexture, 0);\n }\n else {\n // draw last filter on canvas and not to framebuffer.\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n gl.finish();\n }\n },\n\n _swapTextures: function(options) {\n options.passes--;\n options.pass++;\n var temp = options.targetTexture;\n options.targetTexture = options.sourceTexture;\n options.sourceTexture = temp;\n },\n\n /**\n * Generic isNeutral implementation for one parameter based filters.\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * Other filters may need their own verison ( ColorMatrix, HueRotation, gamma, ComposedFilter )\n * @param {Object} options\n **/\n isNeutralState: function(/* options */) {\n var main = this.mainParameter,\n _class = fabric.Image.filters[this.type].prototype;\n if (main) {\n if (Array.isArray(_class[main])) {\n for (var i = _class[main].length; i--;) {\n if (this[main][i] !== _class[main][i]) {\n return false;\n }\n }\n return true;\n }\n else {\n return _class[main] === this[main];\n }\n }\n else {\n return false;\n }\n },\n\n /**\n * Apply this filter to the input image data provided.\n *\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n if (options.webgl) {\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n if (!options.programCache.hasOwnProperty(this.type)) {\n options.programCache[this.type] = this.createProgram(options.context);\n }\n return options.programCache[this.type];\n },\n\n /**\n * Apply this filter using webgl.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.originalTexture The texture of the original input image.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyToWebGL: function(options) {\n var gl = options.context;\n var shader = this.retrieveShader(options);\n if (options.pass === 0 && options.originalTexture) {\n gl.bindTexture(gl.TEXTURE_2D, options.originalTexture);\n }\n else {\n gl.bindTexture(gl.TEXTURE_2D, options.sourceTexture);\n }\n gl.useProgram(shader.program);\n this.sendAttributeData(gl, shader.attributeLocations, options.aPosition);\n\n gl.uniform1f(shader.uniformLocations.uStepW, 1 / options.sourceWidth);\n gl.uniform1f(shader.uniformLocations.uStepH, 1 / options.sourceHeight);\n\n this.sendUniformData(gl, shader.uniformLocations);\n gl.viewport(0, 0, options.destinationWidth, options.destinationHeight);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n },\n\n bindAdditionalTexture: function(gl, texture, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n // reset active texture to 0 as usual\n gl.activeTexture(gl.TEXTURE0);\n },\n\n unbindAdditionalTexture: function(gl, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.activeTexture(gl.TEXTURE0);\n },\n\n getMainParameter: function() {\n return this[this.mainParameter];\n },\n\n setMainParameter: function(value) {\n this[this.mainParameter] = value;\n },\n\n /**\n * Send uniform data from this filter to its shader program on the GPU.\n *\n * Intended to be overridden by subclasses.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {Object} uniformLocations A map of shader uniform names to their locations.\n */\n sendUniformData: function(/* gl, uniformLocations */) {\n // Intentionally left blank. Override me in subclasses.\n },\n\n /**\n * If needed by a 2d filter, this functions can create an helper canvas to be used\n * remember that options.targetCanvas is available for use till end of chain.\n */\n createHelpLayer: function(options) {\n if (!options.helpLayer) {\n var helpLayer = document.createElement('canvas');\n helpLayer.width = options.sourceWidth;\n helpLayer.height = options.sourceHeight;\n options.helpLayer = helpLayer;\n }\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n var object = { type: this.type }, mainP = this.mainParameter;\n if (mainP) {\n object[mainP] = this[mainP];\n }\n return object;\n },\n\n /**\n * Returns a JSON representation of an instance\n * @return {Object} JSON\n */\n toJSON: function() {\n // delegate, not alias\n return this.toObject();\n }\n});\n\nfabric.Image.filters.BaseFilter.fromObject = function(object, callback) {\n var filter = new fabric.Image.filters[object.type](object);\n callback && callback(filter);\n return filter;\n};\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Color Matrix filter class\n * @class fabric.Image.filters.ColorMatrix\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.ColorMatrix#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://www.webwasp.co.uk/tutorials/219/Color_Matrix_Filter.php}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl}\n * @example Kodachrome filter\n * var filter = new fabric.Image.filters.ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.ColorMatrix = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.ColorMatrix.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'ColorMatrix',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'uniform mat4 uColorMatrix;\\n' +\n 'uniform vec4 uConstants;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color *= uColorMatrix;\\n' +\n 'color += uConstants;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n matrix: [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0\n ],\n\n mainParameter: 'matrix',\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, manly for non webgl scenario\n * to save some calculation\n */\n colorsOnly: true,\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n // create a new array instead mutating the prototype with push\n this.matrix = this.matrix.slice(0);\n },\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = data.length,\n m = this.matrix,\n r, g, b, a, i, colorsOnly = this.colorsOnly;\n\n for (i = 0; i < iLen; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n }\n else {\n a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] = r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uColorMatrix: gl.getUniformLocation(program, 'uColorMatrix'),\n uConstants: gl.getUniformLocation(program, 'uConstants'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var m = this.matrix,\n matrix = [\n m[0], m[1], m[2], m[3],\n m[5], m[6], m[7], m[8],\n m[10], m[11], m[12], m[13],\n m[15], m[16], m[17], m[18]\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] function to invoke after filter creation\n * @return {fabric.Image.filters.ColorMatrix} Instance of fabric.Image.filters.ColorMatrix\n */\n fabric.Image.filters.ColorMatrix.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Brightness filter class\n * @class fabric.Image.filters.Brightness\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Brightness#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Brightness({\n * brightness: 0.05\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Brightness = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Brightness.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Brightness',\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uBrightness;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color.rgb += uBrightness;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Brightness value, from -1 to 1.\n * translated to -255 to 255 for 2d\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Number} brightness\n * @default\n */\n brightness: 0,\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'brightness',\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.brightness === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, i, len = data.length,\n brightness = Math.round(this.brightness * 255);\n for (i = 0; i < len; i += 4) {\n data[i] = data[i] + brightness;\n data[i + 1] = data[i + 1] + brightness;\n data[i + 2] = data[i + 2] + brightness;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uBrightness: gl.getUniformLocation(program, 'uBrightness'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBrightness, this.brightness);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Brightness} Instance of fabric.Image.filters.Brightness\n */\n fabric.Image.filters.Brightness.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Adapted from html5rocks article\n * @class fabric.Image.filters.Convolute\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Convolute#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example Sharpen filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 0, -1, 0,\n * -1, 5, -1,\n * 0, -1, 0 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Blur filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Emboss filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Emboss filter with opaqueness\n * var filter = new fabric.Image.filters.Convolute({\n * opaque: true,\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Convolute = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Convolute.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Convolute',\n\n /*\n * Opaque value (true/false)\n */\n opaque: false,\n\n /*\n * matrix for the filter, max 9x9\n */\n matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: {\n Convolute_3_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[9];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_3_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[9];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_5_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[25];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_5_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[25];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_7_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[49];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_7_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[49];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_9_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[81];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_9_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[81];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n },\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Convolute.prototype\n * @param {Object} [options] Options object\n * @param {Boolean} [options.opaque=false] Opaque value (true/false)\n * @param {Array} [options.matrix] Filter matrix\n */\n\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var size = Math.sqrt(this.matrix.length);\n var cacheKey = this.type + '_' + size + '_' + (this.opaque ? 1 : 0);\n var shaderSource = this.fragmentSource[cacheKey];\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n weights = this.matrix,\n side = Math.round(Math.sqrt(weights.length)),\n halfSide = Math.floor(side / 2),\n sw = imageData.width,\n sh = imageData.height,\n output = options.ctx.createImageData(sw, sh),\n dst = output.data,\n // go through the destination image pixels\n alphaFac = this.opaque ? 1 : 0,\n r, g, b, a, dstOff,\n scx, scy, srcOff, wt,\n x, y, cx, cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4;\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0; g = 0; b = 0; a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - halfSide;\n scx = x + cx - halfSide;\n\n // eslint-disable-next-line max-depth\n if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {\n continue;\n }\n\n srcOff = (scy * sw + scx) * 4;\n wt = weights[cy * side + cx];\n\n r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt;\n // eslint-disable-next-line max-depth\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n }\n else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\n }\n }\n options.imageData = output;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uMatrix: gl.getUniformLocation(program, 'uMatrix'),\n uOpaque: gl.getUniformLocation(program, 'uOpaque'),\n uHalfSize: gl.getUniformLocation(program, 'uHalfSize'),\n uSize: gl.getUniformLocation(program, 'uSize'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1fv(uniformLocations.uMatrix, this.matrix);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n opaque: this.opaque,\n matrix: this.matrix\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Convolute} Instance of fabric.Image.filters.Convolute\n */\n fabric.Image.filters.Convolute.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Grayscale image filter class\n * @class fabric.Image.filters.Grayscale\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Grayscale();\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Grayscale = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Grayscale.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Grayscale',\n\n fragmentSource: {\n average: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = (color.r + color.b + color.g) / 3.0;\\n' +\n 'gl_FragColor = vec4(average, average, average, color.a);\\n' +\n '}',\n lightness: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uMode;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 col = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\\n' +\n 'gl_FragColor = vec4(average, average, average, col.a);\\n' +\n '}',\n luminosity: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uMode;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 col = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\\n' +\n 'gl_FragColor = vec4(average, average, average, col.a);\\n' +\n '}',\n },\n\n\n /**\n * Grayscale mode, between 'average', 'lightness', 'luminosity'\n * @param {String} type\n * @default\n */\n mode: 'average',\n\n mainParameter: 'mode',\n\n /**\n * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n len = data.length, value,\n mode = this.mode;\n for (i = 0; i < len; i += 4) {\n if (mode === 'average') {\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n }\n else if (mode === 'lightness') {\n value = (Math.min(data[i], data[i + 1], data[i + 2]) +\n Math.max(data[i], data[i + 1], data[i + 2])) / 2;\n }\n else if (mode === 'luminosity') {\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n }\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var shaderSource = this.fragmentSource[this.mode];\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uMode: gl.getUniformLocation(program, 'uMode'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n // default average mode.\n var mode = 1;\n gl.uniform1i(uniformLocations.uMode, mode);\n },\n\n /**\n * Grayscale filter isNeutralState implementation\n * The filter is never neutral\n * on the image\n **/\n isNeutralState: function() {\n return false;\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Grayscale} Instance of fabric.Image.filters.Grayscale\n */\n fabric.Image.filters.Grayscale.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Invert filter class\n * @class fabric.Image.filters.Invert\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\n filters.Invert = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Invert.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Invert',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uInvert;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'if (uInvert == 1) {\\n' +\n 'gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\\n' +\n '} else {\\n' +\n 'gl_FragColor = color;\\n' +\n '}\\n' +\n '}',\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n invert: true,\n\n mainParameter: 'invert',\n\n /**\n * Apply the Invert operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n len = data.length;\n for (i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n },\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState: function() {\n return !this.invert;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uInvert: gl.getUniformLocation(program, 'uInvert'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1i(uniformLocations.uInvert, this.invert);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Invert} Instance of fabric.Image.filters.Invert\n */\n fabric.Image.filters.Invert.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Noise filter class\n * @class fabric.Image.filters.Noise\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Noise#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Noise = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Noise.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Noise',\n\n /**\n * Fragment source for the noise program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uStepH;\\n' +\n 'uniform float uNoise;\\n' +\n 'uniform float uSeed;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'float rand(vec2 co, float seed, float vScale) {\\n' +\n 'return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\\n' +\n '}\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'noise',\n\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n noise: 0,\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.noise === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, i, len = data.length,\n noise = this.noise, rand;\n\n for (i = 0, len = data.length; i < len; i += 4) {\n\n rand = (0.5 - Math.random()) * noise;\n\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uNoise: gl.getUniformLocation(program, 'uNoise'),\n uSeed: gl.getUniformLocation(program, 'uSeed'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uNoise, this.noise / 255);\n gl.uniform1f(uniformLocations.uSeed, Math.random());\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n noise: this.noise\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Noise} Instance of fabric.Image.filters.Noise\n */\n fabric.Image.filters.Noise.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Pixelate filter class\n * @class fabric.Image.filters.Pixelate\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Pixelate#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Pixelate({\n * blocksize: 8\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Pixelate = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Pixelate.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Pixelate',\n\n blocksize: 4,\n\n mainParameter: 'blocksize',\n\n /**\n * Fragment source for the Pixelate program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uBlocksize;\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'float blockW = uBlocksize * uStepW;\\n' +\n 'float blockH = uBlocksize * uStepW;\\n' +\n 'int posX = int(vTexCoord.x / blockW);\\n' +\n 'int posY = int(vTexCoord.y / blockH);\\n' +\n 'float fposX = float(posX);\\n' +\n 'float fposY = float(posY);\\n' +\n 'vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\\n' +\n 'vec4 color = texture2D(uTexture, squareCoords);\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Apply the Pixelate operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = imageData.height,\n jLen = imageData.width,\n index, i, j, r, g, b, a,\n _i, _j, _iLen, _jLen;\n\n for (i = 0; i < iLen; i += this.blocksize) {\n for (j = 0; j < jLen; j += this.blocksize) {\n\n index = (i * 4) * jLen + (j * 4);\n\n r = data[index];\n g = data[index + 1];\n b = data[index + 2];\n a = data[index + 3];\n\n _iLen = Math.min(i + this.blocksize, iLen);\n _jLen = Math.min(j + this.blocksize, jLen);\n for (_i = i; _i < _iLen; _i++) {\n for (_j = j; _j < _jLen; _j++) {\n index = (_i * 4) * jLen + (_j * 4);\n data[index] = r;\n data[index + 1] = g;\n data[index + 2] = b;\n data[index + 3] = a;\n }\n }\n }\n }\n },\n\n /**\n * Indicate when the filter is not gonna apply changes to the image\n **/\n isNeutralState: function() {\n return this.blocksize === 1;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uBlocksize: gl.getUniformLocation(program, 'uBlocksize'),\n uStepW: gl.getUniformLocation(program, 'uStepW'),\n uStepH: gl.getUniformLocation(program, 'uStepH'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBlocksize, this.blocksize);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Pixelate} Instance of fabric.Image.filters.Pixelate\n */\n fabric.Image.filters.Pixelate.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Remove white filter class\n * @class fabric.Image.filters.RemoveColor\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.RemoveColor#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.RemoveColor({\n * threshold: 0.2,\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.RemoveColor = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.RemoveColor.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'RemoveColor',\n\n /**\n * Color to remove, in any format understood by fabric.Color.\n * @param {String} type\n * @default\n */\n color: '#FFFFFF',\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec4 uLow;\\n' +\n 'uniform vec4 uHigh;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' +\n 'if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\\n' +\n 'gl_FragColor.a = 0.0;\\n' +\n '}\\n' +\n '}',\n\n /**\n * distance to actual color, as value up or down from each r,g,b\n * between 0 and 1\n **/\n distance: 0.02,\n\n /**\n * For color to remove inside distance, use alpha channel for a smoother deletion\n * NOT IMPLEMENTED YET\n **/\n useAlpha: false,\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.RemoveWhite.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.color=#RRGGBB] Threshold value\n * @param {Number} [options.distance=10] Distance value\n */\n\n /**\n * Applies filter to canvas element\n * @param {Object} canvasEl Canvas element to apply filter to\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n distance = this.distance * 255,\n r, g, b,\n source = new fabric.Color(this.color).getSource(),\n lowC = [\n source[0] - distance,\n source[1] - distance,\n source[2] - distance,\n ],\n highC = [\n source[0] + distance,\n source[1] + distance,\n source[2] + distance,\n ];\n\n\n for (i = 0; i < data.length; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n\n if (r > lowC[0] &&\n g > lowC[1] &&\n b > lowC[2] &&\n r < highC[0] &&\n g < highC[1] &&\n b < highC[2]) {\n data[i + 3] = 0;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uLow: gl.getUniformLocation(program, 'uLow'),\n uHigh: gl.getUniformLocation(program, 'uHigh'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var source = new fabric.Color(this.color).getSource(),\n distance = parseFloat(this.distance),\n lowC = [\n 0 + source[0] / 255 - distance,\n 0 + source[1] / 255 - distance,\n 0 + source[2] / 255 - distance,\n 1\n ],\n highC = [\n source[0] / 255 + distance,\n source[1] / 255 + distance,\n source[2] / 255 + distance,\n 1\n ];\n gl.uniform4fv(uniformLocations.uLow, lowC);\n gl.uniform4fv(uniformLocations.uHigh, highC);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n color: this.color,\n distance: this.distance\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.RemoveColor} Instance of fabric.Image.filters.RemoveWhite\n */\n fabric.Image.filters.RemoveColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n var matrices = {\n Brownie: [\n 0.59970,0.34553,-0.27082,0,0.186,\n -0.03770,0.86095,0.15059,0,-0.1449,\n 0.24113,-0.07441,0.44972,0,-0.02965,\n 0,0,0,1,0\n ],\n Vintage: [\n 0.62793,0.32021,-0.03965,0,0.03784,\n 0.02578,0.64411,0.03259,0,0.02926,\n 0.04660,-0.08512,0.52416,0,0.02023,\n 0,0,0,1,0\n ],\n Kodachrome: [\n 1.12855,-0.39673,-0.03992,0,0.24991,\n -0.16404,1.08352,-0.05498,0,0.09698,\n -0.16786,-0.56034,1.60148,0,0.13972,\n 0,0,0,1,0\n ],\n Technicolor: [\n 1.91252,-0.85453,-0.09155,0,0.04624,\n -0.30878,1.76589,-0.10601,0,-0.27589,\n -0.23110,-0.75018,1.84759,0,0.12137,\n 0,0,0,1,0\n ],\n Polaroid: [\n 1.438,-0.062,-0.062,0,0,\n -0.122,1.378,-0.122,0,0,\n -0.016,-0.016,1.483,0,0,\n 0,0,0,1,0\n ],\n Sepia: [\n 0.393, 0.769, 0.189, 0, 0,\n 0.349, 0.686, 0.168, 0, 0,\n 0.272, 0.534, 0.131, 0, 0,\n 0, 0, 0, 1, 0\n ],\n BlackWhite: [\n 1.5, 1.5, 1.5, 0, -1,\n 1.5, 1.5, 1.5, 0, -1,\n 1.5, 1.5, 1.5, 0, -1,\n 0, 0, 0, 1, 0,\n ]\n };\n\n for (var key in matrices) {\n filters[key] = createClass(filters.ColorMatrix, /** @lends fabric.Image.filters.Sepia.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: key,\n\n /**\n * Colormatrix for the effect\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n matrix: matrices[key],\n\n /**\n * Lock the matrix export for this kind of static, parameter less filters.\n */\n mainParameter: false,\n /**\n * Lock the colormatrix on the color part, skipping alpha\n */\n colorsOnly: true,\n\n });\n fabric.Image.filters[key].fromObject = fabric.Image.filters.BaseFilter.fromObject;\n }\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n 'use strict';\n\n var fabric = global.fabric,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Color Blend filter class\n * @class fabric.Image.filter.BlendColor\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @example\n * var filter = new fabric.Image.filters.BlendColor({\n * color: '#000',\n * mode: 'multiply'\n * });\n *\n * var filter = new fabric.Image.filters.BlendImage({\n * image: fabricImageObject,\n * mode: 'multiply',\n * alpha: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n\n filters.BlendColor = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Blend.prototype */ {\n type: 'BlendColor',\n\n /**\n * Color to make the blend operation with. default to a reddish color since black or white\n * gives always strong result.\n **/\n color: '#F95C63',\n\n /**\n * Blend mode for the filter: one of multiply, add, diff, screen, subtract,\n * darken, lighten, overlay, exclusion, tint.\n **/\n mode: 'multiply',\n\n /**\n * alpha value. represent the strength of the blend color operation.\n **/\n alpha: 1,\n\n /**\n * Fragment source for the Multiply program\n */\n fragmentSource: {\n multiply: 'gl_FragColor.rgb *= uColor.rgb;\\n',\n screen: 'gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\\n',\n add: 'gl_FragColor.rgb += uColor.rgb;\\n',\n diff: 'gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\\n',\n subtract: 'gl_FragColor.rgb -= uColor.rgb;\\n',\n lighten: 'gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\\n',\n darken: 'gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\\n',\n exclusion: 'gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\\n',\n overlay: 'if (uColor.r < 0.5) {\\n' +\n 'gl_FragColor.r *= 2.0 * uColor.r;\\n' +\n '} else {\\n' +\n 'gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\\n' +\n '}\\n' +\n 'if (uColor.g < 0.5) {\\n' +\n 'gl_FragColor.g *= 2.0 * uColor.g;\\n' +\n '} else {\\n' +\n 'gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\\n' +\n '}\\n' +\n 'if (uColor.b < 0.5) {\\n' +\n 'gl_FragColor.b *= 2.0 * uColor.b;\\n' +\n '} else {\\n' +\n 'gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\\n' +\n '}\\n',\n tint: 'gl_FragColor.rgb *= (1.0 - uColor.a);\\n' +\n 'gl_FragColor.rgb += uColor.rgb;\\n',\n },\n\n /**\n * build the fragment source for the filters, joining the common part with\n * the specific one.\n * @param {String} mode the mode of the filter, a key of this.fragmentSource\n * @return {String} the source to be compiled\n * @private\n */\n buildSource: function(mode) {\n return 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'gl_FragColor = color;\\n' +\n 'if (color.a > 0.0) {\\n' +\n this.fragmentSource[mode] +\n '}\\n' +\n '}';\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode, shaderSource;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n shaderSource = this.buildSource(this.mode);\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, iLen = data.length,\n tr, tg, tb,\n r, g, b,\n source, alpha1 = 1 - this.alpha;\n\n source = new fabric.Color(this.color).getSource();\n tr = source[0] * this.alpha;\n tg = source[1] * this.alpha;\n tb = source[2] * this.alpha;\n\n for (var i = 0; i < iLen; i += 4) {\n\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n\n switch (this.mode) {\n case 'multiply':\n data[i] = r * tr / 255;\n data[i + 1] = g * tg / 255;\n data[i + 2] = b * tb / 255;\n break;\n case 'screen':\n data[i] = 255 - (255 - r) * (255 - tr) / 255;\n data[i + 1] = 255 - (255 - g) * (255 - tg) / 255;\n data[i + 2] = 255 - (255 - b) * (255 - tb) / 255;\n break;\n case 'add':\n data[i] = r + tr;\n data[i + 1] = g + tg;\n data[i + 2] = b + tb;\n break;\n case 'diff':\n case 'difference':\n data[i] = Math.abs(r - tr);\n data[i + 1] = Math.abs(g - tg);\n data[i + 2] = Math.abs(b - tb);\n break;\n case 'subtract':\n data[i] = r - tr;\n data[i + 1] = g - tg;\n data[i + 2] = b - tb;\n break;\n case 'darken':\n data[i] = Math.min(r, tr);\n data[i + 1] = Math.min(g, tg);\n data[i + 2] = Math.min(b, tb);\n break;\n case 'lighten':\n data[i] = Math.max(r, tr);\n data[i + 1] = Math.max(g, tg);\n data[i + 2] = Math.max(b, tb);\n break;\n case 'overlay':\n data[i] = tr < 128 ? (2 * r * tr / 255) : (255 - 2 * (255 - r) * (255 - tr) / 255);\n data[i + 1] = tg < 128 ? (2 * g * tg / 255) : (255 - 2 * (255 - g) * (255 - tg) / 255);\n data[i + 2] = tb < 128 ? (2 * b * tb / 255) : (255 - 2 * (255 - b) * (255 - tb) / 255);\n break;\n case 'exclusion':\n data[i] = tr + r - ((2 * tr * r) / 255);\n data[i + 1] = tg + g - ((2 * tg * g) / 255);\n data[i + 2] = tb + b - ((2 * tb * b) / 255);\n break;\n case 'tint':\n data[i] = tr + r * alpha1;\n data[i + 1] = tg + g * alpha1;\n data[i + 2] = tb + b * alpha1;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uColor: gl.getUniformLocation(program, 'uColor'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var source = new fabric.Color(this.color).getSource();\n source[0] = this.alpha * source[0] / 255;\n source[1] = this.alpha * source[1] / 255;\n source[2] = this.alpha * source[2] / 255;\n source[3] = this.alpha;\n gl.uniform4fv(uniformLocations.uColor, source);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n color: this.color,\n mode: this.mode,\n alpha: this.alpha\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.BlendColor} Instance of fabric.Image.filters.BlendColor\n */\n fabric.Image.filters.BlendColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n 'use strict';\n\n var fabric = global.fabric,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Image Blend filter class\n * @class fabric.Image.filter.BlendImage\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @example\n * var filter = new fabric.Image.filters.BlendColor({\n * color: '#000',\n * mode: 'multiply'\n * });\n *\n * var filter = new fabric.Image.filters.BlendImage({\n * image: fabricImageObject,\n * mode: 'multiply',\n * alpha: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n\n filters.BlendImage = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.BlendImage.prototype */ {\n type: 'BlendImage',\n\n /**\n * Color to make the blend operation with. default to a reddish color since black or white\n * gives always strong result.\n **/\n image: null,\n\n /**\n * Blend mode for the filter: one of multiply, add, diff, screen, subtract,\n * darken, lighten, overlay, exclusion, tint.\n **/\n mode: 'multiply',\n\n /**\n * alpha value. represent the strength of the blend image operation.\n * not implemented.\n **/\n alpha: 1,\n\n vertexSource: 'attribute vec2 aPosition;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'uniform mat3 uTransformMatrix;\\n' +\n 'void main() {\\n' +\n 'vTexCoord = aPosition;\\n' +\n 'vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\\n' +\n 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' +\n '}',\n\n /**\n * Fragment source for the Multiply program\n */\n fragmentSource: {\n multiply: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform sampler2D uImage;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' +\n 'color.rgba *= color2.rgba;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n mask: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform sampler2D uImage;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' +\n 'color.a = color2.a;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode;\n var shaderSource = this.fragmentSource[this.mode];\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n applyToWebGL: function(options) {\n // load texture to blend.\n var gl = options.context,\n texture = this.createTexture(options.filterBackend, this.image);\n this.bindAdditionalTexture(gl, texture, gl.TEXTURE1);\n this.callSuper('applyToWebGL', options);\n this.unbindAdditionalTexture(gl, gl.TEXTURE1);\n },\n\n createTexture: function(backend, image) {\n return backend.getCachedTexture(image.cacheKey, image._element);\n },\n\n /**\n * Calculate a transformMatrix to adapt the image to blend over\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n calculateMatrix: function() {\n var image = this.image,\n width = image._element.width,\n height = image._element.height;\n return [\n 1 / image.scaleX, 0, 0,\n 0, 1 / image.scaleY, 0,\n -image.left / width, -image.top / height, 1\n ];\n },\n\n /**\n * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n resources = options.filterBackend.resources,\n data = imageData.data, iLen = data.length,\n width = imageData.width,\n height = imageData.height,\n tr, tg, tb, ta,\n r, g, b, a,\n canvas1, context, image = this.image, blendData;\n\n if (!resources.blendImage) {\n resources.blendImage = fabric.util.createCanvasElement();\n }\n canvas1 = resources.blendImage;\n context = canvas1.getContext('2d');\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas1.width = width;\n canvas1.height = height;\n }\n else {\n context.clearRect(0, 0, width, height);\n }\n context.setTransform(image.scaleX, 0, 0, image.scaleY, image.left, image.top);\n context.drawImage(image._element, 0, 0, width, height);\n blendData = context.getImageData(0, 0, width, height).data;\n for (var i = 0; i < iLen; i += 4) {\n\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n\n tr = blendData[i];\n tg = blendData[i + 1];\n tb = blendData[i + 2];\n ta = blendData[i + 3];\n\n switch (this.mode) {\n case 'multiply':\n data[i] = r * tr / 255;\n data[i + 1] = g * tg / 255;\n data[i + 2] = b * tb / 255;\n data[i + 3] = a * ta / 255;\n break;\n case 'mask':\n data[i + 3] = ta;\n break;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uTransformMatrix: gl.getUniformLocation(program, 'uTransformMatrix'),\n uImage: gl.getUniformLocation(program, 'uImage'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var matrix = this.calculateMatrix();\n gl.uniform1i(uniformLocations.uImage, 1); // texture unit 1.\n gl.uniformMatrix3fv(uniformLocations.uTransformMatrix, false, matrix);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n image: this.image && this.image.toObject(),\n mode: this.mode,\n alpha: this.alpha\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} callback to be invoked after filter creation\n * @return {fabric.Image.filters.BlendImage} Instance of fabric.Image.filters.BlendImage\n */\n fabric.Image.filters.BlendImage.fromObject = function(object, callback) {\n fabric.Image.fromObject(object.image, function(image) {\n var options = fabric.util.object.clone(object);\n options.image = image;\n callback(new fabric.Image.filters.BlendImage(options));\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }), pow = Math.pow, floor = Math.floor,\n sqrt = Math.sqrt, abs = Math.abs, round = Math.round, sin = Math.sin,\n ceil = Math.ceil,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Resize image filter class\n * @class fabric.Image.filters.Resize\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Resize();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\n filters.Resize = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Resize.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Resize',\n\n /**\n * Resize type\n * for webgl resizeType is just lanczos, for canvas2d can be:\n * bilinear, hermite, sliceHack, lanczos.\n * @param {String} resizeType\n * @default\n */\n resizeType: 'hermite',\n\n /**\n * Scale factor for resizing, x axis\n * @param {Number} scaleX\n * @default\n */\n scaleX: 1,\n\n /**\n * Scale factor for resizing, y axis\n * @param {Number} scaleY\n * @default\n */\n scaleY: 1,\n\n /**\n * LanczosLobes parameter for lanczos filter, valid for resizeType lanczos\n * @param {Number} lanczosLobes\n * @default\n */\n lanczosLobes: 3,\n\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uDelta: gl.getUniformLocation(program, 'uDelta'),\n uTaps: gl.getUniformLocation(program, 'uTaps'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform2fv(uniformLocations.uDelta, this.horizontal ? [1 / this.width, 0] : [0, 1 / this.height]);\n gl.uniform1fv(uniformLocations.uTaps, this.taps);\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var filterWindow = this.getFilterWindow(), cacheKey = this.type + '_' + filterWindow;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var fragmentShader = this.generateShader(filterWindow);\n options.programCache[cacheKey] = this.createProgram(options.context, fragmentShader);\n }\n return options.programCache[cacheKey];\n },\n\n getFilterWindow: function() {\n var scale = this.tempScale;\n return Math.ceil(this.lanczosLobes / scale);\n },\n\n getTaps: function() {\n var lobeFunction = this.lanczosCreate(this.lanczosLobes), scale = this.tempScale,\n filterWindow = this.getFilterWindow(), taps = new Array(filterWindow);\n for (var i = 1; i <= filterWindow; i++) {\n taps[i - 1] = lobeFunction(i * scale);\n }\n return taps;\n },\n\n /**\n * Generate vertex and shader sources from the necessary steps numbers\n * @param {Number} filterWindow\n */\n generateShader: function(filterWindow) {\n var offsets = new Array(filterWindow),\n fragmentShader = this.fragmentSourceTOP, filterWindow;\n\n for (var i = 1; i <= filterWindow; i++) {\n offsets[i - 1] = i + '.0 * uDelta';\n }\n\n fragmentShader += 'uniform float uTaps[' + filterWindow + '];\\n';\n fragmentShader += 'void main() {\\n';\n fragmentShader += ' vec4 color = texture2D(uTexture, vTexCoord);\\n';\n fragmentShader += ' float sum = 1.0;\\n';\n\n offsets.forEach(function(offset, i) {\n fragmentShader += ' color += texture2D(uTexture, vTexCoord + ' + offset + ') * uTaps[' + i + '];\\n';\n fragmentShader += ' color += texture2D(uTexture, vTexCoord - ' + offset + ') * uTaps[' + i + '];\\n';\n fragmentShader += ' sum += 2.0 * uTaps[' + i + '];\\n';\n });\n fragmentShader += ' gl_FragColor = color / sum;\\n';\n fragmentShader += '}';\n return fragmentShader;\n },\n\n fragmentSourceTOP: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec2 uDelta;\\n' +\n 'varying vec2 vTexCoord;\\n',\n\n /**\n * Apply the resize filter to the image\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n if (options.webgl) {\n options.passes++;\n this.width = options.sourceWidth;\n this.horizontal = true;\n this.dW = Math.round(this.width * this.scaleX);\n this.dH = options.sourceHeight;\n this.tempScale = this.dW / this.width;\n this.taps = this.getTaps();\n options.destinationWidth = this.dW;\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n options.sourceWidth = options.destinationWidth;\n\n this.height = options.sourceHeight;\n this.horizontal = false;\n this.dH = Math.round(this.height * this.scaleY);\n this.tempScale = this.dH / this.height;\n this.taps = this.getTaps();\n options.destinationHeight = this.dH;\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n options.sourceHeight = options.destinationHeight;\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n isNeutralState: function() {\n return this.scaleX === 1 && this.scaleY === 1;\n },\n\n lanczosCreate: function(lobes) {\n return function(x) {\n if (x >= lobes || x <= -lobes) {\n return 0.0;\n }\n if (x < 1.19209290E-07 && x > -1.19209290E-07) {\n return 1.0;\n }\n x *= Math.PI;\n var xx = x / lobes;\n return (sin(x) / x) * sin(xx) / xx;\n };\n },\n\n /**\n * Applies filter to canvas element\n * @memberOf fabric.Image.filters.Resize.prototype\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} scaleX\n * @param {Number} scaleY\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n scaleX = this.scaleX,\n scaleY = this.scaleY;\n\n this.rcpScaleX = 1 / scaleX;\n this.rcpScaleY = 1 / scaleY;\n\n var oW = imageData.width, oH = imageData.height,\n dW = round(oW * scaleX), dH = round(oH * scaleY),\n newData;\n\n if (this.resizeType === 'sliceHack') {\n newData = this.sliceByTwo(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'hermite') {\n newData = this.hermiteFastResize(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'bilinear') {\n newData = this.bilinearFiltering(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'lanczos') {\n newData = this.lanczosResize(options, oW, oH, dW, dH);\n }\n options.imageData = newData;\n },\n\n /**\n * Filter sliceByTwo\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n sliceByTwo: function(options, oW, oH, dW, dH) {\n var imageData = options.imageData,\n mult = 0.5, doneW = false, doneH = false, stepW = oW * mult,\n stepH = oH * mult, resources = fabric.filterBackend.resources,\n tmpCanvas, ctx, sX = 0, sY = 0, dX = oW, dY = 0;\n if (!resources.sliceByTwo) {\n resources.sliceByTwo = document.createElement('canvas');\n }\n tmpCanvas = resources.sliceByTwo;\n if (tmpCanvas.width < oW * 1.5 || tmpCanvas.height < oH) {\n tmpCanvas.width = oW * 1.5;\n tmpCanvas.height = oH;\n }\n ctx = tmpCanvas.getContext('2d');\n ctx.clearRect(0, 0, oW * 1.5, oH);\n ctx.putImageData(imageData, 0, 0);\n\n dW = floor(dW);\n dH = floor(dH);\n\n while (!doneW || !doneH) {\n oW = stepW;\n oH = stepH;\n if (dW < floor(stepW * mult)) {\n stepW = floor(stepW * mult);\n }\n else {\n stepW = dW;\n doneW = true;\n }\n if (dH < floor(stepH * mult)) {\n stepH = floor(stepH * mult);\n }\n else {\n stepH = dH;\n doneH = true;\n }\n ctx.drawImage(tmpCanvas, sX, sY, oW, oH, dX, dY, stepW, stepH);\n sX = dX;\n sY = dY;\n dY += stepH;\n }\n return ctx.getImageData(sX, sY, dW, dH);\n },\n\n /**\n * Filter lanczosResize\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n lanczosResize: function(options, oW, oH, dW, dH) {\n\n function process(u) {\n var v, i, weight, idx, a, red, green,\n blue, alpha, fX, fY;\n center.x = (u + 0.5) * ratioX;\n icenter.x = floor(center.x);\n for (v = 0; v < dH; v++) {\n center.y = (v + 0.5) * ratioY;\n icenter.y = floor(center.y);\n a = 0; red = 0; green = 0; blue = 0; alpha = 0;\n for (i = icenter.x - range2X; i <= icenter.x + range2X; i++) {\n if (i < 0 || i >= oW) {\n continue;\n }\n fX = floor(1000 * abs(i - center.x));\n if (!cacheLanc[fX]) {\n cacheLanc[fX] = { };\n }\n for (var j = icenter.y - range2Y; j <= icenter.y + range2Y; j++) {\n if (j < 0 || j >= oH) {\n continue;\n }\n fY = floor(1000 * abs(j - center.y));\n if (!cacheLanc[fX][fY]) {\n cacheLanc[fX][fY] = lanczos(sqrt(pow(fX * rcpRatioX, 2) + pow(fY * rcpRatioY, 2)) / 1000);\n }\n weight = cacheLanc[fX][fY];\n if (weight > 0) {\n idx = (j * oW + i) * 4;\n a += weight;\n red += weight * srcData[idx];\n green += weight * srcData[idx + 1];\n blue += weight * srcData[idx + 2];\n alpha += weight * srcData[idx + 3];\n }\n }\n }\n idx = (v * dW + u) * 4;\n destData[idx] = red / a;\n destData[idx + 1] = green / a;\n destData[idx + 2] = blue / a;\n destData[idx + 3] = alpha / a;\n }\n\n if (++u < dW) {\n return process(u);\n }\n else {\n return destImg;\n }\n }\n\n var srcData = options.imageData.data,\n destImg = options.ctx.createImageData(dW, dH),\n destData = destImg.data,\n lanczos = this.lanczosCreate(this.lanczosLobes),\n ratioX = this.rcpScaleX, ratioY = this.rcpScaleY,\n rcpRatioX = 2 / this.rcpScaleX, rcpRatioY = 2 / this.rcpScaleY,\n range2X = ceil(ratioX * this.lanczosLobes / 2),\n range2Y = ceil(ratioY * this.lanczosLobes / 2),\n cacheLanc = { }, center = { }, icenter = { };\n\n return process(0);\n },\n\n /**\n * bilinearFiltering\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n bilinearFiltering: function(options, oW, oH, dW, dH) {\n var a, b, c, d, x, y, i, j, xDiff, yDiff, chnl,\n color, offset = 0, origPix, ratioX = this.rcpScaleX,\n ratioY = this.rcpScaleY,\n w4 = 4 * (oW - 1), img = options.imageData,\n pixels = img.data, destImage = options.ctx.createImageData(dW, dH),\n destPixels = destImage.data;\n for (i = 0; i < dH; i++) {\n for (j = 0; j < dW; j++) {\n x = floor(ratioX * j);\n y = floor(ratioY * i);\n xDiff = ratioX * j - x;\n yDiff = ratioY * i - y;\n origPix = 4 * (y * oW + x);\n\n for (chnl = 0; chnl < 4; chnl++) {\n a = pixels[origPix + chnl];\n b = pixels[origPix + 4 + chnl];\n c = pixels[origPix + w4 + chnl];\n d = pixels[origPix + w4 + 4 + chnl];\n color = a * (1 - xDiff) * (1 - yDiff) + b * xDiff * (1 - yDiff) +\n c * yDiff * (1 - xDiff) + d * xDiff * yDiff;\n destPixels[offset++] = color;\n }\n }\n }\n return destImage;\n },\n\n /**\n * hermiteFastResize\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n hermiteFastResize: function(options, oW, oH, dW, dH) {\n var ratioW = this.rcpScaleX, ratioH = this.rcpScaleY,\n ratioWHalf = ceil(ratioW / 2),\n ratioHHalf = ceil(ratioH / 2),\n img = options.imageData, data = img.data,\n img2 = options.ctx.createImageData(dW, dH), data2 = img2.data;\n for (var j = 0; j < dH; j++) {\n for (var i = 0; i < dW; i++) {\n var x2 = (i + j * dW) * 4, weight = 0, weights = 0, weightsAlpha = 0,\n gxR = 0, gxG = 0, gxB = 0, gxA = 0, centerY = (j + 0.5) * ratioH;\n for (var yy = floor(j * ratioH); yy < (j + 1) * ratioH; yy++) {\n var dy = abs(centerY - (yy + 0.5)) / ratioHHalf,\n centerX = (i + 0.5) * ratioW, w0 = dy * dy;\n for (var xx = floor(i * ratioW); xx < (i + 1) * ratioW; xx++) {\n var dx = abs(centerX - (xx + 0.5)) / ratioWHalf,\n w = sqrt(w0 + dx * dx);\n /* eslint-disable max-depth */\n if (w > 1 && w < -1) {\n continue;\n }\n //hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n if (weight > 0) {\n dx = 4 * (xx + yy * oW);\n //alpha\n gxA += weight * data[dx + 3];\n weightsAlpha += weight;\n //colors\n if (data[dx + 3] < 255) {\n weight = weight * data[dx + 3] / 250;\n }\n gxR += weight * data[dx];\n gxG += weight * data[dx + 1];\n gxB += weight * data[dx + 2];\n weights += weight;\n }\n /* eslint-enable max-depth */\n }\n }\n data2[x2] = gxR / weights;\n data2[x2 + 1] = gxG / weights;\n data2[x2 + 2] = gxB / weights;\n data2[x2 + 3] = gxA / weightsAlpha;\n }\n }\n return img2;\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n resizeType: this.resizeType,\n lanczosLobes: this.lanczosLobes\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Resize} Instance of fabric.Image.filters.Resize\n */\n fabric.Image.filters.Resize.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Contrast filter class\n * @class fabric.Image.filters.Contrast\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Contrast#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Contrast({\n * contrast: 0.25\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Contrast = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Contrast.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Contrast',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uContrast;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\\n' +\n 'color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * contrast value, range from -1 to 1.\n * @param {Number} contrast\n * @default 0\n */\n contrast: 0,\n\n mainParameter: 'contrast',\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Contrast.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.contrast=0] Value to contrast the image up (-1...1)\n */\n\n /**\n * Apply the Contrast operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n if (this.contrast === 0) {\n return;\n }\n var imageData = options.imageData, i, len,\n data = imageData.data, len = data.length,\n contrast = Math.floor(this.contrast * 255),\n contrastF = 259 * (contrast + 255) / (255 * (259 - contrast));\n\n for (i = 0; i < len; i += 4) {\n data[i] = contrastF * (data[i] - 128) + 128;\n data[i + 1] = contrastF * (data[i + 1] - 128) + 128;\n data[i + 2] = contrastF * (data[i + 2] - 128) + 128;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uContrast: gl.getUniformLocation(program, 'uContrast'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uContrast, this.contrast);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Contrast} Instance of fabric.Image.filters.Contrast\n */\n fabric.Image.filters.Contrast.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Saturate filter class\n * @class fabric.Image.filters.Saturation\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Saturation#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Saturation({\n * saturation: 100\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Saturation = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Saturation.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Saturation',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uSaturation;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float rgMax = max(color.r, color.g);\\n' +\n 'float rgbMax = max(rgMax, color.b);\\n' +\n 'color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\\n' +\n 'color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\\n' +\n 'color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n saturation: 0,\n\n mainParameter: 'saturation',\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Saturate.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.saturate=0] Value to saturate the image (-1...1)\n */\n\n /**\n * Apply the Saturation operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.saturation === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, len = data.length,\n adjust = -this.saturation, i, max;\n\n for (i = 0; i < len; i += 4) {\n max = Math.max(data[i], data[i + 1], data[i + 2]);\n data[i] += max !== data[i] ? (max - data[i]) * adjust : 0;\n data[i + 1] += max !== data[i + 1] ? (max - data[i + 1]) * adjust : 0;\n data[i + 2] += max !== data[i + 2] ? (max - data[i + 2]) * adjust : 0;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uSaturation: gl.getUniformLocation(program, 'uSaturation'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uSaturation, -this.saturation);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Saturation} Instance of fabric.Image.filters.Saturate\n */\n fabric.Image.filters.Saturation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Blur filter class\n * @class fabric.Image.filters.Blur\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Blur#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Blur({\n * blur: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Blur = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Blur.prototype */ {\n\n type: 'Blur',\n\n /*\n'gl_FragColor = vec4(0.0);',\n'gl_FragColor += texture2D(texture, vTexCoord + -7 * uDelta)*0.0044299121055113265;',\n'gl_FragColor += texture2D(texture, vTexCoord + -6 * uDelta)*0.00895781211794;',\n'gl_FragColor += texture2D(texture, vTexCoord + -5 * uDelta)*0.0215963866053;',\n'gl_FragColor += texture2D(texture, vTexCoord + -4 * uDelta)*0.0443683338718;',\n'gl_FragColor += texture2D(texture, vTexCoord + -3 * uDelta)*0.0776744219933;',\n'gl_FragColor += texture2D(texture, vTexCoord + -2 * uDelta)*0.115876621105;',\n'gl_FragColor += texture2D(texture, vTexCoord + -1 * uDelta)*0.147308056121;',\n'gl_FragColor += texture2D(texture, vTexCoord )*0.159576912161;',\n'gl_FragColor += texture2D(texture, vTexCoord + 1 * uDelta)*0.147308056121;',\n'gl_FragColor += texture2D(texture, vTexCoord + 2 * uDelta)*0.115876621105;',\n'gl_FragColor += texture2D(texture, vTexCoord + 3 * uDelta)*0.0776744219933;',\n'gl_FragColor += texture2D(texture, vTexCoord + 4 * uDelta)*0.0443683338718;',\n'gl_FragColor += texture2D(texture, vTexCoord + 5 * uDelta)*0.0215963866053;',\n'gl_FragColor += texture2D(texture, vTexCoord + 6 * uDelta)*0.00895781211794;',\n'gl_FragColor += texture2D(texture, vTexCoord + 7 * uDelta)*0.0044299121055113265;',\n*/\n\n /* eslint-disable max-len */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec2 uDelta;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'const float nSamples = 15.0;\\n' +\n 'vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\\n' +\n 'float random(vec3 scale) {\\n' +\n /* use the fragment position for a different seed per-pixel */\n 'return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\\n' +\n '}\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0.0);\\n' +\n 'float total = 0.0;\\n' +\n 'float offset = random(v3offset);\\n' +\n 'for (float t = -nSamples; t <= nSamples; t++) {\\n' +\n 'float percent = (t + offset - 0.5) / nSamples;\\n' +\n 'float weight = 1.0 - abs(percent);\\n' +\n 'color += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\\n' +\n 'total += weight;\\n' +\n '}\\n' +\n 'gl_FragColor = color / total;\\n' +\n '}',\n /* eslint-enable max-len */\n\n /**\n * blur value, in percentage of image dimensions.\n * specific to keep the image blur constant at different resolutions\n * range bewteen 0 and 1.\n */\n blur: 0,\n\n mainParameter: 'blur',\n\n applyTo: function(options) {\n if (options.webgl) {\n // this aspectRatio is used to give the same blur to vertical and horizontal\n this.aspectRatio = options.sourceWidth / options.sourceHeight;\n options.passes++;\n this._setupFrameBuffer(options);\n this.horizontal = true;\n this.applyToWebGL(options);\n this._swapTextures(options);\n this._setupFrameBuffer(options);\n this.horizontal = false;\n this.applyToWebGL(options);\n this._swapTextures(options);\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n applyTo2d: function(options) {\n // paint canvasEl with current image data.\n //options.ctx.putImageData(options.imageData, 0, 0);\n options.imageData = this.simpleBlur(options);\n },\n\n simpleBlur: function(options) {\n var resources = options.filterBackend.resources, canvas1, canvas2,\n width = options.imageData.width,\n height = options.imageData.height;\n\n if (!resources.blurLayer1) {\n resources.blurLayer1 = fabric.util.createCanvasElement();\n resources.blurLayer2 = fabric.util.createCanvasElement();\n }\n canvas1 = resources.blurLayer1;\n canvas2 = resources.blurLayer2;\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas2.width = canvas1.width = width;\n canvas2.height = canvas1.height = height;\n }\n var ctx1 = canvas1.getContext('2d'),\n ctx2 = canvas2.getContext('2d'),\n nSamples = 15,\n random, percent, j, i,\n blur = this.blur * 0.06 * 0.5;\n\n // load first canvas\n ctx1.putImageData(options.imageData, 0, 0);\n ctx2.clearRect(0, 0, width, height);\n\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * width + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, j, random);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * height + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, random, j);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n options.ctx.drawImage(canvas1, 0, 0);\n var newImageData = options.ctx.getImageData(0, 0, canvas1.width, canvas1.height);\n ctx1.globalAlpha = 1;\n ctx1.clearRect(0, 0, canvas1.width, canvas1.height);\n return newImageData;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n delta: gl.getUniformLocation(program, 'uDelta'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var delta = this.chooseRightDelta();\n gl.uniform2fv(uniformLocations.delta, delta);\n },\n\n /**\n * choose right value of image percentage to blur with\n * @returns {Array} a numeric array with delta values\n */\n chooseRightDelta: function() {\n var blurScale = 1, delta = [0, 0], blur;\n if (this.horizontal) {\n if (this.aspectRatio > 1) {\n // image is wide, i want to shrink radius horizontal\n blurScale = 1 / this.aspectRatio;\n }\n }\n else {\n if (this.aspectRatio < 1) {\n // image is tall, i want to shrink radius vertical\n blurScale = this.aspectRatio;\n }\n }\n blur = blurScale * this.blur * 0.12;\n if (this.horizontal) {\n delta[0] = blur;\n }\n else {\n delta[1] = blur;\n }\n return delta;\n },\n });\n\n /**\n * Deserialize a JSON definition of a BlurFilter into a concrete instance.\n */\n filters.Blur.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Gamma filter class\n * @class fabric.Image.filters.Gamma\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Gamma#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Gamma({\n * gamma: [1, 0.5, 2.1]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Gamma = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Gamma.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Gamma',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec3 uGamma;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec3 correction = (1.0 / uGamma);\\n' +\n 'color.r = pow(color.r, correction.r);\\n' +\n 'color.g = pow(color.g, correction.g);\\n' +\n 'color.b = pow(color.b, correction.b);\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.rgb *= color.a;\\n' +\n '}',\n\n /**\n * Gamma array value, from 0.01 to 2.2.\n * @param {Array} gamma\n * @default\n */\n gamma: [1, 1, 1],\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'gamma',\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.gamma = [1, 1, 1];\n filters.BaseFilter.prototype.initialize.call(this, options);\n },\n\n /**\n * Apply the Gamma operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData, data = imageData.data,\n gamma = this.gamma, len = data.length,\n rInv = 1 / gamma[0], gInv = 1 / gamma[1],\n bInv = 1 / gamma[2], i;\n\n if (!this.rVals) {\n // eslint-disable-next-line\n this.rVals = new Uint8Array(256);\n // eslint-disable-next-line\n this.gVals = new Uint8Array(256);\n // eslint-disable-next-line\n this.bVals = new Uint8Array(256);\n }\n\n // This is an optimization - pre-compute a look-up table for each color channel\n // instead of performing these pow calls for each pixel in the image.\n for (i = 0, len = 256; i < len; i++) {\n this.rVals[i] = Math.pow(i / 255, rInv) * 255;\n this.gVals[i] = Math.pow(i / 255, gInv) * 255;\n this.bVals[i] = Math.pow(i / 255, bInv) * 255;\n }\n for (i = 0, len = data.length; i < len; i += 4) {\n data[i] = this.rVals[data[i]];\n data[i + 1] = this.gVals[data[i + 1]];\n data[i + 2] = this.bVals[data[i + 2]];\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uGamma: gl.getUniformLocation(program, 'uGamma'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform3fv(uniformLocations.uGamma, this.gamma);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Gamma} Instance of fabric.Image.filters.Gamma\n */\n fabric.Image.filters.Gamma.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\n filters.Composed = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Composed.prototype */ {\n\n type: 'Composed',\n\n /**\n * A non sparse array of filters to apply\n */\n subFilters: [],\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n // create a new array instead mutating the prototype with push\n this.subFilters = this.subFilters.slice(0);\n },\n\n /**\n * Apply this container's filters to the input image provided.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be applied.\n */\n applyTo: function(options) {\n options.passes += this.subFilters.length - 1;\n this.subFilters.forEach(function(filter) {\n filter.applyTo(options);\n });\n },\n\n /**\n * Serialize this filter into JSON.\n *\n * @returns {Object} A JSON representation of this filter.\n */\n toObject: function() {\n return fabric.util.object.extend(this.callSuper('toObject'), {\n subFilters: this.subFilters.map(function(filter) { return filter.toObject(); }),\n });\n },\n\n isNeutralState: function() {\n return !this.subFilters.some(function(filter) { return !filter.isNeutralState(); });\n }\n });\n\n /**\n * Deserialize a JSON definition of a ComposedFilter into a concrete instance.\n */\n fabric.Image.filters.Composed.fromObject = function(object, callback) {\n var filters = object.subFilters || [],\n subFilters = filters.map(function(filter) {\n return new fabric.Image.filters[filter.type](filter);\n }),\n instance = new fabric.Image.filters.Composed({ subFilters: subFilters });\n callback && callback(instance);\n return instance;\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * HueRotation filter class\n * @class fabric.Image.filters.HueRotation\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.HueRotation#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.HueRotation({\n * rotation: -0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.HueRotation = createClass(filters.ColorMatrix, /** @lends fabric.Image.filters.HueRotation.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'HueRotation',\n\n /**\n * HueRotation value, from -1 to 1.\n * the unit is radians\n * @param {Number} myParameter\n * @default\n */\n rotation: 0,\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'rotation',\n\n calculateMatrix: function() {\n var rad = this.rotation * Math.PI, cos = fabric.util.cos(rad), sin = fabric.util.sin(rad),\n aThird = 1 / 3, aThirdSqtSin = Math.sqrt(aThird) * sin, OneMinusCos = 1 - cos;\n this.matrix = [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0\n ];\n this.matrix[0] = cos + OneMinusCos / 3;\n this.matrix[1] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[2] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[5] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[6] = cos + aThird * OneMinusCos;\n this.matrix[7] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[10] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[11] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[12] = cos + aThird * OneMinusCos;\n },\n\n /**\n * HueRotation isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState: function(options) {\n this.calculateMatrix();\n return filters.BaseFilter.prototype.isNeutralState.call(this, options);\n },\n\n /**\n * Apply this filter to the input image data provided.\n *\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n this.calculateMatrix();\n filters.BaseFilter.prototype.applyTo.call(this, options);\n },\n\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.HueRotation} Instance of fabric.Image.filters.HueRotation\n */\n fabric.Image.filters.HueRotation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n clone = fabric.util.object.clone;\n\n if (fabric.Text) {\n fabric.warn('fabric.Text is already defined');\n return;\n }\n\n /**\n * Text class\n * @class fabric.Text\n * @extends fabric.Object\n * @return {fabric.Text} thisArg\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#text}\n * @see {@link fabric.Text#initialize} for constructor definition\n */\n fabric.Text = fabric.util.createClass(fabric.Object, /** @lends fabric.Text.prototype */ {\n\n /**\n * Properties which when set cause object to change dimensions\n * @type Array\n * @private\n */\n _dimensionAffectingProps: [\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontStyle',\n 'lineHeight',\n 'text',\n 'charSpacing',\n 'textAlign',\n 'styles',\n ],\n\n /**\n * @private\n */\n _reNewline: /\\r?\\n/,\n\n /**\n * Use this regular expression to filter for whitespaces that is not a new line.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reSpacesAndTabs: /[ \\t\\r]/g,\n\n /**\n * Use this regular expression to filter for whitespace that is not a new line.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reSpaceAndTab: /[ \\t\\r]/,\n\n /**\n * Use this regular expression to filter consecutive groups of non spaces.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reWords: /\\S+/g,\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'text',\n\n /**\n * Font size (in pixels)\n * @type Number\n * @default\n */\n fontSize: 40,\n\n /**\n * Font weight (e.g. bold, normal, 400, 600, 800)\n * @type {(Number|String)}\n * @default\n */\n fontWeight: 'normal',\n\n /**\n * Font family\n * @type String\n * @default\n */\n fontFamily: 'Times New Roman',\n\n /**\n * Text decoration underline.\n * @type Boolean\n * @default\n */\n underline: false,\n\n /**\n * Text decoration overline.\n * @type Boolean\n * @default\n */\n overline: false,\n\n /**\n * Text decoration linethrough.\n * @type Boolean\n * @default\n */\n linethrough: false,\n\n /**\n * Text alignment. Possible values: \"left\", \"center\", \"right\", \"justify\",\n * \"justify-left\", \"justify-center\" or \"justify-right\".\n * @type String\n * @default\n */\n textAlign: 'left',\n\n /**\n * Font style . Possible values: \"\", \"normal\", \"italic\" or \"oblique\".\n * @type String\n * @default\n */\n fontStyle: 'normal',\n\n /**\n * Line height\n * @type Number\n * @default\n */\n lineHeight: 1.16,\n\n /**\n * Superscript schema object (minimum overlap)\n * @type {Object}\n * @default\n */\n superscript: {\n size: 0.60, // fontSize factor\n baseline: -0.35 // baseline-shift factor (upwards)\n },\n\n /**\n * Subscript schema object (minimum overlap)\n * @type {Object}\n * @default\n */\n subscript: {\n size: 0.60, // fontSize factor\n baseline: 0.11 // baseline-shift factor (downwards)\n },\n\n /**\n * Background color of text lines\n * @type String\n * @default\n */\n textBackgroundColor: '',\n\n /**\n * List of properties to consider when checking if\n * state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('fontFamily',\n 'fontWeight',\n 'fontSize',\n 'text',\n 'underline',\n 'overline',\n 'linethrough',\n 'textAlign',\n 'fontStyle',\n 'lineHeight',\n 'textBackgroundColor',\n 'charSpacing',\n 'styles'),\n\n /**\n * List of properties to consider when checking if cache needs refresh\n * @type Array\n */\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('fontFamily',\n 'fontWeight',\n 'fontSize',\n 'text',\n 'underline',\n 'overline',\n 'linethrough',\n 'textAlign',\n 'fontStyle',\n 'lineHeight',\n 'textBackgroundColor',\n 'charSpacing',\n 'styles'),\n\n /**\n * When defined, an object is rendered via stroke and this property specifies its color.\n * Backwards incompatibility note: This property was named \"strokeStyle\" until v1.1.6\n * @type String\n * @default\n */\n stroke: null,\n\n /**\n * Shadow object representing shadow of this shape.\n * Backwards incompatibility note: This property was named \"textShadow\" (String) until v1.2.11\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * @private\n */\n _fontSizeFraction: 0.222,\n\n /**\n * @private\n */\n offsets: {\n underline: 0.10,\n linethrough: -0.315,\n overline: -0.88\n },\n\n /**\n * Text Line proportion to font Size (in pixels)\n * @type Number\n * @default\n */\n _fontSizeMult: 1.13,\n\n /**\n * additional space between characters\n * expressed in thousands of em unit\n * @type Number\n * @default\n */\n charSpacing: 0,\n\n /**\n * Object containing character styles - top-level properties -> line numbers,\n * 2nd-level properties - charater numbers\n * @type Object\n * @default\n */\n styles: null,\n\n /**\n * Reference to a context to measure text char or couple of chars\n * the cacheContext of the canvas will be used or a freshly created one if the object is not on canvas\n * once created it will be referenced on fabric._measuringContext to avoide creating a canvas for every\n * text object created.\n * @type {CanvasRenderingContext2D}\n * @default\n */\n _measuringContext: null,\n\n /**\n * Baseline shift, stlyes only, keep at 0 for the main text object\n * @type {Number}\n * @default\n */\n deltaY: 0,\n\n /**\n * Array of properties that define a style unit (of 'styles').\n * @type {Array}\n * @default\n */\n _styleProperties: [\n 'stroke',\n 'strokeWidth',\n 'fill',\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'fontStyle',\n 'underline',\n 'overline',\n 'linethrough',\n 'deltaY',\n 'textBackgroundColor',\n ],\n\n /**\n * contains characters bounding boxes\n */\n __charBounds: [],\n\n /**\n * use this size when measuring text. To avoid IE11 rounding errors\n * @type {Number}\n * @default\n * @readonly\n * @private\n */\n CACHE_FONT_SIZE: 400,\n\n /**\n * contains the min text width to avoid getting 0\n * @type {Number}\n * @default\n */\n MIN_TEXT_WIDTH: 2,\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.Text} thisArg\n */\n initialize: function(text, options) {\n this.styles = options ? (options.styles || { }) : { };\n this.text = text;\n this.__skipDimension = true;\n this.callSuper('initialize', options);\n this.__skipDimension = false;\n this.initDimensions();\n this.setCoords();\n this.setupState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Return a contex for measurement of text string.\n * if created it gets stored for reuse\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.Text} thisArg\n */\n getMeasuringContext: function() {\n // if we did not return we have to measure something.\n if (!fabric._measuringContext) {\n fabric._measuringContext = this.canvas && this.canvas.contextCache ||\n fabric.util.createCanvasElement().getContext('2d');\n }\n return fabric._measuringContext;\n },\n\n /**\n * @private\n * Divides text into lines of text and lines of graphemes.\n */\n _splitText: function() {\n var newLines = this._splitTextIntoLines(this.text);\n this.textLines = newLines.lines;\n this._textLines = newLines.graphemeLines;\n this._unwrappedTextLines = newLines._unwrappedLines;\n this._text = newLines.graphemeText;\n return newLines;\n },\n\n /**\n * Initialize or update text dimensions.\n * Updates this.width and this.height with the proper values.\n * Does not return dimensions.\n */\n initDimensions: function() {\n if (this.__skipDimension) {\n return;\n }\n this._splitText();\n this._clearCache();\n this.width = this.calcTextWidth() || this.cursorWidth || this.MIN_TEXT_WIDTH;\n if (this.textAlign.indexOf('justify') !== -1) {\n // once text is measured we need to make space fatter to make justified text.\n this.enlargeSpaces();\n }\n this.height = this.calcTextHeight();\n this.saveState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Enlarge space boxes and shift the others\n */\n enlargeSpaces: function() {\n var diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n if (this.textAlign !== 'justify' && (i === len - 1 || this.isEndOfWrapping(i))) {\n continue;\n }\n accumulatedSpace = 0;\n line = this._textLines[i];\n currentLineWidth = this.getLineWidth(i);\n if (currentLineWidth < this.width && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {\n numberOfSpaces = spaces.length;\n diffSpace = (this.width - currentLineWidth) / numberOfSpaces;\n for (var j = 0, jlen = line.length; j <= jlen; j++) {\n charBound = this.__charBounds[i][j];\n if (this._reSpaceAndTab.test(line[j])) {\n charBound.width += diffSpace;\n charBound.kernedWidth += diffSpace;\n charBound.left += accumulatedSpace;\n accumulatedSpace += diffSpace;\n }\n else {\n charBound.left += accumulatedSpace;\n }\n }\n }\n }\n },\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @return {Boolean}\n */\n isEndOfWrapping: function(lineIndex) {\n return lineIndex === this._textLines.length - 1;\n },\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * It return always for text and Itext.\n * @return Number\n */\n missingNewlineOffset: function() {\n return 1;\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} String representation of text object\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Return the dimension and the zoom level needed to create a cache canvas\n * big enough to host the object to be cached.\n * @private\n * @param {Object} dim.x width of object to be cached\n * @param {Object} dim.y height of object to be cached\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _getCacheCanvasDimensions: function() {\n var dims = this.callSuper('_getCacheCanvasDimensions');\n var fontSize = this.fontSize;\n dims.width += fontSize * dims.zoomX;\n dims.height += fontSize * dims.zoomY;\n return dims;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n this._setTextStyles(ctx);\n this._renderTextLinesBackground(ctx);\n this._renderTextDecoration(ctx, 'underline');\n this._renderText(ctx);\n this._renderTextDecoration(ctx, 'overline');\n this._renderTextDecoration(ctx, 'linethrough');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderText: function(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderTextStroke(ctx);\n this._renderTextFill(ctx);\n }\n else {\n this._renderTextFill(ctx);\n this._renderTextStroke(ctx);\n }\n },\n\n /**\n * Set the font parameter of the context with the object properties or with charStyle\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [charStyle] object with font style properties\n * @param {String} [charStyle.fontFamily] Font Family\n * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )\n * @param {String} [charStyle.fontWeight] Font weight\n * @param {String} [charStyle.fontStyle] Font style (italic|normal)\n */\n _setTextStyles: function(ctx, charStyle, forMeasuring) {\n ctx.textBaseline = 'alphabetic';\n ctx.font = this._getFontDeclaration(charStyle, forMeasuring);\n },\n\n /**\n * calculate and return the text Width measuring each line.\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @return {Number} Maximum width of fabric.Text object\n */\n calcTextWidth: function() {\n var maxWidth = this.getLineWidth(0);\n\n for (var i = 1, len = this._textLines.length; i < len; i++) {\n var currentLineWidth = this.getLineWidth(i);\n if (currentLineWidth > maxWidth) {\n maxWidth = currentLineWidth;\n }\n }\n return maxWidth;\n },\n\n /**\n * @private\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} line Text to render\n * @param {Number} left Left position of text\n * @param {Number} top Top position of text\n * @param {Number} lineIndex Index of a line in a text\n */\n _renderTextLine: function(method, ctx, line, left, top, lineIndex) {\n this._renderChars(method, ctx, line, left, top, lineIndex);\n },\n\n /**\n * Renders the text background for lines, taking care of style\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextLinesBackground: function(ctx) {\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {\n return;\n }\n var lineTopOffset = 0, heightOfLine,\n lineLeftOffset, originalFill = ctx.fillStyle,\n line, lastColor,\n leftOffset = this._getLeftOffset(),\n topOffset = this._getTopOffset(),\n boxStart = 0, boxWidth = 0, charBox, currentColor;\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor', i)) {\n lineTopOffset += heightOfLine;\n continue;\n }\n line = this._textLines[i];\n lineLeftOffset = this._getLineLeftOffset(i);\n boxWidth = 0;\n boxStart = 0;\n lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentColor = this.getValueOfPropertyAt(i, j, 'textBackgroundColor');\n if (currentColor !== lastColor) {\n ctx.fillStyle = lastColor;\n lastColor && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n topOffset + lineTopOffset,\n boxWidth,\n heightOfLine / this.lineHeight\n );\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n if (currentColor) {\n ctx.fillStyle = currentColor;\n ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n topOffset + lineTopOffset,\n boxWidth,\n heightOfLine / this.lineHeight\n );\n }\n lineTopOffset += heightOfLine;\n }\n ctx.fillStyle = originalFill;\n // if there is text background color no\n // other shadows should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * @private\n * @param {Object} decl style declaration for cache\n * @param {String} decl.fontFamily fontFamily\n * @param {String} decl.fontStyle fontStyle\n * @param {String} decl.fontWeight fontWeight\n * @return {Object} reference to cache\n */\n getFontCache: function(decl) {\n var fontFamily = decl.fontFamily.toLowerCase();\n if (!fabric.charWidthsCache[fontFamily]) {\n fabric.charWidthsCache[fontFamily] = { };\n }\n var cache = fabric.charWidthsCache[fontFamily],\n cacheProp = decl.fontStyle.toLowerCase() + '_' + (decl.fontWeight + '').toLowerCase();\n if (!cache[cacheProp]) {\n cache[cacheProp] = { };\n }\n return cache[cacheProp];\n },\n\n /**\n * apply all the character style to canvas for rendering\n * @private\n * @param {String} _char\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} [decl]\n */\n _applyCharStyles: function(method, ctx, lineIndex, charIndex, styleDeclaration) {\n\n this._setFillStyles(ctx, styleDeclaration);\n this._setStrokeStyles(ctx, styleDeclaration);\n\n ctx.font = this._getFontDeclaration(styleDeclaration);\n },\n\n /**\n * measure and return the width of a single character.\n * possibly overridden to accommodate different measure logic or\n * to hook some external lib for character measurement\n * @private\n * @param {String} _char, char to be measured\n * @param {Object} charStyle style of char to be measured\n * @param {String} [previousChar] previous char\n * @param {Object} [prevCharStyle] style of previous char\n */\n _measureChar: function(_char, charStyle, previousChar, prevCharStyle) {\n // first i try to return from cache\n var fontCache = this.getFontCache(charStyle), fontDeclaration = this._getFontDeclaration(charStyle),\n previousFontDeclaration = this._getFontDeclaration(prevCharStyle), couple = previousChar + _char,\n stylesAreEqual = fontDeclaration === previousFontDeclaration, width, coupleWidth, previousWidth,\n fontMultiplier = charStyle.fontSize / this.CACHE_FONT_SIZE, kernedWidth;\n\n if (previousChar && fontCache[previousChar] !== undefined) {\n previousWidth = fontCache[previousChar];\n }\n if (fontCache[_char] !== undefined) {\n kernedWidth = width = fontCache[_char];\n }\n if (stylesAreEqual && fontCache[couple] !== undefined) {\n coupleWidth = fontCache[couple];\n kernedWidth = coupleWidth - previousWidth;\n }\n if (width === undefined || previousWidth === undefined || coupleWidth === undefined) {\n var ctx = this.getMeasuringContext();\n // send a TRUE to specify measuring font size CACHE_FONT_SIZE\n this._setTextStyles(ctx, charStyle, true);\n }\n if (width === undefined) {\n kernedWidth = width = ctx.measureText(_char).width;\n fontCache[_char] = width;\n }\n if (previousWidth === undefined && stylesAreEqual && previousChar) {\n previousWidth = ctx.measureText(previousChar).width;\n fontCache[previousChar] = previousWidth;\n }\n if (stylesAreEqual && coupleWidth === undefined) {\n // we can measure the kerning couple and subtract the width of the previous character\n coupleWidth = ctx.measureText(couple).width;\n fontCache[couple] = coupleWidth;\n kernedWidth = coupleWidth - previousWidth;\n }\n return { width: width * fontMultiplier, kernedWidth: kernedWidth * fontMultiplier };\n },\n\n /**\n * Computes height of character at given position\n * @param {Number} line the line index number\n * @param {Number} _char the character index number\n * @return {Number} fontSize of the character\n */\n getHeightOfChar: function(line, _char) {\n return this.getValueOfPropertyAt(line, _char, 'fontSize');\n },\n\n /**\n * measure a text line measuring all characters.\n * @param {Number} lineIndex line number\n * @return {Number} Line width\n */\n measureLine: function(lineIndex) {\n var lineInfo = this._measureLine(lineIndex);\n if (this.charSpacing !== 0) {\n lineInfo.width -= this._getWidthOfCharSpacing();\n }\n if (lineInfo.width < 0) {\n lineInfo.width = 0;\n }\n return lineInfo;\n },\n\n /**\n * measure every grapheme of a line, populating __charBounds\n * @param {Number} lineIndex\n * @return {Object} object.width total width of characters\n * @return {Object} object.widthOfSpaces length of chars that match this._reSpacesAndTabs\n */\n _measureLine: function(lineIndex) {\n var width = 0, i, grapheme, line = this._textLines[lineIndex], prevGrapheme,\n graphemeInfo, numOfSpaces = 0, lineBounds = new Array(line.length);\n\n this.__charBounds[lineIndex] = lineBounds;\n for (i = 0; i < line.length; i++) {\n grapheme = line[i];\n graphemeInfo = this._getGraphemeBox(grapheme, lineIndex, i, prevGrapheme);\n lineBounds[i] = graphemeInfo;\n width += graphemeInfo.kernedWidth;\n prevGrapheme = grapheme;\n }\n // this latest bound box represent the last character of the line\n // to simplify cursor handling in interactive mode.\n lineBounds[i] = {\n left: graphemeInfo ? graphemeInfo.left + graphemeInfo.width : 0,\n width: 0,\n kernedWidth: 0,\n height: this.fontSize\n };\n return { width: width, numOfSpaces: numOfSpaces };\n },\n\n /**\n * Measure and return the info of a single grapheme.\n * needs the the info of previous graphemes already filled\n * @private\n * @param {String} grapheme to be measured\n * @param {Number} lineIndex index of the line where the char is\n * @param {Number} charIndex position in the line\n * @param {String} [prevGrapheme] character preceding the one to be measured\n */\n _getGraphemeBox: function(grapheme, lineIndex, charIndex, prevGrapheme, skipLeft) {\n var style = this.getCompleteStyleDeclaration(lineIndex, charIndex),\n prevStyle = prevGrapheme ? this.getCompleteStyleDeclaration(lineIndex, charIndex - 1) : { },\n info = this._measureChar(grapheme, style, prevGrapheme, prevStyle),\n kernedWidth = info.kernedWidth,\n width = info.width, charSpacing;\n\n if (this.charSpacing !== 0) {\n charSpacing = this._getWidthOfCharSpacing();\n width += charSpacing;\n kernedWidth += charSpacing;\n }\n\n var box = {\n width: width,\n left: 0,\n height: style.fontSize,\n kernedWidth: kernedWidth,\n deltaY: style.deltaY,\n };\n if (charIndex > 0 && !skipLeft) {\n var previousBox = this.__charBounds[lineIndex][charIndex - 1];\n box.left = previousBox.left + previousBox.width + info.kernedWidth - info.width;\n }\n return box;\n },\n\n /**\n * Calculate height of line at 'lineIndex'\n * @param {Number} lineIndex index of line to calculate\n * @return {Number}\n */\n getHeightOfLine: function(lineIndex) {\n if (this.__lineHeights[lineIndex]) {\n return this.__lineHeights[lineIndex];\n }\n\n var line = this._textLines[lineIndex],\n // char 0 is measured before the line cycle because it nneds to char\n // emptylines\n maxHeight = this.getHeightOfChar(lineIndex, 0);\n for (var i = 1, len = line.length; i < len; i++) {\n maxHeight = Math.max(this.getHeightOfChar(lineIndex, i), maxHeight);\n }\n\n return this.__lineHeights[lineIndex] = maxHeight * this.lineHeight * this._fontSizeMult;\n },\n\n /**\n * Calculate text box height\n */\n calcTextHeight: function() {\n var lineHeight, height = 0;\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n lineHeight = this.getHeightOfLine(i);\n height += (i === len - 1 ? lineHeight / this.lineHeight : lineHeight);\n }\n return height;\n },\n\n /**\n * @private\n * @return {Number} Left offset\n */\n _getLeftOffset: function() {\n return -this.width / 2;\n },\n\n /**\n * @private\n * @return {Number} Top offset\n */\n _getTopOffset: function() {\n return -this.height / 2;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\n */\n _renderTextCommon: function(ctx, method) {\n ctx.save();\n var lineHeights = 0, left = this._getLeftOffset(), top = this._getTopOffset(),\n offsets = this._applyPatternGradientTransform(ctx, method === 'fillText' ? this.fill : this.stroke);\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n var heightOfLine = this.getHeightOfLine(i),\n maxHeight = heightOfLine / this.lineHeight,\n leftOffset = this._getLineLeftOffset(i);\n this._renderTextLine(\n method,\n ctx,\n this._textLines[i],\n left + leftOffset - offsets.offsetX,\n top + lineHeights + maxHeight - offsets.offsetY,\n i\n );\n lineHeights += heightOfLine;\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextFill: function(ctx) {\n if (!this.fill && !this.styleHas('fill')) {\n return;\n }\n\n this._renderTextCommon(ctx, 'fillText');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextStroke: function(ctx) {\n if ((!this.stroke || this.strokeWidth === 0) && this.isEmptyStyles()) {\n return;\n }\n\n if (this.shadow && !this.shadow.affectStroke) {\n this._removeShadow(ctx);\n }\n\n ctx.save();\n this._setLineDash(ctx, this.strokeDashArray);\n ctx.beginPath();\n this._renderTextCommon(ctx, 'strokeText');\n ctx.closePath();\n ctx.restore();\n },\n\n /**\n * @private\n * @param {String} method fillText or strokeText.\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Array} line Content of the line, splitted in an array by grapheme\n * @param {Number} left\n * @param {Number} top\n * @param {Number} lineIndex\n */\n _renderChars: function(method, ctx, line, left, top, lineIndex) {\n // set proper line offset\n var lineHeight = this.getHeightOfLine(lineIndex),\n isJustify = this.textAlign.indexOf('justify') !== -1,\n actualStyle,\n nextStyle,\n charsToRender = '',\n charBox,\n boxWidth = 0,\n timeToRender,\n shortCut = !isJustify && this.charSpacing === 0 && this.isEmptyStyles(lineIndex);\n\n ctx.save();\n top -= lineHeight * this._fontSizeFraction / this.lineHeight;\n if (shortCut) {\n // render all the line in one pass without checking\n this._renderChar(method, ctx, lineIndex, 0, line.join(''), left, top, lineHeight);\n ctx.restore();\n return;\n }\n for (var i = 0, len = line.length - 1; i <= len; i++) {\n timeToRender = i === len || this.charSpacing;\n charsToRender += line[i];\n charBox = this.__charBounds[lineIndex][i];\n if (boxWidth === 0) {\n left += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\n }\n if (!timeToRender) {\n // if we have charSpacing, we render char by char\n actualStyle = actualStyle || this.getCompleteStyleDeclaration(lineIndex, i);\n nextStyle = this.getCompleteStyleDeclaration(lineIndex, i + 1);\n timeToRender = this._hasStyleChanged(actualStyle, nextStyle);\n }\n if (timeToRender) {\n this._renderChar(method, ctx, lineIndex, i, charsToRender, left, top, lineHeight);\n charsToRender = '';\n actualStyle = nextStyle;\n left += boxWidth;\n boxWidth = 0;\n }\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {String} method\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {String} _char\n * @param {Number} left Left coordinate\n * @param {Number} top Top coordinate\n * @param {Number} lineHeight Height of the line\n */\n _renderChar: function(method, ctx, lineIndex, charIndex, _char, left, top) {\n var decl = this._getStyleDeclaration(lineIndex, charIndex),\n fullDecl = this.getCompleteStyleDeclaration(lineIndex, charIndex),\n shouldFill = method === 'fillText' && fullDecl.fill,\n shouldStroke = method === 'strokeText' && fullDecl.stroke && fullDecl.strokeWidth;\n\n if (!shouldStroke && !shouldFill) {\n return;\n }\n decl && ctx.save();\n\n this._applyCharStyles(method, ctx, lineIndex, charIndex, fullDecl);\n\n if (decl && decl.textBackgroundColor) {\n this._removeShadow(ctx);\n }\n if (decl && decl.deltaY) {\n top += decl.deltaY;\n }\n\n shouldFill && ctx.fillText(_char, left, top);\n shouldStroke && ctx.strokeText(_char, left, top);\n decl && ctx.restore();\n },\n\n /**\n * Turns the character into a 'superior figure' (i.e. 'superscript')\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n setSuperscript: function(start, end) {\n return this._setScript(start, end, this.superscript);\n },\n\n /**\n * Turns the character into an 'inferior figure' (i.e. 'subscript')\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n setSubscript: function(start, end) {\n return this._setScript(start, end, this.subscript);\n },\n\n /**\n * Applies 'schema' at given position\n * @private\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @param {Number} schema\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n _setScript: function(start, end, schema) {\n var loc = this.get2DCursorLocation(start, true),\n fontSize = this.getValueOfPropertyAt(loc.lineIndex, loc.charIndex, 'fontSize'),\n dy = this.getValueOfPropertyAt(loc.lineIndex, loc.charIndex, 'deltaY'),\n style = { fontSize: fontSize * schema.size, deltaY: dy + fontSize * schema.baseline };\n this.setSelectionStyles(style, start, end);\n return this;\n },\n\n /**\n * @private\n * @param {Object} prevStyle\n * @param {Object} thisStyle\n */\n _hasStyleChanged: function(prevStyle, thisStyle) {\n return prevStyle.fill !== thisStyle.fill ||\n prevStyle.stroke !== thisStyle.stroke ||\n prevStyle.strokeWidth !== thisStyle.strokeWidth ||\n prevStyle.fontSize !== thisStyle.fontSize ||\n prevStyle.fontFamily !== thisStyle.fontFamily ||\n prevStyle.fontWeight !== thisStyle.fontWeight ||\n prevStyle.fontStyle !== thisStyle.fontStyle ||\n prevStyle.deltaY !== thisStyle.deltaY;\n },\n\n /**\n * @private\n * @param {Object} prevStyle\n * @param {Object} thisStyle\n */\n _hasStyleChangedForSvg: function(prevStyle, thisStyle) {\n return this._hasStyleChanged(prevStyle, thisStyle) ||\n prevStyle.overline !== thisStyle.overline ||\n prevStyle.underline !== thisStyle.underline ||\n prevStyle.linethrough !== thisStyle.linethrough;\n },\n\n /**\n * @private\n * @param {Number} lineIndex index text line\n * @return {Number} Line left offset\n */\n _getLineLeftOffset: function(lineIndex) {\n var lineWidth = this.getLineWidth(lineIndex);\n if (this.textAlign === 'center') {\n return (this.width - lineWidth) / 2;\n }\n if (this.textAlign === 'right') {\n return this.width - lineWidth;\n }\n if (this.textAlign === 'justify-center' && this.isEndOfWrapping(lineIndex)) {\n return (this.width - lineWidth) / 2;\n }\n if (this.textAlign === 'justify-right' && this.isEndOfWrapping(lineIndex)) {\n return this.width - lineWidth;\n }\n return 0;\n },\n\n /**\n * @private\n */\n _clearCache: function() {\n this.__lineWidths = [];\n this.__lineHeights = [];\n this.__charBounds = [];\n },\n\n /**\n * @private\n */\n _shouldClearDimensionCache: function() {\n var shouldClear = this._forceClearCache;\n shouldClear || (shouldClear = this.hasStateChanged('_dimensionAffectingProps'));\n if (shouldClear) {\n this.dirty = true;\n this._forceClearCache = false;\n }\n return shouldClear;\n },\n\n /**\n * Measure a single line given its index. Used to calculate the initial\n * text bounding box. The values are calculated and stored in __lineWidths cache.\n * @private\n * @param {Number} lineIndex line number\n * @return {Number} Line width\n */\n getLineWidth: function(lineIndex) {\n if (this.__lineWidths[lineIndex]) {\n return this.__lineWidths[lineIndex];\n }\n\n var width, line = this._textLines[lineIndex], lineInfo;\n\n if (line === '') {\n width = 0;\n }\n else {\n lineInfo = this.measureLine(lineIndex);\n width = lineInfo.width;\n }\n this.__lineWidths[lineIndex] = width;\n return width;\n },\n\n _getWidthOfCharSpacing: function() {\n if (this.charSpacing !== 0) {\n return this.fontSize * this.charSpacing / 1000;\n }\n return 0;\n },\n\n /**\n * Retrieves the value of property at given character position\n * @param {Number} lineIndex the line number\n * @param {Number} charIndex the charater number\n * @param {String} property the property name\n * @returns the value of 'property'\n */\n getValueOfPropertyAt: function(lineIndex, charIndex, property) {\n var charStyle = this._getStyleDeclaration(lineIndex, charIndex);\n if (charStyle && typeof charStyle[property] !== 'undefined') {\n return charStyle[property];\n }\n return this[property];\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextDecoration: function(ctx, type) {\n if (!this[type] && !this.styleHas(type)) {\n return;\n }\n var heightOfLine, size, _size,\n lineLeftOffset, dy, _dy,\n line, lastDecoration,\n leftOffset = this._getLeftOffset(),\n topOffset = this._getTopOffset(), top,\n boxStart, boxWidth, charBox, currentDecoration,\n maxHeight, currentFill, lastFill,\n charSpacing = this._getWidthOfCharSpacing();\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n if (!this[type] && !this.styleHas(type, i)) {\n topOffset += heightOfLine;\n continue;\n }\n line = this._textLines[i];\n maxHeight = heightOfLine / this.lineHeight;\n lineLeftOffset = this._getLineLeftOffset(i);\n boxStart = 0;\n boxWidth = 0;\n lastDecoration = this.getValueOfPropertyAt(i, 0, type);\n lastFill = this.getValueOfPropertyAt(i, 0, 'fill');\n top = topOffset + maxHeight * (1 - this._fontSizeFraction);\n size = this.getHeightOfChar(i, 0);\n dy = this.getValueOfPropertyAt(i, 0, 'deltaY');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentDecoration = this.getValueOfPropertyAt(i, j, type);\n currentFill = this.getValueOfPropertyAt(i, j, 'fill');\n _size = this.getHeightOfChar(i, j);\n _dy = this.getValueOfPropertyAt(i, j, 'deltaY');\n if ((currentDecoration !== lastDecoration || currentFill !== lastFill || _size !== size || _dy !== dy) &&\n boxWidth > 0) {\n ctx.fillStyle = lastFill;\n lastDecoration && lastFill && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n top + this.offsets[type] * size + dy,\n boxWidth,\n this.fontSize / 15\n );\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastDecoration = currentDecoration;\n lastFill = currentFill;\n size = _size;\n dy = _dy;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n ctx.fillStyle = currentFill;\n currentDecoration && currentFill && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n top + this.offsets[type] * size + dy,\n boxWidth - charSpacing,\n this.fontSize / 15\n );\n topOffset += heightOfLine;\n }\n // if there is text background color no\n // other shadows should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * return font declaration string for canvas context\n * @param {Object} [styleObject] object\n * @returns {String} font declaration formatted for canvas context.\n */\n _getFontDeclaration: function(styleObject, forMeasuring) {\n var style = styleObject || this, family = this.fontFamily,\n fontIsGeneric = fabric.Text.genericFonts.indexOf(family.toLowerCase()) > -1;\n var fontFamily = family === undefined ||\n family.indexOf('\\'') > -1 || family.indexOf(',') > -1 ||\n family.indexOf('\"') > -1 || fontIsGeneric\n ? style.fontFamily : '\"' + style.fontFamily + '\"';\n return [\n // node-canvas needs \"weight style\", while browsers need \"style weight\"\n // verify if this can be fixed in JSDOM\n (fabric.isLikelyNode ? style.fontWeight : style.fontStyle),\n (fabric.isLikelyNode ? style.fontStyle : style.fontWeight),\n forMeasuring ? this.CACHE_FONT_SIZE + 'px' : style.fontSize + 'px',\n fontFamily\n ].join(' ');\n },\n\n /**\n * Renders text instance on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n // do not render if object is not visible\n if (!this.visible) {\n return;\n }\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n }\n this.callSuper('render', ctx);\n },\n\n /**\n * Returns the text as an array of lines.\n * @param {String} text text to split\n * @returns {Array} Lines in the text\n */\n _splitTextIntoLines: function(text) {\n var lines = text.split(this._reNewline),\n newLines = new Array(lines.length),\n newLine = ['\\n'],\n newText = [];\n for (var i = 0; i < lines.length; i++) {\n newLines[i] = fabric.util.string.graphemeSplit(lines[i]);\n newText = newText.concat(newLines[i], newLine);\n }\n newText.pop();\n return { _unwrappedLines: newLines, lines: lines, graphemeText: newText, graphemeLines: newLines };\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var additionalProperties = [\n 'text',\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontStyle',\n 'lineHeight',\n 'underline',\n 'overline',\n 'linethrough',\n 'textAlign',\n 'textBackgroundColor',\n 'charSpacing',\n ].concat(propertiesToInclude);\n var obj = this.callSuper('toObject', additionalProperties);\n obj.styles = clone(this.styles, true);\n return obj;\n },\n\n /**\n * Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) `set` does not update position of object's borders/controls. If you need to update those, call `setCoords()`.\n * @param {String|Object} key Property name or object (if object, iterate over the object properties)\n * @param {Object|Function} value Property value (if function, the value is passed into it and its return value is used as a new one)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n set: function(key, value) {\n this.callSuper('set', key, value);\n var needsDims = false;\n if (typeof key === 'object') {\n for (var _key in key) {\n needsDims = needsDims || this._dimensionAffectingProps.indexOf(_key) !== -1;\n }\n }\n else {\n needsDims = this._dimensionAffectingProps.indexOf(key) !== -1;\n }\n if (needsDims) {\n this.initDimensions();\n this.setCoords();\n }\n return this;\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity\n */\n complexity: function() {\n return 1;\n }\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Text.fromElement})\n * @static\n * @memberOf fabric.Text\n * @see: http://www.w3.org/TR/SVG/text.html#TextElement\n */\n fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(\n 'x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor'.split(' '));\n\n /**\n * Default SVG font size\n * @static\n * @memberOf fabric.Text\n */\n fabric.Text.DEFAULT_SVG_FONT_SIZE = 16;\n\n /**\n * Returns fabric.Text instance from an SVG element (not yet implemented)\n * @static\n * @memberOf fabric.Text\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Text.fromElement = function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Text.ATTRIBUTE_NAMES),\n parsedAnchor = parsedAttributes.textAnchor || 'left';\n options = fabric.util.object.extend((options ? clone(options) : { }), parsedAttributes);\n\n options.top = options.top || 0;\n options.left = options.left || 0;\n if (parsedAttributes.textDecoration) {\n var textDecoration = parsedAttributes.textDecoration;\n if (textDecoration.indexOf('underline') !== -1) {\n options.underline = true;\n }\n if (textDecoration.indexOf('overline') !== -1) {\n options.overline = true;\n }\n if (textDecoration.indexOf('line-through') !== -1) {\n options.linethrough = true;\n }\n delete options.textDecoration;\n }\n if ('dx' in parsedAttributes) {\n options.left += parsedAttributes.dx;\n }\n if ('dy' in parsedAttributes) {\n options.top += parsedAttributes.dy;\n }\n if (!('fontSize' in options)) {\n options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\n\n var textContent = '';\n\n // The XML is not properly parsed in IE9 so a workaround to get\n // textContent is through firstChild.data. Another workaround would be\n // to convert XML loaded from a file to be converted using DOMParser (same way loadSVGFromString() does)\n if (!('textContent' in element)) {\n if ('firstChild' in element && element.firstChild !== null) {\n if ('data' in element.firstChild && element.firstChild.data !== null) {\n textContent = element.firstChild.data;\n }\n }\n }\n else {\n textContent = element.textContent;\n }\n\n textContent = textContent.replace(/^\\s+|\\s+$|\\n+/g, '').replace(/\\s+/g, ' ');\n var originalStrokeWidth = options.strokeWidth;\n options.strokeWidth = 0;\n\n var text = new fabric.Text(textContent, options),\n textHeightScaleFactor = text.getScaledHeight() / text.height,\n lineHeightDiff = (text.height + text.strokeWidth) * text.lineHeight - text.height,\n scaledDiff = lineHeightDiff * textHeightScaleFactor,\n textHeight = text.getScaledHeight() + scaledDiff,\n offX = 0;\n /*\n Adjust positioning:\n x/y attributes in SVG correspond to the bottom-left corner of text bounding box\n fabric output by default at top, left.\n */\n if (parsedAnchor === 'center') {\n offX = text.getScaledWidth() / 2;\n }\n if (parsedAnchor === 'right') {\n offX = text.getScaledWidth();\n }\n text.set({\n left: text.left - offX,\n top: text.top - (textHeight - text.fontSize * (0.07 + text._fontSizeFraction)) / text.lineHeight,\n strokeWidth: typeof originalStrokeWidth !== 'undefined' ? originalStrokeWidth : 1,\n });\n callback(text);\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Text instance from an object representation\n * @static\n * @memberOf fabric.Text\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Text instance is created\n */\n fabric.Text.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Text', object, callback, 'text');\n };\n\n fabric.Text.genericFonts = ['sans-serif', 'serif', 'cursive', 'fantasy', 'monospace'];\n\n fabric.util.createAccessors && fabric.util.createAccessors(fabric.Text);\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n fabric.util.object.extend(fabric.Text.prototype, /** @lends fabric.Text.prototype */ {\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles: function(lineIndex) {\n if (!this.styles) {\n return true;\n }\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return true;\n }\n var obj = typeof lineIndex === 'undefined' ? this.styles : { line: this.styles[lineIndex] };\n for (var p1 in obj) {\n for (var p2 in obj[p1]) {\n // eslint-disable-next-line no-unused-vars\n for (var p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n return true;\n },\n\n /**\n * Returns true if object has a style property or has it ina specified line\n * This function is used to detect if a text will use a particular property or not.\n * @param {String} property to check for\n * @param {Number} lineIndex to check the style on\n * @return {Boolean}\n */\n styleHas: function(property, lineIndex) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return false;\n }\n var obj = typeof lineIndex === 'undefined' ? this.styles : { 0: this.styles[lineIndex] };\n // eslint-disable-next-line\n for (var p1 in obj) {\n // eslint-disable-next-line\n for (var p2 in obj[p1]) {\n if (typeof obj[p1][p2][property] !== 'undefined') {\n return true;\n }\n }\n }\n return false;\n },\n\n /**\n * Check if characters in a text have a value for a property\n * whose value matches the textbox's value for that property. If so,\n * the character-level property is deleted. If the character\n * has no other properties, then it is also deleted. Finally,\n * if the line containing that character has no other characters\n * then it also is deleted.\n *\n * @param {string} property The property to compare between characters and text.\n */\n cleanStyle: function(property) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n var obj = this.styles, stylesCount = 0, letterCount, stylePropertyValue,\n allStyleObjectPropertiesMatch = true, graphemeCount = 0, styleObject;\n // eslint-disable-next-line\n for (var p1 in obj) {\n letterCount = 0;\n // eslint-disable-next-line\n for (var p2 in obj[p1]) {\n var styleObject = obj[p1][p2],\n stylePropertyHasBeenSet = styleObject.hasOwnProperty(property);\n\n stylesCount++;\n\n if (stylePropertyHasBeenSet) {\n if (!stylePropertyValue) {\n stylePropertyValue = styleObject[property];\n }\n else if (styleObject[property] !== stylePropertyValue) {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (styleObject[property] === this[property]) {\n delete styleObject[property];\n }\n }\n else {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (Object.keys(styleObject).length !== 0) {\n letterCount++;\n }\n else {\n delete obj[p1][p2];\n }\n }\n\n if (letterCount === 0) {\n delete obj[p1];\n }\n }\n // if every grapheme has the same style set then\n // delete those styles and set it on the parent\n for (var i = 0; i < this._textLines.length; i++) {\n graphemeCount += this._textLines[i].length;\n }\n if (allStyleObjectPropertiesMatch && stylesCount === graphemeCount) {\n this[property] = stylePropertyValue;\n this.removeStyle(property);\n }\n },\n\n /**\n * Remove a style property or properties from all individual character styles\n * in a text object. Deletes the character style object if it contains no other style\n * props. Deletes a line style object if it contains no other character styles.\n *\n * @param {String} props The property to remove from character styles.\n */\n removeStyle: function(property) {\n if (!this.styles || !property || property === '') {\n return;\n }\n var obj = this.styles, line, lineNum, charNum;\n for (lineNum in obj) {\n line = obj[lineNum];\n for (charNum in line) {\n delete line[charNum][property];\n if (Object.keys(line[charNum]).length === 0) {\n delete line[charNum];\n }\n }\n if (Object.keys(line).length === 0) {\n delete obj[lineNum];\n }\n }\n },\n\n /**\n * @private\n */\n _extendStyles: function(index, styles) {\n var loc = this.get2DCursorLocation(index);\n\n if (!this._getLineStyle(loc.lineIndex)) {\n this._setLineStyle(loc.lineIndex);\n }\n\n if (!this._getStyleDeclaration(loc.lineIndex, loc.charIndex)) {\n this._setStyleDeclaration(loc.lineIndex, loc.charIndex, {});\n }\n\n fabric.util.object.extend(this._getStyleDeclaration(loc.lineIndex, loc.charIndex), styles);\n },\n\n /**\n * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)\n * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.\n * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. useful to manage styles.\n */\n get2DCursorLocation: function(selectionStart, skipWrapping) {\n if (typeof selectionStart === 'undefined') {\n selectionStart = this.selectionStart;\n }\n var lines = skipWrapping ? this._unwrappedTextLines : this._textLines,\n len = lines.length;\n for (var i = 0; i < len; i++) {\n if (selectionStart <= lines[i].length) {\n return {\n lineIndex: i,\n charIndex: selectionStart\n };\n }\n selectionStart -= lines[i].length + this.missingNewlineOffset(i);\n }\n return {\n lineIndex: i - 1,\n charIndex: lines[i - 1].length < selectionStart ? lines[i - 1].length : selectionStart\n };\n },\n\n /**\n * Gets style of a current selection/cursor (at the start position)\n * if startIndex or endIndex are not provided, slectionStart or selectionEnd will be used.\n * @param {Number} [startIndex] Start index to get styles at\n * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1\n * @param {Boolean} [complete] get full style or not\n * @return {Array} styles an array with one, zero or more Style objects\n */\n getSelectionStyles: function(startIndex, endIndex, complete) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\n var styles = [];\n for (var i = startIndex; i < endIndex; i++) {\n styles.push(this.getStyleAtPosition(i, complete));\n }\n return styles;\n },\n\n /**\n * Gets style of a current selection/cursor position\n * @param {Number} position to get styles at\n * @param {Boolean} [complete] full style if true\n * @return {Object} style Style object at a specified index\n * @private\n */\n getStyleAtPosition: function(position, complete) {\n var loc = this.get2DCursorLocation(position),\n style = complete ? this.getCompleteStyleDeclaration(loc.lineIndex, loc.charIndex) :\n this._getStyleDeclaration(loc.lineIndex, loc.charIndex);\n return style || {};\n },\n\n /**\n * Sets style of a current selection, if no selection exist, do not set anything.\n * @param {Object} [styles] Styles object\n * @param {Number} [startIndex] Start index to get styles at\n * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1\n * @return {fabric.IText} thisArg\n * @chainable\n */\n setSelectionStyles: function(styles, startIndex, endIndex) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\n for (var i = startIndex; i < endIndex; i++) {\n this._extendStyles(i, styles);\n }\n /* not included in _extendStyles to avoid clearing cache more than once */\n this._forceClearCache = true;\n return this;\n },\n\n /**\n * get the reference, not a clone, of the style object for a given character\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Object} style object\n */\n _getStyleDeclaration: function(lineIndex, charIndex) {\n var lineStyle = this.styles && this.styles[lineIndex];\n if (!lineStyle) {\n return null;\n }\n return lineStyle[charIndex];\n },\n\n /**\n * return a new object that contains all the style property for a character\n * the object returned is newly created\n * @param {Number} lineIndex of the line where the character is\n * @param {Number} charIndex position of the character on the line\n * @return {Object} style object\n */\n getCompleteStyleDeclaration: function(lineIndex, charIndex) {\n var style = this._getStyleDeclaration(lineIndex, charIndex) || { },\n styleObject = { }, prop;\n for (var i = 0; i < this._styleProperties.length; i++) {\n prop = this._styleProperties[i];\n styleObject[prop] = typeof style[prop] === 'undefined' ? this[prop] : style[prop];\n }\n return styleObject;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n _setStyleDeclaration: function(lineIndex, charIndex, style) {\n this.styles[lineIndex][charIndex] = style;\n },\n\n /**\n *\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _deleteStyleDeclaration: function(lineIndex, charIndex) {\n delete this.styles[lineIndex][charIndex];\n },\n\n /**\n * @param {Number} lineIndex\n * @return {Boolean} if the line exists or not\n * @private\n */\n _getLineStyle: function(lineIndex) {\n return !!this.styles[lineIndex];\n },\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @private\n */\n _setLineStyle: function(lineIndex) {\n this.styles[lineIndex] = {};\n },\n\n /**\n * @param {Number} lineIndex\n * @private\n */\n _deleteLineStyle: function(lineIndex) {\n delete this.styles[lineIndex];\n }\n });\n})();\n\n\n(function() {\n\n function parseDecoration(object) {\n if (object.textDecoration) {\n object.textDecoration.indexOf('underline') > -1 && (object.underline = true);\n object.textDecoration.indexOf('line-through') > -1 && (object.linethrough = true);\n object.textDecoration.indexOf('overline') > -1 && (object.overline = true);\n delete object.textDecoration;\n }\n }\n\n /**\n * IText class (introduced in v1.4) Events are also fired with \"text:\"\n * prefix when observing canvas.\n * @class fabric.IText\n * @extends fabric.Text\n * @mixes fabric.Observable\n *\n * @fires changed\n * @fires selection:changed\n * @fires editing:entered\n * @fires editing:exited\n *\n * @return {fabric.IText} thisArg\n * @see {@link fabric.IText#initialize} for constructor definition\n *\n *

Supported key combinations:

\n *
\n   *   Move cursor:                    left, right, up, down\n   *   Select character:               shift + left, shift + right\n   *   Select text vertically:         shift + up, shift + down\n   *   Move cursor by word:            alt + left, alt + right\n   *   Select words:                   shift + alt + left, shift + alt + right\n   *   Move cursor to line start/end:  cmd + left, cmd + right or home, end\n   *   Select till start/end of line:  cmd + shift + left, cmd + shift + right or shift + home, shift + end\n   *   Jump to start/end of text:      cmd + up, cmd + down\n   *   Select till start/end of text:  cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown\n   *   Delete character:               backspace\n   *   Delete word:                    alt + backspace\n   *   Delete line:                    cmd + backspace\n   *   Forward delete:                 delete\n   *   Copy text:                      ctrl/cmd + c\n   *   Paste text:                     ctrl/cmd + v\n   *   Cut text:                       ctrl/cmd + x\n   *   Select entire text:             ctrl/cmd + a\n   *   Quit editing                    tab or esc\n   * 
\n *\n *

Supported mouse/touch combination

\n *
\n   *   Position cursor:                click/touch\n   *   Create selection:               click/touch & drag\n   *   Create selection:               click & shift + click\n   *   Select word:                    double click\n   *   Select line:                    triple click\n   * 
\n */\n fabric.IText = fabric.util.createClass(fabric.Text, fabric.Observable, /** @lends fabric.IText.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'i-text',\n\n /**\n * Index where text selection starts (or where cursor is when there is no selection)\n * @type Number\n * @default\n */\n selectionStart: 0,\n\n /**\n * Index where text selection ends\n * @type Number\n * @default\n */\n selectionEnd: 0,\n\n /**\n * Color of text selection\n * @type String\n * @default\n */\n selectionColor: 'rgba(17,119,255,0.3)',\n\n /**\n * Indicates whether text is in editing mode\n * @type Boolean\n * @default\n */\n isEditing: false,\n\n /**\n * Indicates whether a text can be edited\n * @type Boolean\n * @default\n */\n editable: true,\n\n /**\n * Border color of text object while it's in editing mode\n * @type String\n * @default\n */\n editingBorderColor: 'rgba(102,153,255,0.25)',\n\n /**\n * Width of cursor (in px)\n * @type Number\n * @default\n */\n cursorWidth: 2,\n\n /**\n * Color of text cursor color in editing mode.\n * if not set (default) will take color from the text.\n * if set to a color value that fabric can understand, it will\n * be used instead of the color of the text at the current position.\n * @type String\n * @default\n */\n cursorColor: '',\n\n /**\n * Delay between cursor blink (in ms)\n * @type Number\n * @default\n */\n cursorDelay: 1000,\n\n /**\n * Duration of cursor fadein (in ms)\n * @type Number\n * @default\n */\n cursorDuration: 600,\n\n /**\n * Indicates whether internal text char widths can be cached\n * @type Boolean\n * @default\n */\n caching: true,\n\n /**\n * @private\n */\n _reSpace: /\\s|\\n/,\n\n /**\n * @private\n */\n _currentCursorOpacity: 0,\n\n /**\n * @private\n */\n _selectionDirection: null,\n\n /**\n * @private\n */\n _abortCursorAnimation: false,\n\n /**\n * @private\n */\n __widthOfSpace: [],\n\n /**\n * Helps determining when the text is in composition, so that the cursor\n * rendering is altered.\n */\n inCompositionMode: false,\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.IText} thisArg\n */\n initialize: function(text, options) {\n this.callSuper('initialize', text, options);\n this.initBehavior();\n },\n\n /**\n * Sets selection start (left boundary of a selection)\n * @param {Number} index Index to set selection start to\n */\n setSelectionStart: function(index) {\n index = Math.max(index, 0);\n this._updateAndFire('selectionStart', index);\n },\n\n /**\n * Sets selection end (right boundary of a selection)\n * @param {Number} index Index to set selection end to\n */\n setSelectionEnd: function(index) {\n index = Math.min(index, this.text.length);\n this._updateAndFire('selectionEnd', index);\n },\n\n /**\n * @private\n * @param {String} property 'selectionStart' or 'selectionEnd'\n * @param {Number} index new position of property\n */\n _updateAndFire: function(property, index) {\n if (this[property] !== index) {\n this._fireSelectionChanged();\n this[property] = index;\n }\n this._updateTextarea();\n },\n\n /**\n * Fires the even of selection changed\n * @private\n */\n _fireSelectionChanged: function() {\n this.fire('selection:changed');\n this.canvas && this.canvas.fire('text:selection:changed', { target: this });\n },\n\n /**\n * Initialize text dimensions. Render all text on given context\n * or on a offscreen canvas to get the text width with measureText.\n * Updates this.width and this.height with the proper values.\n * Does not return dimensions.\n * @private\n */\n initDimensions: function() {\n this.isEditing && this.initDelayedCursor();\n this.clearContextTop();\n this.callSuper('initDimensions');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n this.clearContextTop();\n this.callSuper('render', ctx);\n // clear the cursorOffsetCache, so we ensure to calculate once per renderCursor\n // the correct position but not at every cursor animation.\n this.cursorOffsetCache = { };\n this.renderCursorOrSelection();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n this.callSuper('_render', ctx);\n },\n\n /**\n * Prepare and clean the contextTop\n */\n clearContextTop: function(skipRestore) {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n var ctx = this.canvas.contextTop, v = this.canvas.viewportTransform;\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n this.transform(ctx);\n this._clearTextArea(ctx);\n skipRestore || ctx.restore();\n },\n /**\n * Renders cursor or selection (depending on what exists)\n * it does on the contextTop. If contextTop is not available, do nothing.\n */\n renderCursorOrSelection: function() {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n var boundaries = this._getCursorBoundaries(),\n ctx = this.canvas.contextTop;\n this.clearContextTop(true);\n if (this.selectionStart === this.selectionEnd) {\n this.renderCursor(boundaries, ctx);\n }\n else {\n this.renderSelection(boundaries, ctx);\n }\n ctx.restore();\n },\n\n _clearTextArea: function(ctx) {\n // we add 4 pixel, to be sure to do not leave any pixel out\n var width = this.width + 4, height = this.height + 4;\n ctx.clearRect(-width / 2, -height / 2, width, height);\n },\n\n /**\n * Returns cursor boundaries (left, top, leftOffset, topOffset)\n * @private\n * @param {Array} chars Array of characters\n * @param {String} typeOfBoundaries\n */\n _getCursorBoundaries: function(position) {\n\n // left/top are left/top of entire text box\n // leftOffset/topOffset are offset from that left/top point of a text box\n\n if (typeof position === 'undefined') {\n position = this.selectionStart;\n }\n\n var left = this._getLeftOffset(),\n top = this._getTopOffset(),\n offsets = this._getCursorBoundariesOffsets(position);\n\n return {\n left: left,\n top: top,\n leftOffset: offsets.left,\n topOffset: offsets.top\n };\n },\n\n /**\n * @private\n */\n _getCursorBoundariesOffsets: function(position) {\n if (this.cursorOffsetCache && 'top' in this.cursorOffsetCache) {\n return this.cursorOffsetCache;\n }\n var lineLeftOffset,\n lineIndex,\n charIndex,\n topOffset = 0,\n leftOffset = 0,\n boundaries,\n cursorPosition = this.get2DCursorLocation(position);\n charIndex = cursorPosition.charIndex;\n lineIndex = cursorPosition.lineIndex;\n for (var i = 0; i < lineIndex; i++) {\n topOffset += this.getHeightOfLine(i);\n }\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n var bound = this.__charBounds[lineIndex][charIndex];\n bound && (leftOffset = bound.left);\n if (this.charSpacing !== 0 && charIndex === this._textLines[lineIndex].length) {\n leftOffset -= this._getWidthOfCharSpacing();\n }\n boundaries = {\n top: topOffset,\n left: lineLeftOffset + (leftOffset > 0 ? leftOffset : 0),\n };\n this.cursorOffsetCache = boundaries;\n return this.cursorOffsetCache;\n },\n\n /**\n * Renders cursor\n * @param {Object} boundaries\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\n */\n renderCursor: function(boundaries, ctx) {\n var cursorLocation = this.get2DCursorLocation(),\n lineIndex = cursorLocation.lineIndex,\n charIndex = cursorLocation.charIndex > 0 ? cursorLocation.charIndex - 1 : 0,\n charHeight = this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize'),\n multiplier = this.scaleX * this.canvas.getZoom(),\n cursorWidth = this.cursorWidth / multiplier,\n topOffset = boundaries.topOffset,\n dy = this.getValueOfPropertyAt(lineIndex, charIndex, 'deltaY');\n\n topOffset += (1 - this._fontSizeFraction) * this.getHeightOfLine(lineIndex) / this.lineHeight\n - charHeight * (1 - this._fontSizeFraction);\n\n if (this.inCompositionMode) {\n this.renderSelection(boundaries, ctx);\n }\n\n ctx.fillStyle = this.cursorColor || this.getValueOfPropertyAt(lineIndex, charIndex, 'fill');\n ctx.globalAlpha = this.__isMousedown ? 1 : this._currentCursorOpacity;\n ctx.fillRect(\n boundaries.left + boundaries.leftOffset - cursorWidth / 2,\n topOffset + boundaries.top + dy,\n cursorWidth,\n charHeight);\n },\n\n /**\n * Renders text selection\n * @param {Object} boundaries Object with left/top/leftOffset/topOffset\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\n */\n renderSelection: function(boundaries, ctx) {\n\n var selectionStart = this.inCompositionMode ? this.hiddenTextarea.selectionStart : this.selectionStart,\n selectionEnd = this.inCompositionMode ? this.hiddenTextarea.selectionEnd : this.selectionEnd,\n isJustify = this.textAlign.indexOf('justify') !== -1,\n start = this.get2DCursorLocation(selectionStart),\n end = this.get2DCursorLocation(selectionEnd),\n startLine = start.lineIndex,\n endLine = end.lineIndex,\n startChar = start.charIndex < 0 ? 0 : start.charIndex,\n endChar = end.charIndex < 0 ? 0 : end.charIndex;\n\n for (var i = startLine; i <= endLine; i++) {\n var lineOffset = this._getLineLeftOffset(i) || 0,\n lineHeight = this.getHeightOfLine(i),\n realLineHeight = 0, boxStart = 0, boxEnd = 0;\n\n if (i === startLine) {\n boxStart = this.__charBounds[startLine][startChar].left;\n }\n if (i >= startLine && i < endLine) {\n boxEnd = isJustify && !this.isEndOfWrapping(i) ? this.width : this.getLineWidth(i) || 5; // WTF is this 5?\n }\n else if (i === endLine) {\n if (endChar === 0) {\n boxEnd = this.__charBounds[endLine][endChar].left;\n }\n else {\n var charSpacing = this._getWidthOfCharSpacing();\n boxEnd = this.__charBounds[endLine][endChar - 1].left\n + this.__charBounds[endLine][endChar - 1].width - charSpacing;\n }\n }\n realLineHeight = lineHeight;\n if (this.lineHeight < 1 || (i === endLine && this.lineHeight > 1)) {\n lineHeight /= this.lineHeight;\n }\n if (this.inCompositionMode) {\n ctx.fillStyle = this.compositionColor || 'black';\n ctx.fillRect(\n boundaries.left + lineOffset + boxStart,\n boundaries.top + boundaries.topOffset + lineHeight,\n boxEnd - boxStart,\n 1);\n }\n else {\n ctx.fillStyle = this.selectionColor;\n ctx.fillRect(\n boundaries.left + lineOffset + boxStart,\n boundaries.top + boundaries.topOffset,\n boxEnd - boxStart,\n lineHeight);\n }\n\n\n boundaries.topOffset += realLineHeight;\n }\n },\n\n /**\n * High level function to know the height of the cursor.\n * the currentChar is the one that precedes the cursor\n * Returns fontSize of char at the current cursor\n * Unused from the library, is for the end user\n * @return {Number} Character font size\n */\n getCurrentCharFontSize: function() {\n var cp = this._getCurrentCharIndex();\n return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');\n },\n\n /**\n * High level function to know the color of the cursor.\n * the currentChar is the one that precedes the cursor\n * Returns color (fill) of char at the current cursor\n * Unused from the library, is for the end user\n * @return {String} Character color (fill)\n */\n getCurrentCharColor: function() {\n var cp = this._getCurrentCharIndex();\n return this.getValueOfPropertyAt(cp.l, cp.c, 'fill');\n },\n\n /**\n * Returns the cursor position for the getCurrent.. functions\n * @private\n */\n _getCurrentCharIndex: function() {\n var cursorPosition = this.get2DCursorLocation(this.selectionStart, true),\n charIndex = cursorPosition.charIndex > 0 ? cursorPosition.charIndex - 1 : 0;\n return { l: cursorPosition.lineIndex, c: charIndex };\n }\n });\n\n /**\n * Returns fabric.IText instance from an object representation\n * @static\n * @memberOf fabric.IText\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as argument\n */\n fabric.IText.fromObject = function(object, callback) {\n parseDecoration(object);\n if (object.styles) {\n for (var i in object.styles) {\n for (var j in object.styles[i]) {\n parseDecoration(object.styles[i][j]);\n }\n }\n }\n fabric.Object._fromObject('IText', object, callback, 'text');\n };\n})();\n\n\n(function() {\n\n var clone = fabric.util.object.clone;\n\n fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n\n /**\n * Initializes all the interactive behavior of IText\n */\n initBehavior: function() {\n this.initAddedHandler();\n this.initRemovedHandler();\n this.initCursorSelectionHandlers();\n this.initDoubleClickSimulation();\n this.mouseMoveHandler = this.mouseMoveHandler.bind(this);\n },\n\n onDeselect: function() {\n this.isEditing && this.exitEditing();\n this.selected = false;\n },\n\n /**\n * Initializes \"added\" event handler\n */\n initAddedHandler: function() {\n var _this = this;\n this.on('added', function() {\n var canvas = _this.canvas;\n if (canvas) {\n if (!canvas._hasITextHandlers) {\n canvas._hasITextHandlers = true;\n _this._initCanvasHandlers(canvas);\n }\n canvas._iTextInstances = canvas._iTextInstances || [];\n canvas._iTextInstances.push(_this);\n }\n });\n },\n\n initRemovedHandler: function() {\n var _this = this;\n this.on('removed', function() {\n var canvas = _this.canvas;\n if (canvas) {\n canvas._iTextInstances = canvas._iTextInstances || [];\n fabric.util.removeFromArray(canvas._iTextInstances, _this);\n if (canvas._iTextInstances.length === 0) {\n canvas._hasITextHandlers = false;\n _this._removeCanvasHandlers(canvas);\n }\n }\n });\n },\n\n /**\n * register canvas event to manage exiting on other instances\n * @private\n */\n _initCanvasHandlers: function(canvas) {\n canvas._mouseUpITextHandler = function() {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function(obj) {\n obj.__isMousedown = false;\n });\n }\n };\n canvas.on('mouse:up', canvas._mouseUpITextHandler);\n },\n\n /**\n * remove canvas event to manage exiting on other instances\n * @private\n */\n _removeCanvasHandlers: function(canvas) {\n canvas.off('mouse:up', canvas._mouseUpITextHandler);\n },\n\n /**\n * @private\n */\n _tick: function() {\n this._currentTickState = this._animateCursor(this, 1, this.cursorDuration, '_onTickComplete');\n },\n\n /**\n * @private\n */\n _animateCursor: function(obj, targetOpacity, duration, completeMethod) {\n\n var tickState;\n\n tickState = {\n isAborted: false,\n abort: function() {\n this.isAborted = true;\n },\n };\n\n obj.animate('_currentCursorOpacity', targetOpacity, {\n duration: duration,\n onComplete: function() {\n if (!tickState.isAborted) {\n obj[completeMethod]();\n }\n },\n onChange: function() {\n // we do not want to animate a selection, only cursor\n if (obj.canvas && obj.selectionStart === obj.selectionEnd) {\n obj.renderCursorOrSelection();\n }\n },\n abort: function() {\n return tickState.isAborted;\n }\n });\n return tickState;\n },\n\n /**\n * @private\n */\n _onTickComplete: function() {\n\n var _this = this;\n\n if (this._cursorTimeout1) {\n clearTimeout(this._cursorTimeout1);\n }\n this._cursorTimeout1 = setTimeout(function() {\n _this._currentTickCompleteState = _this._animateCursor(_this, 0, this.cursorDuration / 2, '_tick');\n }, 100);\n },\n\n /**\n * Initializes delayed cursor\n */\n initDelayedCursor: function(restart) {\n var _this = this,\n delay = restart ? 0 : this.cursorDelay;\n\n this.abortCursorAnimation();\n this._currentCursorOpacity = 1;\n this._cursorTimeout2 = setTimeout(function() {\n _this._tick();\n }, delay);\n },\n\n /**\n * Aborts cursor animation and clears all timeouts\n */\n abortCursorAnimation: function() {\n var shouldClear = this._currentTickState || this._currentTickCompleteState,\n canvas = this.canvas;\n this._currentTickState && this._currentTickState.abort();\n this._currentTickCompleteState && this._currentTickCompleteState.abort();\n\n clearTimeout(this._cursorTimeout1);\n clearTimeout(this._cursorTimeout2);\n\n this._currentCursorOpacity = 0;\n // to clear just itext area we need to transform the context\n // it may not be worth it\n if (shouldClear && canvas) {\n canvas.clearContext(canvas.contextTop || canvas.contextContainer);\n }\n\n },\n\n /**\n * Selects entire text\n * @return {fabric.IText} thisArg\n * @chainable\n */\n selectAll: function() {\n this.selectionStart = 0;\n this.selectionEnd = this._text.length;\n this._fireSelectionChanged();\n this._updateTextarea();\n return this;\n },\n\n /**\n * Returns selected text\n * @return {String}\n */\n getSelectedText: function() {\n return this._text.slice(this.selectionStart, this.selectionEnd).join('');\n },\n\n /**\n * Find new selection index representing start of current word according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findWordBoundaryLeft: function(startFrom) {\n var offset = 0, index = startFrom - 1;\n\n // remove space before cursor first\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index--;\n }\n }\n while (/\\S/.test(this._text[index]) && index > -1) {\n offset++;\n index--;\n }\n\n return startFrom - offset;\n },\n\n /**\n * Find new selection index representing end of current word according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findWordBoundaryRight: function(startFrom) {\n var offset = 0, index = startFrom;\n\n // remove space after cursor first\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index++;\n }\n }\n while (/\\S/.test(this._text[index]) && index < this._text.length) {\n offset++;\n index++;\n }\n\n return startFrom + offset;\n },\n\n /**\n * Find new selection index representing start of current line according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findLineBoundaryLeft: function(startFrom) {\n var offset = 0, index = startFrom - 1;\n\n while (!/\\n/.test(this._text[index]) && index > -1) {\n offset++;\n index--;\n }\n\n return startFrom - offset;\n },\n\n /**\n * Find new selection index representing end of current line according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findLineBoundaryRight: function(startFrom) {\n var offset = 0, index = startFrom;\n\n while (!/\\n/.test(this._text[index]) && index < this._text.length) {\n offset++;\n index++;\n }\n\n return startFrom + offset;\n },\n\n /**\n * Finds index corresponding to beginning or end of a word\n * @param {Number} selectionStart Index of a character\n * @param {Number} direction 1 or -1\n * @return {Number} Index of the beginning or end of a word\n */\n searchWordBoundary: function(selectionStart, direction) {\n var text = this._text,\n index = this._reSpace.test(text[selectionStart]) ? selectionStart - 1 : selectionStart,\n _char = text[index],\n // wrong\n reNonWord = fabric.reNonWord;\n\n while (!reNonWord.test(_char) && index > 0 && index < text.length) {\n index += direction;\n _char = text[index];\n }\n if (reNonWord.test(_char)) {\n index += direction === 1 ? 0 : 1;\n }\n return index;\n },\n\n /**\n * Selects a word based on the index\n * @param {Number} selectionStart Index of a character\n */\n selectWord: function(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.searchWordBoundary(selectionStart, -1), /* search backwards */\n newSelectionEnd = this.searchWordBoundary(selectionStart, 1); /* search forward */\n\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n this._fireSelectionChanged();\n this._updateTextarea();\n this.renderCursorOrSelection();\n },\n\n /**\n * Selects a line based on the index\n * @param {Number} selectionStart Index of a character\n * @return {fabric.IText} thisArg\n * @chainable\n */\n selectLine: function(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.findLineBoundaryLeft(selectionStart),\n newSelectionEnd = this.findLineBoundaryRight(selectionStart);\n\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n this._fireSelectionChanged();\n this._updateTextarea();\n return this;\n },\n\n /**\n * Enters editing state\n * @return {fabric.IText} thisArg\n * @chainable\n */\n enterEditing: function(e) {\n if (this.isEditing || !this.editable) {\n return;\n }\n\n if (this.canvas) {\n this.canvas.calcOffset();\n this.exitEditingOnOthers(this.canvas);\n }\n\n this.isEditing = true;\n\n this.initHiddenTextarea(e);\n this.hiddenTextarea.focus();\n this.hiddenTextarea.value = this.text;\n this._updateTextarea();\n this._saveEditingProps();\n this._setEditingProps();\n this._textBeforeEdit = this.text;\n\n this._tick();\n this.fire('editing:entered');\n this._fireSelectionChanged();\n if (!this.canvas) {\n return this;\n }\n this.canvas.fire('text:editing:entered', { target: this });\n this.initMouseMoveHandler();\n this.canvas.requestRenderAll();\n return this;\n },\n\n exitEditingOnOthers: function(canvas) {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function(obj) {\n obj.selected = false;\n if (obj.isEditing) {\n obj.exitEditing();\n }\n });\n }\n },\n\n /**\n * Initializes \"mousemove\" event handler\n */\n initMouseMoveHandler: function() {\n this.canvas.on('mouse:move', this.mouseMoveHandler);\n },\n\n /**\n * @private\n */\n mouseMoveHandler: function(options) {\n if (!this.__isMousedown || !this.isEditing) {\n return;\n }\n\n var newSelectionStart = this.getSelectionStartFromPointer(options.e),\n currentStart = this.selectionStart,\n currentEnd = this.selectionEnd;\n if (\n (newSelectionStart !== this.__selectionStartOnMouseDown || currentStart === currentEnd)\n &&\n (currentStart === newSelectionStart || currentEnd === newSelectionStart)\n ) {\n return;\n }\n if (newSelectionStart > this.__selectionStartOnMouseDown) {\n this.selectionStart = this.__selectionStartOnMouseDown;\n this.selectionEnd = newSelectionStart;\n }\n else {\n this.selectionStart = newSelectionStart;\n this.selectionEnd = this.__selectionStartOnMouseDown;\n }\n if (this.selectionStart !== currentStart || this.selectionEnd !== currentEnd) {\n this.restartCursorIfNeeded();\n this._fireSelectionChanged();\n this._updateTextarea();\n this.renderCursorOrSelection();\n }\n },\n\n /**\n * @private\n */\n _setEditingProps: function() {\n this.hoverCursor = 'text';\n\n if (this.canvas) {\n this.canvas.defaultCursor = this.canvas.moveCursor = 'text';\n }\n\n this.borderColor = this.editingBorderColor;\n this.hasControls = this.selectable = false;\n this.lockMovementX = this.lockMovementY = true;\n },\n\n /**\n * convert from textarea to grapheme indexes\n */\n fromStringToGraphemeSelection: function(start, end, text) {\n var smallerTextStart = text.slice(0, start),\n graphemeStart = fabric.util.string.graphemeSplit(smallerTextStart).length;\n if (start === end) {\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\n }\n var smallerTextEnd = text.slice(start, end),\n graphemeEnd = fabric.util.string.graphemeSplit(smallerTextEnd).length;\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart + graphemeEnd };\n },\n\n /**\n * convert from fabric to textarea values\n */\n fromGraphemeToStringSelection: function(start, end, _text) {\n var smallerTextStart = _text.slice(0, start),\n graphemeStart = smallerTextStart.join('').length;\n if (start === end) {\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\n }\n var smallerTextEnd = _text.slice(start, end),\n graphemeEnd = smallerTextEnd.join('').length;\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart + graphemeEnd };\n },\n\n /**\n * @private\n */\n _updateTextarea: function() {\n this.cursorOffsetCache = { };\n if (!this.hiddenTextarea) {\n return;\n }\n if (!this.inCompositionMode) {\n var newSelection = this.fromGraphemeToStringSelection(this.selectionStart, this.selectionEnd, this._text);\n this.hiddenTextarea.selectionStart = newSelection.selectionStart;\n this.hiddenTextarea.selectionEnd = newSelection.selectionEnd;\n }\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateFromTextArea: function() {\n if (!this.hiddenTextarea) {\n return;\n }\n this.cursorOffsetCache = { };\n this.text = this.hiddenTextarea.value;\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n var newSelection = this.fromStringToGraphemeSelection(\n this.hiddenTextarea.selectionStart, this.hiddenTextarea.selectionEnd, this.hiddenTextarea.value);\n this.selectionEnd = this.selectionStart = newSelection.selectionEnd;\n if (!this.inCompositionMode) {\n this.selectionStart = newSelection.selectionStart;\n }\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateTextareaPosition: function() {\n if (this.selectionStart === this.selectionEnd) {\n var style = this._calcTextareaPosition();\n this.hiddenTextarea.style.left = style.left;\n this.hiddenTextarea.style.top = style.top;\n }\n },\n\n /**\n * @private\n * @return {Object} style contains style for hiddenTextarea\n */\n _calcTextareaPosition: function() {\n if (!this.canvas) {\n return { x: 1, y: 1 };\n }\n var desiredPosition = this.inCompositionMode ? this.compositionStart : this.selectionStart,\n boundaries = this._getCursorBoundaries(desiredPosition),\n cursorLocation = this.get2DCursorLocation(desiredPosition),\n lineIndex = cursorLocation.lineIndex,\n charIndex = cursorLocation.charIndex,\n charHeight = this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize') * this.lineHeight,\n leftOffset = boundaries.leftOffset,\n m = this.calcTransformMatrix(),\n p = {\n x: boundaries.left + leftOffset,\n y: boundaries.top + boundaries.topOffset + charHeight\n },\n retinaScaling = this.canvas.getRetinaScaling(),\n upperCanvas = this.canvas.upperCanvasEl,\n upperCanvasWidth = upperCanvas.width / retinaScaling,\n upperCanvasHeight = upperCanvas.height / retinaScaling,\n maxWidth = upperCanvasWidth - charHeight,\n maxHeight = upperCanvasHeight - charHeight,\n scaleX = upperCanvas.clientWidth / upperCanvasWidth,\n scaleY = upperCanvas.clientHeight / upperCanvasHeight;\n\n p = fabric.util.transformPoint(p, m);\n p = fabric.util.transformPoint(p, this.canvas.viewportTransform);\n p.x *= scaleX;\n p.y *= scaleY;\n if (p.x < 0) {\n p.x = 0;\n }\n if (p.x > maxWidth) {\n p.x = maxWidth;\n }\n if (p.y < 0) {\n p.y = 0;\n }\n if (p.y > maxHeight) {\n p.y = maxHeight;\n }\n\n // add canvas offset on document\n p.x += this.canvas._offset.left;\n p.y += this.canvas._offset.top;\n\n return { left: p.x + 'px', top: p.y + 'px', fontSize: charHeight + 'px', charHeight: charHeight };\n },\n\n /**\n * @private\n */\n _saveEditingProps: function() {\n this._savedProps = {\n hasControls: this.hasControls,\n borderColor: this.borderColor,\n lockMovementX: this.lockMovementX,\n lockMovementY: this.lockMovementY,\n hoverCursor: this.hoverCursor,\n selectable: this.selectable,\n defaultCursor: this.canvas && this.canvas.defaultCursor,\n moveCursor: this.canvas && this.canvas.moveCursor\n };\n },\n\n /**\n * @private\n */\n _restoreEditingProps: function() {\n if (!this._savedProps) {\n return;\n }\n\n this.hoverCursor = this._savedProps.hoverCursor;\n this.hasControls = this._savedProps.hasControls;\n this.borderColor = this._savedProps.borderColor;\n this.selectable = this._savedProps.selectable;\n this.lockMovementX = this._savedProps.lockMovementX;\n this.lockMovementY = this._savedProps.lockMovementY;\n\n if (this.canvas) {\n this.canvas.defaultCursor = this._savedProps.defaultCursor;\n this.canvas.moveCursor = this._savedProps.moveCursor;\n }\n },\n\n /**\n * Exits from editing state\n * @return {fabric.IText} thisArg\n * @chainable\n */\n exitEditing: function() {\n var isTextChanged = (this._textBeforeEdit !== this.text);\n var hiddenTextarea = this.hiddenTextarea;\n this.selected = false;\n this.isEditing = false;\n\n this.selectionEnd = this.selectionStart;\n\n if (hiddenTextarea) {\n hiddenTextarea.blur && hiddenTextarea.blur();\n hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n }\n this.hiddenTextarea = null;\n this.abortCursorAnimation();\n this._restoreEditingProps();\n this._currentCursorOpacity = 0;\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this.fire('editing:exited');\n isTextChanged && this.fire('modified');\n if (this.canvas) {\n this.canvas.off('mouse:move', this.mouseMoveHandler);\n this.canvas.fire('text:editing:exited', { target: this });\n isTextChanged && this.canvas.fire('object:modified', { target: this });\n }\n return this;\n },\n\n /**\n * @private\n */\n _removeExtraneousStyles: function() {\n for (var prop in this.styles) {\n if (!this._textLines[prop]) {\n delete this.styles[prop];\n }\n }\n },\n\n /**\n * remove and reflow a style block from start to end.\n * @param {Number} start linear start position for removal (included in removal)\n * @param {Number} end linear end position for removal ( excluded from removal )\n */\n removeStyleFromTo: function(start, end) {\n var cursorStart = this.get2DCursorLocation(start, true),\n cursorEnd = this.get2DCursorLocation(end, true),\n lineStart = cursorStart.lineIndex,\n charStart = cursorStart.charIndex,\n lineEnd = cursorEnd.lineIndex,\n charEnd = cursorEnd.charIndex,\n i, styleObj;\n if (lineStart !== lineEnd) {\n // step1 remove the trailing of lineStart\n if (this.styles[lineStart]) {\n for (i = charStart; i < this._unwrappedTextLines[lineStart].length; i++) {\n delete this.styles[lineStart][i];\n }\n }\n // step2 move the trailing of lineEnd to lineStart if needed\n if (this.styles[lineEnd]) {\n for (i = charEnd; i < this._unwrappedTextLines[lineEnd].length; i++) {\n styleObj = this.styles[lineEnd][i];\n if (styleObj) {\n this.styles[lineStart] || (this.styles[lineStart] = { });\n this.styles[lineStart][charStart + i - charEnd] = styleObj;\n }\n }\n }\n // step3 detects lines will be completely removed.\n for (i = lineStart + 1; i <= lineEnd; i++) {\n delete this.styles[i];\n }\n // step4 shift remaining lines.\n this.shiftLineStyles(lineEnd, lineStart - lineEnd);\n }\n else {\n // remove and shift left on the same line\n if (this.styles[lineStart]) {\n styleObj = this.styles[lineStart];\n var diff = charEnd - charStart, numericChar, _char;\n for (i = charStart; i < charEnd; i++) {\n delete styleObj[i];\n }\n for (_char in this.styles[lineStart]) {\n numericChar = parseInt(_char, 10);\n if (numericChar >= charEnd) {\n styleObj[numericChar - diff] = styleObj[_char];\n delete styleObj[_char];\n }\n }\n }\n }\n },\n\n /**\n * Shifts line styles up or down\n * @param {Number} lineIndex Index of a line\n * @param {Number} offset Can any number?\n */\n shiftLineStyles: function(lineIndex, offset) {\n // shift all line styles by offset upward or downward\n // do not clone deep. we need new array, not new style objects\n var clonedStyles = clone(this.styles);\n for (var line in this.styles) {\n var numericLine = parseInt(line, 10);\n if (numericLine > lineIndex) {\n this.styles[numericLine + offset] = clonedStyles[numericLine];\n if (!clonedStyles[numericLine - offset]) {\n delete this.styles[numericLine];\n }\n }\n }\n },\n\n restartCursorIfNeeded: function() {\n if (!this._currentTickState || this._currentTickState.isAborted\n || !this._currentTickCompleteState || this._currentTickCompleteState.isAborted\n ) {\n this.initDelayedCursor();\n }\n },\n\n /**\n * Handle insertion of more consecutive style lines for when one or more\n * newlines gets added to the text. Since current style needs to be shifted\n * first we shift the current style of the number lines needed, then we add\n * new lines from the last to the first.\n * @param {Number} lineIndex Index of a line\n * @param {Number} charIndex Index of a char\n * @param {Number} qty number of lines to add\n * @param {Array} copiedStyle Array of objects styles\n */\n insertNewlineStyleObject: function(lineIndex, charIndex, qty, copiedStyle) {\n var currentCharStyle,\n newLineStyles = {},\n somethingAdded = false,\n isEndOfLine = this._unwrappedTextLines[lineIndex].length === charIndex;\n\n qty || (qty = 1);\n this.shiftLineStyles(lineIndex, qty);\n if (this.styles[lineIndex]) {\n currentCharStyle = this.styles[lineIndex][charIndex === 0 ? charIndex : charIndex - 1];\n }\n // we clone styles of all chars\n // after cursor onto the current line\n for (var index in this.styles[lineIndex]) {\n var numIndex = parseInt(index, 10);\n if (numIndex >= charIndex) {\n somethingAdded = true;\n newLineStyles[numIndex - charIndex] = this.styles[lineIndex][index];\n // remove lines from the previous line since they're on a new line now\n if (!(isEndOfLine && charIndex === 0)) {\n delete this.styles[lineIndex][index];\n }\n }\n }\n var styleCarriedOver = false;\n if (somethingAdded && !isEndOfLine) {\n // if is end of line, the extra style we copied\n // is probably not something we want\n this.styles[lineIndex + qty] = newLineStyles;\n styleCarriedOver = true;\n }\n if (styleCarriedOver) {\n // skip the last line of since we already prepared it.\n qty--;\n }\n // for the all the lines or all the other lines\n // we clone current char style onto the next (otherwise empty) line\n while (qty > 0) {\n if (copiedStyle && copiedStyle[qty - 1]) {\n this.styles[lineIndex + qty] = { 0: clone(copiedStyle[qty - 1]) };\n }\n else if (currentCharStyle) {\n this.styles[lineIndex + qty] = { 0: clone(currentCharStyle) };\n }\n else {\n delete this.styles[lineIndex + qty];\n }\n qty--;\n }\n this._forceClearCache = true;\n },\n\n /**\n * Inserts style object for a given line/char index\n * @param {Number} lineIndex Index of a line\n * @param {Number} charIndex Index of a char\n * @param {Number} quantity number Style object to insert, if given\n * @param {Array} copiedStyle array of style objects\n */\n insertCharStyleObject: function(lineIndex, charIndex, quantity, copiedStyle) {\n if (!this.styles) {\n this.styles = {};\n }\n var currentLineStyles = this.styles[lineIndex],\n currentLineStylesCloned = currentLineStyles ? clone(currentLineStyles) : {};\n\n quantity || (quantity = 1);\n // shift all char styles by quantity forward\n // 0,1,2,3 -> (charIndex=2) -> 0,1,3,4 -> (insert 2) -> 0,1,2,3,4\n for (var index in currentLineStylesCloned) {\n var numericIndex = parseInt(index, 10);\n if (numericIndex >= charIndex) {\n currentLineStyles[numericIndex + quantity] = currentLineStylesCloned[numericIndex];\n // only delete the style if there was nothing moved there\n if (!currentLineStylesCloned[numericIndex - quantity]) {\n delete currentLineStyles[numericIndex];\n }\n }\n }\n this._forceClearCache = true;\n if (copiedStyle) {\n while (quantity--) {\n if (!Object.keys(copiedStyle[quantity]).length) {\n continue;\n }\n if (!this.styles[lineIndex]) {\n this.styles[lineIndex] = {};\n }\n this.styles[lineIndex][charIndex + quantity] = clone(copiedStyle[quantity]);\n }\n return;\n }\n if (!currentLineStyles) {\n return;\n }\n var newStyle = currentLineStyles[charIndex ? charIndex - 1 : 1];\n while (newStyle && quantity--) {\n this.styles[lineIndex][charIndex + quantity] = clone(newStyle);\n }\n },\n\n /**\n * Inserts style object(s)\n * @param {Array} insertedText Characters at the location where style is inserted\n * @param {Number} start cursor index for inserting style\n * @param {Array} [copiedStyle] array of style objects to insert.\n */\n insertNewStyleBlock: function(insertedText, start, copiedStyle) {\n var cursorLoc = this.get2DCursorLocation(start, true),\n addedLines = [0], linesLength = 0;\n // get an array of how many char per lines are being added.\n for (var i = 0; i < insertedText.length; i++) {\n if (insertedText[i] === '\\n') {\n linesLength++;\n addedLines[linesLength] = 0;\n }\n else {\n addedLines[linesLength]++;\n }\n }\n // for the first line copy the style from the current char position.\n if (addedLines[0] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex, cursorLoc.charIndex, addedLines[0], copiedStyle);\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[0] + 1);\n }\n linesLength && this.insertNewlineStyleObject(\n cursorLoc.lineIndex, cursorLoc.charIndex + addedLines[0], linesLength);\n for (var i = 1; i < linesLength; i++) {\n if (addedLines[i] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex + i, 0, addedLines[i], copiedStyle);\n }\n else if (copiedStyle) {\n this.styles[cursorLoc.lineIndex + i][0] = copiedStyle[0];\n }\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[i] + 1);\n }\n // we use i outside the loop to get it like linesLength\n if (addedLines[i] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex + i, 0, addedLines[i], copiedStyle);\n }\n },\n\n /**\n * Set the selectionStart and selectionEnd according to the new position of cursor\n * mimic the key - mouse navigation when shift is pressed.\n */\n setSelectionStartEndWithShift: function(start, end, newSelection) {\n if (newSelection <= start) {\n if (end === start) {\n this._selectionDirection = 'left';\n }\n else if (this._selectionDirection === 'right') {\n this._selectionDirection = 'left';\n this.selectionEnd = start;\n }\n this.selectionStart = newSelection;\n }\n else if (newSelection > start && newSelection < end) {\n if (this._selectionDirection === 'right') {\n this.selectionEnd = newSelection;\n }\n else {\n this.selectionStart = newSelection;\n }\n }\n else {\n // newSelection is > selection start and end\n if (end === start) {\n this._selectionDirection = 'right';\n }\n else if (this._selectionDirection === 'left') {\n this._selectionDirection = 'right';\n this.selectionStart = end;\n }\n this.selectionEnd = newSelection;\n }\n },\n\n setSelectionInBoundaries: function() {\n var length = this.text.length;\n if (this.selectionStart > length) {\n this.selectionStart = length;\n }\n else if (this.selectionStart < 0) {\n this.selectionStart = 0;\n }\n if (this.selectionEnd > length) {\n this.selectionEnd = length;\n }\n else if (this.selectionEnd < 0) {\n this.selectionEnd = 0;\n }\n }\n });\n})();\n\n\nfabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n /**\n * Initializes \"dbclick\" event handler\n */\n initDoubleClickSimulation: function() {\n\n // for double click\n this.__lastClickTime = +new Date();\n\n // for triple click\n this.__lastLastClickTime = +new Date();\n\n this.__lastPointer = { };\n\n this.on('mousedown', this.onMouseDown);\n },\n\n /**\n * Default event handler to simulate triple click\n * @private\n */\n onMouseDown: function(options) {\n if (!this.canvas) {\n return;\n }\n this.__newClickTime = +new Date();\n var newPointer = options.pointer;\n if (this.isTripleClick(newPointer)) {\n this.fire('tripleclick', options);\n this._stopEvent(options.e);\n }\n this.__lastLastClickTime = this.__lastClickTime;\n this.__lastClickTime = this.__newClickTime;\n this.__lastPointer = newPointer;\n this.__lastIsEditing = this.isEditing;\n this.__lastSelected = this.selected;\n },\n\n isTripleClick: function(newPointer) {\n return this.__newClickTime - this.__lastClickTime < 500 &&\n this.__lastClickTime - this.__lastLastClickTime < 500 &&\n this.__lastPointer.x === newPointer.x &&\n this.__lastPointer.y === newPointer.y;\n },\n\n /**\n * @private\n */\n _stopEvent: function(e) {\n e.preventDefault && e.preventDefault();\n e.stopPropagation && e.stopPropagation();\n },\n\n /**\n * Initializes event handlers related to cursor or selection\n */\n initCursorSelectionHandlers: function() {\n this.initMousedownHandler();\n this.initMouseupHandler();\n this.initClicks();\n },\n\n /**\n * Default handler for double click, select a word\n */\n doubleClickHandler: function(options) {\n if (!this.isEditing) {\n return;\n }\n this.selectWord(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Default handler for triple click, select a line\n */\n tripleClickHandler: function(options) {\n if (!this.isEditing) {\n return;\n }\n this.selectLine(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Initializes double and triple click event handlers\n */\n initClicks: function() {\n this.on('mousedblclick', this.doubleClickHandler);\n this.on('tripleclick', this.tripleClickHandler);\n },\n\n /**\n * Default event handler for the basic functionalities needed on _mouseDown\n * can be overridden to do something different.\n * Scope of this implementation is: find the click position, set selectionStart\n * find selectionEnd, initialize the drawing of either cursor or selection area\n * initializing a mousedDown on a text area will cancel fabricjs knowledge of\n * current compositionMode. It will be set to false.\n */\n _mouseDownHandler: function(options) {\n if (!this.canvas || !this.editable || (options.e.button && options.e.button !== 1)) {\n return;\n }\n\n this.__isMousedown = true;\n\n if (this.selected) {\n this.inCompositionMode = false;\n this.setCursorByClick(options.e);\n }\n\n if (this.isEditing) {\n this.__selectionStartOnMouseDown = this.selectionStart;\n if (this.selectionStart === this.selectionEnd) {\n this.abortCursorAnimation();\n }\n this.renderCursorOrSelection();\n }\n },\n\n /**\n * Default event handler for the basic functionalities needed on mousedown:before\n * can be overridden to do something different.\n * Scope of this implementation is: verify the object is already selected when mousing down\n */\n _mouseDownHandlerBefore: function(options) {\n if (!this.canvas || !this.editable || (options.e.button && options.e.button !== 1)) {\n return;\n }\n // we want to avoid that an object that was selected and then becomes unselectable,\n // may trigger editing mode in some way.\n this.selected = this === this.canvas._activeObject;\n },\n\n /**\n * Initializes \"mousedown\" event handler\n */\n initMousedownHandler: function() {\n this.on('mousedown', this._mouseDownHandler);\n this.on('mousedown:before', this._mouseDownHandlerBefore);\n },\n\n /**\n * Initializes \"mouseup\" event handler\n */\n initMouseupHandler: function() {\n this.on('mouseup', this.mouseUpHandler);\n },\n\n /**\n * standard hander for mouse up, overridable\n * @private\n */\n mouseUpHandler: function(options) {\n this.__isMousedown = false;\n if (!this.editable || this.group ||\n (options.transform && options.transform.actionPerformed) ||\n (options.e.button && options.e.button !== 1)) {\n return;\n }\n\n if (this.canvas) {\n var currentActive = this.canvas._activeObject;\n if (currentActive && currentActive !== this) {\n // avoid running this logic when there is an active object\n // this because is possible with shift click and fast clicks,\n // to rapidly deselect and reselect this object and trigger an enterEdit\n return;\n }\n }\n\n if (this.__lastSelected && !this.__corner) {\n this.selected = false;\n this.__lastSelected = false;\n this.enterEditing(options.e);\n if (this.selectionStart === this.selectionEnd) {\n this.initDelayedCursor(true);\n }\n else {\n this.renderCursorOrSelection();\n }\n }\n else {\n this.selected = true;\n }\n },\n\n /**\n * Changes cursor location in a text depending on passed pointer (x/y) object\n * @param {Event} e Event object\n */\n setCursorByClick: function(e) {\n var newSelection = this.getSelectionStartFromPointer(e),\n start = this.selectionStart, end = this.selectionEnd;\n if (e.shiftKey) {\n this.setSelectionStartEndWithShift(start, end, newSelection);\n }\n else {\n this.selectionStart = newSelection;\n this.selectionEnd = newSelection;\n }\n if (this.isEditing) {\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Returns index of a character corresponding to where an object was clicked\n * @param {Event} e Event object\n * @return {Number} Index of a character\n */\n getSelectionStartFromPointer: function(e) {\n var mouseOffset = this.getLocalPointer(e),\n prevWidth = 0,\n width = 0,\n height = 0,\n charIndex = 0,\n lineIndex = 0,\n lineLeftOffset,\n line;\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n if (height <= mouseOffset.y) {\n height += this.getHeightOfLine(i) * this.scaleY;\n lineIndex = i;\n if (i > 0) {\n charIndex += this._textLines[i - 1].length + this.missingNewlineOffset(i - 1);\n }\n }\n else {\n break;\n }\n }\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n width = lineLeftOffset * this.scaleX;\n line = this._textLines[lineIndex];\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n prevWidth = width;\n // i removed something about flipX here, check.\n width += this.__charBounds[lineIndex][j].kernedWidth * this.scaleX;\n if (width <= mouseOffset.x) {\n charIndex++;\n }\n else {\n break;\n }\n }\n return this._getNewSelectionStartFromOffset(mouseOffset, prevWidth, width, charIndex, jlen);\n },\n\n /**\n * @private\n */\n _getNewSelectionStartFromOffset: function(mouseOffset, prevWidth, width, index, jlen) {\n // we need Math.abs because when width is after the last char, the offset is given as 1, while is 0\n var distanceBtwLastCharAndCursor = mouseOffset.x - prevWidth,\n distanceBtwNextCharAndCursor = width - mouseOffset.x,\n offset = distanceBtwNextCharAndCursor > distanceBtwLastCharAndCursor ||\n distanceBtwNextCharAndCursor < 0 ? 0 : 1,\n newSelectionStart = index + offset;\n // if object is horizontally flipped, mirror cursor location from the end\n if (this.flipX) {\n newSelectionStart = jlen - newSelectionStart;\n }\n\n if (newSelectionStart > this._text.length) {\n newSelectionStart = this._text.length;\n }\n\n return newSelectionStart;\n }\n});\n\n\nfabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea: function() {\n this.hiddenTextarea = fabric.document.createElement('textarea');\n this.hiddenTextarea.setAttribute('autocapitalize', 'off');\n this.hiddenTextarea.setAttribute('autocorrect', 'off');\n this.hiddenTextarea.setAttribute('autocomplete', 'off');\n this.hiddenTextarea.setAttribute('spellcheck', 'false');\n this.hiddenTextarea.setAttribute('data-fabric-hiddentextarea', '');\n this.hiddenTextarea.setAttribute('wrap', 'off');\n var style = this._calcTextareaPosition();\n // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n this.hiddenTextarea.style.cssText = 'position: absolute; top: ' + style.top +\n '; left: ' + style.left + '; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px;' +\n ' paddingーtop: ' + style.fontSize + ';';\n fabric.document.body.appendChild(this.hiddenTextarea);\n\n fabric.util.addListener(this.hiddenTextarea, 'keydown', this.onKeyDown.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'keyup', this.onKeyUp.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'input', this.onInput.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'copy', this.copy.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'cut', this.copy.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'paste', this.paste.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionstart', this.onCompositionStart.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionupdate', this.onCompositionUpdate.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionend', this.onCompositionEnd.bind(this));\n\n if (!this._clickHandlerInitialized && this.canvas) {\n fabric.util.addListener(this.canvas.upperCanvasEl, 'click', this.onClick.bind(this));\n this._clickHandlerInitialized = true;\n }\n },\n\n /**\n * For functionalities on keyDown\n * Map a special key to a function of the instance/prototype\n * If you need different behaviour for ESC or TAB or arrows, you have to change\n * this map setting the name of a function that you build on the fabric.Itext or\n * your prototype.\n * the map change will affect all Instances unless you need for only some text Instances\n * in that case you have to clone this object and assign your Instance.\n * this.keysMap = fabric.util.object.clone(this.keysMap);\n * The function must be in fabric.Itext.prototype.myFunction And will receive event as args[0]\n */\n keysMap: {\n 9: 'exitEditing',\n 27: 'exitEditing',\n 33: 'moveCursorUp',\n 34: 'moveCursorDown',\n 35: 'moveCursorRight',\n 36: 'moveCursorLeft',\n 37: 'moveCursorLeft',\n 38: 'moveCursorUp',\n 39: 'moveCursorRight',\n 40: 'moveCursorDown',\n },\n\n /**\n * For functionalities on keyUp + ctrl || cmd\n */\n ctrlKeysMapUp: {\n 67: 'copy',\n 88: 'cut'\n },\n\n /**\n * For functionalities on keyDown + ctrl || cmd\n */\n ctrlKeysMapDown: {\n 65: 'selectAll'\n },\n\n onClick: function() {\n // No need to trigger click event here, focus is enough to have the keyboard appear on Android\n this.hiddenTextarea && this.hiddenTextarea.focus();\n },\n\n /**\n * Handles keydown event\n * only used for arrows and combination of modifier keys.\n * @param {Event} e Event object\n */\n onKeyDown: function(e) {\n if (!this.isEditing) {\n return;\n }\n if (e.keyCode in this.keysMap) {\n this[this.keysMap[e.keyCode]](e);\n }\n else if ((e.keyCode in this.ctrlKeysMapDown) && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapDown[e.keyCode]](e);\n }\n else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.inCompositionMode = false;\n this.clearContextTop();\n this.renderCursorOrSelection();\n }\n else {\n this.canvas && this.canvas.requestRenderAll();\n }\n },\n\n /**\n * Handles keyup event\n * We handle KeyUp because ie11 and edge have difficulties copy/pasting\n * if a copy/cut event fired, keyup is dismissed\n * @param {Event} e Event object\n */\n onKeyUp: function(e) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n if ((e.keyCode in this.ctrlKeysMapUp) && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapUp[e.keyCode]](e);\n }\n else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n this.canvas && this.canvas.requestRenderAll();\n },\n\n /**\n * Handles onInput event\n * @param {Event} e Event object\n */\n onInput: function(e) {\n var fromPaste = this.fromPaste;\n this.fromPaste = false;\n e && e.stopPropagation();\n if (!this.isEditing) {\n return;\n }\n // decisions about style changes.\n var nextText = this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n removedText, insertedText,\n charDiff = nextCharCount - charCount,\n selectionStart = this.selectionStart, selectionEnd = this.selectionEnd,\n selection = selectionStart !== selectionEnd,\n copiedStyle, removeFrom, removeTo;\n if (this.hiddenTextarea.value === '') {\n this.styles = { };\n this.updateFromTextArea();\n this.fire('changed');\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this });\n this.canvas.requestRenderAll();\n }\n return;\n }\n\n var textareaSelection = this.fromStringToGraphemeSelection(\n this.hiddenTextarea.selectionStart,\n this.hiddenTextarea.selectionEnd,\n this.hiddenTextarea.value\n );\n var backDelete = selectionStart > textareaSelection.selectionStart;\n\n if (selection) {\n removedText = this._text.slice(selectionStart, selectionEnd);\n charDiff += selectionEnd - selectionStart;\n }\n else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(selectionEnd + charDiff, selectionEnd);\n }\n else {\n removedText = this._text.slice(selectionStart, selectionStart - charDiff);\n }\n }\n insertedText = nextText.slice(textareaSelection.selectionEnd - charDiff, textareaSelection.selectionEnd);\n if (removedText && removedText.length) {\n if (insertedText.length) {\n // let's copy some style before deleting.\n // we want to copy the style before the cursor OR the style at the cursor if selection\n // is bigger than 0.\n copiedStyle = this.getSelectionStyles(selectionStart, selectionStart + 1, false);\n // now duplicate the style one for each inserted text.\n copiedStyle = insertedText.map(function() {\n // this return an array of references, but that is fine since we are\n // copying the style later.\n return copiedStyle[0];\n });\n }\n if (selection) {\n removeFrom = selectionStart;\n removeTo = selectionEnd;\n }\n else if (backDelete) {\n // detect differencies between forwardDelete and backDelete\n removeFrom = selectionEnd - removedText.length;\n removeTo = selectionEnd;\n }\n else {\n removeFrom = selectionEnd;\n removeTo = selectionEnd + removedText.length;\n }\n this.removeStyleFromTo(removeFrom, removeTo);\n }\n if (insertedText.length) {\n if (fromPaste && insertedText.join('') === fabric.copiedText && !fabric.disableStyleCopyPaste) {\n copiedStyle = fabric.copiedTextStyle;\n }\n this.insertNewStyleBlock(insertedText, selectionStart, copiedStyle);\n }\n this.updateFromTextArea();\n this.fire('changed');\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this });\n this.canvas.requestRenderAll();\n }\n },\n /**\n * Composition start\n */\n onCompositionStart: function() {\n this.inCompositionMode = true;\n },\n\n /**\n * Composition end\n */\n onCompositionEnd: function() {\n this.inCompositionMode = false;\n },\n\n // /**\n // * Composition update\n // */\n onCompositionUpdate: function(e) {\n this.compositionStart = e.target.selectionStart;\n this.compositionEnd = e.target.selectionEnd;\n this.updateTextareaPosition();\n },\n\n /**\n * Copies selected text\n * @param {Event} e Event object\n */\n copy: function() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n\n fabric.copiedText = this.getSelectedText();\n if (!fabric.disableStyleCopyPaste) {\n fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true);\n }\n else {\n fabric.copiedTextStyle = null;\n }\n this._copyDone = true;\n },\n\n /**\n * Pastes text\n * @param {Event} e Event object\n */\n paste: function() {\n this.fromPaste = true;\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @return {Object} Clipboard data object\n */\n _getClipboardData: function(e) {\n return (e && e.clipboardData) || fabric.window.clipboardData;\n },\n\n /**\n * Finds the width in pixels before the cursor on the same line\n * @private\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Number} widthBeforeCursor width before cursor\n */\n _getWidthBeforeCursor: function(lineIndex, charIndex) {\n var widthBeforeCursor = this._getLineLeftOffset(lineIndex), bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\n return widthBeforeCursor;\n },\n\n /**\n * Gets start offset of a selection\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getDownCursorOffset: function(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n // if on last line, down cursor goes to end of line\n if (lineIndex === this._textLines.length - 1 || e.metaKey || e.keyCode === 34) {\n // move to the end of a text\n return this._text.length - selectionProp;\n }\n var charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex + 1, widthBeforeCursor),\n textAfterCursor = this._textLines[lineIndex].slice(charIndex);\n return textAfterCursor.length + indexOnOtherLine + 1 + this.missingNewlineOffset(lineIndex);\n },\n\n /**\n * private\n * Helps finding if the offset should be counted from Start or End\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n _getSelectionForOffset: function(e, isRight) {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\n }\n else {\n return this.selectionStart;\n }\n },\n\n /**\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getUpCursorOffset: function(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n if (lineIndex === 0 || e.metaKey || e.keyCode === 33) {\n // if on first line, up cursor goes to start of line\n return -selectionProp;\n }\n var charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex - 1, widthBeforeCursor),\n textBeforeCursor = this._textLines[lineIndex].slice(0, charIndex),\n missingNewlineOffset = this.missingNewlineOffset(lineIndex - 1);\n // return a negative offset\n return -this._textLines[lineIndex - 1].length\n + indexOnOtherLine - textBeforeCursor.length + (1 - missingNewlineOffset);\n },\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine: function(lineIndex, width) {\n\n var line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex),\n widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0, charWidth, foundMatch;\n\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n if (widthOfCharsOnLine > width) {\n foundMatch = true;\n var leftEdge = widthOfCharsOnLine - charWidth,\n rightEdge = widthOfCharsOnLine,\n offsetFromLeftEdge = Math.abs(leftEdge - width),\n offsetFromRightEdge = Math.abs(rightEdge - width);\n\n indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : (j - 1);\n break;\n }\n }\n\n // reached end\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n },\n\n\n /**\n * Moves cursor down\n * @param {Event} e Event object\n */\n moveCursorDown: function(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\n this._moveCursorUpOrDown('Down', e);\n },\n\n /**\n * Moves cursor up\n * @param {Event} e Event object\n */\n moveCursorUp: function(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorUpOrDown('Up', e);\n },\n\n /**\n * Moves cursor up or down, fires the events\n * @param {String} direction 'Up' or 'Down'\n * @param {Event} e Event object\n */\n _moveCursorUpOrDown: function(direction, e) {\n // getUpCursorOffset\n // getDownCursorOffset\n var action = 'get' + direction + 'CursorOffset',\n offset = this[action](e, this._selectionDirection === 'right');\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n }\n else {\n this.moveCursorWithoutShift(offset);\n }\n if (offset !== 0) {\n this.setSelectionInBoundaries();\n this.abortCursorAnimation();\n this._currentCursorOpacity = 1;\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift: function(offset) {\n var newSelection = this._selectionDirection === 'left'\n ? this.selectionStart + offset\n : this.selectionEnd + offset;\n this.setSelectionStartEndWithShift(this.selectionStart, this.selectionEnd, newSelection);\n return offset !== 0;\n },\n\n /**\n * Moves cursor up without shift\n * @param {Number} offset\n */\n moveCursorWithoutShift: function(offset) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n }\n else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n return offset !== 0;\n },\n\n /**\n * Moves cursor left\n * @param {Event} e Event object\n */\n moveCursorLeft: function(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorLeftOrRight('Left', e);\n },\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n */\n _move: function(e, prop, direction) {\n var newValue;\n if (e.altKey) {\n newValue = this['findWordBoundary' + direction](this[prop]);\n }\n else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36 ) {\n newValue = this['findLineBoundary' + direction](this[prop]);\n }\n else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\n if (typeof newValue !== undefined && this[prop] !== newValue) {\n this[prop] = newValue;\n return true;\n }\n },\n\n /**\n * @private\n */\n _moveLeft: function(e, prop) {\n return this._move(e, prop, 'Left');\n },\n\n /**\n * @private\n */\n _moveRight: function(e, prop) {\n return this._move(e, prop, 'Right');\n },\n\n /**\n * Moves cursor left without keeping selection\n * @param {Event} e\n */\n moveCursorLeftWithoutShift: function(e) {\n var change = true;\n this._selectionDirection = 'left';\n\n // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n if (this.selectionEnd === this.selectionStart && this.selectionStart !== 0) {\n change = this._moveLeft(e, 'selectionStart');\n\n }\n this.selectionEnd = this.selectionStart;\n return change;\n },\n\n /**\n * Moves cursor left while keeping selection\n * @param {Event} e\n */\n moveCursorLeftWithShift: function(e) {\n if (this._selectionDirection === 'right' && this.selectionStart !== this.selectionEnd) {\n return this._moveLeft(e, 'selectionEnd');\n }\n else if (this.selectionStart !== 0){\n this._selectionDirection = 'left';\n return this._moveLeft(e, 'selectionStart');\n }\n },\n\n /**\n * Moves cursor right\n * @param {Event} e Event object\n */\n moveCursorRight: function(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\n this._moveCursorLeftOrRight('Right', e);\n },\n\n /**\n * Moves cursor right or Left, fires event\n * @param {String} direction 'Left', 'Right'\n * @param {Event} e Event object\n */\n _moveCursorLeftOrRight: function(direction, e) {\n var actionName = 'moveCursor' + direction + 'With';\n this._currentCursorOpacity = 1;\n\n if (e.shiftKey) {\n actionName += 'Shift';\n }\n else {\n actionName += 'outShift';\n }\n if (this[actionName](e)) {\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor right while keeping selection\n * @param {Event} e\n */\n moveCursorRightWithShift: function(e) {\n if (this._selectionDirection === 'left' && this.selectionStart !== this.selectionEnd) {\n return this._moveRight(e, 'selectionStart');\n }\n else if (this.selectionEnd !== this._text.length) {\n this._selectionDirection = 'right';\n return this._moveRight(e, 'selectionEnd');\n }\n },\n\n /**\n * Moves cursor right without keeping selection\n * @param {Event} e Event object\n */\n moveCursorRightWithoutShift: function(e) {\n var changed = true;\n this._selectionDirection = 'right';\n\n if (this.selectionStart === this.selectionEnd) {\n changed = this._moveRight(e, 'selectionStart');\n this.selectionEnd = this.selectionStart;\n }\n else {\n this.selectionStart = this.selectionEnd;\n }\n return changed;\n },\n\n /**\n * Removes characters from start/end\n * start/end ar per grapheme position in _text array.\n *\n * @param {Number} start\n * @param {Number} end default to start + 1\n */\n removeChars: function(start, end) {\n if (typeof end === 'undefined') {\n end = start + 1;\n }\n this.removeStyleFromTo(start, end);\n this._text.splice(start, end - start);\n this.text = this._text.join('');\n this.set('dirty', true);\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this._removeExtraneousStyles();\n },\n\n /**\n * insert characters at start position, before start position.\n * start equal 1 it means the text get inserted between actual grapheme 0 and 1\n * if style array is provided, it must be as the same length of text in graphemes\n * if end is provided and is bigger than start, old text is replaced.\n * start/end ar per grapheme position in _text array.\n *\n * @param {String} text text to insert\n * @param {Array} style array of style objects\n * @param {Number} start\n * @param {Number} end default to start + 1\n */\n insertChars: function(text, style, start, end) {\n if (typeof end === 'undefined') {\n end = start;\n }\n if (end > start) {\n this.removeStyleFromTo(start, end);\n }\n var graphemes = fabric.util.string.graphemeSplit(text);\n this.insertNewStyleBlock(graphemes, start, style);\n this._text = [].concat(this._text.slice(0, start), graphemes, this._text.slice(end));\n this.text = this._text.join('');\n this.set('dirty', true);\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this._removeExtraneousStyles();\n },\n\n});\n\n\n/* _TO_SVG_START_ */\n(function() {\n var toFixed = fabric.util.toFixed,\n multipleSpacesRegex = / +/g;\n\n fabric.util.object.extend(fabric.Text.prototype, /** @lends fabric.Text.prototype */ {\n\n /**\n * Returns SVG representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n _toSVG: function() {\n var offsets = this._getSVGLeftTopOffsets(),\n textAndBg = this._getSVGTextAndBg(offsets.textTop, offsets.textLeft);\n return this._wrapSVGTextAndBg(textAndBg);\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n return this._createBaseSVGMarkup(\n this._toSVG(),\n { reviver: reviver, noStyle: true, withShadow: true }\n );\n },\n\n /**\n * @private\n */\n _getSVGLeftTopOffsets: function() {\n return {\n textLeft: -this.width / 2,\n textTop: -this.height / 2,\n lineTop: this.getHeightOfLine(0)\n };\n },\n\n /**\n * @private\n */\n _wrapSVGTextAndBg: function(textAndBg) {\n var noShadow = true,\n textDecoration = this.getSvgTextDecoration(this);\n return [\n textAndBg.textBgRects.join(''),\n '\\t\\t',\n textAndBg.textSpans.join(''),\n '\\n'\n ];\n },\n\n /**\n * @private\n * @param {Number} textTopOffset Text top offset\n * @param {Number} textLeftOffset Text left offset\n * @return {Object}\n */\n _getSVGTextAndBg: function(textTopOffset, textLeftOffset) {\n var textSpans = [],\n textBgRects = [],\n height = textTopOffset, lineOffset;\n // bounding-box background\n this._setSVGBg(textBgRects);\n\n // text and text-background\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n lineOffset = this._getLineLeftOffset(i);\n if (this.textBackgroundColor || this.styleHas('textBackgroundColor', i)) {\n this._setSVGTextLineBg(textBgRects, i, textLeftOffset + lineOffset, height);\n }\n this._setSVGTextLineText(textSpans, i, textLeftOffset + lineOffset, height);\n height += this.getHeightOfLine(i);\n }\n\n return {\n textSpans: textSpans,\n textBgRects: textBgRects\n };\n },\n\n /**\n * @private\n */\n _createTextCharSpan: function(_char, styleDecl, left, top) {\n var shouldUseWhitespace = _char !== _char.trim() || _char.match(multipleSpacesRegex),\n styleProps = this.getSvgSpanStyles(styleDecl, shouldUseWhitespace),\n fillStyles = styleProps ? 'style=\"' + styleProps + '\"' : '',\n dy = styleDecl.deltaY, dySpan = '',\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n if (dy) {\n dySpan = ' dy=\"' + toFixed(dy, NUM_FRACTION_DIGITS) + '\" ';\n }\n return [\n '',\n fabric.util.string.escapeXml(_char),\n ''\n ].join('');\n },\n\n _setSVGTextLineText: function(textSpans, lineIndex, textLeftOffset, textTopOffset) {\n // set proper line offset\n var lineHeight = this.getHeightOfLine(lineIndex),\n isJustify = this.textAlign.indexOf('justify') !== -1,\n actualStyle,\n nextStyle,\n charsToRender = '',\n charBox, style,\n boxWidth = 0,\n line = this._textLines[lineIndex],\n timeToRender;\n\n textTopOffset += lineHeight * (1 - this._fontSizeFraction) / this.lineHeight;\n for (var i = 0, len = line.length - 1; i <= len; i++) {\n timeToRender = i === len || this.charSpacing;\n charsToRender += line[i];\n charBox = this.__charBounds[lineIndex][i];\n if (boxWidth === 0) {\n textLeftOffset += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\n }\n if (!timeToRender) {\n // if we have charSpacing, we render char by char\n actualStyle = actualStyle || this.getCompleteStyleDeclaration(lineIndex, i);\n nextStyle = this.getCompleteStyleDeclaration(lineIndex, i + 1);\n timeToRender = this._hasStyleChangedForSvg(actualStyle, nextStyle);\n }\n if (timeToRender) {\n style = this._getStyleDeclaration(lineIndex, i) || { };\n textSpans.push(this._createTextCharSpan(charsToRender, style, textLeftOffset, textTopOffset));\n charsToRender = '';\n actualStyle = nextStyle;\n textLeftOffset += boxWidth;\n boxWidth = 0;\n }\n }\n },\n\n _pushTextBgRect: function(textBgRects, color, left, top, width, height) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push(\n '\\t\\t\\n');\n },\n\n _setSVGTextLineBg: function(textBgRects, i, leftOffset, textTopOffset) {\n var line = this._textLines[i],\n heightOfLine = this.getHeightOfLine(i) / this.lineHeight,\n boxWidth = 0,\n boxStart = 0,\n charBox, currentColor,\n lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentColor = this.getValueOfPropertyAt(i, j, 'textBackgroundColor');\n if (currentColor !== lastColor) {\n lastColor && this._pushTextBgRect(textBgRects, lastColor, leftOffset + boxStart,\n textTopOffset, boxWidth, heightOfLine);\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n currentColor && this._pushTextBgRect(textBgRects, currentColor, leftOffset + boxStart,\n textTopOffset, boxWidth, heightOfLine);\n },\n\n /**\n * Adobe Illustrator (at least CS5) is unable to render rgba()-based fill values\n * we work around it by \"moving\" alpha channel into opacity attribute and setting fill's alpha to 1\n *\n * @private\n * @param {*} value\n * @return {String}\n */\n _getFillAttributes: function(value) {\n var fillColor = (value && typeof value === 'string') ? new fabric.Color(value) : '';\n if (!fillColor || !fillColor.getSource() || fillColor.getAlpha() === 1) {\n return 'fill=\"' + value + '\"';\n }\n return 'opacity=\"' + fillColor.getAlpha() + '\" fill=\"' + fillColor.setAlpha(1).toRgb() + '\"';\n },\n\n /**\n * @private\n */\n _getSVGLineTopOffset: function(lineIndex) {\n var lineTopOffset = 0, lastHeight = 0;\n for (var j = 0; j < lineIndex; j++) {\n lineTopOffset += this.getHeightOfLine(j);\n }\n lastHeight = this.getHeightOfLine(j);\n return {\n lineTop: lineTopOffset,\n offset: (this._fontSizeMult - this._fontSizeFraction) * lastHeight / (this.lineHeight * this._fontSizeMult)\n };\n },\n\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles: function(skipShadow) {\n var svgStyle = fabric.Object.prototype.getSvgStyles.call(this, skipShadow);\n return svgStyle + ' white-space: pre;';\n },\n });\n})();\n/* _TO_SVG_END_ */\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {});\n\n /**\n * Textbox class, based on IText, allows the user to resize the text rectangle\n * and wraps lines automatically. Textboxes have their Y scaling locked, the\n * user can only change width. Height is adjusted automatically based on the\n * wrapping of lines.\n * @class fabric.Textbox\n * @extends fabric.IText\n * @mixes fabric.Observable\n * @return {fabric.Textbox} thisArg\n * @see {@link fabric.Textbox#initialize} for constructor definition\n */\n fabric.Textbox = fabric.util.createClass(fabric.IText, fabric.Observable, {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'textbox',\n\n /**\n * Minimum width of textbox, in pixels.\n * @type Number\n * @default\n */\n minWidth: 20,\n\n /**\n * Minimum calculated width of a textbox, in pixels.\n * fixed to 2 so that an empty textbox cannot go to 0\n * and is still selectable without text.\n * @type Number\n * @default\n */\n dynamicMinWidth: 2,\n\n /**\n * Cached array of text wrapping.\n * @type Array\n */\n __cachedLines: null,\n\n /**\n * Override standard Object class values\n */\n lockScalingFlip: true,\n\n /**\n * Override standard Object class values\n * Textbox needs this on false\n */\n noScaleCache: false,\n\n /**\n * Properties which when set cause object to change dimensions\n * @type Object\n * @private\n */\n _dimensionAffectingProps: fabric.Text.prototype._dimensionAffectingProps.concat('width'),\n\n /**\n * Use this regular expression to split strings in breakable lines\n * @private\n */\n _wordJoiners: /[ \\t\\r]/,\n\n /**\n * Use this boolean property in order to split strings that have no white space concept.\n * this is a cheap way to help with chinese/japaense\n * @type Boolean\n * @since 2.6.0\n */\n splitByGrapheme: false,\n\n /**\n * Unlike superclass's version of this function, Textbox does not update\n * its width.\n * @private\n * @override\n */\n initDimensions: function() {\n if (this.__skipDimension) {\n return;\n }\n this.isEditing && this.initDelayedCursor();\n this.clearContextTop();\n this._clearCache();\n // clear dynamicMinWidth as it will be different after we re-wrap line\n this.dynamicMinWidth = 0;\n // wrap lines\n this._styleMap = this._generateStyleMap(this._splitText());\n // if after wrapping, the width is smaller than dynamicMinWidth, change the width and re-wrap\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n }\n if (this.textAlign.indexOf('justify') !== -1) {\n // once text is measured we need to make space fatter to make justified text.\n this.enlargeSpaces();\n }\n // clear cache and re-calculate height\n this.height = this.calcTextHeight();\n this.saveState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Generate an object that translates the style object so that it is\n * broken up by visual lines (new lines and automatic wrapping).\n * The original text styles object is broken up by actual lines (new lines only),\n * which is only sufficient for Text / IText\n * @private\n */\n _generateStyleMap: function(textInfo) {\n var realLineCount = 0,\n realLineCharCount = 0,\n charCount = 0,\n map = {};\n\n for (var i = 0; i < textInfo.graphemeLines.length; i++) {\n if (textInfo.graphemeText[charCount] === '\\n' && i > 0) {\n realLineCharCount = 0;\n charCount++;\n realLineCount++;\n }\n else if (!this.splitByGrapheme && this._reSpaceAndTab.test(textInfo.graphemeText[charCount]) && i > 0) {\n // this case deals with space's that are removed from end of lines when wrapping\n realLineCharCount++;\n charCount++;\n }\n\n map[i] = { line: realLineCount, offset: realLineCharCount };\n\n charCount += textInfo.graphemeLines[i].length;\n realLineCharCount += textInfo.graphemeLines[i].length;\n }\n\n return map;\n },\n\n /**\n * Returns true if object has a style property or has it on a specified line\n * @param {Number} lineIndex\n * @return {Boolean}\n */\n styleHas: function(property, lineIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n if (map) {\n lineIndex = map.line;\n }\n }\n return fabric.Text.prototype.styleHas.call(this, property, lineIndex);\n },\n\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles: function(lineIndex) {\n if (!this.styles) {\n return true;\n }\n var offset = 0, nextLineIndex = lineIndex + 1, nextOffset, obj, shouldLimit = false,\n map = this._styleMap[lineIndex], mapNextLine = this._styleMap[lineIndex + 1];\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n obj = typeof lineIndex === 'undefined' ? this.styles : { line: this.styles[lineIndex] };\n for (var p1 in obj) {\n for (var p2 in obj[p1]) {\n if (p2 >= offset && (!shouldLimit || p2 < nextOffset)) {\n // eslint-disable-next-line no-unused-vars\n for (var p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n }\n return true;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _getStyleDeclaration: function(lineIndex, charIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n if (!map) {\n return null;\n }\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\n return this.callSuper('_getStyleDeclaration', lineIndex, charIndex);\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n _setStyleDeclaration: function(lineIndex, charIndex, style) {\n var map = this._styleMap[lineIndex];\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n\n this.styles[lineIndex][charIndex] = style;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _deleteStyleDeclaration: function(lineIndex, charIndex) {\n var map = this._styleMap[lineIndex];\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n delete this.styles[lineIndex][charIndex];\n },\n\n /**\n * probably broken need a fix\n * Returns the real style line that correspond to the wrapped lineIndex line\n * Used just to verify if the line does exist or not.\n * @param {Number} lineIndex\n * @returns {Boolean} if the line exists or not\n * @private\n */\n _getLineStyle: function(lineIndex) {\n var map = this._styleMap[lineIndex];\n return !!this.styles[map.line];\n },\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @param {Object} style\n * @private\n */\n _setLineStyle: function(lineIndex) {\n var map = this._styleMap[lineIndex];\n this.styles[map.line] = {};\n },\n\n /**\n * Wraps text using the 'width' property of Textbox. First this function\n * splits text on newlines, so we preserve newlines entered by the user.\n * Then it wraps each line using the width of the Textbox by calling\n * _wrapLine().\n * @param {Array} lines The string array of text that is split into lines\n * @param {Number} desiredWidth width you want to wrap to\n * @returns {Array} Array of lines\n */\n _wrapText: function(lines, desiredWidth) {\n var wrapped = [], i;\n this.isWrapping = true;\n for (i = 0; i < lines.length; i++) {\n wrapped = wrapped.concat(this._wrapLine(lines[i], i, desiredWidth));\n }\n this.isWrapping = false;\n return wrapped;\n },\n\n /**\n * Helper function to measure a string of text, given its lineIndex and charIndex offset\n * it gets called when charBounds are not available yet.\n * @param {CanvasRenderingContext2D} ctx\n * @param {String} text\n * @param {number} lineIndex\n * @param {number} charOffset\n * @returns {number}\n * @private\n */\n _measureWord: function(word, lineIndex, charOffset) {\n var width = 0, prevGrapheme, skipLeft = true;\n charOffset = charOffset || 0;\n for (var i = 0, len = word.length; i < len; i++) {\n var box = this._getGraphemeBox(word[i], lineIndex, i + charOffset, prevGrapheme, skipLeft);\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\n return width;\n },\n\n /**\n * Wraps a line of text using the width of the Textbox and a context.\n * @param {Array} line The grapheme array that represent the line\n * @param {Number} lineIndex\n * @param {Number} desiredWidth width you want to wrap the line to\n * @param {Number} reservedSpace space to remove from wrapping for custom functionalities\n * @returns {Array} Array of line(s) into which the given text is wrapped\n * to.\n */\n _wrapLine: function(_line, lineIndex, desiredWidth, reservedSpace) {\n var lineWidth = 0,\n splitByGrapheme = this.splitByGrapheme,\n graphemeLines = [],\n line = [],\n // spaces in different languges?\n words = splitByGrapheme ? fabric.util.string.graphemeSplit(_line) : _line.split(this._wordJoiners),\n word = '',\n offset = 0,\n infix = splitByGrapheme ? '' : ' ',\n wordWidth = 0,\n infixWidth = 0,\n largestWordWidth = 0,\n lineJustStarted = true,\n additionalSpace = this._getWidthOfCharSpacing(),\n reservedSpace = reservedSpace || 0;\n // fix a difference between split and graphemeSplit\n if (words.length === 0) {\n words.push([]);\n }\n desiredWidth -= reservedSpace;\n for (var i = 0; i < words.length; i++) {\n // if using splitByGrapheme words are already in graphemes.\n word = splitByGrapheme ? words[i] : fabric.util.string.graphemeSplit(words[i]);\n wordWidth = this._measureWord(word, lineIndex, offset);\n offset += word.length;\n\n lineWidth += infixWidth + wordWidth - additionalSpace;\n if (lineWidth >= desiredWidth && !lineJustStarted) {\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth;\n lineJustStarted = true;\n }\n else {\n lineWidth += additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n line = line.concat(word);\n\n infixWidth = splitByGrapheme ? 0 : this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false;\n // keep track of largest word\n if (wordWidth > largestWordWidth) {\n largestWordWidth = wordWidth;\n }\n }\n\n i && graphemeLines.push(line);\n\n if (largestWordWidth + reservedSpace > this.dynamicMinWidth) {\n this.dynamicMinWidth = largestWordWidth - additionalSpace + reservedSpace;\n }\n return graphemeLines;\n },\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @param {Number} lineIndex text to split\n * @return {Boolean}\n */\n isEndOfWrapping: function(lineIndex) {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\n if (this._styleMap[lineIndex + 1].line !== this._styleMap[lineIndex].line) {\n // this is last line before a line break, return true;\n return true;\n }\n return false;\n },\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * @return Number\n */\n missingNewlineOffset: function(lineIndex) {\n if (this.splitByGrapheme) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\n return 1;\n },\n\n /**\n * Gets lines of text to render in the Textbox. This function calculates\n * text wrapping on the fly every time it is called.\n * @param {String} text text to split\n * @returns {Array} Array of lines in the Textbox.\n * @override\n */\n _splitTextIntoLines: function(text) {\n var newText = fabric.Text.prototype._splitTextIntoLines.call(this, text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (var i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n },\n\n getMinWidth: function() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n },\n\n _removeExtraneousStyles: function() {\n var linesToKeep = {};\n for (var prop in this._styleMap) {\n if (this._textLines[prop]) {\n linesToKeep[this._styleMap[prop].line] = 1;\n }\n }\n for (var prop in this.styles) {\n if (!linesToKeep[prop]) {\n delete this.styles[prop];\n }\n }\n },\n\n /**\n * Returns object representation of an instance\n * @method toObject\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['minWidth', 'splitByGrapheme'].concat(propertiesToInclude));\n }\n });\n\n /**\n * Returns fabric.Textbox instance from an object representation\n * @static\n * @memberOf fabric.Textbox\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Textbox instance is created\n */\n fabric.Textbox.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Textbox', object, callback, 'text');\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n\n var controlsUtils = fabric.controlsUtils,\n scaleSkewStyleHandler = controlsUtils.scaleSkewCursorStyleHandler,\n scaleStyleHandler = controlsUtils.scaleCursorStyleHandler,\n scalingEqually = controlsUtils.scalingEqually,\n scalingYOrSkewingX = controlsUtils.scalingYOrSkewingX,\n scalingXOrSkewingY = controlsUtils.scalingXOrSkewingY,\n scaleOrSkewActionName = controlsUtils.scaleOrSkewActionName,\n objectControls = fabric.Object.prototype.controls;\n\n objectControls.ml = new fabric.Control({\n x: -0.5,\n y: 0,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingXOrSkewingY,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.mr = new fabric.Control({\n x: 0.5,\n y: 0,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingXOrSkewingY,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.mb = new fabric.Control({\n x: 0,\n y: 0.5,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingYOrSkewingX,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.mt = new fabric.Control({\n x: 0,\n y: -0.5,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionHandler: scalingYOrSkewingX,\n getActionName: scaleOrSkewActionName,\n });\n\n objectControls.tl = new fabric.Control({\n x: -0.5,\n y: -0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.tr = new fabric.Control({\n x: 0.5,\n y: -0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.bl = new fabric.Control({\n x: -0.5,\n y: 0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.br = new fabric.Control({\n x: 0.5,\n y: 0.5,\n cursorStyleHandler: scaleStyleHandler,\n actionHandler: scalingEqually\n });\n\n objectControls.mtr = new fabric.Control({\n x: 0,\n y: -0.5,\n actionHandler: controlsUtils.rotationWithSnapping,\n cursorStyleHandler: controlsUtils.rotationStyleHandler,\n offsetY: -40,\n withConnection: true,\n actionName: 'rotate',\n });\n\n if (fabric.Textbox) {\n // this is breaking the prototype inheritance, no time / ideas to fix it.\n // is important to document that if you want to have all objects to have a\n // specific custom control, you have to add it to Object prototype and to Textbox\n // prototype. The controls are shared as references. So changes to control `tr`\n // can still apply to all objects if needed.\n var textBoxControls = fabric.Textbox.prototype.controls = { };\n\n textBoxControls.mtr = objectControls.mtr;\n textBoxControls.tr = objectControls.tr;\n textBoxControls.br = objectControls.br;\n textBoxControls.tl = objectControls.tl;\n textBoxControls.bl = objectControls.bl;\n textBoxControls.mt = objectControls.mt;\n textBoxControls.mb = objectControls.mb;\n\n textBoxControls.mr = new fabric.Control({\n x: 0.5,\n y: 0,\n actionHandler: controlsUtils.changeWidth,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionName: 'resizing',\n });\n\n textBoxControls.ml = new fabric.Control({\n x: -0.5,\n y: 0,\n actionHandler: controlsUtils.changeWidth,\n cursorStyleHandler: scaleSkewStyleHandler,\n actionName: 'resizing',\n });\n }\n})();\n\n","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t}\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtypeObject,\n\tArchtypeArray,\n\tArchtypeMap,\n\tArchtypeSet,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\treturn !proto || proto === Object.prototype\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === ArchtypeObject) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): 0 | 1 | 2 | 3 {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? ArchtypeArray\n\t\t: isMap(thing)\n\t\t? ArchtypeMap\n\t\t: isSet(thing)\n\t\t? ArchtypeSet\n\t\t: ArchtypeObject\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchtypeMap\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchtypeMap ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchtypeMap) thing.set(propOrOldValue, value)\n\telse if (t === ArchtypeSet) {\n\t\tthing.delete(propOrOldValue)\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tSetState,\n\tImmerScope,\n\tProxyObjectState,\n\tProxyArrayState,\n\tES5ObjectState,\n\tES5ArrayState,\n\tMapState,\n\tDRAFT_STATE\n} from \"../internal\"\n\nexport type Objectish = AnyObject | AnyArray | AnyMap | AnySet\nexport type ObjectishNoSet = AnyObject | AnyArray | AnyMap\n\nexport type AnyObject = {[key: string]: any}\nexport type AnyArray = Array\nexport type AnySet = Set\nexport type AnyMap = Map\n\nexport const ArchtypeObject = 0\nexport const ArchtypeArray = 1\nexport const ArchtypeMap = 2\nexport const ArchtypeSet = 3\n\nexport const ProxyTypeProxyObject = 0\nexport const ProxyTypeProxyArray = 1\nexport const ProxyTypeES5Object = 4\nexport const ProxyTypeES5Array = 5\nexport const ProxyTypeMap = 2\nexport const ProxyTypeSet = 3\n\nexport interface ImmerBaseState {\n\tparent_?: ImmerState\n\tscope_: ImmerScope\n\tmodified_: boolean\n\tfinalized_: boolean\n\tisManual_: boolean\n}\n\nexport type ImmerState =\n\t| ProxyObjectState\n\t| ProxyArrayState\n\t| ES5ObjectState\n\t| ES5ArrayState\n\t| MapState\n\t| SetState\n\n// The _internal_ type used for drafts (not to be confused with Draft, which is public facing)\nexport type Drafted = {\n\t[DRAFT_STATE]: T\n} & Base\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tProxyTypeMap,\n\tProxyTypeSet,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\trootState: ImmerState,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: typeof ProxyTypeES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeMap\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: typeof ProxyTypeSet\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyTypeProxyObject ||\n\t\tstate.type_ === ProxyTypeProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyTypeES5Object,\n\tProxyTypeES5Array,\n\tProxyTypeSet,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE],\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumarable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyTypeES5Object || state.type_ === ProxyTypeES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// Although the original test case doesn't seem valid anyway, so if this in the way we can turn the next line\n\t\t// back to each(result, ....)\n\t\teach(\n\t\t\tstate.type_ === ProxyTypeSet ? new Set(result) : result,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyTypeSet && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\tif (scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyTypeProxyObject,\n\tProxyTypeProxyArray\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: typeof ProxyTypeProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyTypeProxyArray : (ProxyTypeProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existig to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyTypeProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\treturn objectTraps.deleteProperty!.call(this, state[0], prop)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tthis.produce = this.produce.bind(this)\n\t\tthis.produceWithPatches = this.produceWithPatches.bind(this)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce(base: any, recipe?: any, patchListener?: any) {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === NOTHING) return undefined\n\t\t\tif (result === undefined) result = base\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches(arg1: any, arg2?: any, arg3?: any): any {\n\t\tif (typeof arg1 === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => arg1(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst nextState = this.produce(arg1, arg2, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [nextState, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is disabled in production.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: Objectish, patches: Patch[]) {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches.slice(i + 1))\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtypeMap,\n\tArchtypeSet,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === ArchtypeSet ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase ArchtypeMap:\n\t\t\treturn new Map(value)\n\t\tcase ArchtypeSet:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyTypeES5Array,\n\tProxyTypeES5Object,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyTypeES5Array : (ProxyTypeES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyTypeES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyTypeES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyTypeES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyTypeES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyTypeES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is disabled in production.\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","function defaultEqualityCheck(a, b) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(equalityCheck, prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n var length = prev.length;\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function defaultMemoize(func) {\n var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck;\n\n var lastArgs = null;\n var lastResult = null;\n // we reference arguments instead of spreading them for performance reasons\n return function () {\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n lastResult = func.apply(null, arguments);\n }\n\n lastArgs = arguments;\n return lastResult;\n };\n}\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep;\n }).join(', ');\n throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptions[_key - 1] = arguments[_key];\n }\n\n return function () {\n for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var recomputations = 0;\n var resultFunc = funcs.pop();\n var dependencies = getDependencies(funcs);\n\n var memoizedResultFunc = memoize.apply(undefined, [function () {\n recomputations++;\n // apply arguments instead of spreading for performance.\n return resultFunc.apply(null, arguments);\n }].concat(memoizeOptions));\n\n // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n var selector = memoize(function () {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n params.push(dependencies[i].apply(null, arguments));\n }\n\n // apply arguments instead of spreading for performance.\n return memoizedResultFunc.apply(null, params);\n });\n\n selector.resultFunc = resultFunc;\n selector.dependencies = dependencies;\n selector.recomputations = function () {\n return recomputations;\n };\n selector.resetRecomputations = function () {\n return recomputations = 0;\n };\n return selector;\n };\n}\n\nexport var createSelector = createSelectorCreator(defaultMemoize);\n\nexport function createStructuredSelector(selectors) {\n var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector;\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors));\n }\n var objectKeys = Object.keys(selectors);\n return selectorCreator(objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n}","import { Action, ActionCreator, StoreEnhancer, compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface EnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * See detailed documentation at http://extension.remotedev.io/docs/API/Arguments.html#serialize\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n options?:\r\n | boolean\r\n | {\r\n date?: boolean\r\n regex?: boolean\r\n undefined?: boolean\r\n error?: boolean\r\n symbol?: boolean\r\n map?: boolean\r\n set?: boolean\r\n function?: boolean | Function\r\n }\r\n replacer?: (key: string, value: unknown) => unknown\r\n reviver?: (key: string, value: unknown) => unknown\r\n immutable?: unknown\r\n refs?: unknown[]\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsBlacklist`/`actionsWhitelist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: {\r\n (options: EnhancerOptions): typeof compose\r\n (...funcs: Array>): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function() {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, (arguments as any) as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: EnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function() {\r\n return function(noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * protoype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = value\r\n while (Object.getPrototypeOf(proto) !== null) {\r\n proto = Object.getPrototypeOf(proto)\r\n }\r\n\r\n return Object.getPrototypeOf(value) === proto\r\n}\r\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\nimport * as React from 'react';\n\n// Assertions\n\n/** @private is the value an empty array? */\nexport const isEmptyArray = (value?: any) =>\n Array.isArray(value) && value.length === 0;\n\n/** @private is the given object a Function? */\nexport const isFunction = (obj: any): obj is Function =>\n typeof obj === 'function';\n\n/** @private is the given object an Object? */\nexport const isObject = (obj: any): obj is Object =>\n obj !== null && typeof obj === 'object';\n\n/** @private is the given object an integer? */\nexport const isInteger = (obj: any): boolean =>\n String(Math.floor(Number(obj))) === obj;\n\n/** @private is the given object a string? */\nexport const isString = (obj: any): obj is string =>\n Object.prototype.toString.call(obj) === '[object String]';\n\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\nexport const isNaN = (obj: any): boolean => obj !== obj;\n\n/** @private Does a React component have exactly 0 children? */\nexport const isEmptyChildren = (children: any): boolean =>\n React.Children.count(children) === 0;\n\n/** @private is the given object/value a promise? */\nexport const isPromise = (value: any): value is PromiseLike =>\n isObject(value) && isFunction(value.then);\n\n/** @private is the given object/value a type of synthetic event? */\nexport const isInputEvent = (value: any): value is React.SyntheticEvent =>\n value && isObject(value) && isObject(value.target);\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?Document} doc Defaults to current document.\n * @return {Element | null}\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\n */\nexport function getActiveElement(doc?: Document): Element | null {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(\n obj: any,\n key: string | string[],\n def?: any,\n p: number = 0\n) {\n const path = toPath(key);\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n return obj === undefined ? def : obj;\n}\n\n/**\n * Deeply set a value from in object via it's path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n let res: any = clone(obj); // this keeps inheritance when obj is a class\n let resVal: any = res;\n let i = 0;\n let pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n const currentPath: string = pathArray[i];\n let currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n const nextPath: string = pathArray[i + 1];\n resVal = resVal[currentPath] =\n isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n }\n\n // Return original object if new value is the same as current\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n }\n\n // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n\n/**\n * Recursively a set the same value for all keys and arrays nested object, cloning\n * @param object\n * @param value\n * @param visited\n * @param response\n */\nexport function setNestedObjectValues(\n object: any,\n value: any,\n visited: any = new WeakMap(),\n response: any = {}\n): T {\n for (let k of Object.keys(object)) {\n const val = object[k];\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true);\n // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n","import { Middleware, AnyAction } from 'redux'\r\nimport thunkMiddleware, { ThunkMiddleware } from 'redux-thunk'\r\nimport {\r\n /* PROD_START_REMOVE_UMD */\r\n createImmutableStateInvariantMiddleware,\r\n /* PROD_STOP_REMOVE_UMD */\r\n ImmutableStateInvariantMiddlewareOptions\r\n} from './immutableStateInvariantMiddleware'\r\n\r\nimport {\r\n createSerializableStateInvariantMiddleware,\r\n SerializableStateInvariantMiddlewareOptions\r\n} from './serializableStateInvariantMiddleware'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n :\r\n | ThunkMiddleware //The ThunkMiddleware with a `null` ExtraArgument is here to provide backwards-compatibility.\r\n | ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray | ThunkMiddlewareFor>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray | ThunkMiddlewareFor> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true\r\n } = options\r\n\r\n let middlewareArray: Middleware<{}, S>[] = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import {\r\n createStore,\r\n compose,\r\n applyMiddleware,\r\n combineReducers,\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n DeepPartial,\r\n Dispatch\r\n} from 'redux'\r\nimport {\r\n composeWithDevTools,\r\n EnhancerOptions as DevToolsOptions\r\n} from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport {\r\n ThunkMiddlewareFor,\r\n curryGetDefaultMiddleware,\r\n CurriedGetDefaultMiddleware\r\n} from './getDefaultMiddleware'\r\nimport { DispatchForMiddlewares } from './tsHelpers'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: StoreEnhancer[]\r\n) => StoreEnhancer[]\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n // NOTE: The needlessly complicated `S extends any ? S : S` instead of just\r\n // `S` ensures that the TypeScript compiler doesn't attempt to infer `S`\r\n // based on the value passed as `preloadedState`, which might be a partial\r\n // state rather than the full thing.\r\n preloadedState?: DeepPartial\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: StoreEnhancer[] | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport interface EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: DispatchForMiddlewares & Dispatch\r\n}\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param config The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer)\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n const middlewareEnhancer = applyMiddleware(\r\n ...(typeof middleware === 'function'\r\n ? middleware(curriedGetDefaultMiddleware)\r\n : middleware)\r\n )\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools)\r\n })\r\n }\r\n\r\n let storeEnhancers: StoreEnhancer[] = [middlewareEnhancer]\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(storeEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as any\r\n\r\n return createStore(rootReducer, preloadedState as any, composedEnhancer)\r\n}\r\n","import { Action } from 'redux'\r\nimport {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny\r\n} from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

=\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\ninterface BaseActionCreator {\r\n type: T\r\n match(action: Action): action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

| void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overriden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overriden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error })\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\nexport function isFSA(\r\n action: unknown\r\n): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isPlainObject(action) &&\r\n typeof (action as any).type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import { Action, AnyAction } from 'redux'\r\nimport {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcher,\r\n ActionMatcherDescriptionCollection\r\n} from './createReducer'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/advanced-types.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: ActionMatcher | ((action: AnyAction) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior, \r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (type in actionsMap) {\r\n throw new Error(\r\n 'addCase cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: ActionMatcher,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n }\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import { Reducer } from 'redux'\r\nimport {\r\n ActionCreatorWithoutPayload,\r\n createAction,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload\r\n} from './createAction'\r\nimport { CaseReducer, CaseReducers, createReducer } from './createReducer'\r\nimport {\r\n ActionReducerMapBuilder,\r\n executeReducerBuilderCallback\r\n} from './mapBuilders'\r\nimport { NoInfer } from './tsHelpers'\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state to be returned by the slice reducer.\r\n */\r\n initialState: State\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare\r\n : ActionCreatorForCaseReducer\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any }\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator

\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name, initialState } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n const reducers = options.reducers || {}\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined\r\n ] =\r\n typeof options.extraReducers === 'undefined'\r\n ? []\r\n : typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach(reducerName => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n const reducer = createReducer(\r\n initialState,\r\n finalCaseReducers as any,\r\n actionMatchers,\r\n defaultCaseReducer\r\n )\r\n\r\n return {\r\n name,\r\n reducer,\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any\r\n }\r\n}\r\n","import createNextState, { Draft, isDraft, isDraftable } from 'immer'\r\nimport { AnyAction, Action, Reducer } from 'redux'\r\nimport {\r\n executeReducerBuilderCallback,\r\n ActionReducerMapBuilder\r\n} from './mapBuilders'\r\nimport { NoInfer } from './tsHelpers'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * An *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => S | void | Draft\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - The initial state that should be used when the reducer is called the first time.\r\n * @param builderCallback - A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\ncreateReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer(\r\n initialState: S,\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): Reducer\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - The initial state that should be used when the reducer is called the first time.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S,\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): Reducer\r\n\r\nexport function createReducer(\r\n initialState: S,\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): Reducer {\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n return function(state = initialState, action): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer)\r\n ]\r\n if (caseReducers.filter(cr => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (typeof result === 'undefined') {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (typeof result === 'undefined') {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n}\r\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\n// @ts-ignore\r\nexport { default as createNextState, Draft, current, freeze } from 'immer'\r\nexport {\r\n createSelector,\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport { ThunkAction, ThunkDispatch } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore\r\n} from './configureStore'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator\r\n} from './createSlice'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n // types\r\n SerializableStateInvariantMiddlewareOptions\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware\r\n} from './getDefaultMiddleware'\r\nexport {\r\n // types\r\n ActionReducerMapBuilder\r\n} from './mapBuilders'\r\nexport { MiddlewareArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer\r\n} from './entities/models'\r\n\r\nexport {\r\n AsyncThunk,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n createAsyncThunk,\r\n unwrapResult,\r\n SerializedError\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","import Symbol from './_Symbol.js';\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\nexport default getRawTag;\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\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\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\nexport default baseGetTag;\n","// https://stackoverflow.com/questions/46176165/ways-to-get-string-literal-type-of-array-values-without-enum-overhead\nexport var tuple = function tuple() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args;\n};\nexport var tupleNum = function tupleNum() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args;\n};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState, useRef } from 'react';\nexport default function useMountStatus(defaultValue) {\n var destroyRef = useRef(false);\n\n var _useState = useState(defaultValue),\n _useState2 = _slicedToArray(_useState, 2),\n val = _useState2[0],\n setVal = _useState2[1];\n\n function setValue(next) {\n if (!destroyRef.current) {\n setVal(next);\n }\n }\n\n useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return [val, setValue];\n}","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useNextFrame from './useNextFrame';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _React$useState = React.useState(STEP_NONE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n step = _React$useState2[0],\n setStep = _React$useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useState from './useState';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n var destroyedRef = useRef(false); // =========================== Dom Node ===========================\n\n var cacheElementRef = useRef(null);\n\n function getDomElement() {\n var element = getElement();\n return element || cacheElementRef.current;\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var canEnd;\n\n if (status === STATUS_APPEAR && activeRef.current) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && activeRef.current) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && activeRef.current) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (canEnd !== false && !destroyedRef.current) {\n setStatus(STATUS_NONE);\n setStyle(null);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case 'appear':\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case 'enter':\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case 'leave':\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n\n if (!supportMotion) {\n return;\n }\n\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n clearTimeout(deadlineRef.current);\n destroyedRef.current = true;\n };\n }, []); // Trigger `onVisibleChanged`\n\n useEffect(function () {\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n return findDOMNode(nodeRef.current || wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // ====================== Refs ======================\n\n\n var originRef = useRef(ref);\n originRef.current = ref;\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(originRef.current, node);\n }, []); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n _this.setState(function (_ref) {\n var keyEntities = _ref.keyEntities;\n return {\n keyEntities: keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n })\n };\n });\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n restProps = _objectWithoutProperties(_this$props, [\"component\", \"children\", \"onVisibleChanged\"]);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, Object.assign({}, restProps), keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, [\"status\"]);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, Object.assign({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n }\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\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\nexport default isMasked;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\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\nexport default baseIsNative;\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\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\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\nexport default getNative;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n/*@__PURE__*/ (function () {\n if (!_root) {\n throw /*@__PURE__*/ new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map\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 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","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport ResizeObserver from 'resize-observer-polyfill';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key'; // Still need to be compatible with React 15, we use class component here\n\nvar ReactResizeObserver = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactResizeObserver, _React$Component);\n\n var _super = _createSuper(ReactResizeObserver);\n\n function ReactResizeObserver() {\n var _this;\n\n _classCallCheck(this, ReactResizeObserver);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.childNode = null;\n _this.currentElement = null;\n _this.state = {\n width: 0,\n height: 0,\n offsetHeight: 0,\n offsetWidth: 0\n };\n\n _this.onResize = function (entries) {\n var onResize = _this.props.onResize;\n var target = entries[0].target;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (_this.state.width !== fixedWidth || _this.state.height !== fixedHeight || _this.state.offsetWidth !== offsetWidth || _this.state.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n\n _this.setState(size);\n\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(_objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n }));\n });\n }\n }\n };\n\n _this.setChildNode = function (node) {\n _this.childNode = node;\n };\n\n return _this;\n }\n\n _createClass(ReactResizeObserver, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onComponentUpdated();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyObserver();\n }\n }, {\n key: \"onComponentUpdated\",\n value: function onComponentUpdated() {\n var disabled = this.props.disabled; // Unregister if disabled\n\n if (disabled) {\n this.destroyObserver();\n return;\n } // Unregister if element changed\n\n\n var element = findDOMNode(this.childNode || this);\n var elementChanged = element !== this.currentElement;\n\n if (elementChanged) {\n this.destroyObserver();\n this.currentElement = element;\n }\n\n if (!this.resizeObserver && element) {\n this.resizeObserver = new ResizeObserver(this.onResize);\n this.resizeObserver.observe(element);\n }\n }\n }, {\n key: \"destroyObserver\",\n value: function destroyObserver() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var childNodes = toArray(children);\n\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Will only observe first one.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n return null;\n }\n\n var childNode = childNodes[0];\n\n if (React.isValidElement(childNode) && supportRef(childNode)) {\n var ref = childNode.ref;\n childNodes[0] = React.cloneElement(childNode, {\n ref: composeRef(ref, this.setChildNode)\n });\n }\n\n return childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) {\n if (!React.isValidElement(node) || 'key' in node && node.key !== null) {\n return node;\n }\n\n return React.cloneElement(node, {\n key: \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index)\n });\n });\n }\n }]);\n\n return ReactResizeObserver;\n}(React.Component);\n\nReactResizeObserver.displayName = 'ResizeObserver';\nexport default ReactResizeObserver;","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function toArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n return value !== undefined ? [value] : [];\n}\n/**\n * Convert outer props value into internal value\n */\n\nexport function toInnerValue(value, _ref) {\n var labelInValue = _ref.labelInValue,\n combobox = _ref.combobox;\n\n if (value === undefined || value === '' && combobox) {\n return [];\n }\n\n var values = Array.isArray(value) ? value : [value];\n\n if (labelInValue) {\n return values.map(function (_ref2) {\n var key = _ref2.key,\n val = _ref2.value;\n return val !== undefined ? val : key;\n });\n }\n\n return values;\n}\n/**\n * Convert internal value into out event value\n */\n\nexport function toOuterValues(valueList, _ref3) {\n var optionLabelProp = _ref3.optionLabelProp,\n labelInValue = _ref3.labelInValue,\n prevValue = _ref3.prevValue,\n options = _ref3.options,\n getLabeledValue = _ref3.getLabeledValue;\n var values = valueList;\n\n if (labelInValue) {\n values = values.map(function (val) {\n return getLabeledValue(val, {\n options: options,\n prevValue: prevValue,\n labelInValue: labelInValue,\n optionLabelProp: optionLabelProp\n });\n });\n }\n\n return values;\n}\nexport function removeLastEnabledValue(measureValues, values) {\n var newValues = _toConsumableArray(values);\n\n var removeIndex;\n\n for (removeIndex = measureValues.length - 1; removeIndex >= 0; removeIndex -= 1) {\n if (!measureValues[removeIndex].disabled) {\n break;\n }\n }\n\n var removedValue = null;\n\n if (removeIndex !== -1) {\n removedValue = newValues[removeIndex];\n newValues.splice(removeIndex, 1);\n }\n\n return {\n values: newValues,\n removedValue: removedValue\n };\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nvar uuid = 0;\n/** Get unique id for accessibility usage */\n\nexport function getUUID() {\n var retId; // Test never reach\n\n /* istanbul ignore if */\n\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n\n return retId;\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport { getPosition, isTreeNode } from '../util';\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n\n return pos;\n}\n/**\n * Warning if TreeNode do not provides key\n */\n\nexport function warningWithoutKey() {\n var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var keys = new Map();\n\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode.key,\n children = treeNode.children;\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n\n dig(treeData);\n}\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\n\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n\n var key = treeNode.key;\n\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, [\"children\"]);\n\n var dataNode = _objectSpread({\n key: key\n }, rest);\n\n var parsedChildren = dig(children);\n\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n\n return dig(rootNodes);\n}\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\n\nexport function flattenTreeData() {\n var treeNodeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var expandedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode.key, pos); // Add FlattenDataNode into list\n\n var flattenNode = _objectSpread(_objectSpread({}, treeNode), {}, {\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n\n flattenList.push(flattenNode); // Loop treeNode children\n\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode.children || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n\n return flattenNode;\n });\n }\n\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\n\nexport function traverseDataNodes(dataNodes, callback, externalGetKey) {\n var syntheticGetKey;\n\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node.key, pos);\n };\n }\n\n function processNode(node, index, parent) {\n var children = node ? node.children : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0'; // Process node if is not root\n\n if (node) {\n var key = syntheticGetKey(node, pos);\n var data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1\n };\n callback(data);\n } // Process children node\n\n\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n });\n });\n }\n }\n\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\n\nexport function convertDataToEntities(dataNodes) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref.initWrapper,\n processEntity = _ref.processEntity,\n onProcessFinished = _ref.onProcessFinished;\n\n var externalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level;\n var entity = {\n node: node,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity; // Fill children\n\n entity.parent = posEntities[parentPos];\n\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, externalGetKey);\n\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\n\nexport function getTreeNodeProps(key, _ref2) {\n var expandedKeys = _ref2.expandedKeys,\n selectedKeys = _ref2.selectedKeys,\n loadedKeys = _ref2.loadedKeys,\n loadingKeys = _ref2.loadingKeys,\n checkedKeys = _ref2.checkedKeys,\n halfCheckedKeys = _ref2.halfCheckedKeys,\n dragOverNodeKey = _ref2.dragOverNodeKey,\n dropPosition = _ref2.dropPosition,\n keyEntities = _ref2.keyEntities;\n var entity = keyEntities[key];\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active;\n\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active\n });\n\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n\n return eventData;\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","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\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\nexport default isObject;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\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\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\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\nexport default keys;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\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\nexport default baseToString;\n","import baseToString from './_baseToString.js';\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\nexport default toString;\n","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n\n return {\n remove: function remove() {\n if (target.removeEventListener) {\n target.removeEventListener(eventType, callback);\n }\n }\n };\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","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","var cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n outerStyle.position = 'absolute';\n outerStyle.top = 0;\n outerStyle.left = 0;\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n\n return cached;\n}","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\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\nexport default getTag;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nexport var MiniStoreContext = React.createContext(null);\nvar Provider = /** @class */ (function (_super) {\n __extends(Provider, _super);\n function Provider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Provider.prototype.render = function () {\n return (React.createElement(MiniStoreContext.Provider, { value: this.props.store }, this.props.children));\n };\n return Provider;\n}(React.Component));\nexport { Provider };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport shallowEqual from 'shallowequal';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { MiniStoreContext } from './Provider';\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\nvar defaultMapStateToProps = function () { return ({}); };\nexport function connect(mapStateToProps, options) {\n if (options === void 0) { options = {}; }\n var shouldSubscribe = !!mapStateToProps;\n var finalMapStateToProps = mapStateToProps || defaultMapStateToProps;\n return function wrapWithConnect(WrappedComponent) {\n var Connect = /** @class */ (function (_super) {\n __extends(Connect, _super);\n function Connect(props, context) {\n var _this = _super.call(this, props, context) || this;\n _this.unsubscribe = null;\n _this.handleChange = function () {\n if (!_this.unsubscribe) {\n return;\n }\n var nextState = finalMapStateToProps(_this.store.getState(), _this.props);\n _this.setState({ subscribed: nextState });\n };\n _this.store = _this.context;\n _this.state = {\n subscribed: finalMapStateToProps(_this.store.getState(), props),\n store: _this.store,\n props: props,\n };\n return _this;\n }\n Connect.getDerivedStateFromProps = function (props, prevState) {\n // using ownProps\n if (mapStateToProps && mapStateToProps.length === 2 && props !== prevState.props) {\n return {\n subscribed: finalMapStateToProps(prevState.store.getState(), props),\n props: props,\n };\n }\n return { props: props };\n };\n Connect.prototype.componentDidMount = function () {\n this.trySubscribe();\n };\n Connect.prototype.componentWillUnmount = function () {\n this.tryUnsubscribe();\n };\n Connect.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n return (!shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state.subscribed, nextState.subscribed));\n };\n Connect.prototype.trySubscribe = function () {\n if (shouldSubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange);\n this.handleChange();\n }\n };\n Connect.prototype.tryUnsubscribe = function () {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n Connect.prototype.render = function () {\n var props = __assign(__assign(__assign({}, this.props), this.state.subscribed), { store: this.store });\n return React.createElement(WrappedComponent, __assign({}, props, { ref: this.props.miniStoreForwardedRef }));\n };\n Connect.displayName = \"Connect(\" + getDisplayName(WrappedComponent) + \")\";\n Connect.contextType = MiniStoreContext;\n return Connect;\n }(React.Component));\n if (options.forwardRef) {\n var forwarded = React.forwardRef(function (props, ref) {\n return React.createElement(Connect, __assign({}, props, { miniStoreForwardedRef: ref }));\n });\n return hoistStatics(forwarded, WrappedComponent);\n }\n return hoistStatics(Connect, WrappedComponent);\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nexport function create(initialState) {\n var state = initialState;\n var listeners = [];\n function setState(partial) {\n state = __assign(__assign({}, state), partial);\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n }\n function getState() {\n return state;\n }\n function subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n }\n return {\n setState: setState,\n getState: getState,\n subscribe: subscribe,\n };\n}\n","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n var args = [].slice.call(arguments, 0);\n\n if (args.length === 1) {\n return args[0];\n }\n\n return function chainedFunction() {\n for (var i = 0; i < args.length; i++) {\n if (args[i] && args[i].apply) {\n args[i].apply(this, arguments);\n }\n }\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n// MIT License from https://github.com/kaimallea/isMobile\nvar applePhone = /iPhone/i;\nvar appleIpod = /iPod/i;\nvar appleTablet = /iPad/i;\nvar androidPhone = /\\bAndroid(?:.+)Mobile\\b/i; // Match 'Android' AND 'Mobile'\n\nvar androidTablet = /Android/i;\nvar amazonPhone = /\\bAndroid(?:.+)SD4930UR\\b/i;\nvar amazonTablet = /\\bAndroid(?:.+)(?:KF[A-Z]{2,4})\\b/i;\nvar windowsPhone = /Windows Phone/i;\nvar windowsTablet = /\\bWindows(?:.+)ARM\\b/i; // Match 'Windows' AND 'ARM'\n\nvar otherBlackberry = /BlackBerry/i;\nvar otherBlackberry10 = /BB10/i;\nvar otherOpera = /Opera Mini/i;\nvar otherChrome = /\\b(CriOS|Chrome)(?:.+)Mobile/i;\nvar otherFirefox = /Mobile(?:.+)Firefox\\b/i; // Match 'Mobile' AND 'Firefox'\n\nfunction match(regex, userAgent) {\n return regex.test(userAgent);\n}\n\nfunction isMobile(userAgent) {\n var ua = userAgent || (typeof navigator !== 'undefined' ? navigator.userAgent : ''); // Facebook mobile app's integrated browser adds a bunch of strings that\n // match everything. Strip it out if it exists.\n\n var tmp = ua.split('[FBAN');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp = tmp;\n\n var _tmp2 = _slicedToArray(_tmp, 1);\n\n ua = _tmp2[0];\n } // Twitter mobile app's integrated browser on iPad adds a \"Twitter for\n // iPhone\" string. Same probably happens on other tablet platforms.\n // This will confuse detection so strip it out if it exists.\n\n\n tmp = ua.split('Twitter');\n\n if (typeof tmp[1] !== 'undefined') {\n var _tmp3 = tmp;\n\n var _tmp4 = _slicedToArray(_tmp3, 1);\n\n ua = _tmp4[0];\n }\n\n var result = {\n apple: {\n phone: match(applePhone, ua) && !match(windowsPhone, ua),\n ipod: match(appleIpod, ua),\n tablet: !match(applePhone, ua) && match(appleTablet, ua) && !match(windowsPhone, ua),\n device: (match(applePhone, ua) || match(appleIpod, ua) || match(appleTablet, ua)) && !match(windowsPhone, ua)\n },\n amazon: {\n phone: match(amazonPhone, ua),\n tablet: !match(amazonPhone, ua) && match(amazonTablet, ua),\n device: match(amazonPhone, ua) || match(amazonTablet, ua)\n },\n android: {\n phone: !match(windowsPhone, ua) && match(amazonPhone, ua) || !match(windowsPhone, ua) && match(androidPhone, ua),\n tablet: !match(windowsPhone, ua) && !match(amazonPhone, ua) && !match(androidPhone, ua) && (match(amazonTablet, ua) || match(androidTablet, ua)),\n device: !match(windowsPhone, ua) && (match(amazonPhone, ua) || match(amazonTablet, ua) || match(androidPhone, ua) || match(androidTablet, ua)) || match(/\\bokhttp\\b/i, ua)\n },\n windows: {\n phone: match(windowsPhone, ua),\n tablet: match(windowsTablet, ua),\n device: match(windowsPhone, ua) || match(windowsTablet, ua)\n },\n other: {\n blackberry: match(otherBlackberry, ua),\n blackberry10: match(otherBlackberry10, ua),\n opera: match(otherOpera, ua),\n firefox: match(otherFirefox, ua),\n chrome: match(otherChrome, ua),\n device: match(otherBlackberry, ua) || match(otherBlackberry10, ua) || match(otherOpera, ua) || match(otherFirefox, ua) || match(otherChrome, ua)\n },\n // Additional\n any: null,\n phone: null,\n tablet: null\n };\n result.any = result.apple.device || result.android.device || result.windows.device || result.other.device; // excludes 'other' devices and ipods, targeting touchscreen phones\n\n result.phone = result.apple.phone || result.android.phone || result.windows.phone;\n result.tablet = result.apple.tablet || result.android.tablet || result.windows.tablet;\n return result;\n}\n\nvar defaultResult = _objectSpread(_objectSpread({}, isMobile()), {}, {\n isMobile: isMobile\n});\n\nexport default defaultResult;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport isMobile from './utils/isMobile';\nexport function noop() {}\nexport function getKeyFromChildrenIndex(child, menuEventKey, index) {\n var prefix = menuEventKey || '';\n return child.key || \"\".concat(prefix, \"item_\").concat(index);\n}\nexport function getMenuIdFromSubMenuEventKey(eventKey) {\n return \"\".concat(eventKey, \"-menu-\");\n}\nexport function loopMenuItem(children, cb) {\n var index = -1;\n React.Children.forEach(children, function (c) {\n index += 1;\n\n if (c && c.type && c.type.isMenuItemGroup) {\n React.Children.forEach(c.props.children, function (c2) {\n index += 1;\n cb(c2, index);\n });\n } else {\n cb(c, index);\n }\n });\n}\nexport function loopMenuItemRecursively(children, keys, ret) {\n /* istanbul ignore if */\n if (!children || ret.find) {\n return;\n }\n\n React.Children.forEach(children, function (c) {\n if (c) {\n var construct = c.type;\n\n if (!construct || !(construct.isSubMenu || construct.isMenuItem || construct.isMenuItemGroup)) {\n return;\n }\n\n if (keys.indexOf(c.key) !== -1) {\n // eslint-disable-next-line no-param-reassign\n ret.find = true;\n } else if (c.props.children) {\n loopMenuItemRecursively(c.props.children, keys, ret);\n }\n }\n });\n}\nexport var menuAllProps = ['defaultSelectedKeys', 'selectedKeys', 'defaultOpenKeys', 'openKeys', 'mode', 'getPopupContainer', 'onSelect', 'onDeselect', 'onDestroy', 'openTransitionName', 'openAnimation', 'subMenuOpenDelay', 'subMenuCloseDelay', 'forceSubMenuRender', 'triggerSubMenuAction', 'level', 'selectable', 'multiple', 'onOpenChange', 'visible', 'focusable', 'defaultActiveFirst', 'prefixCls', 'inlineIndent', 'parentMenu', 'title', 'rootPrefixCls', 'eventKey', 'active', 'onItemHover', 'onTitleMouseEnter', 'onTitleMouseLeave', 'onTitleClick', 'popupAlign', 'popupOffset', 'isOpen', 'renderMenuItem', 'manualRef', 'subMenuKey', 'disabled', 'index', 'isSelected', 'store', 'activeKey', 'builtinPlacements', 'overflowedIndicator', 'motion', // the following keys found need to be removed from test regression\n'attribute', 'value', 'popupClassName', 'inlineCollapsed', 'menu', 'theme', 'itemIcon', 'expandIcon']; // ref: https://github.com/ant-design/ant-design/issues/14007\n// ref: https://bugs.chromium.org/p/chromium/issues/detail?id=360889\n// getBoundingClientRect return the full precision value, which is\n// not the same behavior as on chrome. Set the precision to 6 to\n// unify their behavior\n\nexport var getWidth = function getWidth(elem) {\n var includeMargin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;\n\n if (width) {\n if (includeMargin) {\n var _getComputedStyle = getComputedStyle(elem),\n marginLeft = _getComputedStyle.marginLeft,\n marginRight = _getComputedStyle.marginRight;\n\n width += +marginLeft.replace('px', '') + +marginRight.replace('px', '');\n }\n\n width = +width.toFixed(6);\n }\n\n return width || 0;\n};\nexport var setStyle = function setStyle(elem, styleProperty, value) {\n if (elem && _typeof(elem.style) === 'object') {\n // eslint-disable-next-line no-param-reassign\n elem.style[styleProperty] = value;\n }\n};\nexport var isMobileDevice = function isMobileDevice() {\n return isMobile.any;\n};","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -7]\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 7]\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0]\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0]\n }\n};\nexport default placements;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport Trigger from 'rc-trigger';\nimport raf from \"rc-util/es/raf\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport { connect } from 'mini-store';\nimport SubPopupMenu from './SubPopupMenu';\nimport { placements, placementsRtl } from './placements';\nimport { noop, loopMenuItemRecursively, getMenuIdFromSubMenuEventKey, menuAllProps } from './util';\nvar guid = 0;\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\n\nvar updateDefaultActiveFirst = function updateDefaultActiveFirst(store, eventKey, defaultActiveFirst) {\n var menuId = getMenuIdFromSubMenuEventKey(eventKey);\n var state = store.getState();\n store.setState({\n defaultActiveFirst: _objectSpread(_objectSpread({}, state.defaultActiveFirst), {}, _defineProperty({}, menuId, defaultActiveFirst))\n });\n};\n\nexport var SubMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubMenu, _React$Component);\n\n var _super = _createSuper(SubMenu);\n\n function SubMenu(props) {\n var _this;\n\n _classCallCheck(this, SubMenu);\n\n _this = _super.call(this, props);\n\n _this.onDestroy = function (key) {\n _this.props.onDestroy(key);\n };\n /**\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n\n _this.onKeyDown = function (e) {\n var keyCode = e.keyCode;\n var menu = _this.menuInstance;\n var store = _this.props.store;\n\n var visible = _this.getVisible();\n\n if (keyCode === KeyCode.ENTER) {\n _this.onTitleClick(e);\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n return true;\n }\n\n if (keyCode === KeyCode.RIGHT) {\n if (visible) {\n menu.onKeyDown(e);\n } else {\n _this.triggerOpenChange(true); // need to update current menu's defaultActiveFirst value\n\n\n updateDefaultActiveFirst(store, _this.props.eventKey, true);\n }\n\n return true;\n }\n\n if (keyCode === KeyCode.LEFT) {\n var handled;\n\n if (visible) {\n handled = menu.onKeyDown(e);\n } else {\n return undefined;\n }\n\n if (!handled) {\n _this.triggerOpenChange(false);\n\n handled = true;\n }\n\n return handled;\n }\n\n if (visible && (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN)) {\n return menu.onKeyDown(e);\n }\n\n return undefined;\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onPopupVisibleChange = function (visible) {\n _this.triggerOpenChange(visible, visible ? 'mouseenter' : 'mouseleave');\n };\n\n _this.onMouseEnter = function (e) {\n var _this$props = _this.props,\n key = _this$props.eventKey,\n onMouseEnter = _this$props.onMouseEnter,\n store = _this$props.store;\n updateDefaultActiveFirst(store, _this.props.eventKey, false);\n onMouseEnter({\n key: key,\n domEvent: e\n });\n };\n\n _this.onMouseLeave = function (e) {\n var _this$props2 = _this.props,\n parentMenu = _this$props2.parentMenu,\n eventKey = _this$props2.eventKey,\n onMouseLeave = _this$props2.onMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleMouseEnter = function (domEvent) {\n var _this$props3 = _this.props,\n key = _this$props3.eventKey,\n onItemHover = _this$props3.onItemHover,\n onTitleMouseEnter = _this$props3.onTitleMouseEnter;\n onItemHover({\n key: key,\n hover: true\n });\n onTitleMouseEnter({\n key: key,\n domEvent: domEvent\n });\n };\n\n _this.onTitleMouseLeave = function (e) {\n var _this$props4 = _this.props,\n parentMenu = _this$props4.parentMenu,\n eventKey = _this$props4.eventKey,\n onItemHover = _this$props4.onItemHover,\n onTitleMouseLeave = _this$props4.onTitleMouseLeave;\n parentMenu.subMenuInstance = _assertThisInitialized(_this);\n onItemHover({\n key: eventKey,\n hover: false\n });\n onTitleMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onTitleClick = function (e) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n props.onTitleClick({\n key: props.eventKey,\n domEvent: e\n });\n\n if (props.triggerSubMenuAction === 'hover') {\n return;\n }\n\n _this.triggerOpenChange(!_this.getVisible(), 'click');\n\n updateDefaultActiveFirst(props.store, _this.props.eventKey, false);\n };\n\n _this.onSubMenuClick = function (info) {\n // in the case of overflowed submenu\n // onClick is not copied over\n if (typeof _this.props.onClick === 'function') {\n _this.props.onClick(_this.addKeyPath(info));\n }\n };\n\n _this.onSelect = function (info) {\n _this.props.onSelect(info);\n };\n\n _this.onDeselect = function (info) {\n _this.props.onDeselect(info);\n };\n\n _this.getPrefixCls = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu\");\n };\n\n _this.getActiveClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-active\");\n };\n\n _this.getDisabledClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-disabled\");\n };\n\n _this.getSelectedClassName = function () {\n return \"\".concat(_this.getPrefixCls(), \"-selected\");\n };\n\n _this.getOpenClassName = function () {\n return \"\".concat(_this.props.rootPrefixCls, \"-submenu-open\");\n };\n\n _this.getVisible = function () {\n return _this.state.isOpen;\n };\n\n _this.getMode = function () {\n return _this.state.mode;\n };\n\n _this.saveMenuInstance = function (c) {\n // children menu instance\n _this.menuInstance = c;\n };\n\n _this.addKeyPath = function (info) {\n return _objectSpread(_objectSpread({}, info), {}, {\n keyPath: (info.keyPath || []).concat(_this.props.eventKey)\n });\n };\n\n _this.triggerOpenChange = function (open, type) {\n var key = _this.props.eventKey;\n\n var openChange = function openChange() {\n _this.onOpenChange({\n key: key,\n item: _assertThisInitialized(_this),\n trigger: type,\n open: open\n });\n };\n\n if (type === 'mouseenter') {\n // make sure mouseenter happen after other menu item's mouseleave\n _this.mouseenterTimeout = setTimeout(function () {\n openChange();\n }, 0);\n } else {\n openChange();\n }\n };\n\n _this.isChildrenSelected = function () {\n var ret = {\n find: false\n };\n loopMenuItemRecursively(_this.props.children, _this.props.selectedKeys, ret);\n return ret.find;\n };\n\n _this.isInlineMode = function () {\n return _this.getMode() === 'inline';\n };\n\n _this.adjustWidth = function () {\n /* istanbul ignore if */\n if (!_this.subMenuTitle || !_this.menuInstance) {\n return;\n }\n\n var popupMenu = ReactDOM.findDOMNode(_this.menuInstance);\n\n if (popupMenu.offsetWidth >= _this.subMenuTitle.offsetWidth) {\n return;\n }\n /* istanbul ignore next */\n\n\n popupMenu.style.minWidth = \"\".concat(_this.subMenuTitle.offsetWidth, \"px\");\n };\n\n _this.saveSubMenuTitle = function (subMenuTitle) {\n _this.subMenuTitle = subMenuTitle;\n };\n\n _this.getBaseProps = function () {\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n props = _assertThisInitialize2.props;\n\n var mergedMode = _this.getMode();\n\n return {\n mode: mergedMode === 'horizontal' ? 'vertical' : mergedMode,\n visible: _this.getVisible(),\n level: props.level + 1,\n inlineIndent: props.inlineIndent,\n focusable: false,\n onClick: _this.onSubMenuClick,\n onSelect: _this.onSelect,\n onDeselect: _this.onDeselect,\n onDestroy: _this.onDestroy,\n selectedKeys: props.selectedKeys,\n eventKey: \"\".concat(props.eventKey, \"-menu-\"),\n openKeys: props.openKeys,\n motion: props.motion,\n onOpenChange: _this.onOpenChange,\n subMenuOpenDelay: props.subMenuOpenDelay,\n parentMenu: _assertThisInitialized(_this),\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n triggerSubMenuAction: props.triggerSubMenuAction,\n builtinPlacements: props.builtinPlacements,\n defaultActiveFirst: props.store.getState().defaultActiveFirst[getMenuIdFromSubMenuEventKey(props.eventKey)],\n multiple: props.multiple,\n prefixCls: props.rootPrefixCls,\n id: _this.internalMenuId,\n manualRef: _this.saveMenuInstance,\n itemIcon: props.itemIcon,\n expandIcon: props.expandIcon,\n direction: props.direction\n };\n };\n\n _this.getMotion = function (mode, visible) {\n var _assertThisInitialize3 = _assertThisInitialized(_this),\n haveRendered = _assertThisInitialize3.haveRendered;\n\n var _this$props5 = _this.props,\n motion = _this$props5.motion,\n rootPrefixCls = _this$props5.rootPrefixCls; // don't show transition on first rendering (no animation for opened menu)\n // show appear transition if it's not visible (not sure why)\n // show appear transition if it's not inline mode\n\n var mergedMotion = _objectSpread(_objectSpread({}, motion), {}, {\n leavedClassName: \"\".concat(rootPrefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: haveRendered || !visible || mode !== 'inline'\n });\n\n return mergedMotion;\n };\n\n var store = props.store,\n eventKey = props.eventKey;\n\n var _store$getState = store.getState(),\n defaultActiveFirst = _store$getState.defaultActiveFirst;\n\n _this.isRootMenu = false;\n var value = false;\n\n if (defaultActiveFirst) {\n value = defaultActiveFirst[eventKey];\n }\n\n updateDefaultActiveFirst(store, eventKey, value);\n _this.state = {\n mode: props.mode,\n isOpen: props.isOpen\n };\n return _this;\n }\n\n _createClass(SubMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this2 = this;\n\n var _this$props6 = this.props,\n mode = _this$props6.mode,\n parentMenu = _this$props6.parentMenu,\n manualRef = _this$props6.manualRef,\n isOpen = _this$props6.isOpen;\n\n var updateState = function updateState() {\n _this2.setState({\n mode: mode,\n isOpen: isOpen\n });\n }; // Delay sync when mode changed in case openKeys change not sync\n\n\n var isOpenChanged = isOpen !== this.state.isOpen;\n var isModeChanged = mode !== this.state.mode;\n\n if (isModeChanged || isOpenChanged) {\n raf.cancel(this.updateStateRaf);\n\n if (isModeChanged) {\n this.updateStateRaf = raf(updateState);\n } else {\n updateState();\n }\n } // invoke customized ref to expose component to mixin\n\n\n if (manualRef) {\n manualRef(this);\n }\n\n if (mode !== 'horizontal' || !(parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.isRootMenu) || !isOpen) {\n return;\n }\n\n this.minWidthTimeout = setTimeout(function () {\n return _this2.adjustWidth();\n }, 0);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this$props7 = this.props,\n onDestroy = _this$props7.onDestroy,\n eventKey = _this$props7.eventKey;\n\n if (onDestroy) {\n onDestroy(eventKey);\n }\n /* istanbul ignore if */\n\n\n if (this.minWidthTimeout) {\n clearTimeout(this.minWidthTimeout);\n }\n /* istanbul ignore if */\n\n\n if (this.mouseenterTimeout) {\n clearTimeout(this.mouseenterTimeout);\n }\n\n raf.cancel(this.updateStateRaf);\n }\n }, {\n key: \"renderPopupMenu\",\n value: function renderPopupMenu(className, style) {\n var baseProps = this.getBaseProps();\n /**\n * zombiej: Why SubPopupMenu here?\n * Seems whatever popup or inline mode both will render SubPopupMenu.\n * It's controlled by Trigger for popup or not.\n */\n\n return React.createElement(SubPopupMenu, Object.assign({}, baseProps, {\n id: this.internalMenuId,\n className: className,\n style: style\n }), this.props.children);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var _this3 = this;\n\n var baseProps = this.getBaseProps();\n var mode = baseProps.mode,\n visible = baseProps.visible,\n forceSubMenuRender = baseProps.forceSubMenuRender,\n direction = baseProps.direction; // [Legacy] getMotion must be called before `haveRendered`\n\n var mergedMotion = this.getMotion(mode, visible);\n this.haveRendered = true;\n this.haveOpened = this.haveOpened || visible || forceSubMenuRender; // never rendered not planning to, don't render\n\n if (!this.haveOpened) {\n return React.createElement(\"div\", null);\n }\n\n var sharedClassName = classNames(\"\".concat(baseProps.prefixCls, \"-sub\"), _defineProperty({}, \"\".concat(baseProps.prefixCls, \"-rtl\"), direction === 'rtl'));\n\n if (!this.isInlineMode()) {\n return this.renderPopupMenu(sharedClassName);\n }\n\n return React.createElement(CSSMotion, Object.assign({\n visible: baseProps.visible\n }, mergedMotion), function (_ref) {\n var className = _ref.className,\n style = _ref.style;\n var mergedClassName = classNames(sharedClassName, className);\n return _this3.renderPopupMenu(mergedClassName, style);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames2, _props$parentMenu, _classNames3;\n\n var props = _objectSpread({}, this.props);\n\n var visible = this.getVisible();\n var prefixCls = this.getPrefixCls();\n var inline = this.isInlineMode();\n var mergedMode = this.getMode();\n var className = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedMode), (_classNames2 = {}, _defineProperty(_classNames2, props.className, !!props.className), _defineProperty(_classNames2, this.getOpenClassName(), visible), _defineProperty(_classNames2, this.getActiveClassName(), props.active || visible && !inline), _defineProperty(_classNames2, this.getDisabledClassName(), props.disabled), _defineProperty(_classNames2, this.getSelectedClassName(), this.isChildrenSelected()), _classNames2));\n\n if (!this.internalMenuId) {\n if (props.eventKey) {\n this.internalMenuId = \"\".concat(props.eventKey, \"$Menu\");\n } else {\n guid += 1;\n this.internalMenuId = \"$__$\".concat(guid, \"$Menu\");\n }\n }\n\n var mouseEvents = {};\n var titleClickEvents = {};\n var titleMouseEvents = {};\n\n if (!props.disabled) {\n mouseEvents = {\n onMouseLeave: this.onMouseLeave,\n onMouseEnter: this.onMouseEnter\n }; // only works in title, not outer li\n\n titleClickEvents = {\n onClick: this.onTitleClick\n };\n titleMouseEvents = {\n onMouseEnter: this.onTitleMouseEnter,\n onMouseLeave: this.onTitleMouseLeave\n };\n }\n\n var style = {};\n var direction = props.direction;\n var isRTL = direction === 'rtl';\n\n if (inline) {\n if (isRTL) {\n style.paddingRight = props.inlineIndent * props.level;\n } else {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n }\n\n var ariaOwns = {}; // only set aria-owns when menu is open\n // otherwise it would be an invalid aria-owns value\n // since corresponding node cannot be found\n\n if (this.getVisible()) {\n ariaOwns = {\n 'aria-owns': this.internalMenuId\n };\n } // expand custom icon should NOT be displayed in menu with horizontal mode.\n\n\n var icon = null;\n\n if (mergedMode !== 'horizontal') {\n icon = this.props.expandIcon; // ReactNode\n\n if (typeof this.props.expandIcon === 'function') {\n icon = React.createElement(this.props.expandIcon, _objectSpread({}, this.props));\n }\n }\n\n var title = React.createElement(\"div\", Object.assign({\n ref: this.saveSubMenuTitle,\n style: style,\n className: \"\".concat(prefixCls, \"-title\"),\n role: \"button\"\n }, titleMouseEvents, titleClickEvents, {\n \"aria-expanded\": visible\n }, ariaOwns, {\n \"aria-haspopup\": \"true\",\n title: typeof props.title === 'string' ? props.title : undefined\n }), props.title, icon || React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }));\n var children = this.renderChildren();\n var getPopupContainer = ((_props$parentMenu = props.parentMenu) === null || _props$parentMenu === void 0 ? void 0 : _props$parentMenu.isRootMenu) ? props.parentMenu.props.getPopupContainer : function (triggerNode) {\n return triggerNode.parentNode;\n };\n var popupPlacement = popupPlacementMap[mergedMode];\n var popupAlign = props.popupOffset ? {\n offset: props.popupOffset\n } : {};\n var popupClassName = classNames((_classNames3 = {}, _defineProperty(_classNames3, props.popupClassName, props.popupClassName && !inline), _defineProperty(_classNames3, \"\".concat(prefixCls, \"-rtl\"), isRTL), _classNames3));\n var disabled = props.disabled,\n triggerSubMenuAction = props.triggerSubMenuAction,\n subMenuOpenDelay = props.subMenuOpenDelay,\n forceSubMenuRender = props.forceSubMenuRender,\n subMenuCloseDelay = props.subMenuCloseDelay,\n builtinPlacements = props.builtinPlacements;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Set onClick to null, to ignore propagated onClick event\n\n delete props.onClick;\n var placement = isRTL ? Object.assign({}, placementsRtl, builtinPlacements) : Object.assign({}, placements, builtinPlacements);\n delete props.direction; // [Legacy] It's a fast fix,\n // but we should check if we can refactor this to make code more easy to understand\n\n var baseProps = this.getBaseProps();\n var mergedMotion = inline ? null : this.getMotion(baseProps.mode, baseProps.visible);\n return React.createElement(\"li\", Object.assign({}, props, mouseEvents, {\n className: className,\n role: \"menuitem\"\n }), React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), popupClassName),\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: inline ? false : visible,\n popupAlign: popupAlign,\n popup: inline ? null : children,\n action: disabled || inline ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: this.onPopupVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, title), inline ? children : null);\n }\n }]);\n\n return SubMenu;\n}(React.Component);\nSubMenu.defaultProps = {\n onMouseEnter: noop,\n onMouseLeave: noop,\n onTitleMouseEnter: noop,\n onTitleMouseLeave: noop,\n onTitleClick: noop,\n manualRef: noop,\n mode: 'vertical',\n title: ''\n};\nvar connected = connect(function (_ref2, _ref3) {\n var openKeys = _ref2.openKeys,\n activeKey = _ref2.activeKey,\n selectedKeys = _ref2.selectedKeys;\n var eventKey = _ref3.eventKey,\n subMenuKey = _ref3.subMenuKey;\n return {\n isOpen: openKeys.indexOf(eventKey) > -1,\n active: activeKey[subMenuKey] === eventKey,\n selectedKeys: selectedKeys\n };\n})(SubMenu);\nconnected.isSubMenu = true;\nexport default connected;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport SubMenu from './SubMenu';\nimport { getWidth, setStyle, menuAllProps } from './util';\nvar MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';\nvar FLOAT_PRECISION_ADJUST = 0.5;\n\nvar DOMWrap = /*#__PURE__*/function (_React$Component) {\n _inherits(DOMWrap, _React$Component);\n\n var _super = _createSuper(DOMWrap);\n\n function DOMWrap() {\n var _this;\n\n _classCallCheck(this, DOMWrap);\n\n _this = _super.apply(this, arguments);\n _this.resizeObserver = null;\n _this.mutationObserver = null; // original scroll size of the list\n\n _this.originalTotalWidth = 0; // copy of overflowed items\n\n _this.overflowedItems = []; // cache item of the original items (so we can track the size and order)\n\n _this.menuItemSizes = [];\n _this.cancelFrameId = null;\n _this.state = {\n lastVisibleIndex: undefined\n }; // get all valid menuItem nodes\n\n _this.getMenuItemNodes = function () {\n var prefixCls = _this.props.prefixCls;\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return [];\n } // filter out all overflowed indicator placeholder\n\n\n return [].slice.call(ul.children).filter(function (node) {\n return node.className.split(' ').indexOf(\"\".concat(prefixCls, \"-overflowed-submenu\")) < 0;\n });\n };\n\n _this.getOverflowedSubMenuItem = function (keyPrefix, overflowedItems, renderPlaceholder) {\n var _this$props = _this.props,\n overflowedIndicator = _this$props.overflowedIndicator,\n level = _this$props.level,\n mode = _this$props.mode,\n prefixCls = _this$props.prefixCls,\n theme = _this$props.theme;\n\n if (level !== 1 || mode !== 'horizontal') {\n return null;\n } // put all the overflowed item inside a submenu\n // with a title of overflow indicator ('...')\n\n\n var copy = _this.props.children[0];\n\n var _copy$props = copy.props,\n throwAway = _copy$props.children,\n title = _copy$props.title,\n propStyle = _copy$props.style,\n rest = _objectWithoutProperties(_copy$props, [\"children\", \"title\", \"style\"]);\n\n var style = _objectSpread({}, propStyle);\n\n var key = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n var eventKey = \"\".concat(keyPrefix, \"-overflowed-indicator\");\n\n if (overflowedItems.length === 0 && renderPlaceholder !== true) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n display: 'none'\n });\n } else if (renderPlaceholder) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n visibility: 'hidden',\n // prevent from taking normal dom space\n position: 'absolute'\n });\n key = \"\".concat(key, \"-placeholder\");\n eventKey = \"\".concat(eventKey, \"-placeholder\");\n }\n\n var popupClassName = theme ? \"\".concat(prefixCls, \"-\").concat(theme) : '';\n var props = {};\n menuAllProps.forEach(function (k) {\n if (rest[k] !== undefined) {\n props[k] = rest[k];\n }\n });\n return React.createElement(SubMenu, Object.assign({\n title: overflowedIndicator,\n className: \"\".concat(prefixCls, \"-overflowed-submenu\"),\n popupClassName: popupClassName\n }, props, {\n key: key,\n eventKey: eventKey,\n disabled: false,\n style: style\n }), overflowedItems);\n }; // memorize rendered menuSize\n\n\n _this.setChildrenWidthAndResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var ulChildrenNodes = ul.children;\n\n if (!ulChildrenNodes || ulChildrenNodes.length === 0) {\n return;\n }\n\n var lastOverflowedIndicatorPlaceholder = ul.children[ulChildrenNodes.length - 1]; // need last overflowed indicator for calculating length;\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'inline-block');\n\n var menuItemNodes = _this.getMenuItemNodes(); // reset display attribute for all hidden elements caused by overflow to calculate updated width\n // and then reset to original state after width calculation\n\n\n var overflowedItems = menuItemNodes.filter(function (c) {\n return c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0;\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'inline-block');\n });\n _this.menuItemSizes = menuItemNodes.map(function (c) {\n return getWidth(c, true);\n });\n overflowedItems.forEach(function (c) {\n setStyle(c, 'display', 'none');\n });\n _this.overflowedIndicatorWidth = getWidth(ul.children[ul.children.length - 1], true);\n _this.originalTotalWidth = _this.menuItemSizes.reduce(function (acc, cur) {\n return acc + cur;\n }, 0);\n\n _this.handleResize(); // prevent the overflowed indicator from taking space;\n\n\n setStyle(lastOverflowedIndicatorPlaceholder, 'display', 'none');\n };\n\n _this.handleResize = function () {\n if (_this.props.mode !== 'horizontal') {\n return;\n }\n\n var ul = ReactDOM.findDOMNode(_assertThisInitialized(_this));\n\n if (!ul) {\n return;\n }\n\n var width = getWidth(ul);\n _this.overflowedItems = [];\n var currentSumWidth = 0; // index for last visible child in horizontal mode\n\n var lastVisibleIndex; // float number comparison could be problematic\n // e.g. 0.1 + 0.2 > 0.3 =====> true\n // thus using FLOAT_PRECISION_ADJUST as buffer to help the situation\n\n if (_this.originalTotalWidth > width + FLOAT_PRECISION_ADJUST) {\n lastVisibleIndex = -1;\n\n _this.menuItemSizes.forEach(function (liWidth) {\n currentSumWidth += liWidth;\n\n if (currentSumWidth + _this.overflowedIndicatorWidth <= width) {\n lastVisibleIndex += 1;\n }\n });\n }\n\n _this.setState({\n lastVisibleIndex: lastVisibleIndex\n });\n };\n\n return _this;\n }\n\n _createClass(DOMWrap, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.setChildrenWidthAndResize();\n\n if (this.props.level === 1 && this.props.mode === 'horizontal') {\n var menuUl = ReactDOM.findDOMNode(this);\n\n if (!menuUl) {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(function () {\n var cancelFrameId = _this2.cancelFrameId;\n cancelAnimationFrame(cancelFrameId);\n _this2.cancelFrameId = requestAnimationFrame(_this2.setChildrenWidthAndResize);\n });\n });\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n if (typeof MutationObserver !== 'undefined') {\n this.mutationObserver = new MutationObserver(function () {\n _this2.resizeObserver.disconnect();\n\n [].slice.call(menuUl.children).concat(menuUl).forEach(function (el) {\n _this2.resizeObserver.observe(el);\n });\n\n _this2.setChildrenWidthAndResize();\n });\n this.mutationObserver.observe(menuUl, {\n attributes: false,\n childList: true,\n subTree: false\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n\n cancelAnimationFrame(this.cancelFrameId);\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren(children) {\n var _this3 = this;\n\n // need to take care of overflowed items in horizontal mode\n var lastVisibleIndex = this.state.lastVisibleIndex;\n return (children || []).reduce(function (acc, childNode, index) {\n var item = childNode;\n\n if (_this3.props.mode === 'horizontal') {\n var overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, []);\n\n if (lastVisibleIndex !== undefined && _this3.props.className.indexOf(\"\".concat(_this3.props.prefixCls, \"-root\")) !== -1) {\n if (index > lastVisibleIndex) {\n item = React.cloneElement(childNode, // 这里修改 eventKey 是为了防止隐藏状态下还会触发 openkeys 事件\n {\n style: {\n display: 'none'\n },\n eventKey: \"\".concat(childNode.props.eventKey, \"-hidden\"),\n\n /**\n * Legacy code. Here `className` never used:\n * https://github.com/react-component/menu/commit/4cd6b49fce9d116726f4ea00dda85325d6f26500#diff-e2fa48f75c2dd2318295cde428556a76R240\n */\n className: \"\".concat(MENUITEM_OVERFLOWED_CLASSNAME)\n });\n }\n\n if (index === lastVisibleIndex + 1) {\n _this3.overflowedItems = children.slice(lastVisibleIndex + 1).map(function (c) {\n return React.cloneElement(c, // children[index].key will become '.$key' in clone by default,\n // we have to overwrite with the correct key explicitly\n {\n key: c.props.eventKey,\n mode: 'vertical-left'\n });\n });\n overflowed = _this3.getOverflowedSubMenuItem(childNode.props.eventKey, _this3.overflowedItems);\n }\n }\n\n var ret = [].concat(_toConsumableArray(acc), [overflowed, item]);\n\n if (index === children.length - 1) {\n // need a placeholder for calculating overflowed indicator width\n ret.push(_this3.getOverflowedSubMenuItem(childNode.props.eventKey, [], true));\n }\n\n return ret;\n }\n\n return [].concat(_toConsumableArray(acc), [item]);\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n visible = _this$props2.visible,\n prefixCls = _this$props2.prefixCls,\n overflowedIndicator = _this$props2.overflowedIndicator,\n mode = _this$props2.mode,\n level = _this$props2.level,\n tag = _this$props2.tag,\n children = _this$props2.children,\n theme = _this$props2.theme,\n rest = _objectWithoutProperties(_this$props2, [\"visible\", \"prefixCls\", \"overflowedIndicator\", \"mode\", \"level\", \"tag\", \"children\", \"theme\"]);\n\n var Tag = tag;\n return React.createElement(Tag, Object.assign({}, rest), this.renderChildren(children));\n }\n }]);\n\n return DOMWrap;\n}(React.Component);\n\nDOMWrap.defaultProps = {\n tag: 'div',\n className: ''\n};\nexport default DOMWrap;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { connect } from 'mini-store';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport createChainedFunction from \"rc-util/es/createChainedFunction\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport shallowEqual from 'shallowequal';\nimport classNames from 'classnames';\nimport { getKeyFromChildrenIndex, loopMenuItem, noop, menuAllProps, isMobileDevice } from './util';\nimport DOMWrap from './DOMWrap';\n\nfunction allDisabled(arr) {\n if (!arr.length) {\n return true;\n }\n\n return arr.every(function (c) {\n return !!c.props.disabled;\n });\n}\n\nfunction updateActiveKey(store, menuId, activeKey) {\n var state = store.getState();\n store.setState({\n activeKey: _objectSpread(_objectSpread({}, state.activeKey), {}, _defineProperty({}, menuId, activeKey))\n });\n}\n\nfunction getEventKey(props) {\n // when eventKey not available ,it's menu and return menu id '0-menu-'\n return props.eventKey || '0-menu-';\n}\n\nexport function getActiveKey(props, originalActiveKey) {\n var activeKey = originalActiveKey;\n var children = props.children,\n eventKey = props.eventKey;\n\n if (activeKey) {\n var found;\n loopMenuItem(children, function (c, i) {\n if (c && c.props && !c.props.disabled && activeKey === getKeyFromChildrenIndex(c, eventKey, i)) {\n found = true;\n }\n });\n\n if (found) {\n return activeKey;\n }\n }\n\n activeKey = null;\n\n if (props.defaultActiveFirst) {\n loopMenuItem(children, function (c, i) {\n if (!activeKey && c && !c.props.disabled) {\n activeKey = getKeyFromChildrenIndex(c, eventKey, i);\n }\n });\n return activeKey;\n }\n\n return activeKey;\n}\nexport function saveRef(c) {\n if (c) {\n var index = this.instanceArray.indexOf(c);\n\n if (index !== -1) {\n // update component if it's already inside instanceArray\n this.instanceArray[index] = c;\n } else {\n // add component if it's not in instanceArray yet;\n this.instanceArray.push(c);\n }\n }\n}\nexport var SubPopupMenu = /*#__PURE__*/function (_React$Component) {\n _inherits(SubPopupMenu, _React$Component);\n\n var _super = _createSuper(SubPopupMenu);\n\n function SubPopupMenu(props) {\n var _this;\n\n _classCallCheck(this, SubPopupMenu);\n\n _this = _super.call(this, props);\n /**\n * all keyboard events callbacks run from here at first\n *\n * note:\n * This legacy code that `onKeyDown` is called by parent instead of dom self.\n * which need return code to check if this event is handled\n */\n\n _this.onKeyDown = function (e, callback) {\n var keyCode = e.keyCode;\n var handled;\n\n _this.getFlatInstanceArray().forEach(function (obj) {\n if (obj && obj.props.active && obj.onKeyDown) {\n handled = obj.onKeyDown(e);\n }\n });\n\n if (handled) {\n return 1;\n }\n\n var activeItem = null;\n\n if (keyCode === KeyCode.UP || keyCode === KeyCode.DOWN) {\n activeItem = _this.step(keyCode === KeyCode.UP ? -1 : 1);\n }\n\n if (activeItem) {\n e.preventDefault();\n updateActiveKey(_this.props.store, getEventKey(_this.props), activeItem.props.eventKey);\n\n if (typeof callback === 'function') {\n callback(activeItem);\n }\n\n return 1;\n }\n\n return undefined;\n };\n\n _this.onItemHover = function (e) {\n var key = e.key,\n hover = e.hover;\n updateActiveKey(_this.props.store, getEventKey(_this.props), hover ? key : null);\n };\n\n _this.onDeselect = function (selectInfo) {\n _this.props.onDeselect(selectInfo);\n };\n\n _this.onSelect = function (selectInfo) {\n _this.props.onSelect(selectInfo);\n };\n\n _this.onClick = function (e) {\n _this.props.onClick(e);\n };\n\n _this.onOpenChange = function (e) {\n _this.props.onOpenChange(e);\n };\n\n _this.onDestroy = function (key) {\n /* istanbul ignore next */\n _this.props.onDestroy(key);\n };\n\n _this.getFlatInstanceArray = function () {\n return _this.instanceArray;\n };\n\n _this.step = function (direction) {\n var children = _this.getFlatInstanceArray();\n\n var activeKey = _this.props.store.getState().activeKey[getEventKey(_this.props)];\n\n var len = children.length;\n\n if (!len) {\n return null;\n }\n\n if (direction < 0) {\n children = children.concat().reverse();\n } // find current activeIndex\n\n\n var activeIndex = -1;\n children.every(function (c, ci) {\n if (c && c.props.eventKey === activeKey) {\n activeIndex = ci;\n return false;\n }\n\n return true;\n });\n\n if (!_this.props.defaultActiveFirst && activeIndex !== -1 && allDisabled(children.slice(activeIndex, len - 1))) {\n return undefined;\n }\n\n var start = (activeIndex + 1) % len;\n var i = start;\n\n do {\n var child = children[i];\n\n if (!child || child.props.disabled) {\n i = (i + 1) % len;\n } else {\n return child;\n }\n } while (i !== start);\n\n return null;\n };\n\n _this.renderCommonMenuItem = function (child, i, extraProps) {\n var state = _this.props.store.getState();\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n var key = getKeyFromChildrenIndex(child, props.eventKey, i);\n var childProps = child.props; // https://github.com/ant-design/ant-design/issues/11517#issuecomment-477403055\n\n if (!childProps || typeof child.type === 'string') {\n return child;\n }\n\n var isActive = key === state.activeKey;\n\n var newChildProps = _objectSpread(_objectSpread({\n mode: childProps.mode || props.mode,\n level: props.level,\n inlineIndent: props.inlineIndent,\n renderMenuItem: _this.renderMenuItem,\n rootPrefixCls: props.prefixCls,\n index: i,\n parentMenu: props.parentMenu,\n // customized ref function, need to be invoked manually in child's componentDidMount\n manualRef: childProps.disabled ? undefined : createChainedFunction(child.ref, saveRef.bind(_assertThisInitialized(_this))),\n eventKey: key,\n active: !childProps.disabled && isActive,\n multiple: props.multiple,\n onClick: function onClick(e) {\n (childProps.onClick || noop)(e);\n\n _this.onClick(e);\n },\n onItemHover: _this.onItemHover,\n motion: props.motion,\n subMenuOpenDelay: props.subMenuOpenDelay,\n subMenuCloseDelay: props.subMenuCloseDelay,\n forceSubMenuRender: props.forceSubMenuRender,\n onOpenChange: _this.onOpenChange,\n onDeselect: _this.onDeselect,\n onSelect: _this.onSelect,\n builtinPlacements: props.builtinPlacements,\n itemIcon: childProps.itemIcon || _this.props.itemIcon,\n expandIcon: childProps.expandIcon || _this.props.expandIcon\n }, extraProps), {}, {\n direction: props.direction\n }); // ref: https://github.com/ant-design/ant-design/issues/13943\n\n\n if (props.mode === 'inline' || isMobileDevice()) {\n newChildProps.triggerSubMenuAction = 'click';\n }\n\n return React.cloneElement(child, _objectSpread(_objectSpread({}, newChildProps), {}, {\n key: key || i\n }));\n };\n\n _this.renderMenuItem = function (c, i, subMenuKey) {\n /* istanbul ignore if */\n if (!c) {\n return null;\n }\n\n var state = _this.props.store.getState();\n\n var extraProps = {\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n triggerSubMenuAction: _this.props.triggerSubMenuAction,\n subMenuKey: subMenuKey\n };\n return _this.renderCommonMenuItem(c, i, extraProps);\n };\n\n props.store.setState({\n activeKey: _objectSpread(_objectSpread({}, props.store.getState().activeKey), {}, _defineProperty({}, props.eventKey, getActiveKey(props, props.activeKey)))\n });\n _this.instanceArray = [];\n return _this;\n }\n\n _createClass(SubPopupMenu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // invoke customized ref to expose component to mixin\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return this.props.visible || nextProps.visible || this.props.className !== nextProps.className || !shallowEqual(this.props.style, nextProps.style);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var props = this.props;\n var originalActiveKey = 'activeKey' in props ? props.activeKey : props.store.getState().activeKey[getEventKey(props)];\n var activeKey = getActiveKey(props, originalActiveKey);\n\n if (activeKey !== originalActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n } else if ('activeKey' in prevProps) {\n // If prev activeKey is not same as current activeKey,\n // we should set it.\n var prevActiveKey = getActiveKey(prevProps, prevProps.activeKey);\n\n if (activeKey !== prevActiveKey) {\n updateActiveKey(props.store, getEventKey(props), activeKey);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var props = _extends({}, this.props);\n\n this.instanceArray = [];\n var className = classNames(props.prefixCls, props.className, \"\".concat(props.prefixCls, \"-\").concat(props.mode));\n var domProps = {\n className: className,\n // role could be 'select' and by default set to menu\n role: props.role || 'menu'\n };\n\n if (props.id) {\n domProps.id = props.id;\n }\n\n if (props.focusable) {\n domProps.tabIndex = 0;\n domProps.onKeyDown = this.onKeyDown;\n }\n\n var prefixCls = props.prefixCls,\n eventKey = props.eventKey,\n visible = props.visible,\n level = props.level,\n mode = props.mode,\n overflowedIndicator = props.overflowedIndicator,\n theme = props.theme;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Otherwise, the propagated click event will trigger another onClick\n\n delete props.onClick;\n return React.createElement(DOMWrap, Object.assign({}, props, {\n prefixCls: prefixCls,\n mode: mode,\n tag: \"ul\",\n level: level,\n theme: theme,\n visible: visible,\n overflowedIndicator: overflowedIndicator\n }, domProps), toArray(props.children).map(function (c, i) {\n return _this2.renderMenuItem(c, i, eventKey || '0-menu-');\n }));\n }\n }]);\n\n return SubPopupMenu;\n}(React.Component);\nSubPopupMenu.defaultProps = {\n prefixCls: 'rc-menu',\n className: '',\n mode: 'vertical',\n level: 1,\n inlineIndent: 24,\n visible: true,\n focusable: true,\n style: {},\n manualRef: noop\n};\nvar connected = connect()(SubPopupMenu);\nexport default connected;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nexport function getMotion(_ref, _ref2, menuMode) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n _ref$defaultMotions = _ref.defaultMotions,\n defaultMotions = _ref$defaultMotions === void 0 ? {} : _ref$defaultMotions,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName;\n var switchingModeFromInline = _ref2.switchingModeFromInline;\n\n if (motion) {\n return motion;\n }\n\n if (_typeof(openAnimation) === 'object' && openAnimation) {\n warning(false, 'Object type of `openAnimation` is removed. Please use `motion` instead.');\n } else if (typeof openAnimation === 'string') {\n return {\n motionName: \"\".concat(prefixCls, \"-open-\").concat(openAnimation)\n };\n }\n\n if (openTransitionName) {\n return {\n motionName: openTransitionName\n };\n } // Default logic\n\n\n var defaultMotion = defaultMotions[menuMode];\n\n if (defaultMotion) {\n return defaultMotion;\n } // When mode switch from inline\n // submenu should hide without animation\n\n\n return switchingModeFromInline ? null : defaultMotions.other;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Provider, create } from 'mini-store';\nimport omit from 'omit.js';\nimport SubPopupMenu, { getActiveKey } from './SubPopupMenu';\nimport { noop } from './util';\nimport { getMotion } from './utils/legacyUtil';\n\nvar Menu = /*#__PURE__*/function (_React$Component) {\n _inherits(Menu, _React$Component);\n\n var _super = _createSuper(Menu);\n\n function Menu(props) {\n var _this;\n\n _classCallCheck(this, Menu);\n\n _this = _super.call(this, props);\n\n _this.onSelect = function (selectInfo) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n\n if (props.selectable) {\n // root menu\n var _this$store$getState = _this.store.getState(),\n _selectedKeys = _this$store$getState.selectedKeys;\n\n var selectedKey = selectInfo.key;\n\n if (props.multiple) {\n _selectedKeys = _selectedKeys.concat([selectedKey]);\n } else {\n _selectedKeys = [selectedKey];\n }\n\n if (!('selectedKeys' in props)) {\n _this.store.setState({\n selectedKeys: _selectedKeys\n });\n }\n\n props.onSelect(_objectSpread(_objectSpread({}, selectInfo), {}, {\n selectedKeys: _selectedKeys\n }));\n }\n };\n\n _this.onClick = function (e) {\n var mode = _this.getRealMenuMode();\n\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n store = _assertThisInitialize2.store,\n onOpenChange = _assertThisInitialize2.props.onOpenChange;\n\n if (mode !== 'inline' && !('openKeys' in _this.props)) {\n // closing vertical popup submenu after click it\n store.setState({\n openKeys: []\n });\n onOpenChange([]);\n }\n\n _this.props.onClick(e);\n }; // onKeyDown needs to be exposed as a instance method\n // e.g., in rc-select, we need to navigate menu item while\n // current active item is rc-select input box rather than the menu itself\n\n\n _this.onKeyDown = function (e, callback) {\n _this.innerMenu.getWrappedInstance().onKeyDown(e, callback);\n };\n\n _this.onOpenChange = function (event) {\n var _assertThisInitialize3 = _assertThisInitialized(_this),\n props = _assertThisInitialize3.props;\n\n var openKeys = _this.store.getState().openKeys.concat();\n\n var changed = false;\n\n var processSingle = function processSingle(e) {\n var oneChanged = false;\n\n if (e.open) {\n oneChanged = openKeys.indexOf(e.key) === -1;\n\n if (oneChanged) {\n openKeys.push(e.key);\n }\n } else {\n var index = openKeys.indexOf(e.key);\n oneChanged = index !== -1;\n\n if (oneChanged) {\n openKeys.splice(index, 1);\n }\n }\n\n changed = changed || oneChanged;\n };\n\n if (Array.isArray(event)) {\n // batch change call\n event.forEach(processSingle);\n } else {\n processSingle(event);\n }\n\n if (changed) {\n if (!('openKeys' in _this.props)) {\n _this.store.setState({\n openKeys: openKeys\n });\n }\n\n props.onOpenChange(openKeys);\n }\n };\n\n _this.onDeselect = function (selectInfo) {\n var _assertThisInitialize4 = _assertThisInitialized(_this),\n props = _assertThisInitialize4.props;\n\n if (props.selectable) {\n var _selectedKeys2 = _this.store.getState().selectedKeys.concat();\n\n var selectedKey = selectInfo.key;\n\n var index = _selectedKeys2.indexOf(selectedKey);\n\n if (index !== -1) {\n _selectedKeys2.splice(index, 1);\n }\n\n if (!('selectedKeys' in props)) {\n _this.store.setState({\n selectedKeys: _selectedKeys2\n });\n }\n\n props.onDeselect(_objectSpread(_objectSpread({}, selectInfo), {}, {\n selectedKeys: _selectedKeys2\n }));\n }\n }; // Restore vertical mode when menu is collapsed responsively when mounted\n // https://github.com/ant-design/ant-design/issues/13104\n // TODO: not a perfect solution,\n // looking a new way to avoid setting switchingModeFromInline in this situation\n\n\n _this.onMouseEnter = function (e) {\n _this.restoreModeVerticalFromInline();\n\n var onMouseEnter = _this.props.onMouseEnter;\n\n if (onMouseEnter) {\n onMouseEnter(e);\n }\n };\n\n _this.onTransitionEnd = function (e) {\n // when inlineCollapsed menu width animation finished\n // https://github.com/ant-design/ant-design/issues/12864\n var widthCollapsed = e.propertyName === 'width' && e.target === e.currentTarget; // Fix SVGElement e.target.className.indexOf is not a function\n // https://github.com/ant-design/ant-design/issues/15699\n\n var className = e.target.className; // SVGAnimatedString.animVal should be identical to SVGAnimatedString.baseVal,\n // unless during an animation.\n\n var classNameValue = Object.prototype.toString.call(className) === '[object SVGAnimatedString]' ? className.animVal : className; // Fix for

,\n // the width transition won't trigger when menu is collapsed\n // https://github.com/ant-design/ant-design-pro/issues/2783\n\n var iconScaled = e.propertyName === 'font-size' && classNameValue.indexOf('anticon') >= 0;\n\n if (widthCollapsed || iconScaled) {\n _this.restoreModeVerticalFromInline();\n }\n };\n\n _this.setInnerMenu = function (node) {\n _this.innerMenu = node;\n };\n\n _this.isRootMenu = true;\n var selectedKeys = props.defaultSelectedKeys;\n var openKeys = props.defaultOpenKeys;\n\n if ('selectedKeys' in props) {\n selectedKeys = props.selectedKeys || [];\n }\n\n if ('openKeys' in props) {\n openKeys = props.openKeys || [];\n }\n\n _this.store = create({\n selectedKeys: selectedKeys,\n openKeys: openKeys,\n activeKey: {\n '0-menu-': getActiveKey(props, props.activeKey)\n }\n });\n _this.state = {\n switchingModeFromInline: false,\n prevProps: props,\n inlineOpenKeys: [],\n store: _this.store\n };\n return _this;\n }\n\n _createClass(Menu, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateMiniStore();\n this.updateMenuDisplay();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n siderCollapsed = _this$props.siderCollapsed,\n inlineCollapsed = _this$props.inlineCollapsed,\n onOpenChange = _this$props.onOpenChange;\n\n if (!prevProps.inlineCollapsed && inlineCollapsed || !prevProps.siderCollapsed && siderCollapsed) {\n onOpenChange([]);\n }\n\n this.updateMiniStore();\n this.updateMenuDisplay();\n }\n }, {\n key: \"updateMenuDisplay\",\n value: function updateMenuDisplay() {\n var collapsedWidth = this.props.collapsedWidth,\n store = this.store,\n prevOpenKeys = this.prevOpenKeys; // https://github.com/ant-design/ant-design/issues/8587\n\n var hideMenu = this.getInlineCollapsed() && (collapsedWidth === 0 || collapsedWidth === '0' || collapsedWidth === '0px');\n\n if (hideMenu) {\n this.prevOpenKeys = store.getState().openKeys.concat();\n this.store.setState({\n openKeys: []\n });\n } else if (prevOpenKeys) {\n this.store.setState({\n openKeys: prevOpenKeys\n });\n this.prevOpenKeys = null;\n }\n }\n }, {\n key: \"getRealMenuMode\",\n value: function getRealMenuMode() {\n var mode = this.props.mode;\n var switchingModeFromInline = this.state.switchingModeFromInline;\n var inlineCollapsed = this.getInlineCollapsed();\n\n if (switchingModeFromInline && inlineCollapsed) {\n return 'inline';\n }\n\n return inlineCollapsed ? 'vertical' : mode;\n }\n }, {\n key: \"getInlineCollapsed\",\n value: function getInlineCollapsed() {\n var _this$props2 = this.props,\n inlineCollapsed = _this$props2.inlineCollapsed,\n siderCollapsed = _this$props2.siderCollapsed;\n\n if (siderCollapsed !== undefined) {\n return siderCollapsed;\n }\n\n return inlineCollapsed;\n }\n }, {\n key: \"restoreModeVerticalFromInline\",\n value: function restoreModeVerticalFromInline() {\n var switchingModeFromInline = this.state.switchingModeFromInline;\n\n if (switchingModeFromInline) {\n this.setState({\n switchingModeFromInline: false\n });\n }\n }\n }, {\n key: \"updateMiniStore\",\n value: function updateMiniStore() {\n if ('selectedKeys' in this.props) {\n this.store.setState({\n selectedKeys: this.props.selectedKeys || []\n });\n }\n\n if ('openKeys' in this.props) {\n this.store.setState({\n openKeys: this.props.openKeys || []\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = _objectSpread({}, omit(this.props, ['collapsedWidth', 'siderCollapsed', 'defaultMotions']));\n\n var mode = this.getRealMenuMode();\n props.className += \" \".concat(props.prefixCls, \"-root\");\n\n if (props.direction === 'rtl') {\n props.className += \" \".concat(props.prefixCls, \"-rtl\");\n }\n\n props = _objectSpread(_objectSpread({}, props), {}, {\n mode: mode,\n onClick: this.onClick,\n onOpenChange: this.onOpenChange,\n onDeselect: this.onDeselect,\n onSelect: this.onSelect,\n onMouseEnter: this.onMouseEnter,\n onTransitionEnd: this.onTransitionEnd,\n parentMenu: this,\n motion: getMotion(this.props, this.state, mode)\n });\n delete props.openAnimation;\n delete props.openTransitionName;\n return React.createElement(Provider, {\n store: this.store\n }, React.createElement(SubPopupMenu, Object.assign({}, props, {\n ref: this.setInnerMenu\n }), this.props.children));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var prevProps = prevState.prevProps,\n store = prevState.store;\n var prevStoreState = store.getState();\n var newStoreState = {};\n var newState = {\n prevProps: nextProps\n };\n\n if (prevProps.mode === 'inline' && nextProps.mode !== 'inline') {\n newState.switchingModeFromInline = true;\n }\n\n if ('openKeys' in nextProps) {\n newStoreState.openKeys = nextProps.openKeys;\n } else {\n // [Legacy] Old code will return after `openKeys` changed.\n // Not sure the reason, we should keep this logic still.\n if (nextProps.inlineCollapsed && !prevProps.inlineCollapsed || nextProps.siderCollapsed && !prevProps.siderCollapsed) {\n newState.switchingModeFromInline = true;\n newState.inlineOpenKeys = prevStoreState.openKeys;\n newStoreState.openKeys = [];\n }\n\n if (!nextProps.inlineCollapsed && prevProps.inlineCollapsed || !nextProps.siderCollapsed && prevProps.siderCollapsed) {\n newStoreState.openKeys = prevState.inlineOpenKeys;\n newState.inlineOpenKeys = [];\n }\n }\n\n if (Object.keys(newStoreState).length) {\n store.setState(newStoreState);\n }\n\n return newState;\n }\n }]);\n\n return Menu;\n}(React.Component);\n\nMenu.defaultProps = {\n selectable: true,\n onClick: noop,\n onSelect: noop,\n onOpenChange: noop,\n onDeselect: noop,\n defaultSelectedKeys: [],\n defaultOpenKeys: [],\n subMenuOpenDelay: 0.1,\n subMenuCloseDelay: 0.1,\n triggerSubMenuAction: 'hover',\n prefixCls: 'rc-menu',\n className: '',\n mode: 'vertical',\n style: {},\n builtinPlacements: {},\n overflowedIndicator: React.createElement(\"span\", null, \"\\xB7\\xB7\\xB7\")\n};\nexport default Menu;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport { connect } from 'mini-store';\nimport { noop, menuAllProps } from './util';\nexport var MenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItem, _React$Component);\n\n var _super = _createSuper(MenuItem);\n\n function MenuItem() {\n var _this;\n\n _classCallCheck(this, MenuItem);\n\n _this = _super.apply(this, arguments);\n\n _this.onKeyDown = function (e) {\n var keyCode = e.keyCode;\n\n if (keyCode === KeyCode.ENTER) {\n _this.onClick(e);\n\n return true;\n }\n\n return undefined;\n };\n\n _this.onMouseLeave = function (e) {\n var _this$props = _this.props,\n eventKey = _this$props.eventKey,\n onItemHover = _this$props.onItemHover,\n onMouseLeave = _this$props.onMouseLeave;\n onItemHover({\n key: eventKey,\n hover: false\n });\n onMouseLeave({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onMouseEnter = function (e) {\n var _this$props2 = _this.props,\n eventKey = _this$props2.eventKey,\n onItemHover = _this$props2.onItemHover,\n onMouseEnter = _this$props2.onMouseEnter;\n onItemHover({\n key: eventKey,\n hover: true\n });\n onMouseEnter({\n key: eventKey,\n domEvent: e\n });\n };\n\n _this.onClick = function (e) {\n var _this$props3 = _this.props,\n eventKey = _this$props3.eventKey,\n multiple = _this$props3.multiple,\n onClick = _this$props3.onClick,\n onSelect = _this$props3.onSelect,\n onDeselect = _this$props3.onDeselect,\n isSelected = _this$props3.isSelected;\n var info = {\n key: eventKey,\n keyPath: [eventKey],\n item: _assertThisInitialized(_this),\n domEvent: e\n };\n onClick(info);\n\n if (multiple) {\n if (isSelected) {\n onDeselect(info);\n } else {\n onSelect(info);\n }\n } else if (!isSelected) {\n onSelect(info);\n }\n };\n\n _this.saveNode = function (node) {\n _this.node = node;\n };\n\n return _this;\n }\n\n _createClass(MenuItem, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // invoke customized ref to expose component to mixin\n this.callRef();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.callRef();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var props = this.props;\n\n if (props.onDestroy) {\n props.onDestroy(props.eventKey);\n }\n }\n }, {\n key: \"getPrefixCls\",\n value: function getPrefixCls() {\n return \"\".concat(this.props.rootPrefixCls, \"-item\");\n }\n }, {\n key: \"getActiveClassName\",\n value: function getActiveClassName() {\n return \"\".concat(this.getPrefixCls(), \"-active\");\n }\n }, {\n key: \"getSelectedClassName\",\n value: function getSelectedClassName() {\n return \"\".concat(this.getPrefixCls(), \"-selected\");\n }\n }, {\n key: \"getDisabledClassName\",\n value: function getDisabledClassName() {\n return \"\".concat(this.getPrefixCls(), \"-disabled\");\n }\n }, {\n key: \"callRef\",\n value: function callRef() {\n if (this.props.manualRef) {\n this.props.manualRef(this);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var props = _objectSpread({}, this.props);\n\n var className = classNames(this.getPrefixCls(), props.className, (_classNames = {}, _defineProperty(_classNames, this.getActiveClassName(), !props.disabled && props.active), _defineProperty(_classNames, this.getSelectedClassName(), props.isSelected), _defineProperty(_classNames, this.getDisabledClassName(), props.disabled), _classNames));\n\n var attrs = _objectSpread(_objectSpread({}, props.attribute), {}, {\n title: typeof props.title === 'string' ? props.title : undefined,\n className: className,\n // set to menuitem by default\n role: props.role || 'menuitem',\n 'aria-disabled': props.disabled\n });\n\n if (props.role === 'option') {\n // overwrite to option\n attrs = _objectSpread(_objectSpread({}, attrs), {}, {\n role: 'option',\n 'aria-selected': props.isSelected\n });\n } else if (props.role === null || props.role === 'none') {\n // sometimes we want to specify role inside
  • element\n //
  • Link
  • would be a good example\n // in this case the role on
  • should be \"none\" to\n // remove the implied listitem role.\n // https://www.w3.org/TR/wai-aria-practices-1.1/examples/menubar/menubar-1/menubar-1.html\n attrs.role = 'none';\n } // In case that onClick/onMouseLeave/onMouseEnter is passed down from owner\n\n\n var mouseEvent = {\n onClick: props.disabled ? null : this.onClick,\n onMouseLeave: props.disabled ? null : this.onMouseLeave,\n onMouseEnter: props.disabled ? null : this.onMouseEnter\n };\n\n var style = _objectSpread({}, props.style);\n\n if (props.mode === 'inline') {\n if (props.direction === 'rtl') {\n style.paddingRight = props.inlineIndent * props.level;\n } else {\n style.paddingLeft = props.inlineIndent * props.level;\n }\n }\n\n menuAllProps.forEach(function (key) {\n return delete props[key];\n });\n delete props.direction;\n var icon = this.props.itemIcon;\n\n if (typeof this.props.itemIcon === 'function') {\n // TODO: This is a bug which should fixed after TS refactor\n icon = React.createElement(this.props.itemIcon, this.props);\n }\n\n return React.createElement(\"li\", Object.assign({}, omit(props, ['onClick', 'onMouseEnter', 'onMouseLeave', 'onSelect']), attrs, mouseEvent, {\n style: style,\n ref: this.saveNode\n }), props.children, icon);\n }\n }]);\n\n return MenuItem;\n}(React.Component);\nMenuItem.isMenuItem = true;\nMenuItem.defaultProps = {\n onSelect: noop,\n onMouseEnter: noop,\n onMouseLeave: noop,\n manualRef: noop\n};\nvar connected = connect(function (_ref, _ref2) {\n var activeKey = _ref.activeKey,\n selectedKeys = _ref.selectedKeys;\n var eventKey = _ref2.eventKey,\n subMenuKey = _ref2.subMenuKey;\n return {\n active: activeKey[subMenuKey] === eventKey,\n isSelected: selectedKeys.indexOf(eventKey) !== -1\n };\n})(MenuItem);\nexport default connected;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { menuAllProps } from './util';\n\nvar MenuItemGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(MenuItemGroup, _React$Component);\n\n var _super = _createSuper(MenuItemGroup);\n\n function MenuItemGroup() {\n var _this;\n\n _classCallCheck(this, MenuItemGroup);\n\n _this = _super.apply(this, arguments);\n\n _this.renderInnerMenuItem = function (item) {\n var _this$props = _this.props,\n renderMenuItem = _this$props.renderMenuItem,\n index = _this$props.index;\n return renderMenuItem(item, index, _this.props.subMenuKey);\n };\n\n return _this;\n }\n\n _createClass(MenuItemGroup, [{\n key: \"render\",\n value: function render() {\n var props = _extends({}, this.props);\n\n var _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n rootPrefixCls = props.rootPrefixCls;\n var titleClassName = \"\".concat(rootPrefixCls, \"-item-group-title\");\n var listClassName = \"\".concat(rootPrefixCls, \"-item-group-list\");\n var title = props.title,\n children = props.children;\n menuAllProps.forEach(function (key) {\n return delete props[key];\n }); // Set onClick to null, to ignore propagated onClick event\n\n delete props.onClick;\n delete props.direction;\n return React.createElement(\"li\", Object.assign({}, props, {\n className: \"\".concat(className, \" \").concat(rootPrefixCls, \"-item-group\")\n }), React.createElement(\"div\", {\n className: titleClassName,\n title: typeof title === 'string' ? title : undefined\n }, title), React.createElement(\"ul\", {\n className: listClassName\n }, React.Children.map(children, this.renderInnerMenuItem)));\n }\n }]);\n\n return MenuItemGroup;\n}(React.Component);\n\nMenuItemGroup.isMenuItemGroup = true;\nMenuItemGroup.defaultProps = {\n disabled: true\n};\nexport default MenuItemGroup;","import * as React from 'react';\n\nvar Divider = function Divider(_ref) {\n var className = _ref.className,\n rootPrefixCls = _ref.rootPrefixCls,\n style = _ref.style;\n return React.createElement(\"li\", {\n className: \"\".concat(className, \" \").concat(rootPrefixCls, \"-item-divider\"),\n style: style\n });\n};\n\nDivider.defaultProps = {\n // To fix keyboard UX.\n disabled: true,\n className: '',\n style: {}\n};\nexport default Divider;","import Menu from './Menu';\nimport SubMenu from './SubMenu';\nimport MenuItem from './MenuItem';\nimport MenuItemGroup from './MenuItemGroup';\nimport Divider from './Divider';\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider };\nexport default Menu;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.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 // 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\nexports.default = exports;","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","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n","import isSymbol from './isSymbol.js';\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\nexport default toKey;\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from '../utils/legacyUtil';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return React.createElement(CSSMotion, Object.assign({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","let vendorPrefix;\n\nconst jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n const style = document.createElement('p').style;\n const testProp = 'Transform';\n for (const key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix()\n ? `${getVendorPrefix()}TransitionProperty`\n : 'transitionProperty';\n}\n\nexport function getTransformName() {\n return getVendorPrefix() ? `${getVendorPrefix()}Transform` : 'transform';\n}\n\nexport function setTransitionProperty(node, value) {\n const name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n const name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nexport function getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\n\nexport function getTransformXY(node) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n const matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0),\n };\n }\n return {\n x: 0,\n y: 0,\n };\n}\n\nconst matrix2d = /matrix\\((.*)\\)/;\nconst matrix3d = /matrix3d\\((.*)\\)/;\n\nexport function setTransformXY(node, xy) {\n const style = window.getComputedStyle(node, null);\n const transform =\n style.getPropertyValue('transform') ||\n style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n let arr;\n let match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, `matrix(${arr.join(',')})`);\n } else {\n const match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(item => {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, `matrix3d(${arr.join(',')})`);\n }\n } else {\n setTransform(\n node,\n `translateX(${xy.x}px) translateY(${xy.y}px) translateZ(0)`,\n );\n }\n}\n","import {\n setTransitionProperty,\n getTransitionProperty,\n getTransformXY,\n setTransformXY,\n getTransformName,\n} from './propertyUtils';\n\nconst RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nlet getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n const originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n let value = v;\n if (typeof name === 'object') {\n for (const i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n let box;\n let x;\n let y;\n const doc = elem.ownerDocument;\n const body = doc.body;\n const docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top;\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n\n return {\n left: x,\n top: y,\n };\n}\n\nfunction getScroll(w, top) {\n let ret = w[`page${top ? 'Y' : 'X'}Offset`];\n const method = `scroll${top ? 'Top' : 'Left'}`;\n if (typeof ret !== 'number') {\n const d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n const pos = getClientPosition(el);\n const doc = el.ownerDocument;\n const w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n let computedStyle = cs;\n let val = '';\n const d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nconst _RE_NUM_NO_PX = new RegExp(`^(${RE_NUM})(?!px)[a-z%]+$`, 'i');\nconst RE_POS = /^(top|right|bottom|left)$/;\nconst CURRENT_STYLE = 'currentStyle';\nconst RUNTIME_STYLE = 'runtimeStyle';\nconst LEFT = 'left';\nconst PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n let ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n const style = elem.style;\n const left = style[LEFT];\n const rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle\n ? _getComputedStyle\n : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n let presetH = -999;\n let presetV = -999;\n const horizontalProperty = getOffsetDirection('left', option);\n const verticalProperty = getOffsetDirection('top', option);\n const oppositeHorizontalProperty = oppositeOffsetDirection(\n horizontalProperty,\n );\n const oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n let originalTransition = '';\n const originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = `${presetH}px`;\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = `${presetV}px`;\n }\n // force relayout\n forceRelayout(elem);\n const old = getOffset(elem);\n const originalStyle = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const preset = key === 'left' ? presetH : presetV;\n const off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n const ret = {};\n for (const key in offset) {\n if (offset.hasOwnProperty(key)) {\n const dir = getOffsetDirection(key, option);\n const off = offset[key] - originalOffset[key];\n if (key === dir) {\n ret[dir] = originalStyle[dir] + off;\n } else {\n ret[dir] = originalStyle[dir] - off;\n }\n }\n }\n css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n const originalOffset = getOffset(elem);\n const originalXY = getTransformXY(elem);\n const resultXY = { x: originalXY.x, y: originalXY.y };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n const oriOffset = getOffset(elem);\n\n const oLeft = oriOffset.left.toFixed(0);\n const oTop = oriOffset.top.toFixed(0);\n const tLeft = offset.left.toFixed(0);\n const tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (\n option.useCssTransform &&\n getTransformName() in document.body.style\n ) {\n setTransform(elem, offset, option);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (let i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nconst BOX_MODELS = ['margin', 'border', 'padding'];\nconst CONTENT_INDEX = -1;\nconst PADDING_INDEX = 2;\nconst BORDER_INDEX = 1;\nconst MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n const old = {};\n const style = elem.style;\n let name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n let value = 0;\n let prop;\n let j;\n let i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n let cssProp;\n if (prop === 'border') {\n cssProp = `${prop}${which[i]}Width`;\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\n\nconst domUtils = {\n getParent(element) {\n let parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n },\n};\n\neach(['Width', 'Height'], name => {\n domUtils[`doc${name}`] = refWin => {\n const d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[`scroll${name}`],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[`scroll${name}`],\n domUtils[`viewport${name}`](d),\n );\n };\n\n domUtils[`viewport${name}`] = win => {\n // pc browser includes scrollbar in window.innerWidth\n const prop = `client${name}`;\n const doc = win.document;\n const body = doc.body;\n const documentElement = doc.documentElement;\n const documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return (\n (doc.compatMode === 'CSS1Compat' && documentElementProp) ||\n (body && body[prop]) ||\n documentElementProp\n );\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n let extra = ex;\n if (isWindow(elem)) {\n return name === 'width'\n ? domUtils.viewportWidth(elem)\n : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width'\n ? domUtils.docWidth(elem)\n : domUtils.docHeight(elem);\n }\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n let borderBoxValue =\n name === 'width'\n ? elem.getBoundingClientRect().width\n : elem.getBoundingClientRect().height;\n const computedStyle = getComputedStyleX(elem);\n const isBorderBox = isBorderBoxFn(elem, computedStyle);\n let cssBoxValue = 0;\n if (\n borderBoxValue === null ||\n borderBoxValue === undefined ||\n borderBoxValue <= 0\n ) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (\n cssBoxValue === null ||\n cssBoxValue === undefined ||\n Number(cssBoxValue) < 0\n ) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n const borderBoxValueOrIsBorderBox =\n borderBoxValue !== undefined || isBorderBox;\n const val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return (\n val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle)\n );\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return (\n val +\n (extra === PADDING_INDEX\n ? -getPBMWidth(elem, ['border'], which, computedStyle)\n : getPBMWidth(elem, ['margin'], which, computedStyle))\n );\n }\n return (\n cssBoxValue +\n getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle)\n );\n}\n\nconst cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block',\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(...args) {\n let val;\n const elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, () => {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\n\neach(['width', 'height'], name => {\n const first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[`outer${first}`] = (el, includeMargin) => {\n return (\n el &&\n getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX)\n );\n };\n const which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = (elem, v) => {\n let val = v;\n if (val !== undefined) {\n if (elem) {\n const computedStyle = getComputedStyleX(elem);\n const isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (const i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\n\nconst utils = {\n getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n const doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument,\n offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow,\n each,\n css,\n clone(obj) {\n let i;\n const ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n const overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix,\n getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n utils.mix(ret, args[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0,\n};\n\nmix(utils, domUtils);\n\nexport default utils;\n","import utils from './utils';\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nconst { getParent } = utils;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n
    \n
    \n 元素 6 高 100px 宽 50px
    \n
    \n
    \n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent;\n let positionStyle = utils.css(element, 'position');\n const skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html'\n ? null\n : getParent(element);\n }\n\n for (\n parent = getParent(element);\n parent && parent !== body && parent.nodeType !== 9;\n parent = getParent(parent)\n ) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nexport default getOffsetParent;\n","import utils from './utils';\n\nconst { getParent } = utils;\n\nexport default function isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n const doc = utils.getDocument(element);\n const body = doc.body;\n let parent = null;\n for (\n parent = getParent(element);\n parent && parent !== body;\n parent = getParent(parent)\n ) {\n const positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n","import utils from './utils';\nimport getOffsetParent from './getOffsetParent';\nimport isAncestorFixed from './isAncestorFixed';\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n const visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity,\n };\n let el = getOffsetParent(element);\n const doc = utils.getDocument(element);\n const win = doc.defaultView || doc.parentWindow;\n const body = doc.body;\n const documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if (\n (navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n (el !== body &&\n el !== documentElement &&\n utils.css(el, 'overflow') !== 'visible')\n ) {\n const pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(\n visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth,\n );\n visibleRect.bottom = Math.min(\n visibleRect.bottom,\n pos.top + el.clientHeight,\n );\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n let originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n const position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n let documentWidth = documentElement.scrollWidth;\n let documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n const bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n const maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n\n const maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 &&\n visibleRect.left >= 0 &&\n visibleRect.bottom > visibleRect.top &&\n visibleRect.right > visibleRect.left\n ? visibleRect\n : null;\n}\n\nexport default getVisibleRectForElement;\n","import utils from './utils';\n\nfunction getRegion(node) {\n let offset;\n let w;\n let h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n const win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win),\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\nexport default getRegion;\n","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n const V = align.charAt(0);\n const H = align.charAt(1);\n const w = region.width;\n const h = region.height;\n\n let x = region.left;\n let y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y,\n };\n}\n\nexport default getAlignOffset;\n","import getAlignOffset from './getAlignOffset';\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n const p1 = getAlignOffset(refNodeRegion, points[1]);\n const p2 = getAlignOffset(elRegion, points[0]);\n const diff = [p2.left - p1.left, p2.top - p1.top];\n\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1]),\n };\n}\n\nexport default getElFuturePos;\n","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nimport utils from '../utils';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport adjustForViewport from '../adjustForViewport';\nimport getRegion from '../getRegion';\nimport getElFuturePos from '../getElFuturePos';\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left < visibleRect.left ||\n elFuturePos.left + elRegion.width > visibleRect.right\n );\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top < visibleRect.top ||\n elFuturePos.top + elRegion.height > visibleRect.bottom\n );\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.left > visibleRect.right ||\n elFuturePos.left + elRegion.width < visibleRect.left\n );\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return (\n elFuturePos.top > visibleRect.bottom ||\n elFuturePos.top + elRegion.height < visibleRect.top\n );\n}\n\nfunction flip(points, reg, map) {\n const ret = [];\n utils.each(points, p => {\n ret.push(\n p.replace(reg, m => {\n return map[m];\n }),\n );\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n let n;\n if (/%$/.test(str)) {\n n = (parseInt(str.substring(0, str.length - 1), 10) / 100) * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n let points = align.points;\n let offset = align.offset || [0, 0];\n let targetOffset = align.targetOffset || [0, 0];\n let overflow = align.overflow;\n const source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n const newOverflowCfg = {};\n let fail = 0;\n const alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n const visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n const elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n let elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n // 当前节点将要所处的区域\n let newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (\n visibleRect &&\n (overflow.adjustX || overflow.adjustY) &&\n isTgtRegionVisible\n ) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 0);\n const newTargetOffset = flipOffset(targetOffset, 0);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n const newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n // 偏移量也反下\n const newOffset = flipOffset(offset, 1);\n const newTargetOffset = flipOffset(targetOffset, 1);\n const newElFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n newPoints,\n newOffset,\n newTargetOffset,\n );\n\n if (!isCompleteFailY(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(\n elRegion,\n tgtRegion,\n points,\n offset,\n targetOffset,\n );\n utils.mix(newElRegion, elFuturePos);\n }\n const isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n const isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n let newPoints = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l',\n });\n }\n if (isStillFailY) {\n newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't',\n });\n }\n\n points = newPoints;\n\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(\n elFuturePos,\n elRegion,\n visibleRect,\n newOverflowCfg,\n );\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(\n source,\n 'width',\n utils.width(source) + newElRegion.width - elRegion.width,\n );\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(\n source,\n 'height',\n utils.height(source) + newElRegion.height - elRegion.height,\n );\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
    \n utils.offset(\n source,\n {\n left: newElRegion.left,\n top: newElRegion.top,\n },\n {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake,\n },\n );\n\n return {\n points,\n offset,\n targetOffset,\n overflow: newOverflowCfg,\n };\n}\n\nexport default doAlign;\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n","import utils from './utils';\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n const pos = utils.clone(elFuturePos);\n const size = {\n width: elRegion.width,\n height: elRegion.height,\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (\n overflow.resizeWidth &&\n pos.left >= visibleRect.left &&\n pos.left + size.width > visibleRect.right\n ) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (\n overflow.resizeHeight &&\n pos.top >= visibleRect.top &&\n pos.top + size.height > visibleRect.bottom\n ) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;\n","import doAlign from './align';\nimport getOffsetParent from '../getOffsetParent';\nimport getVisibleRectForElement from '../getVisibleRectForElement';\nimport getRegion from '../getRegion';\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n const visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n const targetRegion = getRegion(target);\n\n return (\n !visibleRect ||\n targetRegion.left + targetRegion.width <= visibleRect.left ||\n targetRegion.top + targetRegion.height <= visibleRect.top ||\n targetRegion.left >= visibleRect.right ||\n targetRegion.top >= visibleRect.bottom\n );\n}\n\nfunction alignElement(el, refNode, align) {\n const target = align.target || refNode;\n const refNodeRegion = getRegion(target);\n\n const isTargetNotOutOfVisible = !isOutOfVisibleRect(\n target,\n align.overflow && align.overflow.alwaysByViewport,\n );\n\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\n\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\nexport default alignElement;\n","import utils from '../utils';\nimport doAlign from './align';\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n let pageX;\n let pageY;\n\n const doc = utils.getDocument(el);\n const win = doc.defaultView || doc.parentWindow;\n\n const scrollX = utils.getWindowScrollLeft(win);\n const scrollY = utils.getWindowScrollTop(win);\n const viewportWidth = utils.viewportWidth(win);\n const viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n const tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0,\n };\n\n const pointInView =\n pageX >= 0 &&\n pageX <= scrollX + viewportWidth &&\n (pageY >= 0 && pageY <= scrollY + viewportHeight);\n\n // Provide default target point\n const points = [align.points[0], 'cc'];\n\n return doAlign(el, tgtRegion, { ...align, points }, pointInView);\n}\n\nexport default alignPoint;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport React from 'react';\nimport { composeRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { isSamePoint, restoreFocus, monitorResize } from './util';\nimport useBuffer from './hooks/useBuffer';\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n\n if (!latestDisabled && latestTarget) {\n var source = nodeRef.current;\n var result;\n var element = getElement(latestTarget);\n var point = getPoint(latestTarget);\n cacheRef.current.element = element;\n cacheRef.current.point = point; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (element && isVisible(element)) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && result) {\n latestOnAlign(source, result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Listen for target updated\n\n\n var resizeMonitor = React.useRef({\n cancel: function cancel() {}\n }); // Listen for source updated\n\n var sourceResizeMonitor = React.useRef({\n cancel: function cancel() {}\n });\n React.useEffect(function () {\n var element = getElement(target);\n var point = getPoint(target);\n\n if (nodeRef.current !== sourceResizeMonitor.current.element) {\n sourceResizeMonitor.current.cancel();\n sourceResizeMonitor.current.element = nodeRef.current;\n sourceResizeMonitor.current.cancel = monitorResize(nodeRef.current, _forceAlign);\n }\n\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point)) {\n _forceAlign(); // Add resize observer\n\n\n if (resizeMonitor.current.element !== element) {\n resizeMonitor.current.cancel();\n resizeMonitor.current.element = element;\n resizeMonitor.current.cancel = monitorResize(element, _forceAlign);\n }\n }\n }); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n var winResizeRef = React.useRef(null);\n React.useEffect(function () {\n if (monitorWindowResize) {\n if (!winResizeRef.current) {\n winResizeRef.current = addEventListener(window, 'resize', _forceAlign);\n }\n } else if (winResizeRef.current) {\n winResizeRef.current.remove();\n winResizeRef.current = null;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n resizeMonitor.current.cancel();\n sourceResizeMonitor.current.cancel();\n if (winResizeRef.current) winResizeRef.current.remove();\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if (React.isValidElement(childNode)) {\n childNode = React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RefAlign = React.forwardRef(Align);\nRefAlign.displayName = 'Align';\nexport default RefAlign;","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n if (!calledRef.current || force === true) {\n if (callback() === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n cancelTrigger();\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","// export this package's api\nimport Align from './Align';\nexport default Align;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useState, useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nvar StatusQueue = ['measure', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from './useVisibleStatus';\nimport { getMotion } from '../utils/legacyUtil';\nimport useStretchStyle from './useStretchStyle';\nvar PopupInner = React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n\n var prepareResolveRef = useRef(); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n if (status === 'align') {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n setAlignedClassName(nextAlignedClassName); // Repeat until not more align needed\n\n if (alignedClassName !== nextAlignedClassName) {\n Promise.resolve().then(function () {\n forceAlign();\n });\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // ======================== Motion ========================\n\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex\n }, style), {}, {\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n pointerEvents: status === 'stable' ? undefined : 'none'\n }); // Align status\n\n\n var alignDisabled = true;\n\n if ((align === null || align === void 0 ? void 0 : align.points) && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return React.createElement(CSSMotion, Object.assign({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n setTargetSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return React.createElement(CSSMotion, Object.assign({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from './Mask';\nimport PopupInner from './PopupInner';\nimport MobilePopupInner from './MobilePopupInner';\nvar Popup = React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, [\"visible\", \"mobile\"]);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, !!mobile]);\n var popupNode = inMobile ? React.createElement(MobilePopupInner, Object.assign({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : React.createElement(PopupInner, Object.assign({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return React.createElement(\"div\", null, React.createElement(Mask, Object.assign({}, cloneProps)), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils/alignUtil';\nimport Popup from './Popup';\nimport TriggerContext from './context';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\n\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n _this.popupRef = React.createRef();\n _this.triggerRef = React.createRef();\n\n _this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n _this.onMouseMove = function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n };\n\n _this.onMouseLeave = function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onPopupMouseEnter = function () {\n _this.clearDelayTimer();\n };\n\n _this.onPopupMouseLeave = function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n };\n\n _this.onFocus = function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n };\n\n _this.onMouseDown = function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n };\n\n _this.onTouchStart = function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n };\n\n _this.onBlur = function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n };\n\n _this.onContextMenu = function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n };\n\n _this.onContextMenuClose = function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n };\n\n _this.onClick = function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n };\n\n _this.onPopupMouseDown = function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n };\n\n _this.onDocumentClick = function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if (!contains(root, target) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n };\n\n _this.getRootDomNode = function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n };\n\n _this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n };\n\n _this.getComponent = function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return React.createElement(Popup, Object.assign({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile\n }), typeof popup === 'function' ? popup() : popup);\n };\n\n _this.attachParent = function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument().body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n };\n\n _this.getContainer = function () {\n var popupContainer = document.createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n\n _this.attachParent(popupContainer);\n\n return popupContainer;\n };\n\n _this.setPoint = function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n _this.handlePortalUpdate = function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n };\n\n var popupVisible;\n\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n\n }, {\n key: \"setPopupVisible\",\n value: function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return React.createElement(TriggerContext.Provider, {\n value: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n Trigger.contextType = TriggerContext;\n Trigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n };\n return Trigger;\n}\nexport default generateTrigger(Portal);","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.routerMiddleware = exports.routerActions = exports.goForward = exports.goBack = exports.go = exports.replace = exports.push = exports.CALL_HISTORY_METHOD = exports.routerReducer = exports.LOCATION_CHANGE = exports.syncHistoryWithStore = undefined;\n\nvar _reducer = require('./reducer');\n\nObject.defineProperty(exports, 'LOCATION_CHANGE', {\n enumerable: true,\n get: function get() {\n return _reducer.LOCATION_CHANGE;\n }\n});\nObject.defineProperty(exports, 'routerReducer', {\n enumerable: true,\n get: function get() {\n return _reducer.routerReducer;\n }\n});\n\nvar _actions = require('./actions');\n\nObject.defineProperty(exports, 'CALL_HISTORY_METHOD', {\n enumerable: true,\n get: function get() {\n return _actions.CALL_HISTORY_METHOD;\n }\n});\nObject.defineProperty(exports, 'push', {\n enumerable: true,\n get: function get() {\n return _actions.push;\n }\n});\nObject.defineProperty(exports, 'replace', {\n enumerable: true,\n get: function get() {\n return _actions.replace;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _actions.go;\n }\n});\nObject.defineProperty(exports, 'goBack', {\n enumerable: true,\n get: function get() {\n return _actions.goBack;\n }\n});\nObject.defineProperty(exports, 'goForward', {\n enumerable: true,\n get: function get() {\n return _actions.goForward;\n }\n});\nObject.defineProperty(exports, 'routerActions', {\n enumerable: true,\n get: function get() {\n return _actions.routerActions;\n }\n});\n\nvar _sync = require('./sync');\n\nvar _sync2 = _interopRequireDefault(_sync);\n\nvar _middleware = require('./middleware');\n\nvar _middleware2 = _interopRequireDefault(_middleware);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports.syncHistoryWithStore = _sync2['default'];\nexports.routerMiddleware = _middleware2['default'];","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport * as React from 'react';\nexport default function useControlledState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n var _React$useState = React.useState(function () {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerValue = _React$useState2[0],\n setInnerValue = _React$useState2[1];\n\n var mergedValue = value !== undefined ? value : innerValue;\n\n if (postState) {\n mergedValue = postState(mergedValue);\n }\n\n function triggerChange(newValue) {\n setInnerValue(newValue);\n\n if (mergedValue !== newValue && onChange) {\n onChange(newValue, mergedValue);\n }\n } // Effect of reset value to `undefined`\n\n\n var firstRenderRef = React.useRef(true);\n React.useEffect(function () {\n if (firstRenderRef.current) {\n firstRenderRef.current = false;\n return;\n }\n\n if (value === undefined) {\n setInnerValue(value);\n }\n }, [value]);\n return [mergedValue, triggerChange];\n}","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _RightOutlined = _interopRequireDefault(require('./lib/icons/RightOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _RightOutlined;\n exports.default = _default;\n module.exports = _default;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport TreeNode from './TreeNode';\nvar DRAG_SIDE_RANGE = 0.25;\nvar DRAG_MIN_GAP = 2;\nexport function arrDel(list, value) {\n var clone = list.slice();\n var index = clone.indexOf(value);\n\n if (index >= 0) {\n clone.splice(index, 1);\n }\n\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = list.slice();\n\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getDragNodesKeys(dragNodeKey, keyEntities) {\n var dragNodesKeys = [dragNodeKey];\n var entity = keyEntities[dragNodeKey];\n\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragNodesKeys.push(key);\n dig(children);\n });\n }\n\n dig(entity.children);\n return dragNodesKeys;\n} // Only used when drag, not affect SSR.\n\nexport function calcDropPosition(event, treeNode) {\n var clientY = event.clientY;\n\n var _treeNode$selectHandl = treeNode.selectHandle.getBoundingClientRect(),\n top = _treeNode$selectHandl.top,\n bottom = _treeNode$selectHandl.bottom,\n height = _treeNode$selectHandl.height;\n\n var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);\n\n if (clientY <= top + des) {\n return -1;\n }\n\n if (clientY >= bottom - des) {\n return 1;\n }\n\n return 0;\n}\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\n\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n\n if (multiple) {\n return selectedKeys.slice();\n }\n\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n\n return selectedKeys;\n}\n\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\n\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"children\"]);\n\n var childrenNodes = convertDataToTree(children, processor);\n return React.createElement(TreeNode, Object.assign({}, processProps(props)), childrenNodes);\n });\n}\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\n\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n } // Convert keys to object format\n\n\n var keyProps;\n\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n\n return keyProps;\n}\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\n\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = keyEntities[key];\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n\n if (parent) {\n conductUp(parent.key);\n }\n }\n\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}\n/**\n * Returns only the data- and aria- key/value pairs\n */\n\nexport function getDataAndAria(props) {\n var omitProps = {};\n Object.keys(props).forEach(function (key) {\n if (key.startsWith('data-') || key.startsWith('aria-')) {\n omitProps[key] = props[key];\n }\n });\n return omitProps;\n}","import freeGlobal from './_freeGlobal.js';\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\nexport default nodeUtil;\n","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\n\nvar UnreachableException = function UnreachableException(value) {\n _classCallCheck(this, UnreachableException);\n\n return new Error(\"unreachable case: \".concat(JSON.stringify(value)));\n};\n\nexport { UnreachableException as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigConsumer } from '../config-provider';\nimport UnreachableException from '../_util/unreachableException';\n\nvar ButtonGroup = function ButtonGroup(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (_ref) {\n var _classNames;\n\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n\n var customizePrefixCls = props.prefixCls,\n size = props.size,\n className = props.className,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n\n var prefixCls = getPrefixCls('btn-group', customizePrefixCls); // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n case 'middle':\n case undefined:\n break;\n\n default:\n // eslint-disable-next-line no-console\n console.warn(new UnreachableException(size));\n }\n\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, others, {\n className: classes\n }));\n });\n};\n\nexport default ButtonGroup;","import raf from 'raf';\nvar id = 0;\nvar ids = {}; // Support call raf with delay specified frame\n\nexport default function wrapperRaf(callback) {\n var delayFrames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var myId = id++;\n var restFrames = delayFrames;\n\n function internalCallback() {\n restFrames -= 1;\n\n if (restFrames <= 0) {\n callback();\n delete ids[myId];\n } else {\n ids[myId] = raf(internalCallback);\n }\n }\n\n ids[myId] = raf(internalCallback);\n return myId;\n}\n\nwrapperRaf.cancel = function cancel(pid) {\n if (pid === undefined) return;\n raf.cancel(ids[pid]);\n delete ids[pid];\n};\n\nwrapperRaf.ids = ids; // export this for test usage","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\nimport * as React from 'react';\nimport TransitionEvents from \"@ant-design/css-animation/es/Event\";\nimport { supportRef, composeRef } from \"rc-util/es/ref\";\nimport raf from './raf';\nimport { ConfigConsumer, ConfigContext } from '../config-provider';\nimport { cloneElement } from './reactNode';\nvar styleForPseudo; // Where el is the DOM element you'd like to test for visibility\n\nfunction isHidden(element) {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n\n return !element || element.offsetParent === null;\n}\n\nfunction isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n var match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n\n return true;\n}\n\nvar Wave = /*#__PURE__*/function (_React$Component) {\n _inherits(Wave, _React$Component);\n\n var _super = _createSuper(Wave);\n\n function Wave() {\n var _this;\n\n _classCallCheck(this, Wave);\n\n _this = _super.apply(this, arguments);\n _this.containerRef = /*#__PURE__*/React.createRef();\n _this.animationStart = false;\n _this.destroyed = false;\n\n _this.onClick = function (node, waveColor) {\n if (!node || isHidden(node) || node.className.indexOf('-leave') >= 0) {\n return;\n }\n\n var insertExtraNode = _this.props.insertExtraNode;\n _this.extraNode = document.createElement('div');\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n extraNode = _assertThisInitialize.extraNode;\n\n var getPrefixCls = _this.context.getPrefixCls;\n extraNode.className = \"\".concat(getPrefixCls(''), \"-click-animating-node\");\n\n var attributeName = _this.getAttributeName();\n\n node.setAttribute(attributeName, 'true'); // Not white or transparent or grey\n\n styleForPseudo = styleForPseudo || document.createElement('style');\n\n if (waveColor && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && isNotGrey(waveColor) && !/rgba\\((?:\\d*, ){3}0\\)/.test(waveColor) && // any transparent rgba color\n waveColor !== 'transparent') {\n // Add nonce if CSP exist\n if (_this.csp && _this.csp.nonce) {\n styleForPseudo.nonce = _this.csp.nonce;\n }\n\n extraNode.style.borderColor = waveColor;\n styleForPseudo.innerHTML = \"\\n [\".concat(getPrefixCls(''), \"-click-animating-without-extra-node='true']::after, .\").concat(getPrefixCls(''), \"-click-animating-node {\\n --antd-wave-shadow-color: \").concat(waveColor, \";\\n }\");\n\n if (!document.body.contains(styleForPseudo)) {\n document.body.appendChild(styleForPseudo);\n }\n }\n\n if (insertExtraNode) {\n node.appendChild(extraNode);\n }\n\n TransitionEvents.addStartEventListener(node, _this.onTransitionStart);\n TransitionEvents.addEndEventListener(node, _this.onTransitionEnd);\n };\n\n _this.onTransitionStart = function (e) {\n if (_this.destroyed) {\n return;\n }\n\n var node = _this.containerRef.current;\n\n if (!e || e.target !== node || _this.animationStart) {\n return;\n }\n\n _this.resetEffect(node);\n };\n\n _this.onTransitionEnd = function (e) {\n if (!e || e.animationName !== 'fadeEffect') {\n return;\n }\n\n _this.resetEffect(e.target);\n };\n\n _this.bindAnimationEvent = function (node) {\n if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.indexOf('disabled') >= 0) {\n return;\n }\n\n var onClick = function onClick(e) {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || isHidden(e.target)) {\n return;\n }\n\n _this.resetEffect(node); // Get wave color from target\n\n\n var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') || // Firefox Compatible\n getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');\n _this.clickWaveTimeoutId = window.setTimeout(function () {\n return _this.onClick(node, waveColor);\n }, 0);\n raf.cancel(_this.animationStartId);\n _this.animationStart = true; // Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.\n\n _this.animationStartId = raf(function () {\n _this.animationStart = false;\n }, 10);\n };\n\n node.addEventListener('click', onClick, true);\n return {\n cancel: function cancel() {\n node.removeEventListener('click', onClick, true);\n }\n };\n };\n\n _this.renderWave = function (_ref) {\n var csp = _ref.csp;\n var children = _this.props.children;\n _this.csp = csp;\n if (! /*#__PURE__*/React.isValidElement(children)) return children;\n var ref = _this.containerRef;\n\n if (supportRef(children)) {\n ref = composeRef(children.ref, _this.containerRef);\n }\n\n return cloneElement(children, {\n ref: ref\n });\n };\n\n return _this;\n }\n\n _createClass(Wave, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var node = this.containerRef.current;\n\n if (!node || node.nodeType !== 1) {\n return;\n }\n\n this.instance = this.bindAnimationEvent(node);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.instance) {\n this.instance.cancel();\n }\n\n if (this.clickWaveTimeoutId) {\n clearTimeout(this.clickWaveTimeoutId);\n }\n\n this.destroyed = true;\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName() {\n var getPrefixCls = this.context.getPrefixCls;\n var insertExtraNode = this.props.insertExtraNode;\n return insertExtraNode ? \"\".concat(getPrefixCls(''), \"-click-animating\") : \"\".concat(getPrefixCls(''), \"-click-animating-without-extra-node\");\n }\n }, {\n key: \"resetEffect\",\n value: function resetEffect(node) {\n if (!node || node === this.extraNode || !(node instanceof Element)) {\n return;\n }\n\n var insertExtraNode = this.props.insertExtraNode;\n var attributeName = this.getAttributeName();\n node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466\n\n if (styleForPseudo) {\n styleForPseudo.innerHTML = '';\n }\n\n if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {\n node.removeChild(this.extraNode);\n }\n\n TransitionEvents.removeStartEventListener(node, this.onTransitionStart);\n TransitionEvents.removeEndEventListener(node, this.onTransitionEnd);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderWave);\n }\n }]);\n\n return Wave;\n}(React.Component);\n\nexport { Wave as default };\nWave.contextType = ConfigContext;","import * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport LoadingOutlined from '@ant-design/icons/LoadingOutlined';\n\nvar getCollapsedWidth = function getCollapsedWidth() {\n return {\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n };\n};\n\nvar getRealWidth = function getRealWidth(node) {\n return {\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n };\n};\n\nvar LoadingIcon = function LoadingIcon(_ref) {\n var prefixCls = _ref.prefixCls,\n loading = _ref.loading,\n existIcon = _ref.existIcon;\n var visible = !!loading;\n\n if (existIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\")\n }, /*#__PURE__*/React.createElement(LoadingOutlined, null));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible // We do not really use this motionName\n ,\n motionName: \"\".concat(prefixCls, \"-loading-icon-motion\"),\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, function (_ref2, ref) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-loading-icon\"),\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: classNames(className)\n }));\n });\n};\n\nexport default LoadingIcon;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable react/button-has-type */\n\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from 'omit.js';\nimport Group from './button-group';\nimport { ConfigContext } from '../config-provider';\nimport Wave from '../_util/wave';\nimport { tuple } from '../_util/type';\nimport devWarning from '../_util/devWarning';\nimport SizeContext from '../config-provider/SizeContext';\nimport LoadingIcon from './LoadingIcon';\nimport { cloneElement } from '../_util/reactNode';\nvar rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nvar isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\n\nfunction isString(str) {\n return typeof str === 'string';\n}\n\nfunction isUnborderedButtonType(type) {\n return type === 'text' || type === 'link';\n} // Insert one space between two chinese characters automatically.\n\n\nfunction insertSpace(child, needInserted) {\n // Check the child if is undefined or null.\n if (child == null) {\n return;\n }\n\n var SPACE = needInserted ? ' ' : ''; // strictNullChecks oops.\n\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n\n if (typeof child === 'string') {\n if (isTwoCNChar(child)) {\n child = child.split('').join(SPACE);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n\n return child;\n}\n\nfunction spaceChildren(children, needInserted) {\n var isPrevChildPure = false;\n var childList = [];\n React.Children.forEach(children, function (child) {\n var type = _typeof(child);\n\n var isCurrentChildPure = type === 'string' || type === 'number';\n\n if (isPrevChildPure && isCurrentChildPure) {\n var lastIndex = childList.length - 1;\n var lastChild = childList[lastIndex];\n childList[lastIndex] = \"\".concat(lastChild).concat(child);\n } else {\n childList.push(child);\n }\n\n isPrevChildPure = isCurrentChildPure;\n }); // Pass to React.Children.map to auto fill key\n\n return React.Children.map(childList, function (child) {\n return insertSpace(child, needInserted);\n });\n}\n\nvar ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'link', 'text');\nvar ButtonShapes = tuple('circle', 'round');\nvar ButtonHTMLTypes = tuple('submit', 'button', 'reset');\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n\n return {\n type: type\n };\n}\n\nvar InternalButton = function InternalButton(props, ref) {\n var _classNames;\n\n var loading = props.loading,\n customizePrefixCls = props.prefixCls,\n type = props.type,\n danger = props.danger,\n shape = props.shape,\n customizeSize = props.size,\n className = props.className,\n children = props.children,\n icon = props.icon,\n ghost = props.ghost,\n block = props.block,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"className\", \"children\", \"icon\", \"ghost\", \"block\"]);\n\n var size = React.useContext(SizeContext);\n\n var _React$useState = React.useState(!!loading),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerLoading = _React$useState2[0],\n setLoading = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n hasTwoCNChar = _React$useState4[0],\n setHasTwoCNChar = _React$useState4[1];\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n autoInsertSpaceInButton = _React$useContext.autoInsertSpaceInButton,\n direction = _React$useContext.direction;\n\n var buttonRef = ref || /*#__PURE__*/React.createRef();\n var delayTimeoutRef = React.useRef();\n\n var isNeedInserted = function isNeedInserted() {\n return React.Children.count(children) === 1 && !icon && !isUnborderedButtonType(type);\n };\n\n var fixTwoCNChar = function fixTwoCNChar() {\n // Fix for HOC usage like \n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n\n var buttonText = buttonRef.current.textContent;\n\n if (isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n }; // =============== Update Loading ===============\n\n\n var loadingOrDelay;\n\n if (_typeof(loading) === 'object' && loading.delay) {\n loadingOrDelay = loading.delay || true;\n } else {\n loadingOrDelay = !!loading;\n }\n\n React.useEffect(function () {\n clearTimeout(delayTimeoutRef.current);\n\n if (typeof loadingOrDelay === 'number') {\n delayTimeoutRef.current = window.setTimeout(function () {\n setLoading(loadingOrDelay);\n }, loadingOrDelay);\n } else {\n setLoading(loadingOrDelay);\n }\n }, [loadingOrDelay]);\n React.useEffect(fixTwoCNChar, [buttonRef]);\n\n var handleClick = function handleClick(e) {\n var onClick = props.onClick;\n\n if (innerLoading) {\n return;\n }\n\n if (onClick) {\n onClick(e);\n }\n };\n\n devWarning(!(typeof icon === 'string' && icon.length > 2), 'Button', \"`icon` is using ReactNode instead of string naming in v4. Please check `\".concat(icon, \"` at https://ant.design/components/icon\"));\n devWarning(!(ghost && isUnborderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\");\n var prefixCls = getPrefixCls('btn', customizePrefixCls);\n var autoInsertSpace = autoInsertSpaceInButton !== false; // large => lg\n // small => sm\n\n var sizeCls = '';\n\n switch (customizeSize || size) {\n case 'large':\n sizeCls = 'lg';\n break;\n\n case 'small':\n sizeCls = 'sm';\n break;\n\n default:\n break;\n }\n\n var iconType = innerLoading ? 'loading' : icon;\n var classes = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(shape), shape), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(sizeCls), sizeCls), _defineProperty(_classNames, \"\".concat(prefixCls, \"-icon-only\"), !children && children !== 0 && iconType), _defineProperty(_classNames, \"\".concat(prefixCls, \"-background-ghost\"), ghost && !isUnborderedButtonType(type)), _defineProperty(_classNames, \"\".concat(prefixCls, \"-loading\"), innerLoading), _defineProperty(_classNames, \"\".concat(prefixCls, \"-two-chinese-chars\"), hasTwoCNChar && autoInsertSpace), _defineProperty(_classNames, \"\".concat(prefixCls, \"-block\"), block), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dangerous\"), !!danger), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n var iconNode = icon && !innerLoading ? icon : /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n });\n var kids = children || children === 0 ? spaceChildren(children, isNeedInserted() && autoInsertSpace) : null;\n var linkButtonRestProps = omit(rest, ['htmlType', 'loading', 'navigate']);\n\n if (linkButtonRestProps.href !== undefined) {\n return /*#__PURE__*/React.createElement(\"a\", _extends({}, linkButtonRestProps, {\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids);\n } // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n\n\n var _a = rest,\n htmlType = _a.htmlType,\n otherProps = __rest(_a, [\"htmlType\"]);\n\n var buttonNode = /*#__PURE__*/React.createElement(\"button\", _extends({}, omit(otherProps, ['loading']), {\n type: htmlType,\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids);\n\n if (isUnborderedButtonType(type)) {\n return buttonNode;\n }\n\n return /*#__PURE__*/React.createElement(Wave, null, buttonNode);\n};\n\nvar Button = /*#__PURE__*/React.forwardRef(InternalButton);\nButton.displayName = 'Button';\nButton.defaultProps = {\n loading: false,\n ghost: false,\n block: false,\n htmlType: 'button'\n};\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","import Button from './button';\nexport default Button;","/** 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\nexport default toSource;\n","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\n\nvar Empty = function Empty() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-default');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"184\",\n height: \"152\",\n viewBox: \"0 0 184 152\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(24 31.67)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"67.797\",\n cy: \"106.89\",\n rx: \"67.797\",\n ry: \"12.668\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-1\"),\n d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-2\"),\n d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n transform: \"translate(13.56)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-3\"),\n d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-4\"),\n d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-path-5\"),\n d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n transform: \"translate(149.65 15.383)\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: \"20.654\",\n cy: \"3.167\",\n rx: \"2.849\",\n ry: \"2.815\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n }))));\n};\n\nexport default Empty;","import * as React from 'react';\nimport { ConfigContext } from '../config-provider';\n\nvar Simple = function Simple() {\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls;\n\n var prefixCls = getPrefixCls('empty-img-simple');\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: prefixCls,\n width: \"64\",\n height: \"41\",\n viewBox: \"0 0 64 41\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n className: \"\".concat(prefixCls, \"-ellipse\"),\n cx: \"32\",\n cy: \"33\",\n rx: \"32\",\n ry: \"7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n className: \"\".concat(prefixCls, \"-g\"),\n fillRule: \"nonzero\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n className: \"\".concat(prefixCls, \"-path\")\n }))));\n};\n\nexport default Simple;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nvar defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nvar simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\n\nvar Empty = function Empty(_a) {\n var className = _a.className,\n customizePrefixCls = _a.prefixCls,\n _a$image = _a.image,\n image = _a$image === void 0 ? defaultEmptyImg : _a$image,\n description = _a.description,\n children = _a.children,\n imageStyle = _a.imageStyle,\n restProps = __rest(_a, [\"className\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\"]);\n\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n return /*#__PURE__*/React.createElement(LocaleReceiver, {\n componentName: \"Empty\"\n }, function (locale) {\n var _classNames;\n\n var prefixCls = getPrefixCls('empty', customizePrefixCls);\n var des = typeof description !== 'undefined' ? description : locale.description;\n var alt = typeof des === 'string' ? des : 'empty';\n var imageNode = null;\n\n if (typeof image === 'string') {\n imageNode = /*#__PURE__*/React.createElement(\"img\", {\n alt: alt,\n src: image\n });\n } else {\n imageNode = image;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-normal\"), image === simpleEmptyImg), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className)\n }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-image\"),\n style: imageStyle\n }, imageNode), des && /*#__PURE__*/React.createElement(\"p\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, des), children && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, children));\n });\n};\n\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nexport default Empty;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from './commonUtil';\n\nfunction getKey(data, index) {\n var key = data.key;\n var value;\n\n if ('value' in data) {\n value = data.value;\n }\n\n if (key !== null && key !== undefined) {\n return key;\n }\n\n if (value !== undefined) {\n return value;\n }\n\n return \"rc-index-key-\".concat(index);\n}\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\n\n\nexport function flattenOptions(options) {\n var flattenList = [];\n\n function dig(list, isGroupOption) {\n list.forEach(function (data) {\n if (isGroupOption || !('options' in data)) {\n // Option\n flattenList.push({\n key: getKey(data, flattenList.length),\n groupOption: isGroupOption,\n data: data\n });\n } else {\n // Option Group\n flattenList.push({\n key: getKey(data, flattenList.length),\n group: true,\n data: data\n });\n dig(data.options, true);\n }\n });\n }\n\n dig(options, false);\n return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nfunction injectPropsWithOption(option) {\n var newOption = _objectSpread({}, option);\n\n if (!('props' in newOption)) {\n Object.defineProperty(newOption, 'props', {\n get: function get() {\n warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n return newOption;\n }\n });\n }\n\n return newOption;\n}\n\nexport function findValueOption(values, options) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$prevValueOptions = _ref.prevValueOptions,\n prevValueOptions = _ref$prevValueOptions === void 0 ? [] : _ref$prevValueOptions;\n\n var optionMap = new Map();\n options.forEach(function (flattenItem) {\n if (!flattenItem.group) {\n var data = flattenItem.data; // Check if match\n\n optionMap.set(data.value, data);\n }\n });\n return values.map(function (val) {\n var option = optionMap.get(val); // Fallback to try to find prev options\n\n if (!option) {\n option = _objectSpread({}, prevValueOptions.find(function (opt) {\n return opt._INTERNAL_OPTION_VALUE_ === val;\n }));\n }\n\n return injectPropsWithOption(option);\n });\n}\nexport var getLabeledValue = function getLabeledValue(value, _ref2) {\n var options = _ref2.options,\n prevValue = _ref2.prevValue,\n labelInValue = _ref2.labelInValue,\n optionLabelProp = _ref2.optionLabelProp;\n var item = findValueOption([value], options)[0];\n var result = {\n value: value\n };\n var prevValItem;\n var prevValues = toArray(prevValue);\n\n if (labelInValue) {\n prevValItem = prevValues.find(function (prevItem) {\n if (_typeof(prevItem) === 'object' && 'value' in prevItem) {\n return prevItem.value === value;\n } // [Legacy] Support `key` as `value`\n\n\n return prevItem.key === value;\n });\n }\n\n if (prevValItem && _typeof(prevValItem) === 'object' && 'label' in prevValItem) {\n result.label = prevValItem.label;\n\n if (item && typeof prevValItem.label === 'string' && typeof item[optionLabelProp] === 'string' && prevValItem.label.trim() !== item[optionLabelProp].trim()) {\n warning(false, '`label` of `value` is not same as `label` in Select options.');\n }\n } else if (item && optionLabelProp in item) {\n result.label = item[optionLabelProp];\n } else {\n result.label = value;\n } // Used for motion control\n\n\n result.key = result.value;\n return result;\n};\n\nfunction toRawString(content) {\n return toArray(content).join('');\n}\n/** Filter single option if match the search text */\n\n\nfunction getFilterFunction(optionFilterProp) {\n return function (searchValue, option) {\n var lowerSearchText = searchValue.toLowerCase(); // Group label search\n\n if ('options' in option) {\n return toRawString(option.label).toLowerCase().includes(lowerSearchText);\n } // Option value search\n\n\n var rawValue = option[optionFilterProp];\n var value = toRawString(rawValue).toLowerCase();\n return value.includes(lowerSearchText);\n };\n}\n/** Filter options and return a new options by the search text */\n\n\nexport function filterOptions(searchValue, options, _ref3) {\n var optionFilterProp = _ref3.optionFilterProp,\n filterOption = _ref3.filterOption;\n var filteredOptions = [];\n var filterFunc;\n\n if (filterOption === false) {\n return _toConsumableArray(options);\n }\n\n if (typeof filterOption === 'function') {\n filterFunc = filterOption;\n } else {\n filterFunc = getFilterFunction(optionFilterProp);\n }\n\n options.forEach(function (item) {\n // Group should check child options\n if ('options' in item) {\n // Check group first\n var matchGroup = filterFunc(searchValue, item);\n\n if (matchGroup) {\n filteredOptions.push(item);\n } else {\n // Check option\n var subOptions = item.options.filter(function (subItem) {\n return filterFunc(searchValue, subItem);\n });\n\n if (subOptions.length) {\n filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, {\n options: subOptions\n }));\n }\n }\n\n return;\n }\n\n if (filterFunc(searchValue, injectPropsWithOption(item))) {\n filteredOptions.push(item);\n }\n });\n return filteredOptions;\n}\nexport function getSeparatedContent(text, tokens) {\n if (!tokens || !tokens.length) {\n return null;\n }\n\n var match = false;\n\n function separate(str, _ref4) {\n var _ref5 = _toArray(_ref4),\n token = _ref5[0],\n restTokens = _ref5.slice(1);\n\n if (!token) {\n return [str];\n }\n\n var list = str.split(token);\n match = match || list.length > 1;\n return list.reduce(function (prevList, unitStr) {\n return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n }, []).filter(function (unit) {\n return unit;\n });\n }\n\n var list = separate(text, tokens);\n return match ? list : null;\n}\nexport function isValueDisabled(value, options) {\n var option = findValueOption([value], options)[0];\n return option.disabled;\n}\n/**\n * `tags` mode should fill un-list item into the option list\n */\n\nexport function fillOptionsWithMissingValue(options, value, optionLabelProp, labelInValue) {\n var values = toArray(value).slice().sort();\n\n var cloneOptions = _toConsumableArray(options); // Convert options value to set\n\n\n var optionValues = new Set();\n options.forEach(function (opt) {\n if (opt.options) {\n opt.options.forEach(function (subOpt) {\n optionValues.add(subOpt.value);\n });\n } else {\n optionValues.add(opt.value);\n }\n }); // Fill missing value\n\n values.forEach(function (item) {\n var val = labelInValue ? item.value : item;\n\n if (!optionValues.has(val)) {\n var _ref6;\n\n cloneOptions.push(labelInValue ? (_ref6 = {}, _defineProperty(_ref6, optionLabelProp, item.label), _defineProperty(_ref6, \"value\", val), _ref6) : {\n value: val\n });\n }\n });\n return cloneOptions;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\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","'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","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CloseOutlined = _interopRequireDefault(require('./lib/icons/CloseOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CloseOutlined;\n exports.default = _default;\n module.exports = _default;","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _DownOutlined = _interopRequireDefault(require('./lib/icons/DownOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _DownOutlined;\n exports.default = _default;\n module.exports = _default;","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isSymbol;\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX)\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\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\nexport default listCacheClear;\n","import eq from './eq.js';\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\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\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\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\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\nexport default ListCache;\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\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\nexport default baseAssignValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import ListCache from './_ListCache.js';\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\nexport default 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\nexport default 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\nexport default 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\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\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\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\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\nexport default Stack;\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","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","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\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.arrayTreeFilter = factory());\n}(this, (function () { 'use strict';\n\nfunction arrayTreeFilter(data, filterFn, options) {\n options = options || {};\n options.childrenKeyName = options.childrenKeyName || \"children\";\n var children = data || [];\n var result = [];\n var level = 0;\n do {\n var foundItem = children.filter(function (item) {\n return filterFn(item, level);\n })[0];\n if (!foundItem) {\n break;\n }\n result.push(foundItem);\n children = foundItem[options.childrenKeyName] || [];\n level += 1;\n } while (children.length > 0);\n return result;\n}\n\nreturn arrayTreeFilter;\n\n})));\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _LeftOutlined = _interopRequireDefault(require('./lib/icons/LeftOutlined'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _LeftOutlined;\n exports.default = _default;\n module.exports = _default;","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","import * as React from 'react';\nimport classNames from 'classnames';\n\nvar TransBtn = function TransBtn(_ref) {\n var className = _ref.className,\n customizeIcon = _ref.customizeIcon,\n customizeIconProps = _ref.customizeIconProps,\n _onMouseDown = _ref.onMouseDown,\n onClick = _ref.onClick,\n children = _ref.children;\n var icon;\n\n if (typeof customizeIcon === 'function') {\n icon = customizeIcon(customizeIconProps);\n } else {\n icon = customizeIcon;\n }\n\n return React.createElement(\"span\", {\n className: className,\n onMouseDown: function onMouseDown(event) {\n event.preventDefault();\n\n if (_onMouseDown) {\n _onMouseDown(event);\n }\n },\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n },\n unselectable: \"on\",\n onClick: onClick,\n \"aria-hidden\": true\n }, icon !== undefined ? icon : React.createElement(\"span\", {\n className: classNames(className.split(/\\s+/).map(function (cls) {\n return \"\".concat(cls, \"-icon\");\n }))\n }, children));\n};\n\nexport default TransBtn;","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\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\nexport default isBuffer;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default 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\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\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\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\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\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\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\nexport default mapCacheClear;\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\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\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\nexport default getMapData;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\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\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\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\nexport default MapCache;\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 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","\"use strict\";\r\n/*\r\n * Created by Ivan Sanz (@isc30)\r\n * Copyright © 2017 Ivan Sanz Carasa. All rights reserved.\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Enumerables_1 = require(\"./Enumerables\");\r\nexports.Enumerable = Enumerables_1.Enumerable;\r\nvar Iterators_1 = require(\"./Iterators\");\r\nexports.ArrayIterator = Iterators_1.ArrayIterator;\r\nvar Collections_1 = require(\"./Collections\");\r\nexports.List = Collections_1.List;\r\nexports.Dictionary = Collections_1.Dictionary;\r\nexports.Stack = Collections_1.Stack;\r\n//# sourceMappingURL=Linq.js.map","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","'use strict';\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CloseCircleFilled = _interopRequireDefault(require('./lib/icons/CloseCircleFilled'));\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CloseCircleFilled;\n exports.default = _default;\n module.exports = _default;","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\n\nfunction useBreakpoint() {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n screens = _useState2[0],\n setScreens = _useState2[1];\n\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n setScreens(supportScreens);\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screens;\n}\n\nexport default useBreakpoint;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n/* eslint-enable max-len */\n\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\n\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\n\n\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if ( // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) || // Data\n mergedConfig.data && match(key, dataPrefix) || // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\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\nexport default arrayMap;\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\nexport default copyArray;\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\nexport default eq;\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\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\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\nexport default isArrayLike;\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\nexport default isLength;\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\nexport default baseUnary;\n","/* jshint node: true */\r\n\"use strict\";\r\n\r\nfunction makeArrayFrom(obj) {\r\n return Array.prototype.slice.apply(obj);\r\n}\r\n\r\nvar\r\n PENDING = \"pending\",\r\n RESOLVED = \"resolved\",\r\n REJECTED = \"rejected\";\r\n\r\nfunction SynchronousPromise(handler) {\r\n this.status = PENDING;\r\n this._continuations = [];\r\n this._parent = null;\r\n this._paused = false;\r\n if (handler) {\r\n handler.call(\r\n this,\r\n this._continueWith.bind(this),\r\n this._failWith.bind(this)\r\n );\r\n }\r\n}\r\n\r\nfunction looksLikeAPromise(obj) {\r\n return obj && typeof (obj.then) === \"function\";\r\n}\r\n\r\nfunction passThrough(value) {\r\n return value;\r\n}\r\n\r\nSynchronousPromise.prototype = {\r\n then: function (nextFn, catchFn) {\r\n var next = SynchronousPromise.unresolved()._setParent(this);\r\n if (this._isRejected()) {\r\n if (this._paused) {\r\n this._continuations.push({\r\n promise: next,\r\n nextFn: nextFn,\r\n catchFn: catchFn\r\n });\r\n return next;\r\n }\r\n if (catchFn) {\r\n try {\r\n var catchResult = catchFn(this._error);\r\n if (looksLikeAPromise(catchResult)) {\r\n this._chainPromiseData(catchResult, next);\r\n return next;\r\n } else {\r\n return SynchronousPromise.resolve(catchResult)._setParent(this);\r\n }\r\n } catch (e) {\r\n return SynchronousPromise.reject(e)._setParent(this);\r\n }\r\n }\r\n return SynchronousPromise.reject(this._error)._setParent(this);\r\n }\r\n this._continuations.push({\r\n promise: next,\r\n nextFn: nextFn,\r\n catchFn: catchFn\r\n });\r\n this._runResolutions();\r\n return next;\r\n },\r\n catch: function (handler) {\r\n if (this._isResolved()) {\r\n return SynchronousPromise.resolve(this._data)._setParent(this);\r\n }\r\n var next = SynchronousPromise.unresolved()._setParent(this);\r\n this._continuations.push({\r\n promise: next,\r\n catchFn: handler\r\n });\r\n this._runRejections();\r\n return next;\r\n },\r\n finally: function (callback) {\r\n var ran = false;\r\n\r\n function runFinally(result, err) {\r\n if (!ran) {\r\n ran = true;\r\n if (!callback) {\r\n callback = passThrough;\r\n }\r\n var callbackResult = callback(result);\r\n if (looksLikeAPromise(callbackResult)) {\r\n return callbackResult.then(function () {\r\n if (err) {\r\n throw err;\r\n }\r\n return result;\r\n });\r\n } else {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n return this\r\n .then(function (result) {\r\n return runFinally(result);\r\n })\r\n .catch(function (err) {\r\n return runFinally(null, err);\r\n });\r\n },\r\n pause: function () {\r\n this._paused = true;\r\n return this;\r\n },\r\n resume: function () {\r\n var firstPaused = this._findFirstPaused();\r\n if (firstPaused) {\r\n firstPaused._paused = false;\r\n firstPaused._runResolutions();\r\n firstPaused._runRejections();\r\n }\r\n return this;\r\n },\r\n _findAncestry: function () {\r\n return this._continuations.reduce(function (acc, cur) {\r\n if (cur.promise) {\r\n var node = {\r\n promise: cur.promise,\r\n children: cur.promise._findAncestry()\r\n };\r\n acc.push(node);\r\n }\r\n return acc;\r\n }, []);\r\n },\r\n _setParent: function (parent) {\r\n if (this._parent) {\r\n throw new Error(\"parent already set\");\r\n }\r\n this._parent = parent;\r\n return this;\r\n },\r\n _continueWith: function (data) {\r\n var firstPending = this._findFirstPending();\r\n if (firstPending) {\r\n firstPending._data = data;\r\n firstPending._setResolved();\r\n }\r\n },\r\n _findFirstPending: function () {\r\n return this._findFirstAncestor(function (test) {\r\n return test._isPending && test._isPending();\r\n });\r\n },\r\n _findFirstPaused: function () {\r\n return this._findFirstAncestor(function (test) {\r\n return test._paused;\r\n });\r\n },\r\n _findFirstAncestor: function (matching) {\r\n var test = this;\r\n var result;\r\n while (test) {\r\n if (matching(test)) {\r\n result = test;\r\n }\r\n test = test._parent;\r\n }\r\n return result;\r\n },\r\n _failWith: function (error) {\r\n var firstRejected = this._findFirstPending();\r\n if (firstRejected) {\r\n firstRejected._error = error;\r\n firstRejected._setRejected();\r\n }\r\n },\r\n _takeContinuations: function () {\r\n return this._continuations.splice(0, this._continuations.length);\r\n },\r\n _runRejections: function () {\r\n if (this._paused || !this._isRejected()) {\r\n return;\r\n }\r\n var\r\n error = this._error,\r\n continuations = this._takeContinuations(),\r\n self = this;\r\n continuations.forEach(function (cont) {\r\n if (cont.catchFn) {\r\n try {\r\n var catchResult = cont.catchFn(error);\r\n self._handleUserFunctionResult(catchResult, cont.promise);\r\n } catch (e) {\r\n cont.promise.reject(e);\r\n }\r\n } else {\r\n cont.promise.reject(error);\r\n }\r\n });\r\n },\r\n _runResolutions: function () {\r\n if (this._paused || !this._isResolved() || this._isPending()) {\r\n return;\r\n }\r\n var continuations = this._takeContinuations();\r\n if (looksLikeAPromise(this._data)) {\r\n return this._handleWhenResolvedDataIsPromise(this._data);\r\n }\r\n var data = this._data;\r\n var self = this;\r\n continuations.forEach(function (cont) {\r\n if (cont.nextFn) {\r\n try {\r\n var result = cont.nextFn(data);\r\n self._handleUserFunctionResult(result, cont.promise);\r\n } catch (e) {\r\n self._handleResolutionError(e, cont);\r\n }\r\n } else if (cont.promise) {\r\n cont.promise.resolve(data);\r\n }\r\n });\r\n },\r\n _handleResolutionError: function (e, continuation) {\r\n this._setRejected();\r\n if (continuation.catchFn) {\r\n try {\r\n continuation.catchFn(e);\r\n return;\r\n } catch (e2) {\r\n e = e2;\r\n }\r\n }\r\n if (continuation.promise) {\r\n continuation.promise.reject(e);\r\n }\r\n },\r\n _handleWhenResolvedDataIsPromise: function (data) {\r\n var self = this;\r\n return data.then(function (result) {\r\n self._data = result;\r\n self._runResolutions();\r\n }).catch(function (error) {\r\n self._error = error;\r\n self._setRejected();\r\n self._runRejections();\r\n });\r\n },\r\n _handleUserFunctionResult: function (data, nextSynchronousPromise) {\r\n if (looksLikeAPromise(data)) {\r\n this._chainPromiseData(data, nextSynchronousPromise);\r\n } else {\r\n nextSynchronousPromise.resolve(data);\r\n }\r\n },\r\n _chainPromiseData: function (promiseData, nextSynchronousPromise) {\r\n promiseData.then(function (newData) {\r\n nextSynchronousPromise.resolve(newData);\r\n }).catch(function (newError) {\r\n nextSynchronousPromise.reject(newError);\r\n });\r\n },\r\n _setResolved: function () {\r\n this.status = RESOLVED;\r\n if (!this._paused) {\r\n this._runResolutions();\r\n }\r\n },\r\n _setRejected: function () {\r\n this.status = REJECTED;\r\n if (!this._paused) {\r\n this._runRejections();\r\n }\r\n },\r\n _isPending: function () {\r\n return this.status === PENDING;\r\n },\r\n _isResolved: function () {\r\n return this.status === RESOLVED;\r\n },\r\n _isRejected: function () {\r\n return this.status === REJECTED;\r\n }\r\n};\r\n\r\nSynchronousPromise.resolve = function (result) {\r\n return new SynchronousPromise(function (resolve, reject) {\r\n if (looksLikeAPromise(result)) {\r\n result.then(function (newResult) {\r\n resolve(newResult);\r\n }).catch(function (error) {\r\n reject(error);\r\n });\r\n } else {\r\n resolve(result);\r\n }\r\n });\r\n};\r\n\r\nSynchronousPromise.reject = function (result) {\r\n return new SynchronousPromise(function (resolve, reject) {\r\n reject(result);\r\n });\r\n};\r\n\r\nSynchronousPromise.unresolved = function () {\r\n return new SynchronousPromise(function (resolve, reject) {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n};\r\n\r\nSynchronousPromise.all = function () {\r\n var args = makeArrayFrom(arguments);\r\n if (Array.isArray(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args.length) {\r\n return SynchronousPromise.resolve([]);\r\n }\r\n return new SynchronousPromise(function (resolve, reject) {\r\n var\r\n allData = [],\r\n numResolved = 0,\r\n doResolve = function () {\r\n if (numResolved === args.length) {\r\n resolve(allData);\r\n }\r\n },\r\n rejected = false,\r\n doReject = function (err) {\r\n if (rejected) {\r\n return;\r\n }\r\n rejected = true;\r\n reject(err);\r\n };\r\n args.forEach(function (arg, idx) {\r\n SynchronousPromise.resolve(arg).then(function (thisResult) {\r\n allData[idx] = thisResult;\r\n numResolved += 1;\r\n doResolve();\r\n }).catch(function (err) {\r\n doReject(err);\r\n });\r\n });\r\n });\r\n};\r\n\r\nfunction createAggregateErrorFrom(errors) {\r\n /* jshint ignore:start */\r\n if (typeof window !== \"undefined\" && \"AggregateError\" in window) {\r\n return new window.AggregateError(errors);\r\n }\r\n /* jshint ignore:end */\r\n\r\n return { errors: errors };\r\n}\r\n\r\nSynchronousPromise.any = function () {\r\n var args = makeArrayFrom(arguments);\r\n if (Array.isArray(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args.length) {\r\n return SynchronousPromise.reject(createAggregateErrorFrom([]));\r\n }\r\n return new SynchronousPromise(function (resolve, reject) {\r\n var\r\n allErrors = [],\r\n numRejected = 0,\r\n doReject = function () {\r\n if (numRejected === args.length) {\r\n reject(createAggregateErrorFrom(allErrors));\r\n }\r\n },\r\n resolved = false,\r\n doResolve = function (result) {\r\n if (resolved) {\r\n return;\r\n }\r\n resolved = true;\r\n resolve(result);\r\n };\r\n args.forEach(function (arg, idx) {\r\n SynchronousPromise.resolve(arg).then(function (thisResult) {\r\n doResolve(thisResult);\r\n }).catch(function (err) {\r\n allErrors[idx] = err;\r\n numRejected += 1;\r\n doReject();\r\n });\r\n });\r\n });\r\n};\r\n\r\nSynchronousPromise.allSettled = function () {\r\n var args = makeArrayFrom(arguments);\r\n if (Array.isArray(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args.length) {\r\n return SynchronousPromise.resolve([]);\r\n }\r\n return new SynchronousPromise(function (resolve) {\r\n var\r\n allData = [],\r\n numSettled = 0,\r\n doSettled = function () {\r\n numSettled += 1;\r\n if (numSettled === args.length) {\r\n resolve(allData);\r\n }\r\n };\r\n args.forEach(function (arg, idx) {\r\n SynchronousPromise.resolve(arg).then(function (thisResult) {\r\n allData[idx] = {\r\n status: \"fulfilled\",\r\n value: thisResult\r\n };\r\n doSettled();\r\n }).catch(function (err) {\r\n allData[idx] = {\r\n status: \"rejected\",\r\n reason: err\r\n };\r\n doSettled();\r\n });\r\n });\r\n });\r\n};\r\n\r\n/* jshint ignore:start */\r\nif (Promise === SynchronousPromise) {\r\n throw new Error(\"Please use SynchronousPromise.installGlobally() to install globally\");\r\n}\r\nvar RealPromise = Promise;\r\nSynchronousPromise.installGlobally = function (__awaiter) {\r\n if (Promise === SynchronousPromise) {\r\n return __awaiter;\r\n }\r\n var result = patchAwaiterIfRequired(__awaiter);\r\n Promise = SynchronousPromise;\r\n return result;\r\n};\r\n\r\nSynchronousPromise.uninstallGlobally = function () {\r\n if (Promise === SynchronousPromise) {\r\n Promise = RealPromise;\r\n }\r\n};\r\n\r\nfunction patchAwaiterIfRequired(__awaiter) {\r\n if (typeof (__awaiter) === \"undefined\" || __awaiter.__patched) {\r\n return __awaiter;\r\n }\r\n var originalAwaiter = __awaiter;\r\n __awaiter = function () {\r\n var Promise = RealPromise;\r\n originalAwaiter.apply(this, makeArrayFrom(arguments));\r\n };\r\n __awaiter.__patched = true;\r\n return __awaiter;\r\n}\r\n\r\n/* jshint ignore:end */\r\n\r\nmodule.exports = {\r\n SynchronousPromise: SynchronousPromise\r\n};\r\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\nexport default arrayEach;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\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\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\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\nexport default copyObject;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\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\nexport default baseAssign;\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\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\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\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\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\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\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\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\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\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\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\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\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\nexport default copySymbolsIn;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\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\nexport default getAllKeysIn;\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\nexport default initCloneArray;\n","import Uint8Array from './_Uint8Array.js';\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\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\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\nexport default 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\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\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\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\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\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\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\nexport default initCloneByTag;\n","import isObject from './isObject.js';\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\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\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\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\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\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\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\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\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\nexport default baseClone;\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport { placements } from \"rc-tooltip/es/placements\";\nvar autoAdjustOverflowEnabled = {\n adjustX: 1,\n adjustY: 1\n};\nvar autoAdjustOverflowDisabled = {\n adjustX: 0,\n adjustY: 0\n};\nvar targetOffset = [0, 0];\nexport function getOverflowOptions(autoAdjustOverflow) {\n if (typeof autoAdjustOverflow === 'boolean') {\n return autoAdjustOverflow ? autoAdjustOverflowEnabled : autoAdjustOverflowDisabled;\n }\n\n return _extends(_extends({}, autoAdjustOverflowDisabled), autoAdjustOverflow);\n}\nexport default function getPlacements(config) {\n var _config$arrowWidth = config.arrowWidth,\n arrowWidth = _config$arrowWidth === void 0 ? 5 : _config$arrowWidth,\n _config$horizontalArr = config.horizontalArrowShift,\n horizontalArrowShift = _config$horizontalArr === void 0 ? 16 : _config$horizontalArr,\n _config$verticalArrow = config.verticalArrowShift,\n verticalArrowShift = _config$verticalArrow === void 0 ? 8 : _config$verticalArrow,\n autoAdjustOverflow = config.autoAdjustOverflow;\n var placementMap = {\n left: {\n points: ['cr', 'cl'],\n offset: [-4, 0]\n },\n right: {\n points: ['cl', 'cr'],\n offset: [4, 0]\n },\n top: {\n points: ['bc', 'tc'],\n offset: [0, -4]\n },\n bottom: {\n points: ['tc', 'bc'],\n offset: [0, 4]\n },\n topLeft: {\n points: ['bl', 'tc'],\n offset: [-(horizontalArrowShift + arrowWidth), -4]\n },\n leftTop: {\n points: ['tr', 'cl'],\n offset: [-4, -(verticalArrowShift + arrowWidth)]\n },\n topRight: {\n points: ['br', 'tc'],\n offset: [horizontalArrowShift + arrowWidth, -4]\n },\n rightTop: {\n points: ['tl', 'cr'],\n offset: [4, -(verticalArrowShift + arrowWidth)]\n },\n bottomRight: {\n points: ['tr', 'bc'],\n offset: [horizontalArrowShift + arrowWidth, 4]\n },\n rightBottom: {\n points: ['bl', 'cr'],\n offset: [4, verticalArrowShift + arrowWidth]\n },\n bottomLeft: {\n points: ['tl', 'bc'],\n offset: [-(horizontalArrowShift + arrowWidth), 4]\n },\n leftBottom: {\n points: ['br', 'cl'],\n offset: [-4, verticalArrowShift + arrowWidth]\n }\n };\n Object.keys(placementMap).forEach(function (key) {\n placementMap[key] = config.arrowPointAtCenter ? _extends(_extends({}, placementMap[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow),\n targetOffset: targetOffset\n }) : _extends(_extends({}, placements[key]), {\n overflow: getOverflowOptions(autoAdjustOverflow)\n });\n placementMap[key].ignoreShake = true;\n });\n return placementMap;\n}","import { tuple } from './type';\nexport var PresetStatusColorTypes = tuple('success', 'processing', 'error', 'default', 'warning'); // eslint-disable-next-line import/prefer-default-export\n\nexport var PresetColorTypes = tuple('pink', 'red', 'yellow', 'orange', 'cyan', 'green', 'blue', 'purple', 'geekblue', 'magenta', 'volcano', 'gold', 'lime');","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport * as React from 'react';\nimport RcTooltip from 'rc-tooltip';\nimport classNames from 'classnames';\nimport getPlacements from './placements';\nimport { cloneElement, isValidElement } from '../_util/reactNode';\nimport { ConfigContext } from '../config-provider';\nimport { PresetColorTypes } from '../_util/colors';\n\nvar splitObject = function splitObject(obj, keys) {\n var picked = {};\n\n var omitted = _extends({}, obj);\n\n keys.forEach(function (key) {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked: picked,\n omitted: omitted\n };\n};\n\nvar PresetColorRegex = new RegExp(\"^(\".concat(PresetColorTypes.join('|'), \")(-inverse)?$\")); // Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\n\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n var elementType = element.type;\n\n if ((elementType.__ANT_BUTTON === true || elementType.__ANT_SWITCH === true || elementType.__ANT_CHECKBOX === true || element.type === 'button') && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n var _splitObject = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']),\n picked = _splitObject.picked,\n omitted = _splitObject.omitted;\n\n var spanStyle = _extends(_extends({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : null\n });\n\n var buttonStyle = _extends(_extends({}, omitted), {\n pointerEvents: 'none'\n });\n\n var child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, \"\".concat(prefixCls, \"-disabled-compatible-wrapper\"))\n }, child);\n }\n\n return element;\n}\n\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames2;\n\n var _React$useContext = React.useContext(ConfigContext),\n getContextPopupContainer = _React$useContext.getPopupContainer,\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n\n var _React$useState = React.useState(!!props.visible || !!props.defaultVisible),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n\n React.useEffect(function () {\n if ('visible' in props) {\n setVisible(props.visible);\n }\n }, [props.visible]);\n\n var isNoTitle = function isNoTitle() {\n var title = props.title,\n overlay = props.overlay;\n return !title && !overlay && title !== 0; // overlay for old version compatibility\n };\n\n var onVisibleChange = function onVisibleChange(vis) {\n if (!('visible' in props)) {\n setVisible(isNoTitle() ? false : vis);\n }\n\n if (props.onVisibleChange && !isNoTitle()) {\n props.onVisibleChange(vis);\n }\n };\n\n var getTooltipPlacements = function getTooltipPlacements() {\n var builtinPlacements = props.builtinPlacements,\n arrowPointAtCenter = props.arrowPointAtCenter,\n autoAdjustOverflow = props.autoAdjustOverflow;\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: arrowPointAtCenter,\n autoAdjustOverflow: autoAdjustOverflow\n });\n }; // 动态设置动画点\n\n\n var onPopupAlign = function onPopupAlign(domNode, align) {\n var placements = getTooltipPlacements(); // 当前返回的位置\n\n var placement = Object.keys(placements).filter(function (key) {\n return placements[key].points[0] === align.points[0] && placements[key].points[1] === align.points[1];\n })[0];\n\n if (!placement) {\n return;\n } // 根据当前坐标设置动画点\n\n\n var rect = domNode.getBoundingClientRect();\n var transformOrigin = {\n top: '50%',\n left: '50%'\n };\n\n if (placement.indexOf('top') >= 0 || placement.indexOf('Bottom') >= 0) {\n transformOrigin.top = \"\".concat(rect.height - align.offset[1], \"px\");\n } else if (placement.indexOf('Top') >= 0 || placement.indexOf('bottom') >= 0) {\n transformOrigin.top = \"\".concat(-align.offset[1], \"px\");\n }\n\n if (placement.indexOf('left') >= 0 || placement.indexOf('Right') >= 0) {\n transformOrigin.left = \"\".concat(rect.width - align.offset[0], \"px\");\n } else if (placement.indexOf('right') >= 0 || placement.indexOf('Left') >= 0) {\n transformOrigin.left = \"\".concat(-align.offset[0], \"px\");\n }\n\n domNode.style.transformOrigin = \"\".concat(transformOrigin.left, \" \").concat(transformOrigin.top);\n };\n\n var getOverlay = function getOverlay() {\n var title = props.title,\n overlay = props.overlay;\n\n if (title === 0) {\n return title;\n }\n\n return overlay || title || '';\n };\n\n var customizePrefixCls = props.prefixCls,\n openClassName = props.openClassName,\n getPopupContainer = props.getPopupContainer,\n getTooltipContainer = props.getTooltipContainer,\n overlayClassName = props.overlayClassName,\n color = props.color,\n overlayInnerStyle = props.overlayInnerStyle,\n children = props.children;\n var prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n var tempVisible = visible; // Hide tooltip when there is no title\n\n if (!('visible' in props) && isNoTitle()) {\n tempVisible = false;\n }\n\n var child = getDisabledCompatibleChildren(isValidElement(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n var childProps = child.props;\n var childCls = classNames(childProps.className, _defineProperty({}, openClassName || \"\".concat(prefixCls, \"-open\"), true));\n var customOverlayClassName = classNames(overlayClassName, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-\").concat(color), color && PresetColorRegex.test(color)), _classNames2));\n var formattedOverlayInnerStyle;\n var arrowContentStyle;\n\n if (color && !PresetColorRegex.test(color)) {\n formattedOverlayInnerStyle = _extends(_extends({}, overlayInnerStyle), {\n background: color\n });\n arrowContentStyle = {\n background: color\n };\n }\n\n return /*#__PURE__*/React.createElement(RcTooltip, _extends({}, props, {\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: ref,\n builtinPlacements: getTooltipPlacements(),\n overlay: getOverlay(),\n visible: tempVisible,\n onVisibleChange: onVisibleChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-arrow-content\"),\n style: arrowContentStyle\n })\n }), tempVisible ? cloneElement(child, {\n className: childCls\n }) : child);\n});\nTooltip.displayName = 'Tooltip';\nTooltip.defaultProps = {\n placement: 'top',\n transitionName: 'zoom-big-fast',\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n arrowPointAtCenter: false,\n autoAdjustOverflow: true\n};\nexport default Tooltip;","import locale from '../locale/default';\nexport default locale;","import { createContext } from 'react';\nvar LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\nimport * as React from 'react';\nimport defaultLocaleData from './default';\nimport LocaleContext from './context';\n\nvar LocaleReceiver = /*#__PURE__*/function (_React$Component) {\n _inherits(LocaleReceiver, _React$Component);\n\n var _super = _createSuper(LocaleReceiver);\n\n function LocaleReceiver() {\n _classCallCheck(this, LocaleReceiver);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(LocaleReceiver, [{\n key: \"getLocale\",\n value: function getLocale() {\n var _this$props = this.props,\n componentName = _this$props.componentName,\n defaultLocale = _this$props.defaultLocale;\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var antLocale = this.context;\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }\n }, {\n key: \"getLocaleCode\",\n value: function getLocaleCode() {\n var antLocale = this.context;\n var localeCode = antLocale && antLocale.locale; // Had use LocaleProvide but didn't set locale\n\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n\n return localeCode;\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children(this.getLocale(), this.getLocaleCode(), this.context);\n }\n }]);\n\n return LocaleReceiver;\n}(React.Component);\n\nexport { LocaleReceiver as default };\nLocaleReceiver.defaultProps = {\n componentName: 'global'\n};\nLocaleReceiver.contextType = LocaleContext;\nexport function useLocaleReceiver(componentName, defaultLocale) {\n var antLocale = React.useContext(LocaleContext);\n var componentLocale = React.useMemo(function () {\n var locale = defaultLocale || defaultLocaleData[componentName || 'global'];\n var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [componentLocale];\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\nexport default arrayFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\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\nexport default getSymbols;\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n return root.contains(n);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CustomPicker = 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 _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;","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\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\nexport default isPlainObject;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","import baseClone from './_baseClone.js';\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\nexport default cloneDeep;\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport invariant from 'tiny-warning';\n\nexport const FormikContext = React.createContext>(\n undefined as any\n);\nexport const FormikProvider = FormikContext.Provider;\nexport const FormikConsumer = FormikContext.Consumer;\n\nexport function useFormikContext() {\n const formik = React.useContext>(FormikContext);\n\n invariant(\n !!formik,\n `Formik context is undefined, please verify you are calling useFormikContext() as child of a component.`\n );\n\n return formik;\n}\n","import * as React from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {\n FormikConfig,\n FormikErrors,\n FormikState,\n FormikTouched,\n FormikValues,\n FormikProps,\n FieldMetaProps,\n FieldHelperProps,\n FieldInputProps,\n FormikHelpers,\n FormikHandlers,\n} from './types';\nimport {\n isFunction,\n isString,\n setIn,\n isEmptyChildren,\n isPromise,\n setNestedObjectValues,\n getActiveElement,\n getIn,\n isObject,\n} from './utils';\nimport { FormikProvider } from './FormikContext';\nimport invariant from 'tiny-warning';\n\ntype FormikMessage =\n | { type: 'SUBMIT_ATTEMPT' }\n | { type: 'SUBMIT_FAILURE' }\n | { type: 'SUBMIT_SUCCESS' }\n | { type: 'SET_ISVALIDATING'; payload: boolean }\n | { type: 'SET_ISSUBMITTING'; payload: boolean }\n | { type: 'SET_VALUES'; payload: Values }\n | { type: 'SET_FIELD_VALUE'; payload: { field: string; value?: any } }\n | { type: 'SET_FIELD_TOUCHED'; payload: { field: string; value?: boolean } }\n | { type: 'SET_FIELD_ERROR'; payload: { field: string; value?: string } }\n | { type: 'SET_TOUCHED'; payload: FormikTouched }\n | { type: 'SET_ERRORS'; payload: FormikErrors }\n | { type: 'SET_STATUS'; payload: any }\n | {\n type: 'SET_FORMIK_STATE';\n payload: (s: FormikState) => FormikState;\n }\n | {\n type: 'RESET_FORM';\n payload: FormikState;\n };\n\n// State reducer\nfunction formikReducer(\n state: FormikState,\n msg: FormikMessage\n) {\n switch (msg.type) {\n case 'SET_VALUES':\n return { ...state, values: msg.payload };\n case 'SET_TOUCHED':\n return { ...state, touched: msg.payload };\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return { ...state, errors: msg.payload };\n case 'SET_STATUS':\n return { ...state, status: msg.payload };\n case 'SET_ISSUBMITTING':\n return { ...state, isSubmitting: msg.payload };\n case 'SET_ISVALIDATING':\n return { ...state, isValidating: msg.payload };\n case 'SET_FIELD_VALUE':\n return {\n ...state,\n values: setIn(state.values, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_TOUCHED':\n return {\n ...state,\n touched: setIn(state.touched, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_ERROR':\n return {\n ...state,\n errors: setIn(state.errors, msg.payload.field, msg.payload.value),\n };\n case 'RESET_FORM':\n return { ...state, ...msg.payload };\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n case 'SUBMIT_ATTEMPT':\n return {\n ...state,\n touched: setNestedObjectValues>(\n state.values,\n true\n ),\n isSubmitting: true,\n submitCount: state.submitCount + 1,\n };\n case 'SUBMIT_FAILURE':\n return {\n ...state,\n isSubmitting: false,\n };\n case 'SUBMIT_SUCCESS':\n return {\n ...state,\n isSubmitting: false,\n };\n default:\n return state;\n }\n}\n\n// Initial empty states // objects\nconst emptyErrors: FormikErrors = {};\nconst emptyTouched: FormikTouched = {};\n\n// This is an object that contains a map of all registered fields\n// and their validate functions\ninterface FieldRegistry {\n [field: string]: {\n validate: (value: any) => string | Promise | undefined;\n };\n}\n\nexport function useFormik({\n validateOnChange = true,\n validateOnBlur = true,\n validateOnMount = false,\n isInitialValid,\n enableReinitialize = false,\n onSubmit,\n ...rest\n}: FormikConfig) {\n const props = {\n validateOnChange,\n validateOnBlur,\n validateOnMount,\n onSubmit,\n ...rest,\n };\n const initialValues = React.useRef(props.initialValues);\n const initialErrors = React.useRef(props.initialErrors || emptyErrors);\n const initialTouched = React.useRef(props.initialTouched || emptyTouched);\n const initialStatus = React.useRef(props.initialStatus);\n const isMounted = React.useRef(false);\n const fieldRegistry = React.useRef({});\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n typeof isInitialValid === 'undefined',\n 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.'\n );\n // eslint-disable-next-line\n }, []);\n }\n\n React.useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const [state, dispatch] = React.useReducer<\n React.Reducer, FormikMessage>\n >(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0,\n });\n\n const runValidateHandler = React.useCallback(\n (values: Values, field?: string): Promise> => {\n return new Promise((resolve, reject) => {\n const maybePromisedErrors = (props.validate as any)(values, field);\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n (maybePromisedErrors as Promise).then(\n errors => {\n resolve(errors || emptyErrors);\n },\n actualException => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n actualException\n );\n }\n\n reject(actualException);\n }\n );\n } else {\n resolve(maybePromisedErrors);\n }\n });\n },\n [props.validate]\n );\n\n /**\n * Run validation against a Yup schema and optionally run a function if successful\n */\n const runValidationSchema = React.useCallback(\n (values: Values, field?: string): Promise> => {\n const validationSchema = props.validationSchema;\n const schema = isFunction(validationSchema)\n ? validationSchema(field)\n : validationSchema;\n const promise =\n field && schema.validateAt\n ? schema.validateAt(field, values)\n : validateYupSchema(values, schema);\n return new Promise((resolve, reject) => {\n promise.then(\n () => {\n resolve(emptyErrors);\n },\n (err: any) => {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n err\n );\n }\n\n reject(err);\n }\n }\n );\n });\n },\n [props.validationSchema]\n );\n\n const runSingleFieldLevelValidation = React.useCallback(\n (field: string, value: void | string): Promise => {\n return new Promise(resolve =>\n resolve(fieldRegistry.current[field].validate(value) as string)\n );\n },\n []\n );\n\n const runFieldLevelValidations = React.useCallback(\n (values: Values): Promise> => {\n const fieldKeysWithValidation: string[] = Object.keys(\n fieldRegistry.current\n ).filter(f => isFunction(fieldRegistry.current[f].validate));\n\n // Construct an array with all of the field validation functions\n const fieldValidations: Promise[] =\n fieldKeysWithValidation.length > 0\n ? fieldKeysWithValidation.map(f =>\n runSingleFieldLevelValidation(f, getIn(values, f))\n )\n : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then((fieldErrorsList: string[]) =>\n fieldErrorsList.reduce((prev, curr, index) => {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n return prev;\n }, {})\n );\n },\n [runSingleFieldLevelValidation]\n );\n\n // Run all validations and return the result\n const runAllValidations = React.useCallback(\n (values: Values) => {\n return Promise.all([\n runFieldLevelValidations(values),\n props.validationSchema ? runValidationSchema(values) : {},\n props.validate ? runValidateHandler(values) : {},\n ]).then(([fieldErrors, schemaErrors, validateErrors]) => {\n const combinedErrors = deepmerge.all>(\n [fieldErrors, schemaErrors, validateErrors],\n { arrayMerge }\n );\n return combinedErrors;\n });\n },\n [\n props.validate,\n props.validationSchema,\n runFieldLevelValidations,\n runValidateHandler,\n runValidationSchema,\n ]\n );\n\n // Run all validations methods and update state accordingly\n const validateFormWithHighPriority = useEventCallback(\n (values: Values = state.values) => {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runAllValidations(values).then(combinedErrors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n if (!isEqual(state.errors, combinedErrors)) {\n dispatch({ type: 'SET_ERRORS', payload: combinedErrors });\n }\n }\n return combinedErrors;\n });\n }\n );\n\n React.useEffect(() => {\n if (\n validateOnMount &&\n isMounted.current === true &&\n isEqual(initialValues.current, props.initialValues)\n ) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n\n const resetForm = React.useCallback(\n (nextState?: Partial>) => {\n const values =\n nextState && nextState.values\n ? nextState.values\n : initialValues.current;\n const errors =\n nextState && nextState.errors\n ? nextState.errors\n : initialErrors.current\n ? initialErrors.current\n : props.initialErrors || {};\n const touched =\n nextState && nextState.touched\n ? nextState.touched\n : initialTouched.current\n ? initialTouched.current\n : props.initialTouched || {};\n const status =\n nextState && nextState.status\n ? nextState.status\n : initialStatus.current\n ? initialStatus.current\n : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n const dispatchFn = () => {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors,\n touched,\n status,\n values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount:\n !!nextState &&\n !!nextState.submitCount &&\n typeof nextState.submitCount === 'number'\n ? nextState.submitCount\n : 0,\n },\n });\n };\n\n if (props.onReset) {\n const maybePromisedOnReset = (props.onReset as any)(\n state.values,\n imperativeMethods\n );\n\n if (isPromise(maybePromisedOnReset)) {\n (maybePromisedOnReset as Promise).then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n },\n [props.initialErrors, props.initialStatus, props.initialTouched]\n );\n\n React.useEffect(() => {\n if (\n isMounted.current === true &&\n !isEqual(initialValues.current, props.initialValues)\n ) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [\n enableReinitialize,\n props.initialValues,\n resetForm,\n validateOnMount,\n validateFormWithHighPriority,\n ]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialErrors.current, props.initialErrors)\n ) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors,\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialTouched.current, props.initialTouched)\n ) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched,\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialStatus.current, props.initialStatus)\n ) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus,\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n\n const validateField = useEventCallback((name: string) => {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n\n if (\n fieldRegistry.current[name] &&\n isFunction(fieldRegistry.current[name].validate)\n ) {\n const value = getIn(state.values, name);\n const maybePromise = fieldRegistry.current[name].validate(value);\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return maybePromise\n .then((x: any) => x)\n .then((error: string) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise as string | undefined,\n },\n });\n return Promise.resolve(maybePromise as string | undefined);\n }\n } else if (props.validationSchema) {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runValidationSchema(state.values, name)\n .then((x: any) => x)\n .then((error: any) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error[name] },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n }\n\n return Promise.resolve();\n });\n\n const registerField = React.useCallback((name: string, { validate }: any) => {\n fieldRegistry.current[name] = {\n validate,\n };\n }, []);\n\n const unregisterField = React.useCallback((name: string) => {\n delete fieldRegistry.current[name];\n }, []);\n\n const setTouched = useEventCallback(\n (touched: FormikTouched, shouldValidate?: boolean) => {\n dispatch({ type: 'SET_TOUCHED', payload: touched });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const setErrors = React.useCallback((errors: FormikErrors) => {\n dispatch({ type: 'SET_ERRORS', payload: errors });\n }, []);\n\n const setValues = useEventCallback(\n (values: React.SetStateAction, shouldValidate?: boolean) => {\n const resolvedValues = isFunction(values) ? values(state.values) : values;\n\n dispatch({ type: 'SET_VALUES', payload: resolvedValues });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(resolvedValues)\n : Promise.resolve();\n }\n );\n\n const setFieldError = React.useCallback(\n (field: string, value: string | undefined) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field, value },\n });\n },\n []\n );\n\n const setFieldValue = useEventCallback(\n (field: string, value: any, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field,\n value,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(setIn(state.values, field, value))\n : Promise.resolve();\n }\n );\n\n const executeChange = React.useCallback(\n (eventOrTextValue: string | React.ChangeEvent, maybePath?: string) => {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n let field = maybePath;\n let val = eventOrTextValue;\n let parsed;\n // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if ((eventOrTextValue as any).persist) {\n (eventOrTextValue as React.ChangeEvent).persist();\n }\n const target = eventOrTextValue.target\n ? (eventOrTextValue as React.ChangeEvent).target\n : (eventOrTextValue as React.ChangeEvent).currentTarget;\n\n const {\n type,\n name,\n id,\n value,\n checked,\n outerHTML,\n options,\n multiple,\n } = target;\n\n field = maybePath ? maybePath : name ? name : id;\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange',\n });\n }\n val = /number|range/.test(type)\n ? ((parsed = parseFloat(value)), isNaN(parsed) ? '' : parsed)\n : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field!), checked, value)\n : !!multiple //