{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/reactcss/lib/index.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@headlessui/react/dist/utils/render.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-event.js","webpack:///./node_modules/fabric/dist/fabric.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@headlessui/react/dist/components/label/label.js","webpack:///./node_modules/@headlessui/react/dist/utils/form.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-controllable.js","webpack:///./node_modules/@headlessui/react/dist/components/radio-group/radio-group.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-tree-walker.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@headlessui/react/dist/utils/focus-management.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@headlessui/react/dist/utils/match.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","webpack:///./node_modules/@headlessui/react/dist/internal/open-closed.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/react-responsive-modal/dist/react-responsive-modal.esm.js","webpack:///./node_modules/react-tippy/dist/react-tippy.js","webpack:///./node_modules/react-device-detect/main.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-latest-value.js","webpack:///./node_modules/cloudinary-core/cloudinary-core.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-id.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/algoliasearch-helper/index.js","webpack:///./node_modules/@headlessui/react/dist/components/keyboard.js","webpack:///./node_modules/@headlessui/react/dist/utils/env.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/react-toggle/dist/component/index.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","webpack:///./node_modules/@headlessui/react/dist/utils/start-transition.js","webpack:///./node_modules/@headlessui/react/dist/components/disclosure/disclosure.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/rc-slider/node_modules/classnames/index.js","webpack:///./node_modules/@headlessui/react/dist/utils/owner.js","webpack:///./node_modules/@headlessui/react/dist/utils/disposables.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","webpack:///./node_modules/@headlessui/react/dist/internal/hidden.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./app/javascript/components/cart/ShippingEstimate.jsx","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/rc-slider/node_modules/rc-util/es/warning.js","webpack:///./node_modules/rc-slider/es/common/Track.js","webpack:///./node_modules/@babel/runtime/helpers/esm/get.js","webpack:///./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack:///./node_modules/rc-slider/node_modules/rc-util/es/Dom/addEventListener.js","webpack:///./node_modules/rc-slider/es/common/Steps.js","webpack:///./node_modules/rc-slider/es/common/Marks.js","webpack:///./node_modules/rc-slider/es/Handle.js","webpack:///./node_modules/rc-slider/node_modules/rc-util/es/KeyCode.js","webpack:///./node_modules/rc-slider/es/utils.js","webpack:///./node_modules/rc-slider/es/common/createSlider.js","webpack:///./node_modules/rc-slider/es/Slider.js","webpack:///./node_modules/rc-slider/es/Range.js","webpack:///./node_modules/rc-util/es/raf.js","webpack:///./node_modules/rc-util/es/Dom/contains.js","webpack:///./node_modules/rc-util/es/Dom/findDOMNode.js","webpack:///./node_modules/rc-util/es/ref.js","webpack:///./node_modules/rc-util/es/Dom/addEventListener.js","webpack:///./node_modules/rc-util/es/Dom/canUseDom.js","webpack:///./node_modules/rc-util/es/Portal.js","webpack:///./node_modules/rc-trigger/es/utils/alignUtil.js","webpack:///./node_modules/rc-motion/es/util/motion.js","webpack:///./node_modules/rc-motion/es/interface.js","webpack:///./node_modules/rc-motion/es/hooks/useState.js","webpack:///./node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack:///./node_modules/rc-motion/es/hooks/useStepQueue.js","webpack:///./node_modules/rc-motion/es/hooks/useNextFrame.js","webpack:///./node_modules/rc-motion/es/hooks/useStatus.js","webpack:///./node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack:///./node_modules/rc-motion/es/DomWrapper.js","webpack:///./node_modules/rc-motion/es/CSSMotion.js","webpack:///./node_modules/rc-motion/es/util/diff.js","webpack:///./node_modules/rc-motion/es/CSSMotionList.js","webpack:///./node_modules/rc-motion/es/index.js","webpack:///./node_modules/rc-trigger/es/utils/legacyUtil.js","webpack:///./node_modules/rc-trigger/es/Popup/Mask.js","webpack:///./node_modules/rc-util/es/Dom/isVisible.js","webpack:///./node_modules/dom-align/dist-web/index.js","webpack:///./node_modules/rc-align/es/util.js","webpack:///./node_modules/rc-align/es/Align.js","webpack:///./node_modules/rc-align/es/hooks/useBuffer.js","webpack:///./node_modules/rc-align/es/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack:///./node_modules/rc-trigger/es/Popup/PopupInner.js","webpack:///./node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack:///./node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack:///./node_modules/rc-trigger/es/Popup/index.js","webpack:///./node_modules/rc-util/es/isMobile.js","webpack:///./node_modules/rc-trigger/es/context.js","webpack:///./node_modules/rc-trigger/es/index.js","webpack:///./node_modules/rc-tooltip/es/placements.js","webpack:///./node_modules/rc-tooltip/es/Content.js","webpack:///./node_modules/rc-tooltip/es/Tooltip.js","webpack:///./node_modules/rc-tooltip/es/index.js","webpack:///./node_modules/rc-slider/node_modules/rc-util/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/rc-slider/node_modules/rc-util/es/ref.js","webpack:///./node_modules/rc-slider/node_modules/rc-util/es/raf.js","webpack:///./node_modules/rc-slider/es/common/SliderTooltip.js","webpack:///./node_modules/rc-slider/es/index.js","webpack:///./node_modules/rc-slider/es/createSliderWithTooltip.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-is-mounted.js","webpack:///./node_modules/react-tabs/esm/helpers/elementTypes.js","webpack:///./node_modules/react-tabs/esm/helpers/childrenDeepMap.js","webpack:///./node_modules/clsx/dist/clsx.m.js","webpack:///./node_modules/react-tabs/esm/helpers/uuid.js","webpack:///./node_modules/react-tabs/esm/helpers/count.js","webpack:///./node_modules/react-tabs/esm/components/UncontrolledTabs.js","webpack:///./node_modules/react-tabs/esm/components/Tabs.js","webpack:///./node_modules/react-tabs/esm/components/TabList.js","webpack:///./node_modules/react-tabs/esm/components/Tab.js","webpack:///./node_modules/react-tabs/esm/components/TabPanel.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/react-cropper/dist/react-cropper.es.js","webpack:///./node_modules/rc-trigger/node_modules/classnames/index.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-disposables.js","webpack:///./app/javascript/components/frame-designer/designers/AddToCartButton.jsx","webpack:///./app/javascript/components/helpers/CurrencyDisplay.jsx","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./app/javascript/components/frame-designer/measure/ArtworkUnit.jsx","webpack:///./node_modules/@headlessui/react/dist/utils/micro-task.js","webpack:///./node_modules/@headlessui/react/dist/utils/bugs.js","webpack:///./node_modules/lodash-es/isBuffer.js","webpack:///./node_modules/@headlessui/react/dist/components/description/description.js","webpack:///./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/platform/browser/index.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack:///./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack:///./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack:///./node_modules/axios/lib/helpers/formDataToJSON.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/AxiosHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/speedometer.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/adapters/adapters.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/identity.js","webpack:///./app/javascript/components/afterpay/AfterpayBreakdown.js","webpack:///./app/javascript/components/frame-designer/designers/FrameCanvas.jsx","webpack:///./app/javascript/components/frame-designer/designers/FrameStyleSelector.js","webpack:///./app/javascript/components/frame-designer/designers/ViewInSpace.jsx","webpack:///./app/javascript/components/frame-designer/effects/EffectAndFilters.jsx","webpack:///./app/javascript/components/gallery-walls/StyleColourSelect.js","webpack:///./app/javascript/components/gallery-walls/SizeSelect.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/react-responsive-modal/node_modules/classnames/index.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@headlessui/react/dist/utils/class-names.js","webpack:///./node_modules/tinycolor2/tinycolor.js","webpack:///./node_modules/algoliasearch-helper/src/functions/merge.js","webpack:///./node_modules/algoliasearch-helper/src/functions/find.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/@algolia/events/events.js","webpack:///./app/javascript/components/art/constants.js","webpack:///./app/javascript/components/frame-designer/designers/FrameCanvasNew.jsx","webpack:///./app/javascript/components/frame-designer/designers/FrameColourSelector.jsx","webpack:///./app/javascript/components/frame-designer/designers/GlassModalButton.jsx","webpack:///./app/javascript/components/frame-designer/effects/EffectsControls.jsx","webpack:///./app/javascript/components/gallery-walls/CropImage.js","webpack:///./app/javascript/components/gallery-walls/EffectAndFiltersInline.jsx","webpack:///./app/javascript/components/gallery-walls/MultiImagePicker.jsx","webpack:///./app/javascript/components/multi-photo/MultiPhotoCanvas.jsx","webpack:///./node_modules/react-color/es/helpers/alpha.js","webpack:///./node_modules/react-color/es/helpers/checkboard.js","webpack:///./node_modules/react-color/es/components/common/Checkboard.js","webpack:///./node_modules/react-color/es/components/common/Alpha.js","webpack:///./node_modules/react-color/es/components/common/EditableInput.js","webpack:///./node_modules/react-color/es/helpers/hue.js","webpack:///./node_modules/react-color/es/components/common/Hue.js","webpack:///./node_modules/lodash-es/_listCacheClear.js","webpack:///./node_modules/lodash-es/eq.js","webpack:///./node_modules/lodash-es/_assocIndexOf.js","webpack:///./node_modules/lodash-es/_listCacheDelete.js","webpack:///./node_modules/lodash-es/_listCacheGet.js","webpack:///./node_modules/lodash-es/_listCacheHas.js","webpack:///./node_modules/lodash-es/_listCacheSet.js","webpack:///./node_modules/lodash-es/_ListCache.js","webpack:///./node_modules/lodash-es/_stackClear.js","webpack:///./node_modules/lodash-es/_stackDelete.js","webpack:///./node_modules/lodash-es/_stackGet.js","webpack:///./node_modules/lodash-es/_stackHas.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./node_modules/lodash-es/isFunction.js","webpack:///./node_modules/lodash-es/_isMasked.js","webpack:///./node_modules/lodash-es/_coreJsData.js","webpack:///./node_modules/lodash-es/_toSource.js","webpack:///./node_modules/lodash-es/_baseIsNative.js","webpack:///./node_modules/lodash-es/_getValue.js","webpack:///./node_modules/lodash-es/_getNative.js","webpack:///./node_modules/lodash-es/_Map.js","webpack:///./node_modules/lodash-es/_nativeCreate.js","webpack:///./node_modules/lodash-es/_hashClear.js","webpack:///./node_modules/lodash-es/_hashDelete.js","webpack:///./node_modules/lodash-es/_hashGet.js","webpack:///./node_modules/lodash-es/_hashHas.js","webpack:///./node_modules/lodash-es/_hashSet.js","webpack:///./node_modules/lodash-es/_Hash.js","webpack:///./node_modules/lodash-es/_mapCacheClear.js","webpack:///./node_modules/lodash-es/_isKeyable.js","webpack:///./node_modules/lodash-es/_getMapData.js","webpack:///./node_modules/lodash-es/_mapCacheDelete.js","webpack:///./node_modules/lodash-es/_mapCacheGet.js","webpack:///./node_modules/lodash-es/_mapCacheHas.js","webpack:///./node_modules/lodash-es/_mapCacheSet.js","webpack:///./node_modules/lodash-es/_MapCache.js","webpack:///./node_modules/lodash-es/_stackSet.js","webpack:///./node_modules/lodash-es/_Stack.js","webpack:///./node_modules/lodash-es/_defineProperty.js","webpack:///./node_modules/lodash-es/_baseAssignValue.js","webpack:///./node_modules/lodash-es/_assignMergeValue.js","webpack:///./node_modules/lodash-es/_createBaseFor.js","webpack:///./node_modules/lodash-es/_baseFor.js","webpack:///./node_modules/lodash-es/_Uint8Array.js","webpack:///./node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///./node_modules/lodash-es/_cloneTypedArray.js","webpack:///./node_modules/lodash-es/_copyArray.js","webpack:///./node_modules/lodash-es/_baseCreate.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/lodash-es/_isPrototype.js","webpack:///./node_modules/lodash-es/_initCloneObject.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/_baseIsArguments.js","webpack:///./node_modules/lodash-es/isArguments.js","webpack:///./node_modules/lodash-es/isArray.js","webpack:///./node_modules/lodash-es/isLength.js","webpack:///./node_modules/lodash-es/isArrayLike.js","webpack:///./node_modules/lodash-es/isArrayLikeObject.js","webpack:///./node_modules/lodash-es/isPlainObject.js","webpack:///./node_modules/lodash-es/_baseIsTypedArray.js","webpack:///./node_modules/lodash-es/_baseUnary.js","webpack:///./node_modules/lodash-es/isTypedArray.js","webpack:///./node_modules/lodash-es/_safeGet.js","webpack:///./node_modules/lodash-es/_assignValue.js","webpack:///./node_modules/lodash-es/_copyObject.js","webpack:///./node_modules/lodash-es/_baseTimes.js","webpack:///./node_modules/lodash-es/_isIndex.js","webpack:///./node_modules/lodash-es/_arrayLikeKeys.js","webpack:///./node_modules/lodash-es/_nativeKeysIn.js","webpack:///./node_modules/lodash-es/_baseKeysIn.js","webpack:///./node_modules/lodash-es/keysIn.js","webpack:///./node_modules/lodash-es/toPlainObject.js","webpack:///./node_modules/lodash-es/_baseMergeDeep.js","webpack:///./node_modules/lodash-es/_baseMerge.js","webpack:///./node_modules/lodash-es/identity.js","webpack:///./node_modules/lodash-es/_apply.js","webpack:///./node_modules/lodash-es/_overRest.js","webpack:///./node_modules/lodash-es/constant.js","webpack:///./node_modules/lodash-es/_baseSetToString.js","webpack:///./node_modules/lodash-es/_shortOut.js","webpack:///./node_modules/lodash-es/_setToString.js","webpack:///./node_modules/lodash-es/_baseRest.js","webpack:///./node_modules/lodash-es/_isIterateeCall.js","webpack:///./node_modules/lodash-es/_createAssigner.js","webpack:///./node_modules/lodash-es/merge.js","webpack:///./node_modules/react-color/es/components/common/Raised.js","webpack:///./node_modules/lodash-es/now.js","webpack:///./node_modules/lodash-es/_trimmedEndIndex.js","webpack:///./node_modules/lodash-es/_baseTrim.js","webpack:///./node_modules/lodash-es/isSymbol.js","webpack:///./node_modules/lodash-es/toNumber.js","webpack:///./node_modules/lodash-es/debounce.js","webpack:///./node_modules/lodash-es/throttle.js","webpack:///./node_modules/react-color/es/components/common/Saturation.js","webpack:///./node_modules/react-color/es/helpers/saturation.js","webpack:///./node_modules/lodash-es/_arrayEach.js","webpack:///./node_modules/lodash-es/_nativeKeys.js","webpack:///./node_modules/lodash-es/_baseKeys.js","webpack:///./node_modules/lodash-es/keys.js","webpack:///./node_modules/lodash-es/_createBaseEach.js","webpack:///./node_modules/lodash-es/_baseEach.js","webpack:///./node_modules/lodash-es/_baseForOwn.js","webpack:///./node_modules/lodash-es/_castFunction.js","webpack:///./node_modules/lodash-es/forEach.js","webpack:///./node_modules/react-color/es/helpers/color.js","webpack:///./node_modules/react-color/es/components/common/ColorWrap.js","webpack:///./node_modules/react-color/es/helpers/interaction.js","webpack:///./node_modules/react-color/es/components/common/Swatch.js","webpack:///./node_modules/react-color/es/components/alpha/AlphaPointer.js","webpack:///./node_modules/react-color/es/components/alpha/Alpha.js","webpack:///./node_modules/lodash-es/_arrayMap.js","webpack:///./node_modules/lodash-es/_setCacheAdd.js","webpack:///./node_modules/lodash-es/_setCacheHas.js","webpack:///./node_modules/lodash-es/_SetCache.js","webpack:///./node_modules/lodash-es/_arraySome.js","webpack:///./node_modules/lodash-es/_cacheHas.js","webpack:///./node_modules/lodash-es/_equalArrays.js","webpack:///./node_modules/lodash-es/_mapToArray.js","webpack:///./node_modules/lodash-es/_setToArray.js","webpack:///./node_modules/lodash-es/_equalByTag.js","webpack:///./node_modules/lodash-es/_arrayPush.js","webpack:///./node_modules/lodash-es/_baseGetAllKeys.js","webpack:///./node_modules/lodash-es/_arrayFilter.js","webpack:///./node_modules/lodash-es/stubArray.js","webpack:///./node_modules/lodash-es/_getSymbols.js","webpack:///./node_modules/lodash-es/_getAllKeys.js","webpack:///./node_modules/lodash-es/_equalObjects.js","webpack:///./node_modules/lodash-es/_DataView.js","webpack:///./node_modules/lodash-es/_Promise.js","webpack:///./node_modules/lodash-es/_Set.js","webpack:///./node_modules/lodash-es/_WeakMap.js","webpack:///./node_modules/lodash-es/_getTag.js","webpack:///./node_modules/lodash-es/_baseIsEqualDeep.js","webpack:///./node_modules/lodash-es/_baseIsEqual.js","webpack:///./node_modules/lodash-es/_baseIsMatch.js","webpack:///./node_modules/lodash-es/_isStrictComparable.js","webpack:///./node_modules/lodash-es/_getMatchData.js","webpack:///./node_modules/lodash-es/_matchesStrictComparable.js","webpack:///./node_modules/lodash-es/_baseMatches.js","webpack:///./node_modules/lodash-es/_isKey.js","webpack:///./node_modules/lodash-es/memoize.js","webpack:///./node_modules/lodash-es/_memoizeCapped.js","webpack:///./node_modules/lodash-es/_stringToPath.js","webpack:///./node_modules/lodash-es/_baseToString.js","webpack:///./node_modules/lodash-es/toString.js","webpack:///./node_modules/lodash-es/_castPath.js","webpack:///./node_modules/lodash-es/_toKey.js","webpack:///./node_modules/lodash-es/_baseGet.js","webpack:///./node_modules/lodash-es/get.js","webpack:///./node_modules/lodash-es/_baseHasIn.js","webpack:///./node_modules/lodash-es/_hasPath.js","webpack:///./node_modules/lodash-es/hasIn.js","webpack:///./node_modules/lodash-es/_baseMatchesProperty.js","webpack:///./node_modules/lodash-es/_baseProperty.js","webpack:///./node_modules/lodash-es/_basePropertyDeep.js","webpack:///./node_modules/lodash-es/property.js","webpack:///./node_modules/lodash-es/_baseIteratee.js","webpack:///./node_modules/lodash-es/_baseMap.js","webpack:///./node_modules/lodash-es/map.js","webpack:///./node_modules/react-color/es/components/block/BlockSwatches.js","webpack:///./node_modules/react-color/es/components/block/Block.js","webpack:///./node_modules/material-colors/dist/colors.es2015.js","webpack:///./node_modules/react-color/es/components/circle/CircleSwatch.js","webpack:///./node_modules/react-color/es/components/circle/Circle.js","webpack:///./node_modules/lodash-es/isUndefined.js","webpack:///./node_modules/react-color/es/components/chrome/ChromeFields.js","webpack:///./node_modules/react-color/es/components/chrome/ChromePointer.js","webpack:///./node_modules/react-color/es/components/chrome/ChromePointerCircle.js","webpack:///./node_modules/react-color/es/components/chrome/Chrome.js","webpack:///./node_modules/react-color/es/components/compact/CompactColor.js","webpack:///./node_modules/react-color/es/components/compact/CompactFields.js","webpack:///./node_modules/react-color/es/components/compact/Compact.js","webpack:///./node_modules/react-color/es/components/github/GithubSwatch.js","webpack:///./node_modules/react-color/es/components/github/Github.js","webpack:///./node_modules/react-color/es/components/hue/HuePointer.js","webpack:///./node_modules/react-color/es/components/hue/Hue.js","webpack:///./node_modules/react-color/es/components/material/Material.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopFields.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopButton.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","webpack:///./node_modules/react-color/es/components/photoshop/Photoshop.js","webpack:///./node_modules/react-color/es/components/sketch/SketchFields.js","webpack:///./node_modules/react-color/es/components/sketch/SketchPresetColors.js","webpack:///./node_modules/react-color/es/components/sketch/Sketch.js","webpack:///./node_modules/react-color/es/components/slider/SliderSwatch.js","webpack:///./node_modules/react-color/es/components/slider/SliderSwatches.js","webpack:///./node_modules/react-color/es/components/slider/Slider.js","webpack:///./node_modules/react-color/es/components/slider/SliderPointer.js","webpack:///./node_modules/react-color/es/components/swatches/SwatchesColor.js","webpack:///./node_modules/react-color/es/components/swatches/SwatchesGroup.js","webpack:///./node_modules/react-color/es/components/swatches/Swatches.js","webpack:///./node_modules/react-color/es/components/twitter/Twitter.js","webpack:///./node_modules/react-color/es/components/google/GooglePointerCircle.js","webpack:///./node_modules/react-color/es/components/google/GooglePointer.js","webpack:///./node_modules/react-color/es/components/google/GoogleFields.js","webpack:///./node_modules/react-color/es/components/google/Google.js","webpack:///./app/javascript/components/frame-designer/templates/Personalisation.jsx","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-flags.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/react-compare-slider/dist/react-compare-slider.esm.js","webpack:///./app/javascript/select_theme.ts","webpack:///./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack:///./node_modules/stylis/dist/stylis.mjs","webpack:///./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","webpack:///./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack:///./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack:///./node_modules/@emotion/react/dist/emotion-element-a8309070.browser.esm.js","webpack:///./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack:///./node_modules/react-select/dist/index-c7a4d7ce.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack:///./node_modules/react-select/dist/useStateManager-783b07d5.esm.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/react-select/dist/Select-126cf1dd.esm.js","webpack:///./node_modules/react-select/dist/react-select.esm.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/algoliasearch-helper/src/functions/defaultsPure.js","webpack:///./node_modules/algoliasearch-helper/src/functions/omit.js","webpack:///./node_modules/algoliasearch-helper/src/functions/objectHasKeys.js","webpack:///./node_modules/algoliasearch-helper/src/functions/escapeFacetValue.js","webpack:///./node_modules/instantsearch.js/node_modules/qs/lib/formats.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/lodash/forOwn.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/instantsearch.js/node_modules/qs/lib/index.js","webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack:///./node_modules/lodash-es/_nodeUtil.js","webpack:///./app/javascript/components/admin/AdminCrop.jsx","webpack:///./app/javascript/components/admin/AdminPricingBreakdown.jsx","webpack:///./app/javascript/components/admin/MissiveSidebarApp.jsx","webpack:///./node_modules/algoliasearch-helper/src/SearchParameters/index.js","webpack:///./node_modules/algoliasearch-helper/src/SearchResults/index.js","webpack:///./node_modules/algoliasearch-helper/src/functions/orderBy.js","webpack:///./node_modules/algoliasearch-helper/src/functions/formatSort.js","webpack:///./node_modules/algoliasearch-helper/src/functions/inherits.js","webpack:///./node_modules/algoliasearch-helper/src/version.js","webpack:///./node_modules/instantsearch.js/node_modules/qs/lib/utils.js","webpack:///./node_modules/process/browser.js","webpack:///./app/javascript/components/articles/ArticleSearch.jsx","webpack:///./app/javascript/components/cart/OrderGiftOptions.jsx","webpack:///./app/javascript/components/cart/OrderItemGiftOptions.jsx","webpack:///./app/javascript/components/cart/OrderItemNote.jsx","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./app/javascript/components/cart/PricingBreakdown.jsx","webpack:///./app/javascript/components/cart/ShippingMethodShow.jsx","webpack:///./app/javascript/components/draft-orders/AddToCart.jsx","webpack:///./app/javascript/components/draft-orders/CartShare.jsx","webpack:///./app/javascript/components/frame-designer/custom_size/CustomSize.jsx","webpack:///./node_modules/lodash/assign.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/lodash/compact.js","webpack:///./node_modules/lodash/difference.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/functions.js","webpack:///./node_modules/lodash/includes.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/isElement.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/lodash/trim.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/qr.js/lib/mode.js","webpack:///./node_modules/qr.js/lib/ErrorCorrectLevel.js","webpack:///./node_modules/qr.js/lib/Polynomial.js","webpack:///./node_modules/qr.js/lib/math.js","webpack:///./node_modules/react-qr-code/node_modules/prop-types/index.js","webpack:///./app/javascript/components/frame-designer/designers/FrameGallery.jsx","webpack:///./app/javascript/components/frame-designer/designers/PreviewModeSelector.jsx","webpack:///./node_modules/resize-observer/lib/ContentRect.js","webpack:///./app/javascript/components/frame-designer/effects/EffectAndFiltersContainer.jsx","webpack:///./app/javascript/components/frame-designer/measure/MeasureContainer.jsx","webpack:///./app/javascript/components/frame-designer/measure/MeasureFloat.jsx","webpack:///./app/javascript/components/frame-designer/measure/MeasureGuide.jsx","webpack:///./app/javascript/components/frame-designer/measure/MeasureHelpButton.jsx","webpack:///./app/javascript/components/frame-designer/print/CloudinaryUploader.jsx","webpack:///./app/javascript/components/frame-designer/print/GiftNoteUploader.jsx","webpack:///./app/javascript/components/frame-designer/print/PrintSizeForm.jsx","webpack:///./app/javascript/components/frame-designer/print/Uploader.jsx","webpack:///./app/javascript/components/frame-designer/templates/CropAndEdit.jsx","webpack:///./app/javascript/components/gallery-walls/GalleryDesignerUI.jsx","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./app/javascript/components/gallery-walls/GalleryWallTemplateShow.jsx","webpack:///./app/javascript/components/multi-photo/MultiPhotoIndex.jsx","webpack:///./app/javascript/components/multi-photo/useImageWindows.jsx","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/shared/process-lazy-preloader.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/onLoad.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/components-shared/utils.js","webpack:///./node_modules/swiper/components-shared/params-list.js","webpack:///./node_modules/swiper/react/get-children.js","webpack:///./node_modules/swiper/react/virtual.js","webpack:///./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/react/context.js","webpack:///./node_modules/swiper/react/swiper.js","webpack:///./node_modules/swiper/components-shared/get-params.js","webpack:///./node_modules/swiper/components-shared/mount-swiper.js","webpack:///./node_modules/swiper/components-shared/get-changed-params.js","webpack:///./node_modules/swiper/components-shared/update-swiper.js","webpack:///./node_modules/swiper/components-shared/update-on-virtual-data.js","webpack:///./node_modules/swiper/react/swiper-slide.js","webpack:///./app/javascript/components/frame-designer/designers/FrameDesignerUI.jsx","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/IndexContext.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchContext.js","webpack:///./node_modules/instantsearch.js/es/helpers/get-insights-anonymous-user-token.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/safelyRunOnBrowser.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/noop.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/getAppIdAndApiKey.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/find.js","webpack:///./node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/render-args.js","webpack:///./node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js","webpack:///./node_modules/instantsearch.js/es/lib/routers/history.js","webpack:///./node_modules/instantsearch.js/es/lib/stateMappings/simple.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/isEqual.js","webpack:///./node_modules/instantsearch.js/es/middlewares/createRouterMiddleware.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/documentation.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/isIndexWidget.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/mergeSearchParameters.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/findIndex.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/uniq.js","webpack:///./node_modules/instantsearch.js/es/widgets/index/index.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/resolveSearchParameters.js","webpack:///./node_modules/instantsearch.js/es/lib/suit.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/getPropertyByPath.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/escape-html.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/isPlainObject.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/escape-highlight.js","webpack:///./node_modules/instantsearch.js/es/helpers/highlight.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/concatHighlightedParts.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/reverseHighlightedParts.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/getHighlightedParts.js","webpack:///./node_modules/instantsearch.js/es/helpers/reverseHighlight.js","webpack:///./node_modules/instantsearch.js/es/helpers/snippet.js","webpack:///./node_modules/instantsearch.js/es/helpers/reverseSnippet.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/serializer.js","webpack:///./node_modules/instantsearch.js/es/helpers/insights.js","webpack:///./node_modules/instantsearch.js/es/lib/createHelpers.js","webpack:///./node_modules/instantsearch.js/es/lib/formatNumber.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/defer.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/setIndexHelperState.js","webpack:///./node_modules/instantsearch.js/es/lib/InstantSearch.js","webpack:///./node_modules/instantsearch.js/es/lib/version.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/components/InstantSearchServerContext.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchServerContext.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchSSRContext.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchSSRContext.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/version.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useForceUpdate.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchApi.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/components/InstantSearch.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/checkRendering.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/getObjectType.js","webpack:///./node_modules/instantsearch.js/es/connectors/search-box/connectSearchBox.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/dequal.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/createSearchResults.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/getIndexSearchResults.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/invariant.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useIndexContext.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchContext.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useStableValue.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useIsomorphicLayoutEffect.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useWidget.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/hooks/useConnector.js","webpack:///./node_modules/react-instantsearch-hooks-web/dist/es/ui/lib/cx.js","webpack:///./node_modules/react-instantsearch-hooks-web/dist/es/ui/SearchBox.js","webpack:///./node_modules/react-instantsearch-hooks-web/dist/es/widgets/SearchBox.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/connectors/useSearchBox.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/components/Index.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/lib/useIndex.js","webpack:///./node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/components/Configure.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/connectors/useConfigure.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/createSendEventForHits.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/hits-absolute-position.js","webpack:///./node_modules/instantsearch.js/es/lib/utils/hits-query-id.js","webpack:///./node_modules/instantsearch.js/es/connectors/hits/connectHits.js","webpack:///./node_modules/react-instantsearch-hooks/dist/es/connectors/useHits.js","webpack:///./node_modules/react-instantsearch-hooks-web/dist/es/ui/InternalHighlight.js","webpack:///./node_modules/react-instantsearch-hooks-web/dist/es/ui/Highlight.js","webpack:///./node_modules/react-instantsearch-hooks-web/dist/es/widgets/Highlight.js","webpack:///./app/javascript/components/admin/Search.jsx","webpack:///./node_modules/@headlessui/react/dist/components/transitions/utils/transition.js","webpack:///./node_modules/@headlessui/react/dist/utils/once.js","webpack:///./node_modules/@headlessui/react/dist/components/transitions/transition.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-transition.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-window-event.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-tab-direction.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-owner.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-event-listener.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-watch.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-on-unmount.js","webpack:///./node_modules/@headlessui/react/dist/components/focus-trap/focus-trap.js","webpack:///./node_modules/@headlessui/react/dist/utils/document-ready.js","webpack:///./node_modules/@headlessui/react/dist/internal/portal-force-root.js","webpack:///./node_modules/@headlessui/react/dist/components/portal/portal.js","webpack:///./node_modules/@headlessui/react/dist/internal/stack-context.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-document-event.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-outside-click.js","webpack:///./node_modules/@headlessui/react/dist/use-sync-external-store-shim/useSyncExternalStoreShimClient.js","webpack:///./node_modules/@headlessui/react/dist/use-sync-external-store-shim/index.js","webpack:///./node_modules/@headlessui/react/dist/use-sync-external-store-shim/useSyncExternalStoreShimServer.js","webpack:///./node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js","webpack:///./node_modules/@headlessui/react/dist/utils/platform.js","webpack:///./node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js","webpack:///./node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js","webpack:///./node_modules/@headlessui/react/dist/utils/store.js","webpack:///./node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js","webpack:///./node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-store.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-inert.js","webpack:///./node_modules/@headlessui/react/dist/hooks/use-root-containers.js","webpack:///./node_modules/@headlessui/react/dist/components/dialog/dialog.js","webpack:///./app/javascript/components/frame-designer/upload/ImageBrowser.jsx","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack:///./node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","webpack:///./node_modules/array-move/index.js","webpack:///./app/javascript/components/multi-photo/MultiPhotoDesigner.jsx","webpack:///./node_modules/cropperjs/dist/cropper.js","webpack:///./node_modules/rc-motion/node_modules/classnames/index.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/algoliasearch/dist/algoliasearch-lite.umd.js","webpack:///./node_modules/use-sync-external-store/shim/index.js","webpack:///./node_modules/lodash-es/stubFalse.js","webpack:///./node_modules/lodash-es/_cloneBuffer.js","webpack:///./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","webpack:///./node_modules/@icons/material/CheckIcon.js","webpack:///./node_modules/react-qr-code/lib/index.js","webpack:///./node_modules/resize-observer/lib/ResizeObserver.js","webpack:///./node_modules/react-number-format/dist/react-number-format.es.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/components sync ^\\.\\/.*$","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack:///./node_modules/algoliasearch-helper/src/algoliasearch.helper.js","webpack:///./node_modules/algoliasearch-helper/src/functions/intersection.js","webpack:///./node_modules/algoliasearch-helper/src/functions/valToNumber.js","webpack:///./node_modules/algoliasearch-helper/src/utils/isValidUserToken.js","webpack:///./node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","webpack:///./node_modules/algoliasearch-helper/src/functions/compact.js","webpack:///./node_modules/algoliasearch-helper/src/functions/findIndex.js","webpack:///./node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","webpack:///./node_modules/algoliasearch-helper/src/DerivedHelper/index.js","webpack:///./node_modules/algoliasearch-helper/src/requestBuilder.js","webpack:///./node_modules/instantsearch.js/node_modules/qs/lib/stringify.js","webpack:///./node_modules/instantsearch.js/node_modules/qs/lib/parse.js","webpack:///./node_modules/ua-parser-js/dist/ua-parser.min.js","webpack:///./node_modules/react-toggle/node_modules/classnames/index.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-toggle/dist/component/check.js","webpack:///./node_modules/react-toggle/dist/component/x.js","webpack:///./node_modules/react-toggle/dist/component/util.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/lodash/_baseDifference.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/_baseFunctions.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/values.js","webpack:///./node_modules/lodash/_baseValues.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/lodash/_castSlice.js","webpack:///./node_modules/lodash/_baseSlice.js","webpack:///./node_modules/lodash/_charsEndIndex.js","webpack:///./node_modules/lodash/_charsStartIndex.js","webpack:///./node_modules/lodash/_stringToArray.js","webpack:///./node_modules/lodash/_asciiToArray.js","webpack:///./node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/lodash/_unicodeToArray.js","webpack:///./node_modules/reactcss/lib/flattenNames.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/lodash/map.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/_baseMap.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/reactcss/lib/mergeClasses.js","webpack:///./node_modules/reactcss/lib/autoprefix.js","webpack:///./node_modules/reactcss/lib/components/hover.js","webpack:///./node_modules/reactcss/lib/components/active.js","webpack:///./node_modules/reactcss/lib/loop.js","webpack:///./node_modules/qr.js/lib/QRCode.js","webpack:///./node_modules/qr.js/lib/8BitByte.js","webpack:///./node_modules/qr.js/lib/RSBlock.js","webpack:///./node_modules/qr.js/lib/BitBuffer.js","webpack:///./node_modules/qr.js/lib/util.js","webpack:///./node_modules/react-qr-code/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-qr-code/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-qr-code/lib/QRCodeSvg/index.js","webpack:///./node_modules/resize-observer/lib/ResizeObservation.js","webpack:///./node_modules/resize-observer/lib/ResizeObserverEntry.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/react_ujs/react_ujs/index.js","webpack:///./node_modules/react-dom/server.browser.js","webpack:///./node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/detect.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/native.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/pjax.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinks.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js","webpack:///./node_modules/react_ujs/react_ujs/src/renderHelpers.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","obj","iterator","constructor","cache","toString","getPrototypeOf","kindOf","thing","str","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","fn","_ref","arguments","length","undefined","_ref$allOwnKeys","allOwnKeys","keys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","TypedArray","isTypedArray","Uint8Array","isHTMLForm","_ref4","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","_ref2","this","caseless","result","assignValue","targetKey","extend","a","b","thisArg","_ref3","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","push","hasOwnProp","freezeMethods","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isThenable","then","catch","_defineProperty","configurable","ReactCSS","loop","handleActive","handleHover","hover","_flattenNames2","_interopRequireDefault","_mergeClasses2","_autoprefix2","_hover3","_active2","_loop3","default","classes","_len","activations","activeNames","hasOwn","classNames","arg","argType","inner","apply","includes","join","_extends","_createForOfIteratorHelper","allowArrayLike","it","_unsupportedIterableToArray","F","e","_e2","f","TypeError","err","normalCompletion","didErr","step","_e3","return","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","from","test","arr2","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","S","None","RenderStrategy","Static","j","Unmount","Hidden","X","ourProps","theirProps","slot","defaultTag","features","_ref$visible","visible","N","u","_o$static","static","_P","_o$unmount","unmount","_l","_p","hidden","style","display","_g","g","_g$as","as","children","_g$refName","refName","ref","className","_i2","_Object$entries","entries","_ref5","y","R","concat","map","_i3","_m","_y","w","every","_step","_iterator","current","_len2","_key2","_i4","_r","startsWith","disabled","fromEntries","_loop","_s2","_len3","_key3","_step2","_iterator2","Event","nativeEvent","defaultPrevented","D","displayName","_step3","_iterator3","useCallback","sqrt","atan2","pow","PiBy180","PiBy2","couldUseAttachEvent","parseEl","supportsOpacity","supportsFilters","reOpacity","setOpacity","proto","min","max","degreesToRadians","originXOffset","originYOffset","clone","toFixed","multipleSpacesRegex","fabric","version","document","HTMLDocument","Document","implementation","createHTMLDocument","virtualWindow","JSDOM","decodeURIComponent","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","imageBuffer","u8Clamped","Uint8ClampedArray","readPixels","RGBA","UNSIGNED_BYTE","imgData","ImageData","putImageData","isTouchSupported","navigator","maxTouchPoints","isLikelyNode","Buffer","SHARED_ATTRIBUTES","DPI","reNum","rePathCommand","reNonWord","fontPaths","iMatrix","svgNS","perfLimitSizeTotal","maxCacheSideLimit","minCacheSideLimit","charWidthsCache","textureSize","disableStyleCopyPaste","enableGLFiltering","devicePixelRatio","webkitDevicePixelRatio","mozDevicePixelRatio","browserShadowBlurConstant","arcToSegmentsCache","boundsOfCurveCache","cachesBoundsOfCurve","forceGLPutImageData","initFilterBackend","isWebglSupported","console","log","maxTextureSize","WebglFilterBackend","tileSize","Canvas2dFilterBackend","_removeEventListener","eventName","handler","__eventListeners","eventListener","util","array","fill","observe","on","stopObserving","fire","options","listenersForEvent","Observable","off","trigger","Collection","_objects","add","_onObjectAdded","renderOnAddRemove","requestRenderAll","insertAt","index","nonSplicing","objects","splice","remove","somethingRemoved","_onObjectRemoved","forEachObject","callback","getObjects","item","isEmpty","contains","complexity","reduce","memo","CommonMethods","_setOptions","_initGradient","filler","colorStops","Gradient","_initPattern","Pattern","_initClipping","clipTo","functionBody","getFunctionBody","Function","_setObject","_set","toggle","PI","cos","angle","sin","sign","removeFromArray","idx","getRandomInt","floor","degrees","radiansToDegrees","radians","rotatePoint","point","origin","subtractEquals","v","rotateVector","Point","x","addEquals","vector","transformPoint","ignoreOffset","makeBoundingBoxFromPoints","points","transform","xPoints","minX","yPoints","minY","left","top","invertTransform","number","fractionDigits","parseFloat","parseUnit","fontSize","unit","Text","DEFAULT_SVG_FONT_SIZE","falseFunction","getKlass","namespace","string","camelize","charAt","resolveNamespace","getSvgAttributes","attributes","parts","loadImage","url","crossOrigin","img","createImage","onLoadCallback","onload","onerror","src","substring","loadImageInDom","div","createElement","appendChild","querySelector","parentNode","removeChild","enlivenObjects","reviver","enlivenedObjects","numLoadedObjects","numTotalObjects","onLoaded","fromObject","error","enlivenPatterns","patterns","numLoadedPatterns","numPatterns","enlivenedPatterns","pattern","groupSVGElements","elements","path","centerPoint","Group","sourcePath","populateWithProperties","destination","properties","drawDashedLine","x2","y2","da","dx","dy","rot","dc","di","draw","save","moveTo","rotate","restore","createCanvasElement","copyCanvasElement","newCanvas","toDataURL","canvasEl","format","quality","clipContext","receiver","beginPath","clip","multiplyTransformMatrices","is2x2","qrDecompose","denom","scaleX","scaleY","skewX","skewY","translateX","translateY","calcRotateMatrix","theta","calcDimensionsMatrix","scaleMatrix","flipX","flipY","multiply","tan","composeMatrix","matrix","customTransformMatrix","resetObjectTransform","saveObjectTransform","match","isTransparent","tolerance","_isTransparent","imageData","getImageData","data","parsePreserveAspectRatioAttribute","attribute","align","meetOrSlice","aspectRatioAttrs","pop","alignX","alignY","clearFabricFontCache","fontFamily","limitDimsByArea","ar","maximumArea","roughWidth","perfLimitSizeY","capValue","findScaleToFit","findScaleToCover","matrixToSVG","NUM_FRACTION_DIGITS","_join","arcToSegments","toX","toY","rx","ry","large","sweep","rotateX","argsString","th","sinTh","cosTh","fromX","fromY","px","py","rx2","abs","ry2","py2","px2","pl","root","cx","cy","cx1","cy1","mTheta","calcVectorAngle","dtheta","segments","ceil","mDelta","mT","th3","segmentToBezier","th2","costh2","sinth2","costh3","sinth3","ux","uy","vx","vy","ta","tb","getBoundsOfCurve","x0","y0","x1","y1","x3","y3","t1","t2","b2ac","sqrtb2ac","tvalues","bounds","mt","jlen","drawArc","fx","fy","coords","segs","segsNorm","bezierCurveTo","getBoundsOfArc","tx","ty","bound","find","byProperty","condition","k","invoke","method","args","value1","value2","deep","Element","getWholeChar","code","isNaN","prev","character","capitalize","firstLetterOnly","escapeXml","graphemeSplit","textstring","chr","graphemes","emptyFunction","IS_DONTENUM_BUGGY","addMethods","klass","parent","superclass","returnValue","valueOf","Subclass","callSuper","methodName","parentMethod","_this","superClassMethod","createClass","initialize","shift","subclasses","attachEvent","addListener","element","addEventListener","removeListener","removeEventListener","getPointer","event","scroll","getScrollLeftTop","_evt","touchProp","changedTouches","getTouchInfo","clientX","clientY","opacity","es","currentStyle","hasLayout","zoom","setStyle","styles","elementStyle","cssText","styleFloat","_slice","sliceCanConvertNodelists","getElementStyle","selectProp","arrayLike","childNodes","makeElement","tagName","el","htmlFor","setAttribute","docElement","documentElement","body","scrollLeft","scrollTop","host","nodeType","defaultView","getComputedStyle","attr","makeElementUnselectable","onselectstart","unselectable","makeElementSelectable","getScript","headEl","getElementsByTagName","scriptEl","loading","onreadystatechange","readyState","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","param","addParamToUrl","open","setRequestHeader","send","warn","defaultEasing","_requestAnimFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","_cancelAnimFrame","cancelAnimationFrame","clearTimeout","requestAnimFrame","animate","timestamp","time","start","Date","duration","finish","onChange","abort","easing","startValue","endValue","byValue","onStart","tick","ticktime","currentTime","timePerc","valuePerc","cancelAnimFrame","animateColor","fromColor","toColor","startColor","Color","getSource","endColor","begin","end","pos","color","posValue","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","visibility","colorAttributes","stroke","fSize","cPath","normalizeAttr","normalizeValue","parentAttributes","parsed","transformMatrix","parseTransformAttribute","fillIndex","strokeIndex","getSvgRegex","RegExp","_getMultipleNodes","nodeNames","nodeName","nodeList","nodeArray","elementMatchesRule","selectors","firstMatching","parentMatching","selectorMatches","selector","doesSomeParentMatch","matcher","getAttribute","elementById","node","nodelist","svgValidTagNamesRegEx","svgViewBoxElementsRegEx","svgInvalidAncestorsRegEx","svgValidParentsRegEx","cssRules","gradientDefs","clipPaths","skewMatrix","commaWsp","reTransformList","reTransform","attributeValue","matrices","operation","translateMatrix","rotateMatrix","multiplierX","multiplierY","combinedMatrix","reViewBoxAttrValue","applyViewboxTransform","viewBoxWidth","viewBoxHeight","viewBoxAttr","widthAttr","heightAttr","preserveAspectRatio","missingViewBox","missingDimAttr","toBeParsed","parsedDim","widthDiff","heightDiff","viewboxTransform","createElementNS","firstChild","recursivelyParseGradientsXlink","gradient","xlinkAttr","referencedGradient","substr","hasAttribute","referenceClone","cloneNode","removeAttribute","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","parseStyleString","parseStyleObject","parsePointsAttribute","parsedPoints","allRules","styleContents","textContent","ruleObj","propertyValuePairs","_rule","loadSVGFromURL","xml","responseXML","ActiveXObject","responseText","async","loadXML","results","_options","allElements","loadSVGFromString","parser","parseFromString","regexUrl","numElements","createObjects","createObject","findTag","fromElement","createCallback","checkIfDone","resolveGradient","Image","_originalElement","_removeTransformMatrix","resolveClipPath","extractPropertyDefinition","storage","regex","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","lerp","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","q","colorNameMap","sourceFromHex","sourceFromRgb","sourceFromHsl","_rgbToHsl","h","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","getColorStop","multiplier","colorAlpha","keyValuePairs","__convertPercentUnitsToValues","instance","svgOptions","gradientUnits","propValue","finalValue","offsetX","offsetY","gradientTransform","option","addColorStop","toObject","propertiesToInclude","toSVG","markup","commonAttributes","needsSwap","withViewport","additionalTransform","sort","pathOffset","reverse","minRadius","percentageShift","colorStop","toLive","stops","createLinearGradient","createRadialGradient","colorStopEls","getLinearCoords","getRadialCoords","forObject","repeat","patternTransform","setOptions","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","renderAndResetBound","renderAndReset","requestRenderAllBound","_initStatic","backgroundColor","backgroundImage","overlayColor","overlayImage","stateful","controlsAboveOverlay","allowTouchScrolling","imageSmoothingEnabled","viewportTransform","backgroundVpt","overlayVpt","onBeforeScaleRotate","enableRetinaScaling","vptCoords","skipOffscreen","cb","_createLowerCanvas","_initOptions","_setImageSmoothing","interactive","_initRetinaScaling","setOverlayImage","setBackgroundImage","setBackgroundColor","setOverlayColor","calcOffset","_isRetinaScaling","getRetinaScaling","scaleRatio","__initRetinaScaling","lowerCanvasEl","contextContainer","upperCanvasEl","contextTop","_offset","image","__setBgOverlayImage","__setBgOverlayColor","webkitImageSmoothingEnabled","mozImageSmoothingEnabled","msImageSmoothingEnabled","oImageSmoothingEnabled","_createCanvasElement","_applyCanvasStyle","getWidth","getHeight","setWidth","setDimensions","setHeight","dimensions","cssValue","cssOnly","_setBackstoreDimension","hasLostContext","backstoreOnly","_setCssDimension","_isCurrentlyDrawing","freeDrawingBrush","_setBrushStyles","cacheCanvasEl","wrapperEl","getZoom","setViewportTransform","vpt","activeObject","_activeObject","group","setCoords","calcViewportBoundaries","zoomToPoint","before","after","setZoom","absolutePan","relativePan","getElement","setupState","clearContext","clearRect","clear","_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","render","_renderBackgroundOrOverlay","needsVpt","lineTo","closePath","fillStyle","getCenter","centerObjectH","_centerObject","getCenterPoint","centerObjectV","centerObject","center","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","unshift","bringToFront","sendBackwards","intersecting","newIdx","objsMoved","_findNewLowerIndex","intersectsWithObject","isContainedWithinObject","bringForward","_findNewUpperIndex","dispose","DataURLExporter","EMPTY_JSON","supports","setLineDash","toJSON","createPNGStream","createJPEGStream","BaseBrush","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeDashArray","setShadow","strokeStyle","lineWidth","lineCap","miterLimit","lineJoin","_saveAndTransform","_setShadow","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","needsFullRender","_resetShadow","PencilBrush","decimate","_points","_drawSegment","midPoint","quadraticCurveTo","onMouseDown","pointer","_isMainEvent","_prepareForDrawing","_captureDrawingPath","_render","onMouseMove","oldEnd","onMouseUp","_finalizeAndAddPath","_reset","_addPoint","pointerPoint","convertPointsToSVGPath","multSignX","multSignY","manyPoints","createPath","pathData","Path","strokeWidth","decimatePoints","distance","adjustedDistance","lastPoint","newPoints","CircleBrush","drawDot","addPoint","dot","arc","radius","originalRenderOnAddRemove","circles","circle","Circle","originX","originY","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","getPattern","topLeft","_getLeftTopCoords","_getPointer","supportLineDash","STROKE_OFFSET","_initInteractive","_createCacheCanvas","uniScaleTransform","uniScaleKey","centeredScaling","centeredRotation","centeredKey","altActionKey","selection","selectionKey","altSelectionKey","selectionColor","selectionDashArray","selectionBorderColor","selectionLineWidth","selectionFullyContained","hoverCursor","moveCursor","defaultCursor","freeDrawingCursor","rotationCursor","notAllowedCursor","containerClass","perPixelTargetFind","targetFindTolerance","skipTargetFind","isDrawingMode","preserveObjectStacking","snapAngle","snapThreshold","stopContextMenu","fireRightClick","fireMiddleClick","targets","_hoveredTarget","_hoveredTargets","_currentTransform","_groupSelector","_initWrapperElement","_createUpperCanvas","_initEventListeners","_chooseObjectsToRender","objsToRender","activeGroupObjects","activeObjects","getActiveObjects","contextTopDirty","renderTopLayer","_drawSelection","renderTop","_resetCurrentTransform","original","_shouldCenterTransform","mouseXSign","mouseYSign","containsPoint","xy","_normalizePointer","_findTargetCorner","invertedM","vptPointer","restorePointerVpt","isTargetTransparent","normalizedPointer","targetRelativeX","targetRelativeY","_cacheContext","contextCache","originalColor","selectionBackgroundColor","_renderControls","hasBorders","transparentCorners","_isSelectionKeyPressed","_shouldClearSelection","evented","selectable","centerTransform","action","altKey","_getOriginFromCorner","corner","_getActionFromCorner","alreadySelected","_setupCurrentTransform","ex","ey","lastX","lastY","shiftKey","_beforeTransform","_translateObject","newLeft","newTop","moveX","moveY","_changeSkewTransformOrigin","mouseMove","by","origins","0","skew","originA","originB","flipSign","skewSign","_skewObject","skewed","lockSkewingX","lockSkewingY","actualMouseByOrigin","constraintPosition","actualMouseByCenter","toLocalPoint","lastMouseByCenter","dim","_getTransformedDimensions","translateToOriginPoint","_setObjectSkew","localMouse","_dim","newValue","newDim","dimNoSkew","otherBy","_otherBy","_by","newDimMouse","atan","_scaleObject","lockScalingX","lockScalingY","lockScalingFlip","scaled","_setLocalMouse","_setObjectScale","forbidScalingX","forbidScalingY","changeX","changeY","newScaleX","newScaleY","Textbox","getMinWidth","_scaleObjectEqually","_flipObject","dist","lastDist","signX","signY","padding","_rotateObject","lockRotation","lastAngle","curAngle","hasRotated","rightAngleLocked","leftAngleLocked","setCursor","cursor","groupSelector","aleft","atop","_setLineDash","strokeRect","findTarget","skipGroup","activeTarget","activeTargetSubs","aObjects","_searchPossibleTargets","_checkTarget","globalPointer","isEditing","subTarget","objToCheck","pointerToUse","subTargetCheck","ignoreZoom","_absolutePointer","_pointer","cssScale","boundsWidth","boundsHeight","bottom","right","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","cursorOffset","mr","mb","ml","addEventOptions","passive","checkClick","button","cursorMap","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","currentTransform","__onOrientationChange","__onShake","__onLongPress","preventDefault","_fireEnterLeaveEvents","stopPropagation","_cacheTransformEventData","_handleEvent","_resetTransformEventData","getPointerId","evt","identifier","pointerId","isPrimary","touches","__onMouseDown","__onMouseUp","_willAddMouseDown","__onMouseMove","_shouldRender","shouldRender","isClick","_onMouseUpInDrawingMode","_finalizeCurrentTransform","actionPerformed","_maybeGroupObjects","isMoving","_setCursorFromEvent","__corner","eventType","subTargets","absolutePointer","_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","_beforeScaleTransform","_performTransformAction","_onScale","_isUniscalePossible","currentAction","getCornerCursor","actionIsDisabled","_getRotatedCornerCursor","hasRotatingPoint","_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","loadFromDatalessJSON","json","loadFromJSON","serialized","JSON","_enlivenObjects","_setBgOverlay","enlivenedCanvasClip","__setupCanvas","loaded","cbIfLoaded","__setBgOverlay","enlivedObject","_toDataURL","_toDataURLWithMultiplier","toDataURLWithMultiplier","stringify","cloneWithoutData","backgroundImageOpacity","backgroundImageStretch","supportsLineDash","objectCaching","cornerSize","borderColor","borderDashArray","cornerColor","cornerStrokeColor","cornerStyle","cornerDashArray","strokeDashOffset","borderOpacityWhenMoving","borderScaleFactor","minScaleLimit","hasControls","rotatingPointOffset","lockMovementX","lockMovementY","lockUniScaling","statefullCache","noScaleCache","strokeUniform","dirty","paintFirst","stateProperties","cacheProperties","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","calcOwnMatrix","_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","styleOverride","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","setGradient","setPatternFill","setColor","shouldCenterOrigin","_setOriginToCenter","_resetOrigin","centerH","viewportCenterH","centerV","viewportCenterV","viewportCenter","getLocalPointer","pClicked","objectLeftTop","createAccessors","extraParam","enlivedProps","translateToGivenOrigin","fromOriginX","fromOriginY","toOriginX","toOriginY","translateToCenterPoint","leftTop","getPointByOrigin","adjustPosition","to","offsetFrom","offsetTo","hypotFull","getScaledWidth","xFull","yFull","_originalOriginX","_originalOriginY","originPoint","multiplyMatrices","oCoords","aCoords","ownMatrixCache","matrixCache","getCoords","absolute","calculate","_getCoords","calcCoords","pointTL","pointBR","other","lines","_getImageLines","_findCrossPoints","_containsCenterOfCanvas","isPartiallyOnScreen","topline","rightline","bottomline","leftline","xi","iLine","xcount","lineKey","getScaledHeight","scaleToWidth","boundingRectFactor","scaleToHeight","_calcRotateMatrix","_calcTranslateMatrix","startMatrix","finalMatrix","cosP","sinP","cosPSinP","cosPMinusSinP","mtr","skipAbsolute","_setCornerCoords","transformMatrixKey","sep","prefix","tMatrix","_calcDimensionsTransformMatrix","flipping","dimX","dimY","noSkew","_finalizeDimensions","bbox","_calculateCurrentDimensions","getSvgColorString","getSvgStyles","skipShadow","getSvgFilter","getSvgSpanStyles","useWhiteSpace","term","textDecoration","getSvgTextDecoration","deltaY","decoration","getSvgCommons","getSvgTransform","full","getSvgTransformMatrix","_setSVGBg","textBgRects","_getFillAttributes","_createBaseSVGMarkup","_toSVG","_createBaseClipPathSVGMarkup","objectMarkup","commonPieces","clipPathMarkup","noStyle","styleInfo","shadowInfo","withShadow","vectorEffect","absoluteClipPath","addPaintOrder","originalSet","saveProps","tmpObj","_isEqual","origValue","currentValue","firstPass","dashedPropertySet","_controlsVisibility","isControlVisible","newTheta","cornerHypotenuse","cosHalfOffset","sinHalfOffset","wh","drawRotatingPoint","rotateHeight","scaleOffset","_drawControl","control","controlName","_getControlsVisibility","setControlVisible","setControlsVisibility","FX_DURATION","fxCenterObjectH","callbacks","empty","_onComplete","_onChange","fxCenterObjectV","_onComplete2","_onChange2","fxRemove","_onComplete3","_onChange3","skipCallbacks","propsToAnimate","_animate","propPair","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","commandLengths","repeatedCommands","M","fromArray","_parsePath","_renderPathCommands","tempX","tempY","previous","subpathStartX","subpathStartY","controlX","controlY","_getOffsetTransform","digits","currentPath","coordsStr","coordsParsed","re","command","commandLength","repeatedCommand","klen","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","cacheKey","filters","_initElement","_element","setElement","removeTexture","_initConfig","applyFilters","resizeFilter","applyResizeFilters","backend","filterBackend","evictCachesForKey","setCrossOrigin","getOriginalSize","_stroke","filterObj","getSrc","hasCrop","strokeSvg","imageMarkup","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","_onComplete4","_onChange4","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","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","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","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","mult","doneW","doneH","stepW","stepH","dX","dY","srcData","destImg","destData","lanczos","ratioX","ratioY","rcpRatioX","rcpRatioY","range2X","range2Y","cacheLanc","icenter","process","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","nSamples","newImageData","delta","chooseRightDelta","blurScale","Gamma","gamma","rInv","gInv","bInv","rVals","gVals","bVals","uGamma","uniform3fv","Composed","subFilters","some","HueRotation","rotation","rad","aThird","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","info","previousBox","__lineHeights","maxHeight","_renderTextCommon","lineHeights","isEmptyStyles","actualStyle","nextStyle","timeToRender","isJustify","charsToRender","shortCut","_renderChar","_hasStyleChanged","_getStyleDeclaration","fullDecl","shouldFill","shouldStroke","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","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","mouseUpHandler","currentActive","mouseOffset","prevWidth","_getNewSelectionStartFromOffset","distanceBtwLastCharAndCursor","distanceBtwNextCharAndCursor","onKeyDown","onKeyUp","onInput","copy","paste","onCompositionStart","onCompositionUpdate","onCompositionEnd","_clickHandlerInitialized","onClick","keysMap","9","27","33","34","35","36","37","38","39","40","ctrlKeysMapUp","67","88","ctrlKeysMapDown","65","keyCode","ctrlKey","metaKey","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","actionName","moveCursorRightWithShift","moveCursorRightWithoutShift","changed","removeChars","insertChars","_getSVGLeftTopOffsets","textAndBg","_getSVGTextAndBg","textTop","textLeft","_wrapSVGTextAndBg","lineTop","textSpans","textTopOffset","textLeftOffset","_setSVGTextLineBg","_setSVGTextLineText","_createTextCharSpan","styleDecl","shouldUseWhitespace","styleProps","fillStyles","dySpan","_pushTextBgRect","fillColor","_getSVGLineTopOffset","lastHeight","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","linesToKeep","_assertThisInitialized","ReferenceError","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","captureStackTrace","_b2","register","Provider","_o$id","_o$passive","toISOString","_ke","Ce","RegisterOption","UnregisterOption","ke","propsRef","findIndex","T","B","oe","$","ne","Le","xe","Empty","Active","Ie","_r$id","form","_r$by","G","_r$disabled","C","H","_se2","P","_z2","_ee2","U","L","W","_Ae2","_f2","accept","walk","_ref$enabled","enabled","acceptNode","createTreeWalker","NodeFilter","SHOW_ELEMENT","nextNode","currentNode","FILTER_REJECT","FILTER_SKIP","FILTER_ACCEPT","Enter","closest","click","currentTarget","ArrowLeft","ArrowUp","Previous","WrapAround","Success","K","activeElement","ArrowRight","ArrowDown","Next","Space","_","firstOption","containsCheckedOption","compare","ie","registerOption","ae","role","pe","le","checked","readOnly","Se","_r$id2","_r$disabled2","_z4","_ee4","_me","addFlag","removeFlag","hasFlag","tabIndex","onFocus","onBlur","yt","Option","Label","Description","AxiosError","message","response","description","fileName","lineNumber","columnNumber","customProps","axiosError","cause","unsupportedIterableToArray","First","Last","NoScroll","Overflow","Underflow","querySelectorAll","MAX_SAFE_INTEGER","Strict","Loose","_L","parentElement","Keyboard","Mouse","preventScroll","dataset","headlessuiFocusVisible","detail","I","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","O","_ref$sorted","sorted","_ref$relativeTo","relativeTo","_ref$skipElements","skipElements","E","select","isServer","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","_setPrototypeOf","setPrototypeOf","__proto__","_inherits","subClass","superClass","Open","Closed","Closing","Opening","freeSelf","CloseIcon","closeIcon","closeButton","isBrowser","candidateSelectors","isHidden","offsetParent","isNotRadioOrTabbableRadio","radioSet","nodes","getCheckedRadio","getAllTabbingElements","parentElem","currentActiveElement","tabbableNodes","onlyTabbable","getTabindex","tabindexAttr","isContentEditable","FocusTrap","refLastFocus","handleKeyEvent","allTabbingElements","firstFocusableElement","lastFocusableElement","tabTrappingKey","_document$activeEleme","_refLastFocus$current","modals","modalManager","newModal","oldModal","modal","overlayAnimationIn","overlayAnimationOut","modalContainer","modalContainerCenter","modalAnimationIn","modalAnimationOut","_classNames$overlayAn","_classNames$overlayAn2","_classNames$modalAnim","_classNames$modalAnim2","_ref$blockScroll","blockScroll","_ref$closeOnEsc","closeOnEsc","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$showCloseIcon","showCloseIcon","closeIconId","_ref$focusTrapped","focusTrapped","_ref$animationDuratio","animationDuration","_ref$role","ariaDescribedby","ariaLabelledby","modalId","onClose","onEscKeyDown","onOverlayClick","onAnimationEnd","refModal","refShouldClose","refContainer","_useState","showPortal","setShowPortal","useModalManager","oldRef","useScrollLock","handleKeydown","handleModalEvent","containerModal","overlayAnimation","modalAnimation","createPortal","animation","factory","__WEBPACK_EXTERNAL_MODULE_13__","__WEBPACK_EXTERNAL_MODULE_38__","__WEBPACK_EXTERNAL_MODULE_39__","Browser","SUPPORTED","SUPPORTS_TOUCH","touch","dynamicInputDetection","iOS","userAgent","MSStream","Store","Selectors","POPPER","TOOLTIP","CONTENT","CIRCLE","ARROW","TOOLTIPPED_EL","CONTROLLER","Defaults","html","animateFill","arrow","arrowSize","interactiveBorder","theme","hideOnClick","multiple","followCursor","inertia","flipDuration","sticky","stickyDuration","appendTo","zIndex","touchHold","dynamicTitle","useContext","reactInstance","popperOptions","onRequestClose","DefaultsKeys","prefixes","upperProp","_prefix","prefixedProp","checkFn","placement","parentSelector","_matches","popper","tooltip","_globals","defaultMatchSelector","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","_react","_react2","_tippy2","stopPortalEvent","defaultProps","hideDelay","hideDuration","onShow","onShown","onHide","onHidden","tag","unmountHTMLWhenHide","propKeys","Tooltip","_Component","_possibleConstructorReturn","initTippy","_initTippy","destroyTippy","_destroyTippy","updateTippy","_updateTippy","updateReactDom","_updateReactDom","showTooltip","_showTooltip","hideTooltip","_hideTooltip","updateSettings","_updateSettings","state","reactDOMValue","prevProps","_this2","title","detectPropsChanged","tippy","getPopperElement","tooltipDOM","show","hide","updateForReact","update","_this3","reactDOM","setReactDOMValue","newReactDOM","setState","rawTemplate","_this4","Tag","Fragment","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","onKeyPress","onInvalid","onSubmit","Component","refData","_find2","settings","_getCorePlacement2","halfPopperWidth","offsetWidth","halfPopperHeight","offsetHeight","pageWidth","pageX","pageY","isRightOverflowing","isLeftOverflowing","_prefix2","_component2","withTooltip","_hoc2","touchHandler","classList","mousemoveHandler","_hideAllPoppers2","_closest2","_ref$settings","msMaxTouchPoints","_arrow","templateId","innerHTML","_getOffsetDistanceInPx2","_data$settings","_getInnerElements3","modifiers","flip","onUpdate","MutationObserver","observer","popperInstance","_defer2","childList","subtree","characterData","_mutationObserver","_popper2","els","idCounter","_evaluateSettings2","_getIndividualSettings2","_removeTitle2","_createPopperElement2","handlers","_getEventListenerHandlers2","listeners","_createTrigger2","tippyInstance","handleTrigger","handleMouseleave","handleBlur","showDelay","touchWait","clearTimeouts","_show","_isVisible2","_delay","mouseenterTouch","isNotPersistent","wait","handleMousemove","triggerHide","closestTooltippedEl","isOverPopper","isOverEl","isClickTriggered","_cursorIsOutsideInteractiveBorder2","relatedTarget","instanceSettings","acc","exclude","_refData$settings","isHideOnClick","isNotCurrentRef","init","_bindEventListeners2","_bindEventListeners","updatePosition","scheduleUpdate","enableEventListeners","_createPopperInstance2","_followCursorHandler2","disableEventListeners","transitionendFired","listenerCallback","_transitionendTimeout","_getInnerElements2","_reactDom2","_init2","_findIndex2","_elementIsInViewport2","_triggerReflow2","_modifyClassList2","_getInnerElements5","_applyTransitionDuration2","_noop2","_getArrayOfElements2","_onTransitionEnd2","_mountPopper2","_makeSticky2","_createTooltips2","Tippy","destroyed","shown","store","newSettings","updatedContent","tooltipContent","customDuration","_getInnerElements","_data$settings2","_duration","list","_onShownFired","isUnmount","_data$settings3","unmountComponentAtNode","_isLast","listener","disconnect","storeLength","disableDynamicInputDetection","enableDynamicInputDetection","corePosition","borderWithDistance","exceeds","_getCorePlacement","innerHeight","innerWidth","_find","_typeof2","React","React__default","UA","browser","getBrowser","device","getCPU","getDevice","engine","getEngine","os","getOS","getUA","setDefaults","getNavigatorInstance","isIOS13Check","nav","platform","_getPrototypeOf","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","initialData","isMobile","isTablet","isSmartTV","isConsole","isWearable","mobilePayload","_objectSpread2","model","osVersion","checkType","isEdgeChromiumType","isBrowserType","isEdgeType","getIPad13","isMobileSafari","isChromium","isMobileAndTabletType","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","osName","fullBrowserVersion","browserVersion","major","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isElectronType","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","AndroidView","renderWithFragment","viewClassName","BrowserView","ConsoleView","_ref10","CustomView","_ref12","IEView","IOSView","MobileOnlyView","_ref8","MobileView","SmartTVView","_ref9","TabletView","_ref6","WearableView","_ref11","WinPhoneView","_ref7","deviceDetect","browserMajorVersion","browserFullVersion","broPayload","stvPayload","consolePayload","wearPayload","withOrientationChange","WrappedComponent","_React$Component","isEventListenerAdded","handleOrientationChange","onOrientationChange","onPageLoad","isLandscape","isPortrait","orientation","__WEBPACK_EXTERNAL_MODULE_lodash_assign__","__WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__","__WEBPACK_EXTERNAL_MODULE_lodash_compact__","__WEBPACK_EXTERNAL_MODULE_lodash_difference__","__WEBPACK_EXTERNAL_MODULE_lodash_functions__","__WEBPACK_EXTERNAL_MODULE_lodash_identity__","__WEBPACK_EXTERNAL_MODULE_lodash_includes__","__WEBPACK_EXTERNAL_MODULE_lodash_isArray__","__WEBPACK_EXTERNAL_MODULE_lodash_isElement__","__WEBPACK_EXTERNAL_MODULE_lodash_isFunction__","__WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__","__WEBPACK_EXTERNAL_MODULE_lodash_isString__","__WEBPACK_EXTERNAL_MODULE_lodash_merge__","__WEBPACK_EXTERNAL_MODULE_lodash_trim__","__webpack_exports__","constants_namespaceObject","VERSION","CF_SHARED_CDN","OLD_AKAMAI_SHARED_CDN","AKAMAI_SHARED_CDN","SHARED_CDN","DEFAULT_TIMEOUT_MS","DEFAULT_POSTER_OPTIONS","DEFAULT_VIDEO_SOURCE_TYPES","SEO_TYPES","DEFAULT_IMAGE_PARAMS","DEFAULT_VIDEO_PARAMS","DEFAULT_VIDEO_SOURCES","DEFAULT_EXTERNAL_LIBRARIES","PLACEHOLDER_IMAGE_MODES","ACCESSIBILITY_MODES","URL_KEYS","lodash_namespaceObject","getSDKAnalyticsSignature","getAnalyticsOptions","assign_root_assign_default","cloneDeep_root_cloneDeep_default","compact_root_compact_default","difference_root_difference_default","functions_root_functions_default","identity_root_identity_default","includes_root_includes_default","isArray_root_isArray_default","isPlainObject_root_isPlainObject_default","isString_root_isString_default","merge_root_merge_default","isIntersectionObserverSupported","isNativeLazyLoadSupported","detectIntersection","omit","baseutil_allStrings","without","isNumberLike","smartEscape","defaults","objectProto","objToString","funcTag","reWords","camelCase","snakeCase","convertKeys","withCamelCaseKeys","withSnakeCaseKeys","base64Encode","base64EncodeURL","extractUrlParams","patchFetchFormat","optionConsume","isElement_root_isElement_default","isFunction_root_isFunction_default","trim_root_trim_default","lodash_getData","lodash_setData","lodash_getAttribute","lodash_setAttribute","lodash_removeAttribute","setAttributes","lodash_hasClass","lodash_addClass","getStyles","cssExpand","domStyle","curCSS","augmentWidthOrHeight","getWidthOrHeight","lodash_width","src_utf8_encode","argString","c1","enc","stringl","utftext","fromCharCode","src_crc32","crc","iTop","stringPad","targetLength","padString","times","repeatedString","repeatStringNumTimes","base64Map_num","base64Map","encodeVersion","semVer","strResult","paddedStringLength","paddedReversedSemver","segment","reverseVersion","paddedBinary","bitString","analyticsOptions","twoPartVersion","removePatchFromSemver","techVersion","encodedSDKVersion","sdkSemver","encodedTechVersion","featureCode","feature","SDKCode","sdkCode","algoVersion","semVerStr","urlAnalytics","accessibility","responsive","placeholder","assign_root_assign_","cloneDeep_root_cloneDeep_","compact_root_compact_","difference_root_difference_","functions_root_functions_","identity_root_identity_","includes_root_includes_","isArray_root_isArray_","isPlainObject_root_isPlainObject_","isString_root_isString_","merge_root_merge_","isElement_root_isElement_","isFunction_root_isFunction_","trim_root_trim_","IntersectionObserver","HTMLImageElement","onIntersect","entry","isIntersecting","unobserve","resource_type","transformation","fallback_content","source_transformation","source_types","codecs","transformations","video_codec","seeThru","effect","fetch_format","aspect_ratio","crop","gravity","variables","darkmode","brightmode","monochrome","colorblind","baseutil_typeof","srcKeys","nodeContains","unsafe","sources","dest","upper","toLocaleUpperCase","toLocaleLowerCase","converter","btoa","input","decodeURI","encodeURI","option_name","default_value","getAttr","jQuery","setAttr","elem","opener","adown","bup","computed","ret","rmargin","getPropertyValue","rnumnonpx","convert","extra","isBorderBox","sides","valueIsBorderBox","Expression","expressionStr","expressions","expression","operatorsReplaceRE","OPERATORS","predefinedVarsPattern","PREDEFINED_VARS","variablesReplaceRE","serialize","operator","getParent","predicate","_value","BOUNDRY","condition_typeof","condition_defineProperties","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","NewTarget","_Expression","Condition","_super","conditionStr","condition_classCallCheck","configuration_arrayLikeToArray","configuration_unsupportedIterableToArray","configuration_defineProperties","configuration_Configuration","Configuration","configuration_classCallCheck","configuration","DEFAULT_CONFIGURATION_PARAMS","fromEnvironment","fromDocument","meta_elements","cloudinary_url","query","uri","env","CLOUDINARY_URL","_value$split2","new_config","new_value","responsive_class","responsive_use_breakpoints","round_dpr","secure","location","protocol","CONFIG_PARAMS","src_configuration","layer_defineProperties","layer_layer","Layer","layer_classCallCheck","resourceType","publicId","getPublicId","components","getFullPublicId","textlayer_typeof","textlayer_defineProperties","textlayer_setPrototypeOf","textlayer_createSuper","textlayer_isNativeReflectConstruct","textlayer_getPrototypeOf","textlayer_possibleConstructorReturn","textlayer_assertThisInitialized","textlayer","_Layer","textlayer_inherits","TextLayer","textlayer_classCallCheck","_resourceType","_type","_format","_fontFamily","_fontSize","_fontWeight","_fontStyle","_textDecoration","_textAlign","_letterSpacing","letterSpacing","_lineSpacing","lineSpacing","_fontHinting","fontHinting","_fontAntialiasing","fontAntialiasing","hasPublicId","hasStyle","res","textSource","textStyleIdentifier","subtitleslayer_typeof","subtitleslayer_setPrototypeOf","subtitleslayer_createSuper","subtitleslayer_isNativeReflectConstruct","subtitleslayer_getPrototypeOf","subtitleslayer_possibleConstructorReturn","subtitleslayer_assertThisInitialized","subtitleslayer","_TextLayer","subtitleslayer_inherits","SubtitlesLayer","subtitleslayer_classCallCheck","fetchlayer_typeof","fetchlayer_defineProperties","fetchlayer_setPrototypeOf","fetchlayer_createSuper","fetchlayer_isNativeReflectConstruct","fetchlayer_getPrototypeOf","fetchlayer_possibleConstructorReturn","fetchlayer_assertThisInitialized","fetchlayer","fetchlayer_inherits","FetchLayer","fetchlayer_classCallCheck","_url","parameters_typeof","_get","base","parameters_getPrototypeOf","_superPropBase","desc","parameters_inherits","parameters_setPrototypeOf","parameters_createSuper","parameters_isNativeReflectConstruct","parameters_possibleConstructorReturn","parameters_assertThisInitialized","parameters_classCallCheck","parameters_defineProperties","parameters_createClass","parameters_Param","Param","shortName","valid","video","codec","profile","level","parameters_ArrayParam","_Param","ArrayParam","arrayValue","flat","parameters_TransformationParam","_Param2","TransformationParam","_super2","joined","src_transformation","origValue1","RangeParam","_Param3","_super3","norm_range_value","modifier","parameters_RawParam","_Param4","RawParam","_super4","parameters_LayerParam","_Param5","LayerParam","_super5","layerOptions","layer","transformation_typeof","transformation_setPrototypeOf","transformation_createSuper","transformation_isNativeReflectConstruct","transformation_getPrototypeOf","transformation_possibleConstructorReturn","transformation_assertThisInitialized","transformation_slicedToArray","transformation_arrayWithHoles","transformation_iterableToArrayLimit","transformation_arrayLikeToArray","transformation_unsupportedIterableToArray","transformation_nonIterableRest","transformation_classCallCheck","transformation_defineProperties","transformation_createClass","assignNotNull","transformation_TransformationBase","TransformationBase","trans","toOptions","withChain","otherOptions","chained","setParent","fromOptions","abbr","rawParam","lastArgCallback","rangeParam","arrayParam","transformationParam","layerParam","getValue","VAR_NAME_RE","toPlainObject","hash","chain","resetTransformations","fromTransformation","camelKey","values","transformation_Transformation","methods","ifParam","paramList","ref1","ref2","ref3","ref4","resultArray","transformationList","transformationString","vars","varArray","_varArray$j","processVar","len1","param_separator","trans_separator","attrName","snakeCaseKey","PARAM_NAMES","hasLayer","toHtml","processCustomFunction","function_type","_TransformationBase","transformation_inherits","Transformation","norm_color","border","dpr","fps","ifVal","trIf","trRest","end_o","start_o","startOffset","endOffset","process_video_params","htmltag_defineProperties","htmltag_toAttribute","escapeQuotes","htmltag","HtmlTag","htmltag_classCallCheck","responsiveClass","dataSrc","htmlAttributes","toHtmlAttributes","htmlAttrs","openTag","closeTag","isUrl","handlePrefix","cloud_name","cdnPart","subdomain","private_cdn","cdn_subdomain","cdnSubdomainNumber","secure_cdn_subdomain","secure_distribution","cname","encodePublicId","encodeURIComponent","validate","url_suffix","preparePublicId","pathname","urlString","isForceVersion","force_version","isVersionExist","handleVersion","handleTransformation","signature","isFormatted","handleSignature","_ref$resource_type","_ref$type","use_root_path","shorten","handleResourceType","trust_public_id","formatPublicId","prepareOptions","url_url","resultUrl","sdkAnalyticsSignature","appender","generateBreakpoints_slicedToArray","generateBreakpoints_arrayWithHoles","generateBreakpoints_iterableToArrayLimit","generateBreakpoints_arrayLikeToArray","generateBreakpoints_unsupportedIterableToArray","generateBreakpoints_nonIterableRest","generateBreakpoints","srcset","breakpoints","_map2","min_width","max_width","max_images","stepSize","srcsetUtils_isEmpty","scaledUrl","public_id","configParams","raw_transformation","getOrGenerateBreakpoints","generateSrcsetAttribute","generateSizesAttribute","generateImageResponsiveAttributes","srcsetData","responsiveAttributes","generateSizes","sizes","generateSrcset","srcsetAttr","sizesAttr","imagetag_typeof","imagetag_classCallCheck","imagetag_defineProperties","imagetag_get","imagetag_getPrototypeOf","imagetag_superPropBase","imagetag_setPrototypeOf","imagetag_createSuper","imagetag_isNativeReflectConstruct","imagetag_possibleConstructorReturn","imagetag_assertThisInitialized","imagetag","_HtmlTag","imagetag_inherits","ImageTag","srcAttribute","getOptions","srcsetParam","getOption","client_hints","sourcetag_typeof","sourcetag_classCallCheck","sourcetag_defineProperties","sourcetag_get","sourcetag_getPrototypeOf","sourcetag_superPropBase","sourcetag_setPrototypeOf","sourcetag_createSuper","sourcetag_isNativeReflectConstruct","sourcetag_possibleConstructorReturn","sourcetag_assertThisInitialized","sourcetag","sourcetag_inherits","SourceTag","media","mediaQuery","generateMediaAttr","picturetag_typeof","picturetag_classCallCheck","picturetag_defineProperties","picturetag_get","picturetag_getPrototypeOf","picturetag_superPropBase","picturetag_setPrototypeOf","picturetag_createSuper","picturetag_isNativeReflectConstruct","picturetag_possibleConstructorReturn","picturetag_assertThisInitialized","picturetag","picturetag_inherits","PictureTag","widthList","sourceTransformation","videotag_typeof","videotag_classCallCheck","videotag_defineProperties","videotag_get","videotag_getPrototypeOf","videotag_superPropBase","videotag_setPrototypeOf","videotag_createSuper","videotag_isNativeReflectConstruct","videotag_possibleConstructorReturn","videotag_assertThisInitialized","VIDEO_TAG_PARAMS","videotag_DEFAULT_VIDEO_SOURCE_TYPES","videotag_DEFAULT_POSTER_OPTIONS","videotag","videotag_inherits","VideoTag","sourceTypes","poster","fallbackContent","fallback","innerTags","createSourceTag","srcType","defaultOptions","sourceType","mimeType","videoType","codecsStr","clienthintsmetatag_typeof","clienthintsmetatag_defineProperties","clienthintsmetatag_setPrototypeOf","clienthintsmetatag_createSuper","clienthintsmetatag_isNativeReflectConstruct","clienthintsmetatag_getPrototypeOf","clienthintsmetatag_possibleConstructorReturn","clienthintsmetatag_assertThisInitialized","clienthintsmetatag","clienthintsmetatag_inherits","ClientHintsMetaTag","clienthintsmetatag_classCallCheck","normalizeToArray_toConsumableArray","normalizeToArray_arrayLikeToArray","normalizeToArray_arrayWithoutHoles","normalizeToArray_iterableToArray","normalizeToArray_unsupportedIterableToArray","normalizeToArray_nonIterableSpread","applyBreakpoints","closestAbove","defaultBreakpoints","cloudinary_findContainerWidth","cloudinary_maxWidth","updateDpr","transparentVideo_mountCloudinaryVideoTag","htmlElContainer","clInstance","Promise","resolve","reject","videoTag","flag","flags","transparentVideo_enforceOptionsForTransparentVideo","autoplay","muted","controls","max_timeout_ms","externalLibraries","xhr_loadScript","scriptURL","isAlreadyLoaded","scriptTag","timerID","head","xhr_getBlobFromURL","urlToLoad","responseType","payload","blobURL","URL","createObjectURL","transparentVideo_createHiddenVideoTag","videoOptions","playsinline","videoURL","revokeObjectURL","transparentVideo_instantiateSeeThru","videoElement","customClass","autoPlay","_window","seeThruInstance","ready","getCanvas","play","transparentVideo_mountSeeThruCanvasTag","transparentVideo_checkSupportForTransparency","canPlay","canPlayType","cloudinary_defineProperties","steps","resizing","calc_breakpoint","containerWidth","roundDpr","device_pixel_ratio","requiredWidth","imageWidth","cloudinary_Cloudinary","Cloudinary","cloudinary_classCallCheck","devicePixelRatioCache","responsiveConfig","responsiveResizeInitialized","newConfig","imageTag","toDOM","cloudinary_update","timeout","bootstrap","responsive_resize","makeResponsive","debounce","run","waitFunc","responsive_debounce","dprString","images","normalizeToArray","setUrl","isResponsive","responsive_preserve_height","isLazyLoading","isLazyLoadSupported","setAttributeIfExists","toAttribute","fromAttribute","video_url","isNativelyTransparent","mountPromise","cloudinary","crc32","utf8_encode","Util","useId","_t$useState2","useState","nextId","arrayLikeToArray","AlgoliaSearchHelper","SearchParameters","SearchResults","algoliasearchHelper","client","Escape","Backspace","Delete","Home","End","PageUp","PageDown","Tab","detect","handoffState","currentId","__webpack_amd_options__","_classnames2","_propTypes2","_check2","_x2","_util","Toggle","_PureComponent","handleClick","handleTouchStart","handleTouchMove","handleTouchEnd","handleFocus","previouslyChecked","defaultChecked","hasFocus","checkbox","moved","pointerCoord","activated","currentX","icons","_props","inputProps","onTouchStart","onTouchMove","onTouchEnd","getIcon","PureComponent","unchecked","propTypes","bool","func","oneOfType","shape","_Q","startTransition","z","ToggleDisclosure","CloseDisclosure","SetButtonId","SetPanelId","LinkPanel","UnlinkPanel","Q","_x","disclosureState","linkedPanel","buttonId","panelId","Y","Z","se","_e$defaultOpen","defaultOpen","buttonRef","panelRef","_s2$","HTMLElement","close","ue","_e$id","_M2","_o2","HTMLButtonElement","_e$id2","_M4","ve","Button","Panel","_requestAnimationFrame","nextFrame","_setTimeout","microTask","_r2","isHandoffComplete","handoff","Focusable","_t$features","margin","overflow","whiteSpace","borderWidth","freeGlobal","ShippingEstimate","modalIsOpen","success","estimate","shipping_estimates","openModal","closeModal","prod_days","shipping_icon","days","total_days","date","cost","App","currencySymbol","possibleConstructorReturn","warned","preWarningFns","warning","note","warningOnce","preMessage","resetWarned","noteOnce","included","vertical","positonStyle","elStyle","addEventListenerWrap","unstable_batchedUpdates","prefixCls","marks","dots","lowerBound","upperBound","dotStyle","activeDotStyle","range","_classNames","isActived","pointClassName","onClickLabel","marksKeys","markPoint","markPointIsObject","isValidElement","markLabel","label","isActive","markClassName","bottomStyle","marginBottom","leftStyle","msTransform","markStyle","Handle","clickFocused","setHandleRef","handle","handleMouseUp","setClickFocus","handleMouseDown","handleKeyDown","onMouseUpListener","focused","ariaValueText","_this$props","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","restProps","positionStyle","mergedTabIndex","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","J","V","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","isCharacterKey","isEventFromHandle","handles","isValueOutOfRange","isNotTouchEvent","getClosestPoint","baseNum","getPrecision","maxSteps","closestStep","diffs","stepString","getMousePosition","getTouchPosition","getHandleCenterPosition","pageXOffset","ensureValueInRange","ensureValuePrecision","closestPoint","pauseEvent","getKeyboardValueMutator","increase","decrease","operations","indexToGet","keyToGet","calculateNextValue","createSlider","_a","ComponentEnhancer","onDown","draggableTrack","isVertical","positionGetValue","inPoint","handlesRefs","dragTrack","dragOffset","startBounds","handlePosition","removeDocumentEvents","addDocumentMouseEvents","addDocumentTouchEvents","_this$props2","onEnd","prevMovedHandleIndex","clickFocus","sliderRef","onMove","onKeyboard","onClickMarkLabel","saveSlider","slider","isPointDiffEven","_this$props3","autoFocus","_this$props4","onTouchMoveListener","onTouchUpListener","onMouseMoveListener","_this$handlesRefs$","_this2$handlesRefs$ke","_this2$handlesRefs$ke2","_this$props5","ratio","getSliderLength","pixelOffset","getSliderStart","trimAlignValue","calcValue","_this$props6","_this$props7","maximumTrackStyle","railStyle","_get$call","tracks","sliderClassName","getLowerBound","getUpperBound","dragging","onBeforeChange","onAfterChange","trackStyle","handleStyle","Slider","force","prevState","theValue","nextValue","isNotControlled","nextState","changedValue","prevValue","calcValueByPos","startPosition","oldValue","valueMutator","mutatedValue","minPoint","startPoint","nextProps","mergedProps","minimumTrackStyle","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","handleGenerator","_this$state","saveHandle","trackOffset","mergedTrackStyle","_trimAlignValue","allowCross","pushable","thershold","valInRange","valNotConflict","Range","closestBound","getClosestBound","getBoundNeedMoving","nextBounds","count","initialValue","recent","controlledState","maxValue","minValue","boundNeedMoving","isAtTheSamePoint","internalPointsCache","pointsObject","isFromKeyboardEvent","nextHandle","pushSurroundingHandles","diffToNext","pushHandle","amount","pushHandleOnePoint","getPoints","nextPointIndex","_this$state2","_this$state3","ariaLabelGroupForHandles","ariaLabelledByGroupForHandles","ariaValueTextFormatterGroupForHandles","handleClassName","_classNames2","trackClassName","raf","caf","num","rafUUID","rafIds","Map","cleanup","delete","wrapperRaf","callRef","leftTimes","realId","findDOMNode","cancel","fillRef","composeRef","refs","canUseDom","didUpdate","getContainer","containerRef","initRef","_containerRef$current","_containerRef$current2","isPointsEq","isAlignPoint","makePrefixMap","styleProp","domSupport","win","vendorPrefixes","animationend","transitionend","transition","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","useMountStatus","destroyRef","_useState2","setVal","STEP_QUEUE","_React$useState","_React$useState2","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","nextStep","doNext","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","_useState3","_useState4","setStatus","_useState5","_useState6","mountedRef","deadlineRef","destroyedRef","cacheElementRef","getDomElement","activeRef","onInternalMotionEnd","canEnd","deadline","_useDomMotionEvents","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","isMounted","mergedStyle","DomWrapper","transitionSupport","isSupportTransition","motionName","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","originRef","motionChildren","setNodeRef","statusSuffix","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","diffKeys","prevKeys","currentKeys","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","CSSMotionList","keyEntities","removeKey","entity","component","_onVisibleChanged","motionProps","changedVisible","parsedKeyObjects","prevEntity","getMotion","motion","Mask","maskMotion","maskAnimation","maskTransitionName","vendorPrefix","jsCssMap","Webkit","Moz","ms","getVendorPrefix","getTransformName","setTransitionProperty","transitionProperty","getComputedStyleX","matrix2d","matrix3d","forceRelayout","originalStyle","css","getScroll","getScrollLeft","getScrollTop","getOffset","getClientPosition","parentWindow","isWindow","_RE_NUM_NO_PX","RE_POS","getOffsetDirection","dir","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","_dir","_off","setTransform$1","originalXY","getTransformXY","resultXY","match2d","setTransformXY","each","isBorderBoxFn","cs","computedStyle","rsLeft","pixelLeft","BOX_MODELS","getPBMWidth","which","cssProp","domUtils","getWH","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","cssBoxValue","borderBoxValueOrIsBorderBox","refWin","documentElementProp","compatMode","cssShow","getWHIgnoreDisplay","mix","first","includeMargin","getWindow","getDocument","ignoreShake","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","setOffset","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","getParent$1","getVisibleRectForElement","alwaysByViewport","visibleRect","Infinity","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","bodyStyle","overflowX","overflowY","isAncestorFixed","maxVisibleWidth","maxVisibleHeight","getRegion","outerWidth","outerHeight","getAlignOffset","region","getElFuturePos","elRegion","refNodeRegion","targetOffset","isFailX","elFuturePos","isFailY","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","adjustX","adjustY","newOffset","newTargetOffset","isCompleteFailX","_newPoints","_newOffset","_newTargetOffset","isCompleteFailY","isStillFailX","isStillFailY","_newPoints2","resizeWidth","resizeHeight","adjustForViewport","alignElement","refNode","targetRegion","isOutOfVisibleRect","__getOffsetParent","__getVisibleRectForElement","monitorResize","prevHeight","resizeObserver","_target$getBoundingCl","fixedWidth","fixedHeight","getPoint","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","cacheRef","useRef","childNode","Children","only","forceAlignPropsRef","_useBuffer","calledRef","timeoutRef","cancelTrigger","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestOnAlign","getBBox","_box","isVisible","tgtPoint","pointInView","restoreFocus","_useBuffer2","_forceAlign","cancelForceAlign","resizeMonitor","sourceResizeMonitor","useEffect","winResizeRef","useImperativeHandle","forceAlign","cloneElement","RefAlign","forwardRef","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","StatusQueue","PopupInner","stretch","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","alignRef","elementRef","alignedClassName","setAlignedClassName","_useStretchStyle","targetSize","setTargetSize","sizeStyle","minHeight","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","setInternalStatus","rafRef","cancelRaf","doMeasure","mark","_callee","wrap","_context","stop","useVisibleStatus","_useVisibleStatus2","goNextStatus","prepareResolveRef","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","onShowPrepare","originHandler","pointerEvents","alignDisabled","motionRef","motionClassName","motionStyle","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","Popup","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","agent","opera","popupNode","returnEmptyString","returnDocument","ALL_HANDLERS","PortalComponent","Trigger","popupVisible","popupRef","triggerRef","mouseEnterDelay","fireEvents","delaySetPopupVisible","setPoint","mouseLeaveDelay","onPopupMouseEnter","clearDelayTimer","onPopupMouseLeave","_this$popupRef$curren","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","setPopupVisible","onContextMenuClose","isContextMenuToShow","preTime","isClickToShow","isClickToHide","nextVisible","onPopupMouseDown","_this$context","hasPopupMouseDown","mouseDownTimeout","onDocumentClick","maskClosable","getPopupDomNode","getTriggerDOMNode","domNode","getPopupClassNameFromAlign","popupPlacement","builtinPlacements","alignPoint","placements","getAlignPopupClassName","getComponent","onPopupAlign","popupAnimation","popupTransitionName","popup","getPopupAlign","mouseProps","isMouseEnterToShow","isMouseLeaveToHide","attachParent","popupContainer","attachId","mountNode","getPopupContainer","handlePortalUpdate","prevPopupVisible","afterPopupVisibleChange","defaultPopupVisible","componentDidUpdate","currentDocument","clickOutsideHandler","touchOutsideHandler","contextMenuOutsideHandler1","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","popupAlign","placementStr","getAlignFromPlacement","onPopupVisibleChange","delayS","delayTimer","childPros","showAction","hideAction","_this$props8","_this$props9","_this$props10","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","child","newChildProps","createTwoChains","childrenClassName","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","portal","newState","contextType","autoAdjustOverflow","rightTop","bottomRight","rightBottom","leftBottom","overlayInnerStyle","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","domRef","extraProps","destroyTooltip","keepParent","_props$arrowContent","arrowContent","refList","innerRef","tooltipRef","cancelKeepAlign","_innerRef$current","forcePopupAlign","InternalSlider","createSliderWithTooltip","ComponentWrapper","visibles","handleTooltipVisibleChange","handleWithTooltip","handleStyleWithIndex","tipFormatter","tipProps","_tipProps$prefixCls","_tipProps$overlay","_tipProps$placement","_tipProps$visible","restTooltipProps","makeTypeChecker","tabsRole","isTab","isTabList","isTabPanel","deepMap","isTabChild","deepForEach","toVal","tmp","uuid","tabCount","canUseActiveElement","_excluded","isNode","isTabNode","isTabDisabled","UncontrolledTabs","tabNodes","disableUpDownKeys","isTabFromContainer","selectedIndex","useSelectedIndex","getNextTab","getPrevTab","getLastTab","getFirstTab","setSelected","_proto","getTabsCount","getTab","getPanelsCount","panelCount","getChildren","disabledTabClassName","forceRenderTabPanel","selectedTabClassName","selectedTabPanelClassName","environment","tabIds","panelIds","listIndex","wasTabFocused","determineCanUseActiveElement","tab","tabRef","selectedClassName","disabledClassName","tabId","nodeAncestor","Tabs","handleSelected","last","copyPropsToState","defaultFocus","getDerivedStateFromProps","getModeFromProps","maxTabIndex","defaultIndex","TabList","DEFAULT_CLASS","componentDidMount","checkFocus","_cx","TabPanel","isLength","arrayLikeKeys","baseKeys","isArrayLike","_assign","__rest","ReactCropper","_b","dragMode","enable","zoomTo","rotateTo","_c","alt","_ready","onInitialized","rest","combinedRef","targetRef","useCombinedRefs","cropper","disable","applyDefaultOptions","isVisitable","removeBrackets","renderKey","token","predicates","formData","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","convertValue","isFlatArray","exposedHelpers","build","AddToCartButton","onClickEvent","price","buttonText","isLoading","wholesale","tax_rate","taxName","afterpayLogo","CurrencyDisplay","show_prefix","displayType","decimalScale","argIndex","framesToPop","baseIsNative","_Symbol","getRawTag","objectToString","symToStringTag","ArtworkUnit","saveValues","queueMicrotask","HTMLFieldSetElement","HTMLLegendElement","previousElementSibling","freeExports","freeModule","_T2","encode","charMap","AxiosURLSearchParams","params","_pairs","toFormData","encoder","_encode","buildURL","serializedParams","serializeFn","hashmarkIndex","product","InterceptorManager","fulfilled","rejected","synchronous","runWhen","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isStandardBrowserEnv","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","protocols","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","DEFAULT_CONTENT_TYPE","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","tokens","tokensRE","parseTokens","deleted","deleteHeader","normalized","char","formatHeader","_this$constructor","asStrings","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","accessor","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","domain","cookie","toGMTString","read","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","originURL","msie","urlParsingNode","resolveURL","href","search","hostname","port","requestURL","samplesCount","firstSampleTS","bytes","timestamps","tail","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","total","lengthComputable","progressBytes","rate","progress","estimated","onCanceled","requestData","requestHeaders","cancelToken","unsubscribe","signal","auth","username","password","unescape","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","statusText","paramsSerializer","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","cookies","onDownloadProgress","onUploadProgress","upload","subscribe","aborted","knownAdapters","http","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","reason","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","formatMessage","ERR_DEPRECATED","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","contextHeaders","_config","boolean","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","promise","responseInterceptorChain","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Cancel","all","promises","spread","isAxiosError","formToJSON","webpackPolyfill","deprecate","paths","baseGetTag","baseAssignValue","customizer","isNew","AfterpayBreakdown","buildPrice","afterpayUI","logo","modalMob","modalDesk","FrameCanvas","imageLoaded","frameready","loadArtWork","updateImage","updateFrame","updateLayout","saveBlob","imageStyle","containerStyle","handleImageLoaded","mat_style","maxContainerWidth","maxContainerHeight","frameWidth","frame_style","width_mm","height_mm","longestEdge","ratioOuter","roomScale","isGalleryWall","scaleF","fw","mat","colour","core_colour","mountAndFrameLeft","mountAndFrameRight","mountAndFrameTop","mountAndFrameBottom","artworkWidth","artworkHeight","mountColor","mountBevelColor","useNonCanvasImage","preview_url","userImage","rShadowStyle","lShadowStyle","tShadowStyle","bShadowStyle","topFramePoints","sideFramePoints","mountClipPoints","frame_type","mountFront","mountClipper","mountBevel","tShadow","bShadow","lShadow","rShadow","patternURL","pattern_url","borderScale","patternSourceCanvas","dataURL","previewCallback","artworkImageOnload","CanvasArtwork","artworkLoading","preloader","onLoad","FrameStyleSelector","radio","profile_thumb","ViewInSpace","width_cm","height_cm","EffectAndFilters","effects","validateAndSend","completeResponse","renderURL","effectsUpdate","skipStep","ajax","crop_image_path","viesus_correct","saveComplete","cl","viesus","preview_crop","cw","ch","original_url","itemOne","CompareImage","labelText","original_cropped","classAdd","itemTwo","overlayFilterText","install","StyleColourSelect","selectStyles","flex","selectOptions","icon","classNamePrefix","isSearchable","SelectTheme","DropDownItemLabel","diffDisplay","final_size","SizeSelect","setSize","menu","provided","baseKeysIn","getPrototype","isObjectLike","funcProto","funcToString","objectCtorString","Ctor","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","ok","named","names","matchers","rgba","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","mod","hsvToRgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_roundA","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToArgbHex","convertDecimalToHex","_desaturate","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","_darken","_spin","hue","_complement","_triad","_tetrad","_splitcomplement","_analogous","slices","part","_monochromatic","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getLuminance","RsRGB","GsRGB","BsRGB","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","brighten","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","rgb1","rgb2","readability","c2","isReadable","wcag2","wcag2Parms","out","parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","burntsienna","flipped","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","_merge","isObjectOrArrayOrFunction","sourceVal","targetVal","comparator","baseIsArguments","isArguments","stubFalse","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","__data__","has","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","nativeCreate","getNative","isKeyable","DataView","Set","WeakMap","toSource","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","baseFindIndex","baseIsNaN","strictIndexOf","fromIndex","iteratee","isSymbol","EventEmitter","_events","_maxListeners","defaultMaxListeners","setMaxListeners","emit","er","newListener","trace","once","fired","removeAllListeners","listenerCount","evlistener","emitter","searchCols","roomConfigs","maxFrameSize","framePreviewURL","mat_width","artwork_url","moulding_width","artwork","mouldingWidth","artWidthMM","artHeightMM","matL","matR","matT","matB","matColor","matCore","maxPX","frameType","queryString","MODE","DEFAULT","PAPER","ROOM","FRAME_STYLE","BORDERS","GLASS","FRAME_OPTION","NO_BORDER","UNFRAMED","CANVAS","MAT_STYLE_MAPPING","framed_border","framed_no_border","unframed","searchColReseneMapping","defaultColourOptions","colourOptions","FrameCanvasNew","border_mm","setCanvasAssetsLoaded","maxH","topFrame","rightFrame","bottomFrame","leftFrame","displayClasses","FrameColourSelector","frame_colour","GlassModalButton","glass_prices","glass_types","glass_type","priceLoading","logo_white","addToCart","savingInProgress","outstandingTasks","onOpen","afterOpenModal","GlassSelectionRadio","setActive","aria-hidden","price_jump","EffectsControls","handleFilter","toggleViesus","newEffects","renderThumb","CropImage","initialZoom","lowDPI","rotateUpdate","dpiUpdate","cropUpdated","cropperMounted","changeZoom","saveCropDetails","canvasData","getCanvasData","zoomRatio","preview_width","getData","longest","dpi","template_longest_inches","external_id","cropperHeight","cropperWidth","viewMode","autoCrop","autoCropArea","cropBoxMovable","cropBoxResizable","zoomOnWheel","movable","guides","DPIControl","template_title","allow_orientation","renderSwitch","class","RotateControls","turnRight","newRotate","DPIWarning","EffectAndFiltersInline","imageSaving","imageUpdate","effectsLoading","MultiImagePicker","fromSources","images_to_save","undersizedImages","pushImageIntoState","sizeWarning","saveToDatabase","saveSuccess","saveFail","myWidget","createUploadWidget","cloudName","uploadPreset","showPoweredBy","autoMinimize","showAdvancedOptions","maxFileSize","validateMaxWidthHeight","maxImageWidth","maxImageHeight","defaultSource","palette","windowBorder","tabIcon","menuIcons","textDark","textLight","link","inactiveTabIcon","inProgress","sourceBg","fonts","widget","newImage","filename","original_filename","secure_url","filesize","dpih","big_frame_height","dpiw","big_frame_width","post_image_url","selection_id","images_attributes","onImagesUploaded","deleteImageMode","trayIsOpen","toggleDeleteImageMode","MultiPhotoCanvas","windows","imageURL","artworkX","artworkY","calculateChange","initialA","containerHeight","pageYOffset","checkboardCache","serverCanvas","checkboard","renderers","borderRadius","boxShadow","grid","Alpha","_temp","handleChange","unbindEventListeners","marginTop","overwrite","VALID_KEY_CODES","EditableInput","blurValue","setUpdatedValue","getNumberValue","getArrowOffset","updatedValue","handleDrag","dragLabel","movementX","dragMax","getValueObjectWithLabel","inputId","arrowOffset","onChangeValue","spellCheck","hideLabel","_h","Hue","_props$direction","nativeObjectToString","isOwn","unmasked","uid","maskSrcKey","IE_PROTO","reIsHostCtor","reIsNative","Hash","MapCache","pairs","LARGE_ARRAY_SIZE","fromRight","keysFunc","iterable","arrayBuffer","byteLength","typedArray","isDeep","byteOffset","objectCreate","typedArrayTags","nodeIsTypedArray","objValue","reIsUint","inherited","isArr","isArg","isBuff","skipIndexes","isProto","srcIndex","mergeFunc","srcValue","stacked","isCommon","isTyped","baseMerge","nativeMax","otherArgs","nativeNow","lastCalled","stamp","remaining","assigner","guard","zDepth","_ref$styles","passedStyles","bg","reWhitespace","reTrimStart","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","nativeMin","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","throttle","_container$getBoundin","bright","renderWindow","getContainerRenderWindow","eachFunc","collection","letter","oldHue","lh","getContrastingColor","col","stringWithoutDegree","Picker","ColorPicker","colors","onChangeComplete","handleSwatchHover","onSwatchHover","optionalEvents","Span","Focus","_ref$onClick","onHover","_ref$title","_ref$focusStyle","focusStyle","transparent","swatch","outline","picker","_ref$className","SetCache","bitmask","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","symbolProto","symbolValueOf","symbolsFunc","resIndex","nativeGetSymbols","symbol","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","matchData","noCustomizer","reIsDeepProp","reIsPlainProp","memoize","resolver","memoized","Cache","rePropName","reEscapeChar","quote","subString","symbolToString","baseToString","hasFunc","swatches","marginRight","float","triangle","hexCode","card","alignItems","justifyContent","borderStyle","marginLeft","boxSizing","deepPurple","lightBlue","lightGreen","amber","deepOrange","blueGrey","circleSize","circleSpacing","Swatch","flexWrap","ChromeFields","toggleViews","view","showHighlight","hideHighlight","fields","field","iconHighlight","textTransform","svg","disableAlpha","paddingBottom","toggles","paddingRight","HEXwrap","HEXinput","HEXlabel","RGBwrap","RGBinput","RGBlabel","Compact","compact","hoverSwatch","borderBottomColor","triangleShadow","HuePointer","material","borderBottom","Hex","third","divider","fieldSymbols","PhotoshopPointer","triangleBorder","Extend","leftInside","rightInside","new","Photoshop","_props$styles","_props$className","previews","actions","onAccept","onCancel","PhotoshopFields","single","double","borderTop","swatchWrap","colorObjOrString","presetColors","sliders","activeColor","epsilon","check","hexcode","_values","_values2","hsvValue","column","input2","label2","flexGrow","rgbValue","hslValue","Personalisation","overlays","canvas_details","renderImageUrl","textsUpdated","current_image","lpx","longest_pixels","image_h","image_w","canvas_h","canvas_w","offset_y","offset_x","text_body","uppercase","f_weight","l_spacing","PersonalisationTexts","textUpdate","onUpdateColour","ids","PersonalisationText","text_body_persisted","focussed","remaining_char","max_char","changeHandler","textFocus","cancelEdit","confirm","multiline","rows","TextColourPicker","pickerShowing","colours","convertColors","handleChangeComplete","togglePicker","handleOutsideClick","hexs","main_colors","cols","_f","toggleFlag","ThisArrow","borderRight","ReactCompareSliderHandle","portrait","buttonStyle","linesStyle","_style","flexDirection","placeItems","_linesStyle","_buttonStyle","gridAutoFlow","gap","placeContent","flexShrink","backdropFilter","WebkitBackdropFilter","useEventListener","handlerOptions","savedHandler","useIsomorphicLayoutEffect","ThisClipContainer","willChange","userSelect","KhtmlUserSelect","MozUserSelect","WebkitUserSelect","ThisHandleContainer","innerStyle","EVENT_PASSIVE_PARAMS","EVENT_CAPTURE_PARAMS","capture","ReactCompareSlider","_ref7$onlyHandleDragg","onlyHandleDraggable","onPositionChange","_ref7$portrait","_ref7$position","_ref7$boundsPadding","boundsPadding","_ref7$changePositionO","changePositionOnHover","rootContainerRef","clipContainerRef","handleContainerRef","internalPositionPc","prevPropPosition","usePrevious","isDragging","setIsDragging","hasWindowBinding","interactiveTarget","setInteractiveTarget","didSyncBounds","setDidSyncBounds","updateInternalPosition","isOffset","_portrait","_boundsPadding","_rootContainerRef$cur","positionPx","nextInternalPositionPc","positionMeetsBounds","canSkipPositionPc","clampedPx","_rootContainerRef$cur2","nextPosition","handlePointerDown","ev","MouseEvent","handlePointerMove","handlePointerUp","handleResize","ResizeObserver","contentRect","handleMouseLeave","rootStyle","msUserSelect","primary","primary25","spacing","controlHeight","StyleSheet","_insertTag","tags","prepend","nextSibling","insertBefore","isSpeedy","speedy","ctr","nonce","hydrate","insert","createTextNode","createStyleElement","sheet","styleSheets","ownerNode","sheetForTag","insertRule","ee","ce","te","fe","fixedElements","compat","isImplicitRule","rules","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","registered","getRegisteredStyles","registeredStyles","rawClassName","insertStyles","isStringTag","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexPositive","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","order","orphans","tabSize","widows","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","handleInterpolation","interpolation","__emotion_styles","anim","interpolated","createStringFromObject","previousCursor","cached","labelPattern","stringMode","strings","raw","identifierName","EmotionCacheContext","CacheProvider","ThemeContext","typePropName","createEmotionProps","newProps","Emotion","argsLength","createElementArgArray","classnames","cls","toAdd","ClassNames","ele","_excluded$3","applyPrefixToName","clearValue","hasValue","isMulti","isRtl","selectOption","selectProps","setValue","isDocumentElement","scrollTo","animatedScrollTo","increment","animateScroll","isTouchCapable","createEvent","passiveOptionAccessed","supportsPassiveEvents","notNullish","valueTernary","multiValue","singleValue","getMenuPlacement","menuEl","shouldScroll","isFixedPosition","scrollParent","excludeStaticParent","overflowRx","getScrollParent","defaultState","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","containerTop","viewHeight","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","_constrainedHeight","spaceAbove","_constrainedHeight2","coercePlacement","PortalPlacementContext","getPortalPlacement","MenuPlacer","maxMenuHeight","getPlacement","minMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getUpdatedProps","placerProps","noticeCSS","_ref5$theme","baseUnit","neutral40","noOptionsMessageCSS","loadingMessageCSS","innerProps","_templateObject","_Component2","MenuPortal","controlElement","isFixed","getBoundingClientObj","scrollDistance","menuWrapper","_excluded$2","focusable","baseCSS","isFocused","_ref3$theme","neutral60","neutral20","neutral80","dropdownIndicatorCSS","clearIndicatorCSS","loadingDotAnimations","insertable","keyframes","freeze","verticalAlign","indicator","_excluded$1","spacingStyle","gridArea","gridTemplateColumns","inputStyle","ClearIndicator","Control","isDisabled","menuIsOpen","DropdownIndicator","DownChevron","CrossIcon","Heading","headingProps","GroupHeading","_cleanCommonProps","IndicatorsContainer","indicators","IndicatorSeparator","Input","inputClassName","LoadingIndicator","Menu","MenuList","LoadingMessage","NoOptionsMessage","MultiValue","removeProps","Container","Remove","emotionCx","MultiValueContainer","MultiValueLabel","MultiValueRemove","isSelected","Placeholder","SelectContainer","SingleValue","ValueContainer","safeIsNaN","areInputsEqual","newInputs","lastInputs","second","resultFn","isEqual","lastResult","calledOnce","newArgs","defaultAriaLiveMessages","guidance","tabSelectsValue","_props$label","labels","_props$label2","selectValue","getArrayIndex","onFilter","inputValue","resultsMessage","ariaSelection","focusedOption","focusedValue","focusableOptions","ariaLiveMessages","getOptionLabel","isOptionDisabled","screenReaderStatus","ariaLive","messages","ariaSelected","selectedOptions","removedValue","removedValues","multiSelected","onChangeProps","ariaFocused","focusMsg","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","ariaContext","ScreenReaderText","isInitialFocus","diacritics","letters","anyDiacritic","diacriticToBase","diacritic","stripDiacritics","memoizedStripDiacriticsForInput","trimString","defaultStringify","DummyInput","caretColor","STYLE_KEYS","LOCK_STYLES","preventTouchMove","allowTouchMove","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","canUseDOM","activeScrollLocks","listenerOptions","blurSelectInput","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","isTop","touchStart","scrollTarget","handleEventDelta","_scrollTarget$current","isDeltaPositive","availableScroll","shouldCancelScroll","cancelScroll","onWheel","startListening","notPassive","stopListening","useScrollCapture","setScrollLockTarget","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","adjustedPadding","removeScrollLock","defaultStyles","clearIndicator","_ref$theme","neutral5","neutral0","neutral10","neutral30","dropdownIndicator","groupHeading","indicatorsContainer","alignSelf","indicatorSeparator","_ref4$theme","loadingIndicator","loadingMessage","_ref2$theme","alignToControl","menuGutter","menuList","WebkitOverflowScrolling","menuPortal","multiValueLabel","cropWithEllipsis","textOverflow","multiValueRemove","dangerLight","danger","noOptionsMessage","WebkitTapHighlightColor","primary50","neutral50","valueContainer","controlShouldRenderValue","defaultTheme","primary75","neutral70","neutral90","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","escapeClearsValue","filterOption","rawInput","__isNew__","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","matchFrom","candidate","formatGroupLabel","getOptionValue","menuShouldBlockScroll","isMobileDevice","openMenuOnFocus","openMenuOnClick","pageSize","toCategorizedOption","_isOptionDisabled","_isOptionSelected","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","isFocusable","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","_props$inputValue","shouldHideSelectedOptions","_filterOption","isOptionSelected","hideSelectedOptions","instanceId","Select","inputIsHidden","clearFocusValueOnUpdate","prevWasFocused","inputIsHiddenAfterUpdate","blockOptionHover","isComposing","commonProps","initialTouchX","initialTouchY","instancePrefix","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","inputRef","getInputRef","focusInput","blurInput","actionMeta","ariaOnChange","onInputChange","prevInputValue","onMenuClose","removeValue","newValueArray","popValue","lastSelectedValue","custom","getElementId","getComponents","getCategorizedOptions","buildFocusableOptions","getFocusableOptions","onMenuMouseDown","onMenuMouseMove","onControlMouseDown","openMenu","onDropdownIndicatorMouseDown","onClearIndicatorMouseDown","onScroll","deltaX","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","onMenuOpen","onInputFocus","onInputBlur","onOptionHover","isClearable","focusValue","focusOption","startListeningComposition","startListeningToTouch","focusedEl","menuRect","focusedRect","overScroll","stopListeningComposition","stopListeningToTouch","openAtIndex","focusedIndex","nextFocus","getTheme","formatOptionLabel","_inputValue","_selectValue","_this$state4","ariaAttributes","autoCapitalize","autoComplete","autoCorrect","inputMode","_this$getComponents2","_this$state5","isOptionFocused","_this$getComponents5","_this$getComponents7","_this$props12","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","optionId","hasOptions","_data","groupIndex","groupId","headingId","_message","menuPlacementProps","menuElement","_ref4$placerProps","scrollTargetRef","_this5","_this$props13","_this$state6","_this$getComponents8","_this$props14","getCommonProps","renderLiveRegion","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","newMenuOptionsState","nextSelectValue","lastFocusedIndex","getNextFocusedValue","lastFocusedOption","getNextFocusedOption","newInputIsHiddenState","newAriaSelection","hasKeptFocus","StateManagedSelect","baseSelectProps","_ref$defaultInputValu","defaultInputValue","_ref$defaultMenuIsOpe","defaultMenuIsOpen","_ref$defaultValue","propsInputValue","propsMenuIsOpen","propsOnChange","propsOnInputChange","propsOnMenuClose","propsOnMenuOpen","propsValue","restSelectProps","stateInputValue","setStateInputValue","stateMenuIsOpen","setStateMenuIsOpen","stateValue","setStateValue","useStateManager","propIsEnumerable","test1","test2","test3","shouldUseNative","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","RangeError","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromString","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","inspect","thisStart","thisEnd","thisCopy","targetCopy","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","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","reduceRight","escapeFacetValue","unescapeFacetValue","percentTwenties","Format","formatters","RFC1738","RFC3986","baseIsTypedArray","baseUnary","nodeUtil","freeProcess","types","require","binding","baseClone","CLONE_DEEP_FLAG","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","arrayFilter","stubArray","getSymbols","overArg","baseForOwn","castFunction","originalModule","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","formats","hasPassiveEvents","passiveTestOptions","isIosDevice","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","lock","rawEvent","restoreOverflowSetting","disableBodyScroll","targetElement","ontouchstart","targetTouches","ontouchmove","isTargetElementTotallyScrolled","handleScroll","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","setOverflowHidden","enableBodyScroll","AdminCrop","source_ratio","image_path","onCustomChange","cropOption","setAspectRatio","AdminPricingBreakdown","discount","tax","formOpen","onDiscountUpdate","onShippingUpdate","renderDiscount","removeDiscount","completeRemove","new_total","new_tax","url_remove","reduction","DiscountCode","is_pro","items_count","items_total","shipping_method","shipping_overide","credit","handleSubmit","renderMessage","renderForm","patch","voucher_code","segment_track","tracking_detail","MissiveSidebarApp","users","reloadUI","fetchUsers","Missive","fetchConversations","conversations","emailAddressNotFramefox","getEmailAddresses","address","emails","fetch","user_missive_app_path","reload","user","email","created_at","orders","shipped_at","ordered_at","sub_total","defaultsPure","intersection","valToNumber","objectHasKeys","isValidUserToken","RefinementList","isEqualNumericRefinement","newParameters","_parseNumbers","userToken","facets","disjunctiveFacets","hierarchicalFacets","facetsRefinements","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements","paramName","isKeyKnown","PARAMETERS","isValueDefined","partialState","numbers","parsedValue","insideBoundingBox","geoRect","operators","parsedValues","vPrime","make","facet","rootPath","currentRefinement","getHierarchicalRefinement","clearRefinements","toggleHierarchicalFacetRefinement","currentState","tagFilters","numericFilters","_clearNumericRefinements","clearRefinement","setQueryParameters","clearTags","setIndex","setQuery","newQuery","setPage","newPage","page","setFacets","setDisjunctiveFacets","setHitsPerPage","hitsPerPage","setTypoTolerance","typoTolerance","addNumericRefinement","isNumericRefined","getConjunctiveRefinements","facetName","isConjunctiveFacet","getDisjunctiveRefinements","isDisjunctiveFacet","getExcludeRefinements","removeNumericRefinement","paramValue","op","getNumericRefinements","getNumericRefinement","hasChanged","newNumericRefinements","operatorList","outValues","addFacet","addDisjunctiveFacet","addHierarchicalFacet","hierarchicalFacet","isHierarchicalFacet","addFacetRefinement","isRefined","addRefinement","addExcludeRefinement","addDisjunctiveFacetRefinement","addTagRefinement","isTagRefined","removeFacet","removeDisjunctiveFacet","removeHierarchicalFacet","removeFacetRefinement","removeRefinement","removeExcludeRefinement","removeDisjunctiveFacetRefinement","removeTagRefinement","toggleRefinement","toggleFacetRefinement","toggleConjunctiveFacetRefinement","toggleDisjunctiveFacetRefinement","toggleExcludeFacetRefinement","separator","_getHierarchicalFacetSeparator","getHierarchicalFacetByName","addHierarchicalFacetRefinement","isHierarchicalFacetRefined","removeHierarchicalFacetRefinement","toggleTagRefinement","isFacetRefined","isExcludeRefined","isDisjunctiveFacetRefined","refinements","isOperatorDefined","searchedValue","isAttributeValueDefined","getRefinedDisjunctiveFacets","disjunctiveNumericRefinedFacets","getRefinedHierarchicalFacets","getUnrefinedDisjunctiveFacets","refinedFacets","managedParameters","getQueryParams","queryParams","setQueryParameter","parameter","nextWithNumbers","previousPlainObject","nextPlainObject","isPreviousValueDefined","isNextValueDefined","resetPage","_getHierarchicalFacetSortBy","sortBy","_getHierarchicalRootPath","_getHierarchicalShowParentLevel","showParentLevel","hierarchicalFacetName","getHierarchicalFacetBreadcrumb","refinement","orderBy","formatSort","fv","generateHierarchicalTree","getIndices","indices","assignFacetStats","facetStats","stats","mainSubResponse","_rawResults","processingTimeMS","sum","facetsIndices","disjunctiveFacetsIndices","nextDisjunctiveResult","mainFacets","facetKey","hierarchicalAttributeName","facetValueObject","facetIndex","idxAttributeName","exhaustive","exhaustiveFacetsCount","isFacetDisjunctive","isFacetConjunctive","facets_stats","disjunctiveFacet","dfacet","facetResults","attributeIndex","dataFromMainRequest","refinementValue","refinedFacet","defaultData","excludes","facetValue","_state","extractNormalizedFacetValues","escapedValue","isExcluded","hierarchicalFacetValues","currentRefinementSplit","setIsRefined","recSort","sortFn","sortedChildren","getFacetStatsIfAvailable","facetList","getRefinement","attributeName","resultsFacets","getFacetByName","DEFAULT_SORT","getFacetValues","facetValues","facetOrdering","renderingContent","getFacetOrdering","orderedFacets","remainingFacets","reverseOrder","ordering","sortRemainingBy","sortViaFacetOrdering","vanillaSortFn","getFacetStats","getRefinements","facetDeclaration","rootFacet","intermediateFacet","newFacet","numericValue","compareAscending","valIsDefined","valIsNull","othIsDefined","othIsNull","iteratees","criteria","defaultInstructions","sortInstruction","matchingDefault","defaultInstruction","ctor","superCtor","hexTable","plainObjects","combine","queue","compacted","compactQueue","decode","decoder","charset","strWithoutPlus","defaultEncoder","escape","$0","maybeMap","mapped","allowPrototypes","mergeTarget","targetItem","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","argv","versions","prependListener","prependOnceListener","cwd","chdir","umask","ArticleSearch","currSearch","updateQuery","updateResults","search_url","OrderGiftOptions","gift_options","gift_option","gift_option_id","gift_option_note","alert","max_chars","currency","price_cents","require_message","maxLength","OrderItemGiftOptions","order_item","outside_mm","OrderItemNote","noteBody","noteBodyPersisted","order_item_id","acceptCharset","timeoutDuration","longerTimeoutBrowsers","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","_getStyleComputedProp","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","noOffsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","upperSide","scrollingElement","includeScroll","getBordersSize","axis","sideA","sideB","getSize","getWindowSizes","classCallCheck","getClientRect","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","getFixedPositionOffsetParent","getBoundaries","boundariesElement","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","cur","isDestroyed","arrowStyles","positionFixed","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","toCheck","removeOnDestroy","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","isNumeric","setStyles","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","splitRegex","ops","mergeWithPrevious","toValue","index2","shiftvariation","_data$offsets","shiftOffsets","preventOverflow","transformProp","popperStyles","priority","escapeWithReference","secondary","keepTogether","opSide","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","applyStyle","modifierOptions","Popper","jquery","Utils","PopperUtils","PricingBreakdown","payment_step","print_and_frame","country","country_name","in_cart","start_checkout_url","afterpay_available","ShippingMethodShow","has_price_overide","AddToCart","completedSave","onClickCart","saveShopifyLineItem","getCartCookie","auto_start","Shopify","routes","shopifyData","items","shopify_variant_id","shopify_properties","saveOrderItem","draftOrderItem","shopify_cart_id","draft_order_item","productable_id","productable_type","draft_order_items_path","redirect_cart","responseJSON","CartShare","onClickShare","getShopifyCart","saveCart","setName","cart_id","draft_order_items","currentCountry","draft_order","draft_order_items_attributes","notes","share_path","unit_options","CustomSize","max_w_or_h","min_w_or_h","presetsOpen","changeUnit","updateDimensions","flipDimensions","togglePresets","image_key","paper_type_id","next_path","wmm","hmm","validation","reversable","copyObject","createAssigner","isPrototype","baseRest","isIterateeCall","identity","overRest","setToString","baseTimes","isIndex","arrayPush","getSymbolsIn","baseGetAllKeys","cloneArrayBuffer","baseCreate","baseDifference","baseFlatten","isArrayLikeObject","difference","setCacheAdd","setCacheHas","baseFunctions","baseIndexOf","toInteger","trimmedEndIndex","baseFor","createBaseFor","baseTrim","castSlice","charsEndIndex","charsStartIndex","stringToArray","chars","strSymbols","chrSymbols","arrayMap","baseIsEqualDeep","arraySome","cacheHas","castPath","toKey","isKey","stringToPath","MODE_NUMBER","MODE_ALPHA_NUM","MODE_8BIT_BYTE","MODE_KANJI","math","QRPolynomial","getLength","gexp","glog","QRMath","LOG_TABLE","EXP_TABLE","FrameGallery","room_scale","preview_mode","show_frame","leftMargin","topMargin","canvasStyle","backgroundPosition","nh","PreviewModeSelector","thumbnail_url","ContentRect","EffectAndFiltersContainer","cropEditComplete","button_text","MeasureUI","selectedPreset","savePreset","renderSizeButton","frame_style_colour_id","redirect_to","max_artwork_long_mm","max_artwork_short_mm","presets","SizePresets","hero_image","mat_overlap","img_help_1","img_help_2","a_sizes","metric_sizes","inches","MeasureContainer","image_id","MeasureFloat","MeasureGuide","MeasureHelp","section","back","renderStep","renderBack","image1","image2","image3","MeasureHelpButton","setOpen","onCloseModal","callout","CloudinaryUploader","resolution_acceptable","show_crop","renderBlankState","isSaving","shopify_customer_id","coordinates","frame_sku_id","GiftNoteUploader","preview_image_url","croppingAspectRatio","showSkipCropButton","folder","image_url","PrintSizeForm","cropOrientationPortrait","cropperReady","saving","tabURLS","print_size_path","1","square_print_size_path","2","original_print_sizes_path","saveSizes","saveOriginalSizes","setSizes","sizeSelected","paperTypeSelected","validateAndFrame","onTabChange","flipSizes","shortest_print_length","longEdgePX","max_glass_short_mm","max_glass_long_mm","longest_inches","long","perimeter_mm","short","long_mm","short_mm","withinBounds","shortest_inches","middle","print_size","print_size_costs","prices","print_price","print_cost","new_price","new_paper_type","frame_effects_path","frame_size_id","fsc_id","newSizes","ps","UpscaleModalButton","upscale_available","frame_upscale_path","media_type","ai_icon_path","ai_icon_loading_path","custom_size_path","tabsAllowed","BlankState","isWaiting","upscaleImage","saveUpscaledImage","completeSave","upscaledImageURL","isLoadingImage","modalClasses","ai_upscaled","PrintSizeSelect","OrientationSwitch","PaperTypeSelect","expanded","expandOptions","paper_type","paper_desc","frame_price_no_mat","frame_price","Uploader","percentCompleted","fileUploading","onSuccessCallback","failureCallBack","uploadFile","eager","resolution_warning","files","post","crop_ratio","preloader_icon","UploadPreloader","xmlns","CropAndEdit","isCropMode","success_path","cropOnly","cropComplete","imageSaved","TemplateCrop","force_ratio","effectsURL","is_for_print","originalURL","updateRotate","GalleryDesignerUI","gallery_wall_styles","gws_id","gallery_wall_items","modalOpen","redrawHack","current_item","style_sizes","isAddingToCart","setupScale","loadProject","selectFrame","closeTray","onImageSelect","updateImages","onImageCropSave","onEffectsUpdate","onEffectsSave","updateTrayStatuses","pushImageIntoItem","revertItemToDefault","redraw","imagesUploaded","switchStyle","toggleEffects","frameTooltipOff","frameTooltipMessage","removeImageFromFrame","onDragThumb","saveToShopify","savePurchase","getSessionImages","imagesReturned","saveProject","saveProjectSuccess","session","shopify_session_id","selection_path","gallery_wall_style_id","gwp","gallery_wall_projects","findLast","style_id","gallery_wall_project","bufferW","total_width","total_height","scaleOG","gallery_wall_item_id","newItems","save_project_url","artworkLoadingID","newScale","height_and_mat_mm","effectsMode","newImages","used","item_id","blank_image","usedIds","filteredStyles","effectsSeen","thumb","draggedThumb","draggedOverFrame","imageObjs","bulk_update_crop_image_path","is_edit_mode","update_path","create_path","gwp_id","gallery_wall_purchase","gallery_wall_purchase_items_attributes","productableData","save_to_shopify","shopify_line_id","deleteShopifyLineItem","containerClasses","width_and_mat_mm","ImageSelection","imagesSelectable","size_desc","total_dimensions_cm","NavBarDefault","back_path","stylesUnfiltered","unlinkImage","removeImage","unlink_path","draggable","recentlySaved","GalleryWallTemplateShow","preview_mode_index","preview_modes","framesOpen","thumbItems","switchPreviewMode","visitBuilder","toggleFrames","script","activeThumb","build_path","ThumbSelect","thumbs","num_frames","price_from","templates","template","size_description","widget-id","data-store-name","lang","data-sku","branch","glass_types_sentence","sizeBrackets","MultiPhotoIndex","size_filter","onFilterSize","filteredSet","priceRange","TemplateItem","styles_count","useImageWindows","initialState","imageWindows","topLevel","eval","ssrDocument","initEvent","importNode","deviceCached","ssrWindow","history","replaceState","pushState","go","CustomEvent","matchMedia","deleteProps","getTranslate","curTransform","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","m41","m42","noExtend","nextSource","keysArray","nextIndex","nextKey","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","speed","scrollSnapType","cssModeFrameID","isOutOfBound","getTime","easeProgress","currentPosition","elementChildren","_el$classList","elementIndex","previousSibling","elementParents","parents","elementOuterSize","includeMargins","getSupport","smoothScroll","DocumentTouch","calcSupport","calcDevice","support","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","macos","iPadScreens","overrides","needPerspectiveFix","_ua$split$1$split$0$s2","minor","isWebView","calcBrowser","processLazyPreloader","imageEl","slideEl","isElement","slideClass","lazyEl","lazyPreloaderClass","unlazy","slides","preload","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","activeIndex","activeColumn","preloadColumns","slideIndexLastInView","rewind","realIndex","transitionEmit","runCallbacks","previousIndex","touchEventsData","evCache","simulateTouch","pointerType","animating","preventInteractionOnTransition","cssMode","loopFix","originalEvent","targetEl","touchEventsTarget","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","touchStartPreventDefault","touchStartForcePreventDefault","freeMode","rtl","rtlTranslate","pointerIndex","cachedEv","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","maxTranslate","minTranslate","touchAngle","isHorizontal","cancelable","touchMoveStopPropagation","nested","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","loopFixed","isLoop","startTranslate","setTransition","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","setTranslate","currentTranslate","disableParentSwiper","resistanceRatio","centeredSlides","activeSlideIndex","resistance","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","updateProgress","slidesGrid","currentPos","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","_increment","rewindFirstIndex","rewindLastIndex","isBeginning","virtual","isEnd","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","snapGrid","isVirtual","updateSlides","isVirtualLoop","slideToLoop","running","paused","resizeTimeout","resume","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","previousTranslate","translatesDiff","autoHeight","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","updateOnWindowResize","isGridEnabled","initialSlide","createElements","setWrapperSize","virtualTranslate","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","uniqueNavElements","slideToClickedSlide","loopedSlides","loopPreventsSliding","passiveListeners","maxBackfaceHiddenSlides","containerModifierClass","slideActiveClass","slideVisibleClass","slideNextClass","slidePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","events","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","getDirectionLabel","getDirectionPropertyValue","slidesEl","swiperSize","wrongRTL","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","slideSize","gridEnabled","initSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentWebKitTransform","_slide","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","activeSlide","getFilteredSlide","nextSlide","nextEls","elementNextAll","prevSlide","prevEls","elementPrevAll","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","getActiveIndexByTranslate","skip","initialized","slideFound","clickedSlide","clickedIndex","byController","translateTo","translateBounds","internal","newTranslate","isH","_wrapperEl$scrollTo","onTranslateToWrapperTransitionEnd","transitionDuration","transitionStart","transitionEnd","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_cssModeVirtualInitialSet","onSlideToWrapperTransitionEnd","indexAsNumber","newIndex","slideNext","perGroup","_clientLeft","slidePrev","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","currentSnap","nextSnap","_currentSnap","slideToIndex","slideSelector","getSlideIndex","loopCreate","slideRealIndex","_ref$slideTo","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","_index","swiperLoopMoveDOM","recalcSlides","currentSlideTranslate","newSlideTranslate","_currentSlideTranslate","_newSlideTranslate","_diff","controller","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","moving","isLocked","__preventObserver__","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","changeDirection","containerEl","currentHeight","minRatio","_points$i","wasLocked","lastSlideRightEdge","addClasses","resultClasses","suffixes","removeClasses","extendedDefaults","Swiper","swipers","newParams","_swiper$modules","__modules__","extendParams","swiperParams","passedParams","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","newDefaults","installModule","updates","getSlideClasses","exact","spv","breakLoop","slideInView","_slideInView","translated","translateValue","newDirection","needUpdate","currentDirection","mounted","shadowEl","getWrapperSelector","mount","deleteInstance","cleanStyles","prototypeGroup","protoMethod","use","animationFrame","resizeHandler","orientationChangeHandler","newWidth","contentBoxSize","inlineSize","blockSize","observers","attach","ObserverFunc","WebkitMutationObserver","mutations","observerUpdate","observeParents","observeSlideChildren","containerParents","createElementIfNotDefined","checkProps","classesToSelector","Pagination","bulletSize","pfx","pagination","bulletElement","clickable","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","makeElementsArray","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","newSlideIndex","currentSlideIndex","firstIndex","midIndex","subEl","_bulletEl$classList","classesToRemove","suffix","bullet","_bullet$classList","bulletIndex","_bullet$classList2","_bullet$classList3","firstDisplayedBullet","lastDisplayedBullet","_bullets$i$classList","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","progressEl","paginationHTML","numberOfBullets","_swiper$pagination$bu","_subEl$classList","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","isChildSwiperSlide","processChildren","slots","foundSlides","renderVirtual","virtualData","loopFrom","loopTo","slidesToRender","deps","SwiperSlideContext","SwiperContext","externalElRef","_ref$tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","setContainerClasses","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","splitEvents","allowedParams","plainObj","getParams","_getChildren","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","extendWith","renderExternal","renderExternalUpdate","paginationEl","scrollbarEl","mountSwiper","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","updateParams","currentParams","destroyModule","updateSwiper","parallax","SwiperSlide","externalRef","lazy","virtualIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","slideData","renderChildren","FrameDesignerUI","curr_frame_styles","frame_styles","frame_style_id","mat_styles","mat_style_id","mats","mat_id","glass_type_id","cf","custom_frame","gallery_images","wallColour","canvasAssetsLoaded","image_crop_ratio","default_border","max_border_mm","max_border","filterStylesByColour","frameColourByName","updateAvailableMatStyles","saveGlassType","saveMatStyle","saveMat","updateFrameStyle","updateFrameColour","customFrameAttr","templateAttr","personalisedTexts","saveCustomFrame","updatePrice","savePrices","displayTotalPrice","totalWidth","totalHeight","totalDimensions","personaliseUpdate","updateFramePreview","currFramePreview","onPhotoUpload","onClearFile","orientationUpdate","changeBorderMM","frame_colours","colour_list","same_mat","new_mat","mat_colour","custom_frame_id","b2b","cart_token","cartToken","template_id","current_country","template_purchase_id","template_purchase","template_variant_id","template_variants","personalisation_option_id","p_option_id","personalised_texts_attributes","p_texts","personalisation_text_id","og_id","pers_id","post_to_cart_url","is_template","pricing_url","price_inc_tax","price_sku_code","edges_x","edges_y","pattern_slug","fileInfo","textStatus","jqXHR","canvasFrame","framePreviewUploader","preview_upload_path","previewImageCallback","interiors","onWallColourChange","includes_print","print_only","excerpt","p_options","benefits_image","onClear","p_overlays","locked_to_sku","allows_mat","artwork_width_mm","artwork_height_mm","selected_mat_colour","mat_colour_options","saveMatColourValues","cartText","product_sku","whats_included","mounting","backing","hardware","mat_available","frame_title","CloudinaryUploaderWidget","PreviewUpload","CanvasContainer","InteriorPreviews","interior","gallery_image","imageStyles","frame_x","frame_y","scaledMax","max_frame_size","GalleryImage","Interior","shadow_url","Features","includes_glass","can_mat","MatStyleSelector","colours_expanded","border_type","forceMatForSmall","forceUnmattedForLarge","matTitle","MatSelector","IndexContext","InstantSearchContext","getInsightsAnonymousUserTokenInternal","getCookie","safelyRunOnBrowser","getAppIdAndApiKey","searchClient","transporter","_searchClient$transpo","queryParameters","APP_ID","API_KEY","applicationID","apiKey","hint","prim","toPrimitive","_toPrimitive","_toPropertyKey","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","isModernInsightsClient","_split$map2","createInitArgs","instantSearchInstance","uiState","helper","getHelper","renderState","templatesConfig","createURL","scopedResults","searchMetadata","isSearchStalled","createRenderArgs","getResults","getScopedResults","extractWidgetPayload","widgets","initOptions","mainIndex","_initialUiState","widgetParams","getWidgetRenderState","$$type","widgetType","$$widgetType","getWidgets","setWindowTitle","BrowserHistory","windowTitle","_ref$writeDelay","writeDelay","parseURL","getLocation","writeTimer","_createURL","_start","_dispose","_push","latestAcknowledgedHistory","qsModule","routeState","shouldWrite","inPopState","_onPopState","isDisposed","lastPushWasByISAfterDispose","historyRouter","_ref7$createURL","_location$port","portWithPrefix","_ref7$parseURL","arrayLimit","_ref7$writeDelay","_ref7$getLocation","getIndexStateWithoutConfigure","configure","simpleStateMapping","stateToRoute","indexId","routeToState","isPrimitive","_Object$keys","createDocumentationLink","_ref$connector","connector","createDocumentationMessageGenerator","links","isIndexWidget","mergeWithRest","ruleContexts","mergeFacets","mergeDisjunctiveFacets","nextFacets","mergeTagRefinements","mergeFacetRefinements","mergeFacetsExcludes","mergeDisjunctiveFacetsRefinements","mergeNumericRefinements","mergeHierarchicalFacetsRefinements","mergeSearchParameters","hierarchicalFacetsRefinementsMerged","hierarchicalFacetsMerged","tagRefinementsMerged","numericRefinementsMerged","disjunctiveFacetsRefinementsMerged","facetsExcludesMerged","facetRefinementsMerged","disjunctiveFacetsMerged","ruleContextsMerged","facetsMerged","withUsage","privateHelperSetState","isPageReset","_uiState","lastResults","getLocalWidgetsUiState","widgetStateOptions","initialUiState","getWidgetUiState","getWidgetState","getLocalWidgetsSearchParameters","widgetSearchParametersOptions","initialSearchParameters","getWidgetSearchParameters","resetPageFromWidgets","indexWidgets","widgetHelper","resolveScopedResultsFromWidgets","getIndexId","indexName","_widgetParams$indexId","localWidgets","localUiState","localInstantSearchInstance","localParent","derivedHelper","lastValidSearchParameters","getIndexName","_derivedHelper","getPreviousState","widgetParent","searchParameters","addWidgets","getRenderState","storeRenderState","scheduleSearch","removeWidgets","_instantSearchInstanc","mainHelper","onStateChange","setUiState","searchWithoutTriggeringOnStateChange","searchForFacetValues","maxFacetHits","userState","derive","states","resolveSearchParameters","indexInitialResults","_initialResults","scheduleStalledRender","scheduleRender","onInternalStateChange","hasPendingRequests","widgetsToRender","_helper","_derivedHelper2","detach","previousUiState","innerIndex","refreshUiState","setIndexUiState","indexUiState","nextIndexUiState","parentIndexName","componentName","descendantName","descendent","getPropertyByPath","htmlEntities","regexUnescapedHtml","regexHasUnescapedHtml","htmlCharacters","regexEscapedHtml","regexHasEscapedHtml","TAG_PLACEHOLDER","highlightPreTag","highlightPostTag","TAG_REPLACEMENT","replaceTagsAndEscape","recursiveEscape","escapeHits","hits","__escaped","_objectDestructuringEmpty","_highlightResult","_snippetResult","suit","concatHighlightedParts","isHighlighted","hasAlphanumeric","getHighlightFromSiblings","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","reverseHighlightedParts","getHighlightedParts","highlightedValue","splitByPreTag","firstValue","splitByPostTag","serializePayload","serializedPayload","writeDataAttributes","hoganHelpers","numberLocale","formatNumber","toLocaleString","highlight","_ref$highlightedTagNa","highlightedTagName","_ref$cssClasses","cssClasses","_ref2$value","highlighted","reverseHighlight","snippet","reverseSnippet","insights","_JSON$parse","objectIDs","objectID","nextMicroTask","defer","cancelled","setIndexHelperState","finalUiState","indexWidget","defaultCreateURL","_EventEmitter","InstantSearch","started","_this$mainHelper","shouldResetStatus","_searchStalledTimer","nextUiState","middleware","_options$indexName","_options$initialUiSta","_options$routing","routing","_options$insights","searchFunction","_options$stalledSearc","stalledSearchDelay","_options$searchClient","_options$insightsClie","insightsClient","_options$onStateChang","addAlgoliaAgent","compileOptions","_stalledSearchDelay","_searchFunction","sendEventToInsights","routerOptions","$$internal","_props$router","router","_props$stateMapping","stateMapping","_props$$$internal","route","lastRouteState","_router$start","insightsOptions","_insightsClient","insightsInitParams","onEvent","potentialInsightsClient","AlgoliaAnalyticsObject","shouldAddScript","existingInsightsMiddlewares","creator","unuse","initialParameters","_getAppIdAndApiKey2","appId","queuedUserToken","userTokenBeforeInit","_error","partial","errorMessage","clickAnalytics","overrideStateWithoutTriggeringChangeEvent","setUserTokenToSearch","existingToken","anonymousUserToken","immediate","insightsClientWithLocalCredentials","insightsMethod","algoliaSource","eventModifier","createInsightsMiddleware","_window$navigator","_window$navigator$use","_ref2$$$internal","payloadContainer","_ua","createMetadataMiddleware","newMiddlewareList","newMiddleware","middlewareToUnuse","searchOnlyWithDerivedHelpers","fakeClient","_mainHelperSearch","mainIndexHelper","searchFunctionHelper","originalScheduleSearch","_this$mainHelper2","callOnStateChange","clearCache","InstantSearchServerContext","useInstantSearchServerContext","InstantSearchSSRContext","useInstantSearchSSRContext","useForceUpdate","defaultUserAgents","serverUserAgent","addAlgoliaAgents","userAgents","forceUpdate","serverContext","serverState","initialResults","prevPropsRef","searchRef","ssrSearchRef","_schedule","timer","notifyServer","_props$stalledSearchD","_search","setClient","cleanupTimerRef","_preventWidgetCleanup","useInstantSearchApi","checkRendering","rendering","usage","defaultQueryHook","hook","renderFn","unmountFn","_refine","_clear","_ref$queryHook","queryHook","renderOptions","searchBox","refine","dequal","bar","createSearchResults","_state$query","_state$page","_state$hitsPerPage","nbHits","nbPages","exhaustiveNbHits","__isArtificial","getIndexSearchResults","scopedResult","fallbackResults","invariant","useIndexContext","useInstantSearchContext","useStableValue","stableValue","setStableValue","useWidget","parentIndex","shouldSsr","prevWidgetRef","shouldAddWidgetEarly","previousWidget","_excluded2","useConnector","additionalWidgetProperties","stableProps","stableAdditionalWidgetProperties","shouldSetStateRef","previousRenderStateRef","connectorState","isFirstRender","createWidget","_widget$getWidgetSear","_getIndexSearchResult","_widget$getWidgetRend","DefaultSubmitIcon","submitIcon","DefaultResetIcon","resetIcon","dur","repeatCount","DefaultLoadingIcon","loadingIcon","SearchBox","formRef","onReset","_ref7$resetIconCompon","resetIconComponent","ResetIcon","_ref7$submitIconCompo","submitIconComponent","SubmitIcon","_ref7$loadingIconComp","loadingIconComponent","LoadingIcon","_ref7$classNames","translations","noValidate","submit","submitButtonTitle","resetButtonTitle","_ref$searchAsYouType","searchAsYouType","_useSearchBox","useSearchBox","setInputValue","uiProps","Index","ssrContext","useIndex","getInitialSearchParameters","_renderState$configur","widgetRenderState","actualState","nextSearchParameters","Configure","useConfigure","_buildEventPayloadsForHits","_args$0$split2","hitsArray","queryID","__queryID","hitsChunks","chunkSize","chunks","objectIDsByChunk","batch","positionsByChunk","__position","positions","createSendEventForHits","sentEvents","payloads","createBindEventForHits","addAbsolutePosition","addQueryID","sendEvent","bindEvent","_ref$escapeHTML","escapeHTML","_ref$transformItems","transformItems","getIndex","hitsWithAbsolutePositionAndQueryID","useHits","HighlightPart","nonHighlightedTagName","TagName","nonHighlighted","InternalHighlight","_ref2$highlightedTagN","_ref2$nonHighlightedT","_ref2$separator","partIndex","isLastPart","subPart","subPartIndex","Highlight","_ref$classNames","algoliasearch","Search","currSearchQuery","UserHits","OrderHits","pro","completed_orders","user_name","shipping_name","ordered_or_updated_at","_t$classList","_t$classList2","enter","leave","enterTo","leaveTo","enterFrom","leaveFrom","entered","_getComputedStyle","_map","transitionDelay","_a$split$filter$map$s3","Visible","_F","idle","chains","unregister","onStop","_t$appear","appear","_W4","_W6","beforeEnter","beforeLeave","_F3","afterEnter","afterLeave","_Ee","Ee","_W2","be","_F2","Pe","Te","De","$e","Child","Root","Forwards","Backwards","InitialFocus","TabLock","FocusLock","RestoreFocus","All","initialFocus","containers","isConnected","previousActiveElement","_k","_k2","headlessuiFocusGuard","_R2","Add","is","getSnapshot","_unused","_u2","inst","useSyncExternalStore","meta","flatMap","scrollIntoView","block","dispatch","_r$e","PUSH","POP","SCROLL_PREVENT","SCROLL_ALLOW","TEARDOWN","_t","inert","SetTitleId","Me","titleId","Be","Ge","Ve","_t$id","_t$__demoMode","__demoMode","_ye2","_me2","descriptionId","_Re2","portals","_xe","_ref$defaultContainer","defaultContainers","resolveContainers","mainTreeNodeRef","MainTreeNode","composed","HTMLIFrameElement","we","_ve2","ge","dialogState","setTitleId","_B","leaf","qe","_t$id3","_b4","ze","_t$id4","_b6","Qe","_t$id2","_b2$","Ze","_t$id5","_b8$","Backdrop","Overlay","Title","ImageBrowser","artworkModalOpen","onArtworkSelect","DetailModal","image_preview","Manager","sortableInfo","sortByIndex","keysToOmit","move","pre","OLink","setInlineStyles","setTranslate3d","setTransitionDuration","getPixelValue","stringValue","getElementMargin","provideDisplayName","Component$$1","getScrollAdjustedBoundingClientRect","scrollDelta","boundingClientRect","getPosition","isTouchEvent","getEdgeOffset","nodeOffset","getTargetIndex","oldIndex","getLockPixelOffset","lockOffset","getLockPixelOffsets","_offsets","minLockOffset","maxLockOffset","getScrollingParent","overflowRegex","isScrollable","getContainerGridGap","gridColumnGap","gridRowGap","KEYCODE","NodeType","clonedNode","isSortableHandle","sortableHandle","AutoScroller","onScrollCallback","interval","clearInterval","acceleration","_this$container","isLeft","isAutoScrolling","setInterval","oneOf","contentWindow","any","disableAutoscroll","getHelperDimensions","helperClass","helperContainer","instanceOf","hideSortableGhost","keyboardSortingTransitionDuration","lockAxis","arrayOf","lockToContainerEdges","onSortEnd","onSortMove","onSortOver","onSortStart","pressDelay","pressThreshold","keyCodes","lift","drop","up","down","shouldCancelStart","updateBeforeSortStart","useDragHandle","useWindowAsScrollContainer","defaultKeyCodes","contentEditable","omittedProps","validateProps","_finallyRethrows","finalizer","SortableContext","manager","propTypes$1","omittedProps$1","arrayMoveImmutable","toIndex","arrayMoveMutable","MultiPhotoDesigner","image_windows","addingToCart","newPhoto","saveItem","saveImageToDatabase","imageLoading","toggle_viesus_url","image_ids","imageSaveSuccess","newWins","arrayMove","image_window_purchases_attributes","image_window_id","actualImages","the_price","frame_size","groupName","SortableContainer","SortableItem","public_key","minPixelsW","min_pixels_width","minPixelsH","min_pixels_height","DragHandle","withRef","WithSortableHandle","_getPrototypeOf2","wrappedInstance","WithSortableElement","sortableElement","WithSortableContainer","touched","nodeIsChild","sorting","_node$sortableInfo","handlePress","pressTimer","_awaitingUpdateBeforeSortStart","combinedDelta","cancelTimer","getActive","_temp6","_temp7","_node","gridGap","containerBoundingRect","scrollContainer","_getHelperDimensions","_collection","marginOffset","_axis","offsetEdge","initialOffset","_isKeySorting","initialScroll","initialWindowScroll","_hideSortableGhost","sortableGhost","_useWindowAsScrollContainer","containerLeft","containerBottom","containerRight","_helperClass","listenerNode","handleKeyEnd","handleSortMove","handleSortEnd","sortingIndex","_onSortStart","isKeySorting","getOrderedRefs","keyMove","_temp8","_temp9","_wasThrown","_result","updateHelperPosition","animateNodes","autoscroll","_this$manager","_node2","edgeOffset","autoScroller","_this$props5$keyCodes","isValidSortingTarget","keyLift","keyDrop","_node$sortableInfo2","initialFocusedNode","targetIndex","targetNode","containerScrollDelta","targetBoundingClientRect","targetTranslate","shouldAdjustForSize","sizeAdjustment","ignoreTransition","sortableContextValue","handleEnd","handleMove","handleStart","containerNode","onAutoScroll","_this$props6$keyboard","_getLockPixelOffsets","_getLockPixelOffsets2","minOffset","maxOffset","windowScrollDelta","sortingOffset","_node3","mustShiftBackward","mustShiftForward","prevNode","getWrappedInstance","sortableContainer","minImageWidth","minImageHeight","IS_BROWSER","WINDOW","IS_TOUCH_DEVICE","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_EAST","ACTION_WEST","ACTION_SOUTH","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","DRAG_MODE_CROP","DRAG_MODE_MOVE","DRAG_MODE_NONE","EVENT_CROP","EVENT_CROP_END","EVENT_CROP_MOVE","EVENT_CROP_START","EVENT_DBLCLICK","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_READY","EVENT_RESIZE","EVENT_WHEEL","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","DEFAULTS","initialAspectRatio","NaN","preview","checkCrossOrigin","checkOrientation","rotatable","scalable","zoomable","zoomOnTouch","wheelZoomRatio","toggleDragModeOnDblclick","minCanvasWidth","minCanvasHeight","minCropBoxWidth","minCropBoxHeight","minContainerWidth","minContainerHeight","cropstart","cropmove","cropend","isPositiveNumber","_constructor","REGEXP_DECIMALS","normalizeDecimalNumber","REGEXP_SUFFIX","removeClass","toggleClass","REGEXP_CAMEL_CASE","toParamCase","setData","REGEXP_SPACES","onceSupported","supported","_handler","_element$listeners","initCustomEvent","REGEXP_ORIGINS","isCrossOriginURL","addTimestamp","getTransforms","WebkitTransform","endOnly","getAdjustedSizes","isValidWidth","isValidHeight","adjustedWidth","getSourceCanvas","imageAspectRatio","imageNaturalWidth","imageNaturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","_ref8$fillColor","_ref8$imageSmoothingE","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","_ref8$maxHeight","_ref8$minWidth","_ref8$minHeight","maxSizes","minSizes","destMaxSizes","destMinSizes","destWidth","destHeight","REGEXP_DATA_URL_HEAD","resetAndGetOrientation","dataView","app1Start","ifdStart","getUint8","tiffOffset","getStringFromCharCode","endianness","getUint16","firstIFDOffset","getUint32","_length","setUint16","initContainer","initCanvas","initCropBox","cropped","renderCropBox","containerData","rotated","limited","limitCanvas","oldLeft","oldTop","initialCanvasData","sizeLimited","positionLimited","cropBoxData","_getAdjustedSizes","newCanvasLeft","newCanvasTop","minLeft","minTop","maxLeft","maxTop","transformed","_getRotatedSizes","degree","sinArc","cosArc","getRotatedSizes","renderImage","limitCropBox","initialCropBoxData","maxCropBoxWidth","maxCropBoxHeight","face","cropBox","initPreview","crossOriginUrl","viewBoxImage","resetPreview","removeData","cropBoxWidth","cropBoxHeight","onCropStart","cropStart","wheel","onDblclick","dblclick","onCropMove","cropMove","onCropEnd","cropEnd","resize","unbind","getCropBoxData","setCanvasData","setCropBoxData","setDragMode","hasClass","dragBox","wheeling","wheelDelta","buttons","pointers","renderable","pointers2","maxRatio","pointer2","z1","getMaxZoomRatio","initialImageData","hasSameSize","isImg","replaced","uncreate","load","originalUrl","_this$canvasData","_originalEvent","pivot","oldRatio","getPointersCenter","_scaleX","_scaleY","rounded","getContainerData","sized","widthChanged","heightChanged","getCroppedCanvas","HTMLCanvasElement","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","srcX","srcY","croppable","AnotherCropper","Cropper","reloading","sizing","binary","atob","uint8","onprogress","getResponseHeader","arrayBufferToDataURL","_parseOrientation","parseOrientation","isIOSWebKit","sizingImage","getElementsByClassName","unbuild","MapShim","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","localStorage","getItem","miss","setItem","removeItem","caches","serializable","cacheable","Read","Write","Any","lastUpdate","transporterStackTrace","connectTimeout","timeouts","connect","responseTimeout","triesLeft","onSuccess","onRetry","isTimedOut","logger","hostsCache","onFail","requester","getTimeout","statelessHosts","authMode","requestsCache","responsesCache","hosts","mappedRequestOptions","requests","facetQuery","queryLanguages","OPENED","debug","multipleQueries","multipleSearchForFacetValues","customRequest","initIndex","findAnswers","_ref$fill","_ref$width","_ref$height","_ref$style","_QRCode2","_ErrorCorrectLevel2","_QRCodeSvg2","bgColor","fgColor","QRCode","qrcode","addData","cells","bgD","cell","cellIndex","fgD","viewBoxSize","ResizeObservation_1","ResizeObserverEntry_1","resizeObservers","$$observationTargets","$$activeTargets","$$skippedTargets","callbackGuard","$$callback","targetGuard","findTargetIndex","startLoop","deregisterResizeObserver","checkStopLoop","functionName","ELEMENT_NODE","animationFrameCancelToken","gatherActiveObservationsAtDepth","ro","ot","calculateDepthForNode","broadcastActiveObservations","shallowestTargetDepth","obs","$$broadcastWidth","$$broadcastHeight","targetDepth","notificationIteration","errorEvent","ErrorEvent","runLoop","charIsNumber","isNil","escapeRegExp","splitDecimal","numStr","allowNegative","hasNagation","addNegation","beforeDecimal","afterDecimal","limitToScale","fixedDecimalScale","setCaretPosition","caretPos","createTextRange","setSelectionRange","clamp","getCurrentCaretPosition","decimalSeparator","thousandsGroupStyle","allowEmptyFormatting","allowLeadingZeros","isNumericString","onValueChange","isAllowed","NumberFormat","formattedValue","formatValueProp","numAsString","removeFormatting","selectionBeforeInput","updateValueIfRequired","componentWillUnmount","focusTimeout","caretPositionTimeout","focusedElm","lastNumStr","lastValueWithNewFormat","formatNumString","floatValue","lastFloatValue","updateValue","getFloatString","getSeparators","numRegex","getNumberRegex","hasNegation","firstDecimalIndex","ignoreDecimalSeparator","customNumerals","ref$1","thousandSeparator","allowedDecimalSeparators","getMaskAtIndex","getValueObject","setPatchedCaretPosition","correctCaretPosition","firstHashPosition","nextPos","caretLeftBound","caretRightBound","getCaretPosition","inputNumber","formattedNumber","currentInputChar","currentFormatChar","removePrefixAndSuffix","isNegative","suffixLastIndex","removePatternFormatting","formatArray","ln","formatWithPattern","hashCount","formattedNumberAry","formatAsNumber","hasDecimalSeparator","ref$2","thousandsGroupRegex","getThousandsGroupRegex","applyThousandSeparator","customNumeralRegex","digit","isNonNumericFalsy","coefficient","exponent","decimalIndex","coffiecientLn","toNumericString","shoudHaveDecimalSeparator","roundedDecimalParts","roundedStr","roundToPrecision","formatInput","formatNegation","negationRegex","doubleNegationRegex","removeNegation","isCharacterAFormat","correctInputValue","lastValue","this$1","ref$3","prevLength","newLength","findChangedIndex","leftBound","rightBound","deletedValues","deletedVal","deletedValuePortion","recordIndexOfFormatCharacters","resolvedPortion","currentPortion","numericString","ref$4","isBeforeDecimalPoint","currentCaretPosition","isChangeAllowed","fixLeadingZero","expectedCaretPosition","negativeRegex","isPatternFormat","newCaretPosition","isUnitTestRun","caretPosition","persist","customInput","renderText","otherProps","objectWithoutProperties","addInputMode","CustomInput","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","targetArray","sourceArray","appendBinary","contents","_buff","_hash","_finish","getState","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","content_type","byte_size","csrfToken","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","delegate","notify","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","uploadRequestDidProgress","DirectUploadsController","inputs","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","ActiveStorage","componentRequireContext","webpackContext","req","webpackContextResolve","StrictMode","Profiler","Suspense","for","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","isReactComponent","isPureReactComponent","__self","__source","$$typeof","_owner","_status","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","createFactory","createRef","_payload","_init","useDebugValue","useLayoutEffect","useMemo","useReducer","aa","ba","ca","ea","fa","ha","ia","ja","ka","na","acceptsBooleans","ma","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","la","xlinkHref","ra","sa","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","Ra","Sa","Ta","Va","_valueTracker","stopTracking","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","nb","ob","namespaceURI","MSApp","execUnsafeLocalFunction","pb","lastChild","qb","lineClamp","rb","sb","menuitem","embed","hr","keygen","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","$b","memoizedState","dehydrated","ac","cc","sibling","bc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","tc","vc","wc","lanePriority","unstable_runWithPriority","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationiteration","animationstart","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","isTrusted","td","ud","vd","Ad","screenX","screenY","getModifierState","zd","toElement","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","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","Od","Alt","Meta","Shift","Pd","Rd","locale","Td","pressure","tangentialPressure","tiltX","tiltY","twist","Vd","Xd","Zd","wheelDeltaX","wheelDeltaY","deltaZ","deltaMode","$d","de","he","datetime","month","tel","week","me","ye","oninput","Ae","detachEvent","Fe","He","Je","Ke","Ne","Oe","Re","Ue","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","We","Xe","Ye","Yb","af","bf","df","Nb","ef","ff","gf","hf","je","jf","kf","lf","mf","nf","__html","of","pf","qf","rf","sf","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","mh","oh","pendingProps","ph","qh","rh","uh","_workInProgressVersionPrimary","vh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","mutableReadLanes","Nh","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","yi","zi","isBackwards","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","onclick","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","removeAllRanges","addRange","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","flushSync","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","exception","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","extraBytes","maxChunkLength","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","DerivedHelper","requestBuilder","_queryId","_lastQueryIdReceived","derivedHelpers","_currentNbQueries","setCurrentPage","_change","getCurrentPage","onlyWithDerivedHelpers","getQuery","_getHitsSearchParams","searchOnce","tempState","queries","_getQueries","_originalResponse","derivedState","getModifiedState","attributesForPrediction","clientHasSFFV","clientHasInitIndex","isDisjunctive","algoliaQuery","getSearchForFacetQuery","searchForFacetValuesPromise","facetHits","addDisjunctiveRefine","addRefine","addFacetExclusion","addExclude","addTag","removeDisjunctiveRefine","removeRefine","removeFacetExclusion","removeExclude","removeTag","toggleFacetExclusion","toggleExclude","toggleRefine","toggleTag","nextPage","previousPage","hasRefinements","isDisjunctiveRefined","hasTag","hasTagRefinements","getPage","getTags","mainQueries","queriesCount","derivedQueries","derivedStateQueries","queryId","_dispatchAlgoliaResponse","_dispatchAlgoliaError","specificResults","formattedResponse","containsRefinement","facetFilters","_hasDisjunctiveRefinements","disjunctiveRefinements","newClient","getClient","detachDerivedHelper","arr1","lib","refinementList","valueAsString","facetRefinement","refinementType","newRefinementList","containsRefinements","refinementValueAsString","hierarchicalFacetResult","hierarchicalFacetIndex","hierarchicalFacetRefinement","hierarchicalSeparator","hierarchicalRootPath","hierarchicalShowParentLevel","prepareHierarchicalFacetSortBy","rootExhaustive","facetResult","generateTreeFn","hierarchicalTree","currentHierarchicalLevel","picked","tuple","parentPath","onlyMatchingTree","facetCount","sortObject","localeCompare","curr","_getDisjunctiveFacetSearchParams","filtersMap","hasHierarchicalFacetFilter","filteredFacetFilters","facetFilter","filterValue","_getHitsHierarchicalFacetsAttributes","_getFacetFilters","_getNumericFilters","_getTagFilters","additionalParams","hierarchicalRootLevel","analytics","_getDisjunctiveHierarchicalFacetAttribute","vs","orFilters","attributeToRefine","attributesIndex","allAttributes","hierarchicalRefinement","newAttributes","rootLevel","parentLevel","stateForSearchForFacetValues","searchForFacetSearchParameters","arrayPrefixGenerators","brackets","comma","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","allowDots","charsetSentinel","encodeValuesOnly","formatter","serializeDate","skipNulls","strictNullHandling","generateArrayPrefix","keyValue","valuesArray","valuesJoined","objKeys","keyPrefix","normalizeStringifyOptions","arrayFormat","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseArrayValue","givenKey","valuesParsed","cleanRoot","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","encodedVal","parseValues","newObj","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MODEL","NAME","TYPE","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","regexes","extensions","mergedRegexes","str1","str2","lowerize","mapper","rgx","arrays","_str","maps","oldSafari","1.2","1.3","oldEdge","21","31","41","42","44","ME","XP","Vista","7","8.1","10","RT","cpu","UAParser","getResult","_rgxmap","_browser","_cpu","architecture","_device","_engine","_os","setUA","BROWSER","MAJOR","CPU","DEVICE","ENGINE","OS","Zepto","uastring","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","ReactPropTypes","objectOf","checkPropTypes","PropTypes","isMasked","coreJsData","baseSetToString","shortOut","constant","nativeKeys","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","keysIn","argsTag","objectTag","cloneableTags","isFlat","isFull","isFunc","subValue","assocIndexOf","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","nativeKeysIn","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","reFlags","regexp","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","arrayIncludes","arrayIncludesWith","valuesLength","outer","valuesIndex","isFlattenable","isStrict","spreadableSymbol","isConcatSpreadable","toFinite","remainder","toNumber","INFINITY","baseValues","assignMergeValue","baseMergeDeep","safeGet","baseSlice","asciiToArray","hasUnicode","unicodeToArray","reHasUnicode","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","flattenNames","_isString3","_forOwn3","_isPlainObject3","_map3","things","baseIteratee","baseMap","baseMatches","baseMatchesProperty","baseIsMatch","getMatchData","matchesStrictComparable","COMPARE_PARTIAL_FLAG","equalArrays","equalByTag","equalObjects","arrayTag","mapToArray","setToArray","isStrictComparable","hasIn","baseGet","memoizeCapped","baseHasIn","hasPath","baseProperty","basePropertyDeep","baseEach","createBaseEach","mergeClasses","_cloneDeep3","toMerge","autoprefix","_forOwn2","transforms","msBorderRadius","MozBorderRadius","OBorderRadius","WebkitBorderRadius","msBoxShadow","MozBoxShadow","OBoxShadow","WebkitBoxShadow","WebkitTouchCallout","WebkitBoxFlex","MozBoxFlex","WebkitFlex","msFlex","flexBasis","WebkitFlexBasis","WebkitJustifyContent","msTransition","MozTransition","OTransition","WebkitTransition","otherElementStyles","otherStyle","prefixed","Hover","handleMouseOver","handleMouseOut","setProp","BitByte","RSBlock","BitBuffer","Polynomial","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","getModuleCount","rsBlocks","getRSBlocks","totalDataCount","dataCount","put","getLengthInBits","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","minLostPoint","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","qr_mc","createEmptyMovieClip","beginFill","endFill","getPatternPosition","bits","getBCHTypeNumber","getBCHTypeInfo","inc","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","rsPoly","getErrorCorrectPolynomial","modPoly","modIndex","totalCodeCount","QR8bitByte","ECL","QRRSBlock","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","QRBitBuffer","bufIndex","bit","Mode","QRMaskPattern","QRUtil","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","errorCorrectLength","qrCode","sameCount","darkCount","bigint","QRCodeSvg","ContentRect_1","cr","arrayWithHoles","iterableToArrayLimit","nonIterableRest","objectWithoutPropertiesLoose","arrayWithoutHoles","iterableToArray","nonIterableSpread","ReactDOM","ReactDOMServer","_detectEvents","constructorFromGlobal","constructorFromRequireContextWithGlobalFallback","_require","supportsHydration","reactHydrate","createReactRootLike","ReactRailsUJS","CLASS_NAME_ATTR","PROPS_ATTR","RENDER_ATTR","CACHE_ID_ATTR","TURBOLINKS_PERMANENT_ATTR","findDOMNodes","searchSelector","classNameAttr","getConstructor","requireContext","serverRender","renderFunction","componentClass","mountComponents","ujs","propsJson","cacheId","turbolinksPermanent","unmountComponents","detectEvents","Uint16Array","threadID","identifierPrefix","uniqueID","listing","textarea","suppressContentEditableWarning","suppressHydrationWarning","domNamespace","childIndex","footer","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","renderDOM","renderToNodeStream","renderToStaticMarkup","renderToStaticNodeStream","renderToString","nativeEvents","pjaxEvents","turbolinksEvents","turbolinksClassicDeprecatedEvents","turbolinksClassicEvents","handleEvent","Turbolinks","EVENTS","teardown","removeEvent","setup","pjax","handleMount","handleUnmount","pagesCached","CHANGE","BEFORE_UNLOAD","fromGlobal","fromRequireContext","reqctx","fromCtx","firstErr","secondErr","hydrateRoot","createRoot","legacyReactRootLike","AttachmentUpload","attachment","directUploadUrl","directUploadDidComplete","setUploadProgress","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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LACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,oBACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,gBACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,qDACR,CACDp+F,KAAM,IACNo+F,QAAS,qEACR,CACDp+F,KAAM,IACNo+F,QAAS,mFACR,CACDp+F,KAAM,KACNo+F,QAAS,gBACR,CACDp+F,KAAM,KACNo+F,QAAS,gBACR,CACDp+F,KAAM,IACNo+F,QAAS,2KACR,CACDp+F,KAAM,IACNo+F,QAAS,mCACR,CACDp+F,KAAM,IACNo+F,QAAS,yFACR,CACDp+F,KAAM,IACNo+F,QAAS,mFACR,CACDp+F,KAAM,IACNo+F,QAAS,+GACR,CACDp+F,KAAM,IACNo+F,QAAS,6BACR,CACDp+F,KAAM,IACNo+F,QAAS,mFACR,CACDp+F,KAAM,IACNo+F,QAAS,2GACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,+CACR,CACDp+F,KAAM,IACNo+F,QAAS,6FACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,qPACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,2DACR,CACDp+F,KAAM,IACNo+F,QAAS,mCACR,CACDp+F,KAAM,IACNo+F,QAAS,qGACR,CACDp+F,KAAM,IACNo+F,QAAS,qGACR,CACDp+F,KAAM,IACNo+F,QAAS,yFACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,mMACR,CACDp+F,KAAM,IACNo+F,QAAS,+CACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,2DACR,CACDp+F,KAAM,IACNo+F,QAAS,6BACR,CACDp+F,KAAM,IACNo+F,QAAS,uFACR,CACDp+F,KAAM,IACNo+F,QAAS,mFACR,CACDp+F,KAAM,IACNo+F,QAAS,qMACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,oBACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,gBACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,qDACR,CACDp+F,KAAM,IACNo+F,QAAS,2EACR,CACDp+F,KAAM,IACNo+F,QAAS,mFACR,CACDp+F,KAAM,KACNo+F,QAAS,gBACR,CACDp+F,KAAM,IACNo+F,QAAS,iLACR,CACDp+F,KAAM,IACNo+F,QAAS,mCACR,CACDp+F,KAAM,IACNo+F,QAAS,yFACR,CACDp+F,KAAM,IACNo+F,QAAS,yFACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,+GACR,CACDp+F,KAAM,IACNo+F,QAAS,mCACR,CACDp+F,KAAM,IACNo+F,QAAS,mFACR,CACDp+F,KAAM,IACNo+F,QAAS,iHACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,+CACR,CACDp+F,KAAM,IACNo+F,QAAS,mGACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,qPACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,KACNo+F,QAAS,UACR,CACDp+F,KAAM,IACNo+F,QAAS,2DACR,CACDp+F,KAAM,IACNo+F,QAAS,mCACR,CACDp+F,KAAM,IACNo+F,QAAS,qGACR,CACDp+F,KAAM,IACNo+F,QAAS,yGACR,CACDp+F,KAAM,IACNo+F,QAAS,+FACR,CACDp+F,KAAM,KACNo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AAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACpG,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACnG,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACtG,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACpG,CAAC,GAAI,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACzF,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,CAA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","file":"js/application-9eb23760ebbb734911d1.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://shop.framefox.co.nz/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 265);\n","'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}","'use strict';\n\nfunction _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 bind from './helpers/bind.js'; // utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\nvar getPrototypeOf = Object.getPrototypeOf;\n\nvar kindOf = function (cache) {\n return function (thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n}(Object.create(null));\n\nvar kindOfTest = function kindOfTest(type) {\n type = type.toLowerCase();\n return function (thing) {\n return kindOf(thing) === type;\n };\n};\n\nvar typeOfTest = function typeOfTest(type) {\n return function (thing) {\n return _typeof(thing) === type;\n };\n};\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\n\nvar isArray = Array.isArray;\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\nvar isUndefined = typeOfTest('undefined');\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nvar isString = typeOfTest('string');\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\nvar isFunction = typeOfTest('function');\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\nvar isNumber = typeOfTest('number');\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\nvar isObject = function isObject(thing) {\n return thing !== null && _typeof(thing) === 'object';\n};\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\n\n\nvar isBoolean = function isBoolean(thing) {\n return thing === true || thing === false;\n};\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\n\n\nvar isPlainObject = function isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nvar isDate = kindOfTest('Date');\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFile = kindOfTest('File');\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\nvar isBlob = kindOfTest('Blob');\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFileList = kindOfTest('FileList');\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\nvar isStream = function isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n};\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nvar isFormData = function isFormData(thing) {\n var kind;\n return thing && (typeof FormData === 'function' && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === 'formdata' || // detect form-data instance\n kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]'));\n};\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\n\nvar trim = function trim(str) {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\n\n\nfunction forEach(obj, fn) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$allOwnKeys = _ref.allOwnKeys,\n allOwnKeys = _ref$allOwnKeys === void 0 ? false : _ref$allOwnKeys;\n\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n var i;\n var l; // Force an array if not already something iterable\n\n if (_typeof(obj) !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n var keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n var len = keys.length;\n var key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n var keys = Object.keys(obj);\n var i = keys.length;\n\n var _key;\n\n while (i-- > 0) {\n _key = keys[i];\n\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n\n return null;\n}\n\nvar _global = function () {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : typeof window !== 'undefined' ? window : global;\n}();\n\nvar isContextDefined = function isContextDefined(context) {\n return !isUndefined(context) && context !== _global;\n};\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var _ref2 = isContextDefined(this) && this || {},\n caseless = _ref2.caseless;\n\n var result = {};\n\n var assignValue = function assignValue(val, key) {\n var targetKey = caseless && findKey(result, key) || key;\n\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\n\n\nvar extend = function extend(a, b, thisArg) {\n var _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n allOwnKeys = _ref3.allOwnKeys;\n\n forEach(b, function (val, key) {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {\n allOwnKeys: allOwnKeys\n });\n return a;\n};\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\n\n\nvar stripBOM = function stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n};\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\n\n\nvar inherits = function inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\n\n\nvar toFlatObject = function toFlatObject(sourceObj, destObj, filter, propFilter) {\n var props;\n var i;\n var prop;\n var merged = {};\n destObj = destObj || {}; // eslint-disable-next-line no-eq-null,eqeqeq\n\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n\n while (i-- > 0) {\n prop = props[i];\n\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\n\n\nvar endsWith = function endsWith(str, searchString, position) {\n str = String(str);\n\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\n\n\nvar toArray = function toArray(thing) {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n var i = thing.length;\n if (!isNumber(i)) return null;\n var arr = new Array(i);\n\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n\n return arr;\n};\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\n\n\nvar isTypedArray = function (TypedArray) {\n // eslint-disable-next-line func-names\n return function (thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n}(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\n\n\nvar forEachEntry = function forEachEntry(obj, fn) {\n var generator = obj && obj[Symbol.iterator];\n var iterator = generator.call(obj);\n var result;\n\n while ((result = iterator.next()) && !result.done) {\n var pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\n\n\nvar matchAll = function matchAll(regExp, str) {\n var matches;\n var arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\n\n\nvar isHTMLForm = kindOfTest('HTMLFormElement');\n\nvar toCamelCase = function toCamelCase(str) {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n/* Creating a function that will check if an object has a property. */\n\n\nvar hasOwnProperty = function (_ref4) {\n var hasOwnProperty = _ref4.hasOwnProperty;\n return function (obj, prop) {\n return hasOwnProperty.call(obj, prop);\n };\n}(Object.prototype);\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\n\n\nvar isRegExp = kindOfTest('RegExp');\n\nvar reduceDescriptors = function reduceDescriptors(obj, reducer) {\n var descriptors = Object.getOwnPropertyDescriptors(obj);\n var reducedDescriptors = {};\n forEach(descriptors, function (descriptor, name) {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n Object.defineProperties(obj, reducedDescriptors);\n};\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\n\nvar freezeMethods = function freezeMethods(obj) {\n reduceDescriptors(obj, function (descriptor, name) {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n var value = obj[name];\n if (!isFunction(value)) return;\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = function () {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nvar toObjectSet = function toObjectSet(arrayOrString, delimiter) {\n var obj = {};\n\n var define = function define(arr) {\n arr.forEach(function (value) {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n return obj;\n};\n\nvar noop = function noop() {};\n\nvar toFiniteNumber = function toFiniteNumber(value, defaultValue) {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n};\n\nvar ALPHA = 'abcdefghijklmnopqrstuvwxyz';\nvar DIGIT = '0123456789';\nvar ALPHABET = {\n DIGIT: DIGIT,\n ALPHA: ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nvar generateString = function generateString() {\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;\n var alphabet = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ALPHABET.ALPHA_DIGIT;\n var str = '';\n var length = alphabet.length;\n\n while (size--) {\n str += alphabet[Math.random() * length | 0];\n }\n\n return str;\n};\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\n\n\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nvar toJSONObject = function toJSONObject(obj) {\n var stack = new Array(10);\n\n var visit = function visit(source, i) {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n var target = isArray(source) ? [] : {};\n forEach(source, function (value, key) {\n var reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n stack[i] = undefined;\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nvar isAsyncFn = kindOfTest('AsyncFunction');\n\nvar isThenable = function isThenable(thing) {\n return thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n};\n\nexport default {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isBoolean: isBoolean,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isRegExp: isRegExp,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isTypedArray: isTypedArray,\n isFileList: isFileList,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n forEachEntry: forEachEntry,\n matchAll: matchAll,\n isHTMLForm: isHTMLForm,\n hasOwnProperty: hasOwnProperty,\n hasOwnProp: hasOwnProperty,\n // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors: reduceDescriptors,\n freezeMethods: freezeMethods,\n toObjectSet: toObjectSet,\n toCamelCase: toCamelCase,\n noop: noop,\n toFiniteNumber: toFiniteNumber,\n findKey: findKey,\n global: _global,\n isContextDefined: isContextDefined,\n ALPHABET: ALPHABET,\n generateString: generateString,\n isSpecCompliantForm: isSpecCompliantForm,\n toJSONObject: toJSONObject,\n isAsyncFn: isAsyncFn,\n isThenable: isThenable\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}","'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) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\n\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;","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\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n var nativeCodeString = '[native code]';\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = _typeof(arg);\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n classes.push(arg.toString());\n continue;\n }\n\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","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}","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _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) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nfunction 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\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Fragment as T, cloneElement as x, createElement as E, forwardRef as b, isValidElement as h } from \"react\";\nimport { classNames as F } from './class-names.js';\nimport { match as P } from './match.js';\n\nvar S = function (a) {\n return a[a.None = 0] = \"None\", a[a.RenderStrategy = 1] = \"RenderStrategy\", a[a.Static = 2] = \"Static\", a;\n}(S || {}),\n j = function (e) {\n return e[e.Unmount = 0] = \"Unmount\", e[e.Hidden = 1] = \"Hidden\", e;\n}(j || {});\n\nfunction X(_ref) {\n var r = _ref.ourProps,\n t = _ref.theirProps,\n e = _ref.slot,\n a = _ref.defaultTag,\n s = _ref.features,\n _ref$visible = _ref.visible,\n n = _ref$visible === void 0 ? !0 : _ref$visible,\n f = _ref.name;\n var o = N(t, r);\n if (n) return c(o, e, a, f);\n var u = s != null ? s : 0;\n\n if (u & 2) {\n var _o$static = o.static,\n l = _o$static === void 0 ? !1 : _o$static,\n p = _objectWithoutProperties(o, [\"static\"]);\n\n if (l) return c(p, e, a, f);\n }\n\n if (u & 1) {\n var _P;\n\n var _o$unmount = o.unmount,\n _l = _o$unmount === void 0 ? !0 : _o$unmount,\n _p = _objectWithoutProperties(o, [\"unmount\"]);\n\n return P(_l ? 0 : 1, (_P = {}, _defineProperty(_P, 0, function _() {\n return null;\n }), _defineProperty(_P, 1, function _() {\n return c(_objectSpread(_objectSpread({}, _p), {}, {\n hidden: !0,\n style: {\n display: \"none\"\n }\n }), e, a, f);\n }), _P));\n }\n\n return c(o, e, a, f);\n}\n\nfunction c(r) {\n var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var e = arguments.length > 2 ? arguments[2] : undefined;\n var a = arguments.length > 3 ? arguments[3] : undefined;\n\n var _g = g(r, [\"unmount\", \"static\"]),\n _g$as = _g.as,\n s = _g$as === void 0 ? e : _g$as,\n n = _g.children,\n _g$refName = _g.refName,\n f = _g$refName === void 0 ? \"ref\" : _g$refName,\n o = _objectWithoutProperties(_g, [\"as\", \"children\", \"refName\"]),\n u = r.ref !== void 0 ? _defineProperty({}, f, r.ref) : {},\n l = typeof n == \"function\" ? n(t) : n;\n\n \"className\" in o && o.className && typeof o.className == \"function\" && (o.className = o.className(t));\n var p = {};\n\n if (t) {\n var i = !1,\n m = [];\n\n for (var _i2 = 0, _Object$entries = Object.entries(t); _i2 < _Object$entries.length; _i2++) {\n var _ref5 = _Object$entries[_i2];\n\n var _ref4 = _slicedToArray(_ref5, 2);\n\n var y = _ref4[0];\n var d = _ref4[1];\n typeof d == \"boolean\" && (i = !0), d === !0 && m.push(y);\n }\n\n i && (p[\"data-headlessui-state\"] = m.join(\" \"));\n }\n\n if (s === T && Object.keys(R(o)).length > 0) {\n if (! /*#__PURE__*/h(l) || Array.isArray(l) && l.length > 1) throw new Error(['Passing props on \"Fragment\"!', \"\", \"The current component <\".concat(a, \" /> is rendering a \\\"Fragment\\\".\"), \"However we need to passthrough the following props:\", Object.keys(o).map(function (d) {\n return \" - \".concat(d);\n }).join(\"\\n\"), \"\", \"You can apply a few solutions:\", ['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".', \"Render a single element as the child so that we can forward the props onto that element.\"].map(function (d) {\n return \" - \".concat(d);\n }).join(\"\\n\")].join(\"\\n\"));\n\n var _i3 = l.props,\n _m = typeof (_i3 == null ? void 0 : _i3.className) == \"function\" ? function () {\n return F(_i3 == null ? void 0 : _i3.className.apply(_i3, arguments), o.className);\n } : F(_i3 == null ? void 0 : _i3.className, o.className),\n _y = _m ? {\n className: _m\n } : {};\n\n return /*#__PURE__*/x(l, Object.assign({}, N(l.props, R(g(o, [\"ref\"]))), p, u, w(l.ref, u.ref), _y));\n }\n\n return /*#__PURE__*/E(s, Object.assign({}, g(o, [\"ref\"]), s !== T && u, s !== T && p), l);\n}\n\nfunction w() {\n for (var _len = arguments.length, r = new Array(_len), _key = 0; _key < _len; _key++) {\n r[_key] = arguments[_key];\n }\n\n return {\n ref: r.every(function (t) {\n return t == null;\n }) ? void 0 : function (t) {\n var _iterator = _createForOfIteratorHelper(r),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var e = _step.value;\n e != null && (typeof e == \"function\" ? e(t) : e.current = t);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n };\n}\n\nfunction N() {\n var a;\n\n for (var _len2 = arguments.length, r = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n r[_key2] = arguments[_key2];\n }\n\n if (r.length === 0) return {};\n if (r.length === 1) return r[0];\n var t = {},\n e = {};\n\n for (var _i4 = 0, _r = r; _i4 < _r.length; _i4++) {\n var s = _r[_i4];\n\n for (var n in s) {\n n.startsWith(\"on\") && typeof s[n] == \"function\" ? ((a = e[n]) != null || (e[n] = []), e[n].push(s[n])) : t[n] = s[n];\n }\n }\n\n if (t.disabled || t[\"aria-disabled\"]) return Object.assign(t, Object.fromEntries(Object.keys(e).map(function (s) {\n return [s, void 0];\n })));\n\n var _loop = function _loop(_s2) {\n Object.assign(t, _defineProperty({}, _s2, function (n) {\n var o = e[_s2];\n\n for (var _len3 = arguments.length, f = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n f[_key3 - 1] = arguments[_key3];\n }\n\n var _iterator2 = _createForOfIteratorHelper(o),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var u = _step2.value;\n if ((n instanceof Event || (n == null ? void 0 : n.nativeEvent) instanceof Event) && n.defaultPrevented) return;\n u.apply(void 0, [n].concat(f));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }));\n };\n\n for (var _s2 in e) {\n _loop(_s2);\n }\n\n return t;\n}\n\nfunction D(r) {\n var t;\n return Object.assign( /*#__PURE__*/b(r), {\n displayName: (t = r.displayName) != null ? t : r.name\n });\n}\n\nfunction R(r) {\n var t = Object.assign({}, r);\n\n for (var e in t) {\n t[e] === void 0 && delete t[e];\n }\n\n return t;\n}\n\nfunction g(r) {\n var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var e = Object.assign({}, r);\n\n var _iterator3 = _createForOfIteratorHelper(t),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var a = _step3.value;\n a in e && delete e[a];\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return e;\n}\n\nexport { S as Features, j as RenderStrategy, R as compact, D as forwardRefWithAs, X as render };","import a from \"react\";\nimport { useLatestValue as n } from './use-latest-value.js';\n\nvar o = function o(t) {\n var e = n(t);\n return a.useCallback(function () {\n return e.current.apply(e, arguments);\n }, [e]);\n};\n\nexport { o as useEvent };","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\n/* build: `node build.js modules=ALL exclude=gestures,accessors requirejs minifier=uglifyjs` */\n\n/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */\nvar fabric = fabric || {\n version: '3.6.6'\n};\n\nif (typeof exports !== 'undefined') {\n exports.fabric = fabric;\n}\n/* _AMD_START_ */\nelse if (typeof define === 'function' && define.amd) {\n define([], function () {\n return fabric;\n });\n }\n/* _AMD_END_ */\n\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (document instanceof (typeof HTMLDocument !== 'undefined' ? HTMLDocument : Document)) {\n fabric.document = document;\n } else {\n fabric.document = document.implementation.createHTMLDocument('');\n }\n\n fabric.window = window;\n} else {\n // assume we're running under node.js when document/window are not present\n var jsdom = require('jsdom');\n\n var virtualWindow = new jsdom.JSDOM(decodeURIComponent('%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E'), {\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 * True when in environment that supports touch events\n * @type boolean\n */\n\n\nfabric.isTouchSupported = 'ontouchstart' in fabric.window || 'ontouchstart' in fabric.document || fabric.window && fabric.window.navigator && fabric.window.navigator.maxTouchPoints > 0;\n/**\n * True when in environment that's probably Node.js\n * @type boolean\n */\n\nfabric.isLikelyNode = typeof Buffer !== 'undefined' && typeof window === 'undefined';\n/* _FROM_SVG_START_ */\n\n/**\n * Attributes parsed from all SVG elements\n * @type array\n */\n\nfabric.SHARED_ATTRIBUTES = ['display', 'transform', 'fill', 'fill-opacity', 'fill-rule', 'opacity', 'stroke', 'stroke-dasharray', 'stroke-linecap', 'stroke-dashoffset', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'id', 'paint-order', 'vector-effect', 'instantiated_by_use', 'clip-path'];\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 */\n\nfabric.DPI = 96;\nfabric.reNum = '(?:[-+]?(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[eE][-+]?\\\\d+)?)';\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 * Pixel limit for cache canvases. 1Mpx , 4Mpx should be fine.\n * @since 1.7.14\n * @type Number\n * @default\n */\n\nfabric.perfLimitSizeTotal = 2097152;\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 */\n\nfabric.maxCacheSideLimit = 4096;\n/**\n * Lowest pixel limit for cache canvases, set at 256PX\n * @since 1.7.14\n * @type Number\n * @default\n */\n\nfabric.minCacheSideLimit = 256;\n/**\n * Cache Object for widths of chars in text rendering.\n */\n\nfabric.charWidthsCache = {};\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 */\n\nfabric.textureSize = 2048;\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 */\n\nfabric.disableStyleCopyPaste = false;\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 */\n\nfabric.enableGLFiltering = true;\n/**\n * Device Pixel Ratio\n * @see https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/SettingUptheCanvas/SettingUptheCanvas.html\n */\n\nfabric.devicePixelRatio = fabric.window.devicePixelRatio || fabric.window.webkitDevicePixelRatio || fabric.window.mozDevicePixelRatio || 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 */\n\nfabric.browserShadowBlurConstant = 1;\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 */\n\nfabric.arcToSegmentsCache = {};\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 */\n\nfabric.boundsOfCurveCache = {};\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 */\n\nfabric.cachesBoundsOfCurve = true;\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 */\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({\n tileSize: fabric.textureSize\n });\n } else if (fabric.Canvas2dFilterBackend) {\n return new fabric.Canvas2dFilterBackend();\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(function () {\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\n var eventListener = this.__eventListeners[eventName];\n\n if (handler) {\n eventListener[eventListener.indexOf(handler)] = false;\n } else {\n fabric.util.array.fill(eventListener, false);\n }\n }\n /**\n * Observes specified event\n * @deprecated `observe` deprecated since 0.8.34 (use `on` instead)\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\n\n function observe(eventName, handler) {\n if (!this.__eventListeners) {\n this.__eventListeners = {};\n } // one object with key/value pairs was passed\n\n\n if (arguments.length === 1) {\n for (var prop in eventName) {\n this.on(prop, eventName[prop]);\n }\n } else {\n if (!this.__eventListeners[eventName]) {\n this.__eventListeners[eventName] = [];\n }\n\n this.__eventListeners[eventName].push(handler);\n }\n\n return this;\n }\n /**\n * Stops event observing for a particular event handler. Calling this method\n * without arguments removes all handlers for all events\n * @deprecated `stopObserving` deprecated since 0.8.34 (use `off` instead)\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\n\n function stopObserving(eventName, handler) {\n if (!this.__eventListeners) {\n return this;\n } // remove all key/value pairs (event name -> event handler)\n\n\n if (arguments.length === 0) {\n for (eventName in this.__eventListeners) {\n _removeEventListener.call(this, eventName);\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 } else {\n _removeEventListener.call(this, eventName, handler);\n }\n\n return this;\n }\n /**\n * Fires event with an optional options object\n * @deprecated `fire` deprecated since 1.0.7 (use `trigger` instead)\n * @memberOf fabric.Observable\n * @alias trigger\n * @param {String} eventName Event name to fire\n * @param {Object} [options] Options object\n * @return {Self} thisArg\n * @chainable\n */\n\n\n function fire(eventName, options) {\n if (!this.__eventListeners) {\n return this;\n }\n\n var listenersForEvent = this.__eventListeners[eventName];\n\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\n this.__eventListeners[eventName] = listenersForEvent.filter(function (value) {\n return value !== false;\n });\n return this;\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\n\n fabric.Observable = {\n observe: observe,\n stopObserving: stopObserving,\n fire: fire,\n on: observe,\n off: stopObserving,\n trigger: fire\n };\n})();\n/**\n * @namespace fabric.Collection\n */\n\n\nfabric.Collection = {\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 add() {\n this._objects.push.apply(this._objects, arguments);\n\n if (this._onObjectAdded) {\n for (var i = 0, length = arguments.length; i < length; i++) {\n this._onObjectAdded(arguments[i]);\n }\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 insertAt(object, index, nonSplicing) {\n var objects = this._objects;\n\n if (nonSplicing) {\n objects[index] = object;\n } else {\n objects.splice(index, 0, object);\n }\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 remove() {\n var objects = this._objects,\n index,\n somethingRemoved = false;\n\n for (var i = 0, length = arguments.length; i < length; i++) {\n index = objects.indexOf(arguments[i]); // only call onObjectRemoved if an object was actually removed\n\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 forEachObject(callback, context) {\n var objects = this.getObjects();\n\n for (var i = 0, len = objects.length; i < len; i++) {\n callback.call(context, objects[i], i, objects);\n }\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 getObjects(type) {\n if (typeof type === 'undefined') {\n return this._objects.concat();\n }\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 item(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 isEmpty() {\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 size() {\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 contains(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 complexity() {\n return this._objects.reduce(function (memo, current) {\n memo += current.complexity ? current.complexity() : 0;\n return memo;\n }, 0);\n }\n};\n/**\n * @namespace fabric.CommonMethods\n */\n\nfabric.CommonMethods = {\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n _setOptions: function _setOptions(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 _initGradient(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 _initPattern(filler, property, callback) {\n if (filler && filler.source && !(filler instanceof fabric.Pattern)) {\n this.set(property, new fabric.Pattern(filler, callback));\n } else {\n callback && callback();\n }\n },\n\n /**\n * @private\n * @param {Object} [options] Options object\n */\n _initClipping: function _initClipping(options) {\n if (!options.clipTo || typeof options.clipTo !== 'string') {\n return;\n }\n\n var functionBody = fabric.util.getFunctionBody(options.clipTo);\n\n if (typeof functionBody !== 'undefined') {\n this.clipTo = new Function('ctx', functionBody);\n }\n },\n\n /**\n * @private\n */\n _setObject: function _setObject(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 set(key, value) {\n if (_typeof(key) === 'object') {\n this._setObject(key);\n } else {\n if (typeof value === 'function' && key !== 'clipTo') {\n this._set(key, value(this.get(key)));\n } else {\n this._set(key, value);\n }\n }\n\n return this;\n },\n _set: function _set(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 toggle(property) {\n var value = this.get(property);\n\n if (typeof value === 'boolean') {\n this.set(property, !value);\n }\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 get(property) {\n return this[property];\n }\n};\n\n(function (global) {\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 * @namespace fabric.util\n */\n\n fabric.util = {\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 cos(angle) {\n if (angle === 0) {\n return 1;\n }\n\n if (angle < 0) {\n // cos(a) = cos(-a)\n angle = -angle;\n }\n\n var angleSlice = angle / PiBy2;\n\n switch (angleSlice) {\n case 1:\n case 3:\n return 0;\n\n case 2:\n return -1;\n }\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 sin(angle) {\n if (angle === 0) {\n return 0;\n }\n\n var angleSlice = angle / PiBy2,\n sign = 1;\n\n if (angle < 0) {\n // sin(-a) = -sin(a)\n sign = -1;\n }\n\n switch (angleSlice) {\n case 1:\n return sign;\n\n case 2:\n return 0;\n\n case 3:\n return -sign;\n }\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 removeFromArray(array, value) {\n var idx = array.indexOf(value);\n\n if (idx !== -1) {\n array.splice(idx, 1);\n }\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 getRandomInt(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 degreesToRadians(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 radiansToDegrees(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 rotatePoint(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 rotateVector(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 transformPoint(p, t, ignoreOffset) {\n if (ignoreOffset) {\n return new fabric.Point(t[0] * p.x + t[2] * p.y, t[1] * p.x + t[3] * p.y);\n }\n\n return new fabric.Point(t[0] * p.x + t[2] * p.y + t[4], t[1] * p.x + t[3] * p.y + t[5]);\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 makeBoundingBoxFromPoints(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\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 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 invertTransform(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({\n x: t[4],\n y: t[5]\n }, 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 toFixed(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 parseUnit(value, fontSize) {\n var unit = /\\D{0,2}$/.exec(value),\n number = parseFloat(value);\n\n if (!fontSize) {\n fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\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;\n // or * 4 / 3\n\n case 'pc':\n return number * fabric.DPI / 72 * 12;\n // 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 falseFunction() {\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 getKlass(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 getSvgAttributes(type) {\n var attributes = ['instantiated_by_use', 'style', 'id', 'class'];\n\n switch (type) {\n case 'linearGradient':\n attributes = attributes.concat(['x1', 'y1', 'x2', 'y2', 'gradientUnits', 'gradientTransform']);\n break;\n\n case 'radialGradient':\n attributes = attributes.concat(['gradientUnits', 'gradientTransform', 'cx', 'cy', 'r', 'fx', 'fy', 'fr']);\n break;\n\n case 'stop':\n attributes = attributes.concat(['offset', 'stop-color', 'stop-opacity']);\n break;\n }\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 resolveNamespace(namespace) {\n if (!namespace) {\n return fabric;\n }\n\n var parts = namespace.split('.'),\n len = parts.length,\n 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 loadImage(url, callback, context, crossOrigin) {\n if (!url) {\n callback && callback.call(context, url);\n return;\n }\n\n var img = fabric.util.createImage();\n /** @ignore */\n\n var onLoadCallback = function onLoadCallback() {\n callback && callback.call(context, img);\n img = img.onload = img.onerror = null;\n };\n\n img.onload = onLoadCallback;\n /** @ignore */\n\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 }; // 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\n\n if (url.indexOf('data') !== 0 && crossOrigin) {\n img.crossOrigin = crossOrigin;\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\n\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 loadImageInDom(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\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 enlivenObjects(objects, callback, namespace, reviver) {\n objects = objects || [];\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\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 enlivenPatterns(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 } 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 groupSVGElements(elements, options, path) {\n var object;\n\n if (elements && elements.length === 1) {\n return elements[0];\n }\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 } else {\n delete options.width;\n delete options.height;\n }\n }\n\n object = new fabric.Group(elements, options);\n\n if (typeof path !== 'undefined') {\n object.sourcePath = path;\n }\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 populateWithProperties(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 drawDashedLine(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 ctx.save();\n ctx.translate(x, y);\n ctx.moveTo(0, 0);\n ctx.rotate(rot);\n x = 0;\n\n while (len > x) {\n x += da[di++ % dc];\n\n if (x > len) {\n x = len;\n }\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 createCanvasElement() {\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 copyCanvasElement(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 toDataURL(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 createImage() {\n return fabric.document.createElement('img');\n },\n\n /**\n * @static\n * @memberOf fabric.util\n * @deprecated since 2.0.0\n * @param {fabric.Object} receiver Object implementing `clipTo` method\n * @param {CanvasRenderingContext2D} ctx Context to clip\n */\n clipContext: function clipContext(receiver, ctx) {\n ctx.save();\n ctx.beginPath();\n receiver.clipTo(ctx);\n ctx.clip();\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 multiplyTransformMatrices(a, b, is2x2) {\n // Matrix multiply a * b\n return [a[0] * b[0] + a[2] * b[1], a[1] * b[0] + a[3] * b[1], a[0] * b[2] + a[2] * b[3], a[1] * b[2] + a[3] * b[3], is2x2 ? 0 : a[0] * b[4] + a[2] * b[5] + a[4], is2x2 ? 0 : a[1] * b[4] + a[3] * b[5] + a[5]];\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 qrDecompose(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 calcRotateMatrix(options) {\n if (!options.angle) {\n return fabric.iMatrix.concat();\n }\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 calcDimensionsMatrix(options) {\n var scaleX = typeof options.scaleX === 'undefined' ? 1 : options.scaleX,\n scaleY = typeof options.scaleY === 'undefined' ? 1 : options.scaleY,\n scaleMatrix = [options.flipX ? -scaleX : scaleX, 0, 0, options.flipY ? -scaleY : scaleY, 0, 0],\n multiply = fabric.util.multiplyTransformMatrices,\n degreesToRadians = fabric.util.degreesToRadians;\n\n if (options.skewX) {\n scaleMatrix = multiply(scaleMatrix, [1, 0, Math.tan(degreesToRadians(options.skewX)), 1], true);\n }\n\n if (options.skewY) {\n scaleMatrix = multiply(scaleMatrix, [1, Math.tan(degreesToRadians(options.skewY)), 0, 1], true);\n }\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 composeMatrix(options) {\n var matrix = [1, 0, 0, 1, options.translateX || 0, options.translateY || 0],\n multiply = fabric.util.multiplyTransformMatrices;\n\n if (options.angle) {\n matrix = multiply(matrix, fabric.util.calcRotateMatrix(options));\n }\n\n if (options.scaleX || options.scaleY || options.skewX || options.skewY || options.flipX || options.flipY) {\n matrix = multiply(matrix, fabric.util.calcDimensionsMatrix(options));\n }\n\n return matrix;\n },\n\n /**\n * Returns a transform matrix that has the same effect of scaleX, scaleY and skewX.\n * Is deprecated for composeMatrix. Please do not use it.\n * @static\n * @deprecated since 3.4.0\n * @memberOf fabric.util\n * @param {Number} scaleX\n * @param {Number} scaleY\n * @param {Number} skewX\n * @return {Number[]} transform matrix\n */\n customTransformMatrix: function customTransformMatrix(scaleX, scaleY, skewX) {\n return fabric.util.composeMatrix({\n scaleX: scaleX,\n scaleY: scaleY,\n skewX: skewX\n });\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 resetObjectTransform(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 saveObjectTransform(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 string representation of function body\n * @param {Function} fn Function to get body of\n * @return {String} Function body\n */\n getFunctionBody: function getFunctionBody(fn) {\n return (String(fn).match(/function[^{]*\\{([\\s\\S]*)\\}/) || {})[1];\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 isTransparent(ctx, x, y, tolerance) {\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 } else {\n x = 0;\n }\n\n if (y > tolerance) {\n y -= tolerance;\n } else {\n y = 0;\n }\n }\n\n var _isTransparent = true,\n i,\n temp,\n imageData = ctx.getImageData(x, y, tolerance * 2 || 1, tolerance * 2 || 1),\n l = imageData.data.length; // Split image data - for tolerance > 1, pixelDataSize = 4;\n\n for (i = 3; i < l; i += 4) {\n temp = imageData.data[i];\n _isTransparent = temp <= 0;\n\n if (_isTransparent === false) {\n break; // Stop if colour found\n }\n }\n\n imageData = null;\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 parsePreserveAspectRatioAttribute(attribute) {\n var meetOrSlice = 'meet',\n alignX = 'Mid',\n alignY = 'Mid',\n aspectRatioAttrs = attribute.split(' '),\n align;\n\n if (aspectRatioAttrs && aspectRatioAttrs.length) {\n meetOrSlice = aspectRatioAttrs.pop();\n\n if (meetOrSlice !== 'meet' && meetOrSlice !== 'slice') {\n align = meetOrSlice;\n meetOrSlice = 'meet';\n } else if (aspectRatioAttrs.length) {\n align = aspectRatioAttrs.pop();\n }\n } //divide align in alignX and alignY\n\n\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 clearFabricFontCache(fontFamily) {\n fontFamily = (fontFamily || '').toLowerCase();\n\n if (!fontFamily) {\n fabric.charWidthsCache = {};\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 limitDimsByArea(ar, maximumArea) {\n var roughWidth = Math.sqrt(maximumArea * ar),\n perfLimitSizeY = Math.floor(maximumArea / roughWidth);\n return {\n x: Math.floor(roughWidth),\n y: perfLimitSizeY\n };\n },\n capValue: function capValue(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 findScaleToFit(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 findScaleToCover(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 matrixToSVG(transform) {\n return 'matrix(' + transform.map(function (value) {\n return fabric.util.toFixed(value, fabric.Object.NUM_FRACTION_DIGITS);\n }).join(' ') + ')';\n }\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function () {\n var _join = Array.prototype.join;\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\n function arcToSegments(toX, toY, rx, ry, large, sweep, rotateX) {\n var argsString = _join.call(arguments);\n\n if (fabric.arcToSegmentsCache[argsString]) {\n return fabric.arcToSegmentsCache[argsString];\n }\n\n var PI = Math.PI,\n th = rotateX * PI / 180,\n sinTh = fabric.util.sin(th),\n cosTh = fabric.util.cos(th),\n fromX = 0,\n fromY = 0;\n rx = Math.abs(rx);\n ry = Math.abs(ry);\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,\n ry2 = ry * ry,\n py2 = py * py,\n 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 } else {\n root = (large === sweep ? -1.0 : 1.0) * 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 } else if (sweep === 1 && dtheta < 0) {\n dtheta += 2 * PI;\n } // Convert into cubic bezier segments <= 90deg\n\n\n var segments = Math.ceil(Math.abs(dtheta / PI * 2)),\n result = [],\n 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][4];\n fromY = result[i][5];\n mTheta = th3;\n th3 += mDelta;\n }\n\n fabric.arcToSegmentsCache[argsString] = result;\n return result;\n }\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 return [cp1X, cp1Y, cp2X, cp2Y, toX, toY];\n }\n /*\n * Private\n */\n\n\n function calcVectorAngle(ux, uy, vx, vy) {\n var ta = Math.atan2(uy, ux),\n tb = Math.atan2(vy, vx);\n\n if (tb >= ta) {\n return tb - ta;\n } else {\n return 2 * Math.PI - (ta - tb);\n }\n }\n /**\n * Draws arc\n * @param {CanvasRenderingContext2D} ctx\n * @param {Number} fx\n * @param {Number} fy\n * @param {Array} coords\n */\n\n\n fabric.util.drawArc = function (ctx, fx, fy, coords) {\n var rx = coords[0],\n ry = coords[1],\n rot = coords[2],\n large = coords[3],\n sweep = coords[4],\n tx = coords[5],\n ty = coords[6],\n segs = [[], [], [], []],\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 segs[i][0] = segsNorm[i][0] + fx;\n segs[i][1] = segsNorm[i][1] + fy;\n segs[i][2] = segsNorm[i][2] + fx;\n segs[i][3] = segsNorm[i][3] + fy;\n segs[i][4] = segsNorm[i][4] + fx;\n segs[i][5] = segsNorm[i][5] + fy;\n ctx.bezierCurveTo.apply(ctx, segs[i]);\n }\n };\n /**\n * Calculate bounding box of a elliptic-arc\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 axe\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\n\n fabric.util.getBoundsOfArc = function (fx, fy, rx, ry, rot, large, sweep, tx, ty) {\n var fromX = 0,\n fromY = 0,\n bound,\n 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][0], segs[i][1], segs[i][2], segs[i][3], segs[i][4], segs[i][5]);\n bounds.push({\n x: bound[0].x + fx,\n y: bound[0].y + fy\n });\n bounds.push({\n x: bound[1].x + fx,\n y: bound[1].y + fy\n });\n fromX = segs[i][4];\n fromY = segs[i][5];\n }\n\n return bounds;\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\n\n function getBoundsOfCurve(x0, y0, x1, y1, x2, y2, x3, y3) {\n var argsString;\n\n if (fabric.cachesBoundsOfCurve) {\n argsString = _join.call(arguments);\n\n if (fabric.boundsOfCurveCache[argsString]) {\n return fabric.boundsOfCurveCache[argsString];\n }\n }\n\n var sqrt = Math.sqrt,\n min = Math.min,\n max = Math.max,\n abs = Math.abs,\n tvalues = [],\n bounds = [[], []],\n a,\n b,\n c,\n t,\n t1,\n t2,\n b2ac,\n sqrtb2ac;\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\n t = -c / b;\n\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n b2ac = b * b - 4 * c * a;\n\n if (b2ac < 0) {\n continue;\n }\n\n sqrtb2ac = sqrt(b2ac);\n t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n\n t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x,\n y,\n j = tvalues.length,\n jlen = j,\n mt;\n\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 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 x: min.apply(null, bounds[0]),\n y: min.apply(null, bounds[1])\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\n return result;\n }\n\n fabric.util.getBoundsOfCurve = getBoundsOfCurve;\n})();\n\n(function () {\n var slice = Array.prototype.slice;\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\n function invoke(array, method) {\n var args = slice.call(arguments, 2),\n result = [];\n\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\n return result;\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\n\n function max(array, byProperty) {\n return find(array, byProperty, function (value1, value2) {\n return value1 >= value2;\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\n\n function min(array, byProperty) {\n return find(array, byProperty, function (value1, value2) {\n return value1 < value2;\n });\n }\n /**\n * @private\n */\n\n\n function fill(array, value) {\n var k = array.length;\n\n while (k--) {\n array[k] = value;\n }\n\n return array;\n }\n /**\n * @private\n */\n\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\n if (byProperty) {\n while (i--) {\n if (condition(array[i][byProperty], result)) {\n result = array[i][byProperty];\n }\n }\n } else {\n while (i--) {\n if (condition(array[i], result)) {\n result = array[i];\n }\n }\n }\n\n return result;\n }\n /**\n * @namespace fabric.util.array\n */\n\n\n fabric.util.array = {\n fill: fill,\n invoke: invoke,\n min: min,\n max: max\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 property 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 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 } else if (source instanceof Array) {\n destination = [];\n\n for (var i = 0, len = source.length; i < len; i++) {\n destination[i] = extend({}, source[i], deep);\n }\n } else if (source && _typeof(source) === 'object') {\n for (var property in source) {\n if (property === 'canvas') {\n destination[property] = extend({}, source[property]);\n } else if (source.hasOwnProperty(property)) {\n destination[property] = extend({}, source[property], deep);\n }\n }\n } else {\n // this sounds odd for an extend but is ok for recursive use\n destination = source;\n }\n } else {\n for (var property in source) {\n destination[property] = source[property];\n }\n }\n\n return destination;\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\n\n function clone(object, deep) {\n return extend({}, object, deep);\n }\n /** @namespace fabric.util.object */\n\n\n fabric.util.object = {\n extend: extend,\n clone: clone\n };\n fabric.util.object.extend(fabric.util, fabric.Observable);\n})();\n\n(function () {\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 * 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\n\n function capitalize(string, firstLetterOnly) {\n return string.charAt(0).toUpperCase() + (firstLetterOnly ? string.slice(1) : string.slice(1).toLowerCase());\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\n\n function escapeXml(string) {\n return string.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\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\n\n function graphemeSplit(textstring) {\n var i = 0,\n chr,\n graphemes = [];\n\n for (i = 0, chr; i < textstring.length; i++) {\n if ((chr = getWholeChar(textstring, i)) === false) {\n continue;\n }\n\n graphemes.push(chr);\n }\n\n return graphemes;\n } // taken from mdn in the charAt doc page.\n\n\n function getWholeChar(str, i) {\n var code = str.charCodeAt(i);\n\n if (isNaN(code)) {\n return ''; // Position not found\n }\n\n if (code < 0xD800 || code > 0xDFFF) {\n return str.charAt(i);\n } // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n\n\n if (0xD800 <= code && code <= 0xDBFF) {\n if (str.length <= i + 1) {\n throw 'High surrogate without following low surrogate';\n }\n\n var next = str.charCodeAt(i + 1);\n\n if (0xDC00 > next || next > 0xDFFF) {\n throw 'High surrogate without following low surrogate';\n }\n\n return str.charAt(i) + str.charAt(i + 1);\n } // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n\n\n if (i === 0) {\n throw 'Low surrogate without preceding high surrogate';\n }\n\n var prev = str.charCodeAt(i - 1); // (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n\n if (0xD800 > prev || prev > 0xDBFF) {\n throw 'Low surrogate without preceding high surrogate';\n } // We can pass over low surrogates now as the second component\n // in a pair which we have already processed\n\n\n return false;\n }\n /**\n * String utilities\n * @namespace fabric.util.string\n */\n\n\n fabric.util.string = {\n camelize: camelize,\n capitalize: capitalize,\n escapeXml: escapeXml,\n graphemeSplit: graphemeSplit\n };\n})();\n\n(function () {\n var slice = Array.prototype.slice,\n emptyFunction = function emptyFunction() {},\n IS_DONTENUM_BUGGY = function () {\n for (var p in {\n toString: 1\n }) {\n if (p === 'toString') {\n return false;\n }\n }\n\n return true;\n }(),\n\n /** @ignore */\n addMethods = function addMethods(klass, source, parent) {\n for (var property in source) {\n if (property in klass.prototype && typeof klass.prototype[property] === 'function' && (source[property] + '').indexOf('callSuper') > -1) {\n klass.prototype[property] = function (property) {\n return function () {\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 } 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\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; // climb prototype chain to find method not equal to callee's method\n\n\n while (_this.constructor.superclass) {\n var superClassMethod = _this.constructor.superclass.prototype[methodName];\n\n if (_this[methodName] !== superClassMethod) {\n parentMethod = superClassMethod;\n break;\n } // eslint-disable-next-line\n\n\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 ? parentMethod.apply(this, slice.call(arguments, 1)) : parentMethod.call(this);\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\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\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\n for (var i = 0, length = properties.length; i < length; i++) {\n addMethods(klass, properties[i], parent);\n }\n\n if (!klass.prototype.initialize) {\n klass.prototype.initialize = emptyFunction;\n }\n\n klass.prototype.constructor = klass;\n klass.prototype.callSuper = callSuper;\n return klass;\n }\n\n fabric.util.createClass = createClass;\n})();\n\n(function () {\n // since ie10 or ie9 can use addEventListener but they do not support options, i need to check\n var couldUseAttachEvent = !!fabric.document.createElement('div').attachEvent;\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\n fabric.util.addListener = function (element, eventName, handler, options) {\n element && element.addEventListener(eventName, handler, couldUseAttachEvent ? false : options);\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\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\n if (touchProp && touchProp[0]) {\n return touchProp[0];\n }\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\n return {\n x: _evt.clientX + scroll.left,\n y: _evt.clientY + scroll.top\n };\n };\n})();\n\n(function () {\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\n if (!elementStyle) {\n return element;\n }\n\n if (typeof styles === 'string') {\n element.style.cssText += ';' + styles;\n return styles.indexOf('opacity') > -1 ? setOpacity(element, styles.match(/opacity:\\s*(\\d?\\.?\\d*)/)[1]) : element;\n }\n\n for (var property in styles) {\n if (property === 'opacity') {\n setOpacity(element, styles[property]);\n } else {\n var normalizedProperty = property === 'float' || property === 'cssFloat' ? typeof elementStyle.styleFloat === 'undefined' ? 'cssFloat' : 'styleFloat' : property;\n elementStyle[normalizedProperty] = styles[property];\n }\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 setOpacity(element) {\n return element;\n };\n\n if (supportsOpacity) {\n /** @ignore */\n setOpacity = function setOpacity(element, value) {\n element.style.opacity = value;\n return element;\n };\n } else if (supportsFilters) {\n /** @ignore */\n setOpacity = function setOpacity(element, value) {\n var es = element.style;\n\n if (element.currentStyle && !element.currentStyle.hasLayout) {\n es.zoom = 1;\n }\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 } else {\n es.filter += ' alpha(opacity=' + value * 100 + ')';\n }\n\n return element;\n };\n }\n\n fabric.util.setStyle = setStyle;\n})();\n\n(function () {\n var _slice = Array.prototype.slice;\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\n function getById(id) {\n return typeof id === 'string' ? fabric.document.getElementById(id) : id;\n }\n\n var sliceCanConvertNodelists,\n\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 toArray(arrayLike) {\n return _slice.call(arrayLike, 0);\n };\n\n try {\n sliceCanConvertNodelists = toArray(fabric.document.childNodes) instanceof Array;\n } catch (err) {}\n\n if (!sliceCanConvertNodelists) {\n toArray = function toArray(arrayLike) {\n var arr = new Array(arrayLike.length),\n i = arrayLike.length;\n\n while (i--) {\n arr[i] = arrayLike[i];\n }\n\n return arr;\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\n\n function makeElement(tagName, attributes) {\n var el = fabric.document.createElement(tagName);\n\n for (var prop in attributes) {\n if (prop === 'class') {\n el.className = attributes[prop];\n } else if (prop === 'for') {\n el.htmlFor = attributes[prop];\n } else {\n el.setAttribute(prop, attributes[prop]);\n }\n }\n\n return el;\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\n\n function addClass(element, className) {\n if (element && (' ' + element.className + ' ').indexOf(' ' + className + ' ') === -1) {\n element.className += (element.className ? ' ' : '') + className;\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\n\n function wrapElement(element, wrapper, attributes) {\n if (typeof wrapper === 'string') {\n wrapper = makeElement(wrapper, attributes);\n }\n\n if (element.parentNode) {\n element.parentNode.replaceChild(wrapper, element);\n }\n\n wrapper.appendChild(element);\n return wrapper;\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\n\n function getScrollLeftTop(element) {\n var left = 0,\n top = 0,\n docElement = fabric.document.documentElement,\n body = fabric.document.body || {\n scrollLeft: 0,\n scrollTop: 0\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\n while (element && (element.parentNode || element.host)) {\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 } 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 {\n left: left,\n 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\n\n function getElementOffset(element) {\n var docElem,\n doc = element && element.ownerDocument,\n box = {\n left: 0,\n top: 0\n },\n offset = {\n left: 0,\n top: 0\n },\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\n if (typeof element.getBoundingClientRect !== 'undefined') {\n box = element.getBoundingClientRect();\n }\n\n scrollLeftTop = getScrollLeftTop(element);\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 * 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\n\n var getElementStyle;\n\n if (fabric.document.defaultView && fabric.document.defaultView.getComputedStyle) {\n getElementStyle = function getElementStyle(element, attr) {\n var style = fabric.document.defaultView.getComputedStyle(element, null);\n return style ? style[attr] : undefined;\n };\n } else {\n getElementStyle = function getElementStyle(element, attr) {\n var value = element.style[attr];\n\n if (!value && element.currentStyle) {\n value = element.currentStyle[attr];\n }\n\n return value;\n };\n }\n\n (function () {\n var style = fabric.document.documentElement.style,\n selectProp = 'userSelect' in style ? 'userSelect' : 'MozUserSelect' in style ? 'MozUserSelect' : 'WebkitUserSelect' in style ? 'WebkitUserSelect' : 'KhtmlUserSelect' in style ? 'KhtmlUserSelect' : '';\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\n function makeElementUnselectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = fabric.util.falseFunction;\n }\n\n if (selectProp) {\n element.style[selectProp] = 'none';\n } else if (typeof element.unselectable === 'string') {\n element.unselectable = 'on';\n }\n\n return element;\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\n\n function makeElementSelectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = null;\n }\n\n if (selectProp) {\n element.style[selectProp] = '';\n } else if (typeof element.unselectable === 'string') {\n element.unselectable = '';\n }\n\n return element;\n }\n\n fabric.util.makeElementUnselectable = makeElementUnselectable;\n fabric.util.makeElementSelectable = makeElementSelectable;\n })();\n\n (function () {\n /**\n * Inserts a script element with a given url into a document; invokes callback, when that script is finished loading\n * @memberOf fabric.util\n * @param {String} url URL of a script to load\n * @param {Function} callback Callback to execute when script is finished loading\n */\n function getScript(url, callback) {\n var headEl = fabric.document.getElementsByTagName('head')[0],\n scriptEl = fabric.document.createElement('script'),\n loading = true;\n /** @ignore */\n\n scriptEl.onload =\n /** @ignore */\n scriptEl.onreadystatechange = function (e) {\n if (loading) {\n if (typeof this.readyState === 'string' && this.readyState !== 'loaded' && this.readyState !== 'complete') {\n return;\n }\n\n loading = false;\n callback(e || fabric.window.event);\n scriptEl = scriptEl.onload = scriptEl.onreadystatechange = null;\n }\n };\n\n scriptEl.src = url;\n headEl.appendChild(scriptEl); // causes issue in Opera\n // headEl.removeChild(scriptEl);\n }\n\n fabric.util.getScript = getScript;\n })();\n\n function getNodeCanvas(element) {\n var impl = fabric.jsdomImplForWrapper(element);\n return impl._canvas || impl._image;\n }\n\n ;\n\n function cleanUpJsdomNode(element) {\n if (!fabric.isLikelyNode) {\n return;\n }\n\n var impl = fabric.jsdomImplForWrapper(element);\n\n if (impl) {\n impl._image = null;\n impl._canvas = null; // unsure if necessary\n\n impl._currentSrc = null;\n impl._attributes = null;\n impl._classList = null;\n }\n }\n\n fabric.util.getById = getById;\n fabric.util.toArray = toArray;\n fabric.util.makeElement = makeElement;\n fabric.util.addClass = addClass;\n fabric.util.wrapElement = wrapElement;\n fabric.util.getScrollLeftTop = getScrollLeftTop;\n fabric.util.getElementOffset = getElementOffset;\n fabric.util.getElementStyle = getElementStyle;\n fabric.util.getNodeCanvas = getNodeCanvas;\n fabric.util.cleanUpJsdomNode = cleanUpJsdomNode;\n})();\n\n(function () {\n function addParamToUrl(url, param) {\n return url + (/\\?/.test(url) ? '&' : '?') + param;\n }\n\n function emptyFn() {}\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\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 /** @ignore */\n\n\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\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 * Wrapper around `console.log` (when available)\n * @param {*} [values] Values to log\n */\n\n\nfabric.log = console.log;\n/**\n * Wrapper around `console.warn` (when available)\n * @param {*} [values] Values to log as a warning\n */\n\nfabric.warn = console.warn;\n\n(function () {\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 * 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\n\n function animate(options) {\n requestAnimFrame(function (timestamp) {\n options || (options = {});\n var start = timestamp || +new Date(),\n duration = options.duration || 500,\n finish = start + duration,\n 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 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\n if (abort()) {\n onComplete(endValue, 1, 1);\n return;\n }\n\n if (time > finish) {\n onChange(endValue, 1, 1);\n onComplete(endValue, 1, 1);\n return;\n } else {\n onChange(current, valuePerc, timePerc);\n requestAnimFrame(tick);\n }\n })(start);\n });\n }\n\n var _requestAnimFrame = fabric.window.requestAnimationFrame || fabric.window.webkitRequestAnimationFrame || fabric.window.mozRequestAnimationFrame || fabric.window.oRequestAnimationFrame || fabric.window.msRequestAnimationFrame || function (callback) {\n return fabric.window.setTimeout(callback, 1000 / 60);\n };\n\n var _cancelAnimFrame = fabric.window.cancelAnimationFrame || fabric.window.clearTimeout;\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\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(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(' + parseInt(begin[0] + pos * (end[0] - begin[0]), 10) + ',' + parseInt(begin[1] + pos * (end[1] - begin[1]), 10) + ',' + parseInt(begin[2] + pos * (end[2] - begin[2]), 10);\n color += ',' + (begin && end ? parseFloat(begin[3] + pos * (end[3] - begin[3])) : 1);\n color += ')';\n return color;\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\n\n function animateColor(fromColor, toColor, duration, options) {\n var startColor = new fabric.Color(fromColor).getSource(),\n endColor = new fabric.Color(toColor).getSource();\n options = options || {};\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 easing(currentTime, startValue, byValue, duration) {\n var posValue = options.colorEasing ? options.colorEasing(currentTime, duration) : 1 - Math.cos(currentTime / duration * (Math.PI / 2));\n return calculateColor(startValue, byValue, posValue);\n }\n }));\n }\n\n fabric.util.animateColor = animateColor;\n})();\n\n(function () {\n function normalize(a, c, p, s) {\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n //handle the 0/0 case:\n if (c === 0 && a === 0) {\n s = p / (2 * Math.PI) * Math.asin(1);\n } else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n }\n\n return {\n a: a,\n c: c,\n p: p,\n s: s\n };\n }\n\n function elastic(opts, t, d) {\n return opts.a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p);\n }\n /**\n * Cubic easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n }\n /**\n * Cubic easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutCubic(t, b, c, d) {\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * t * t * t + b;\n }\n\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n /**\n * Quartic easing in\n * @memberOf fabric.util.ease\n */\n\n\n function easeInQuart(t, b, c, d) {\n return c * (t /= d) * t * t * t + b;\n }\n /**\n * Quartic easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutQuart(t, b, c, d) {\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n }\n /**\n * Quartic easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutQuart(t, b, c, d) {\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * t * t * t * t + b;\n }\n\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n /**\n * Quintic easing in\n * @memberOf fabric.util.ease\n */\n\n\n function easeInQuint(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n }\n /**\n * Quintic easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutQuint(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n }\n /**\n * Quintic easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutQuint(t, b, c, d) {\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * t * t * t * t * t + b;\n }\n\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n /**\n * Sinusoidal easing in\n * @memberOf fabric.util.ease\n */\n\n\n function easeInSine(t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n }\n /**\n * Sinusoidal easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutSine(t, b, c, d) {\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n }\n /**\n * Sinusoidal easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutSine(t, b, c, d) {\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n }\n /**\n * Exponential easing in\n * @memberOf fabric.util.ease\n */\n\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 * Exponential easing out\n * @memberOf fabric.util.ease\n */\n\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 * Exponential easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutExpo(t, b, c, d) {\n if (t === 0) {\n return b;\n }\n\n if (t === d) {\n return b + c;\n }\n\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n }\n\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n /**\n * Circular easing in\n * @memberOf fabric.util.ease\n */\n\n\n function easeInCirc(t, b, c, d) {\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n }\n /**\n * Circular easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutCirc(t, b, c, d) {\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n }\n /**\n * Circular easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutCirc(t, b, c, d) {\n t /= d / 2;\n\n if (t < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n }\n\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n /**\n * Elastic easing in\n * @memberOf fabric.util.ease\n */\n\n\n function easeInElastic(t, b, c, d) {\n var s = 1.70158,\n p = 0,\n a = c;\n\n if (t === 0) {\n return b;\n }\n\n t /= d;\n\n if (t === 1) {\n return b + c;\n }\n\n if (!p) {\n p = d * 0.3;\n }\n\n var opts = normalize(a, c, p, s);\n return -elastic(opts, t, d) + b;\n }\n /**\n * Elastic easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutElastic(t, b, c, d) {\n var s = 1.70158,\n p = 0,\n a = c;\n\n if (t === 0) {\n return b;\n }\n\n t /= d;\n\n if (t === 1) {\n return b + c;\n }\n\n if (!p) {\n p = d * 0.3;\n }\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 * Elastic easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutElastic(t, b, c, d) {\n var s = 1.70158,\n p = 0,\n a = c;\n\n if (t === 0) {\n return b;\n }\n\n t /= d / 2;\n\n if (t === 2) {\n return b + c;\n }\n\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n\n var opts = normalize(a, c, p, s);\n\n if (t < 1) {\n return -0.5 * elastic(opts, t, d) + b;\n }\n\n return opts.a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p) * 0.5 + opts.c + b;\n }\n /**\n * Backwards easing in\n * @memberOf fabric.util.ease\n */\n\n\n function easeInBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n }\n /**\n * Backwards easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n }\n /**\n * Backwards easing in and out\n * @memberOf fabric.util.ease\n */\n\n\n function easeInOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n\n return c / 2 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n }\n /**\n * Bouncing easing in\n * @memberOf fabric.util.ease\n */\n\n\n function easeInBounce(t, b, c, d) {\n return c - easeOutBounce(d - t, 0, c, d) + b;\n }\n /**\n * Bouncing easing out\n * @memberOf fabric.util.ease\n */\n\n\n function easeOutBounce(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n } else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n } else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n } else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n }\n /**\n * Bouncing easing in and out\n * @memberOf fabric.util.ease\n */\n\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\n return easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n /**\n * Easing functions\n * See Easing Equations by Robert Penner\n * @namespace fabric.util.ease\n */\n\n\n fabric.util.ease = {\n /**\n * Quadratic easing in\n * @memberOf fabric.util.ease\n */\n easeInQuad: function easeInQuad(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 easeOutQuad(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 easeInOutQuad(t, b, c, d) {\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * t * t + b;\n }\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 easeInCubic(t, b, c, d) {\n return c * (t /= d) * t * t + b;\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(function (global) {\n 'use strict';\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 svgValidTagNames = ['path', 'circle', 'polygon', 'polyline', 'ellipse', 'rect', 'line', '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 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 },\n colorAttributes = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity'\n },\n fSize = 'font-size',\n cPath = 'clip-path';\n fabric.svgValidTagNamesRegEx = getSvgRegex(svgValidTagNames);\n fabric.svgViewBoxElementsRegEx = getSvgRegex(svgViewBoxElements);\n fabric.svgInvalidAncestorsRegEx = getSvgRegex(svgInvalidAncestors);\n fabric.svgValidParentsRegEx = getSvgRegex(svgValidParents);\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\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 } else if (attr === 'vector-effect') {\n value = value === 'non-scaling-stroke';\n } else if (attr === 'strokeDashArray') {\n if (value === 'none') {\n value = null;\n } else {\n value = value.replace(/,/g, ' ').split(/\\s+/).map(parseFloat);\n }\n } else if (attr === 'transformMatrix') {\n if (parentAttributes && parentAttributes.transformMatrix) {\n value = multiplyTransformMatrices(parentAttributes.transformMatrix, fabric.parseTransformAttribute(value));\n } else {\n value = fabric.parseTransformAttribute(value);\n }\n } else if (attr === 'visible') {\n value = value !== 'none' && value !== 'hidden'; // display=none on parent element always takes precedence over child element\n\n if (parentAttributes && parentAttributes.visible === false) {\n value = false;\n }\n } else if (attr === 'opacity') {\n value = parseFloat(value);\n\n if (parentAttributes && typeof parentAttributes.opacity !== 'undefined') {\n value *= parentAttributes.opacity;\n }\n } else if (attr === 'textAnchor'\n /* text-anchor */\n ) {\n value = value === 'start' ? 'left' : value === 'end' ? 'right' : 'center';\n } else if (attr === 'charSpacing') {\n // parseUnit returns px and we convert it to em\n parsed = parseUnit(value, fontSize) / fontSize * 1000;\n } else if (attr === 'paintFirst') {\n var fillIndex = value.indexOf('fill');\n var strokeIndex = value.indexOf('stroke');\n var value = 'fill';\n\n if (fillIndex > -1 && strokeIndex > -1 && strokeIndex < fillIndex) {\n value = 'stroke';\n } else if (fillIndex === -1 && strokeIndex > -1) {\n value = 'stroke';\n }\n } else if (attr === 'href' || attr === 'xlink:href') {\n return value;\n } else {\n parsed = isArray ? value.map(parseUnit) : parseUnit(value, fontSize);\n }\n\n return !isArray && isNaN(parsed) ? value : parsed;\n }\n /**\n * @private\n */\n\n\n function getSvgRegex(arr) {\n return new RegExp('^(' + arr.join('|') + ')\\\\b', 'i');\n }\n /**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n\n\n function _setStrokeFillOpacity(attributes) {\n for (var attr in colorAttributes) {\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\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\n return attributes;\n }\n /**\n * @private\n */\n\n\n function _getMultipleNodes(doc, nodeNames) {\n var nodeName,\n nodeArray = [],\n nodeList,\n i,\n len;\n\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\n return nodeArray;\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\n\n fabric.parseTransformAttribute = function () {\n function rotateMatrix(matrix, args) {\n var cos = fabric.util.cos(args[0]),\n sin = fabric.util.sin(args[0]),\n x = 0,\n y = 0;\n\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 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\n if (args.length === 2) {\n matrix[5] = args[1];\n }\n } // identity matrix\n\n\n var iMatrix = fabric.iMatrix,\n // == begin transform regexp\n number = fabric.reNum,\n commaWsp = '(?:\\\\s+,?\\\\s*|,\\\\s*)',\n skewX = '(?:(skewX)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n skewY = '(?:(skewY)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n rotate = '(?:(rotate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' + commaWsp + '(' + number + ')' + commaWsp + '(' + number + '))?\\\\s*\\\\))',\n scale = '(?:(scale)\\\\s*\\\\(\\\\s*(' + number + ')(?:' + commaWsp + '(' + number + '))?\\\\s*\\\\))',\n translate = '(?:(translate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' + commaWsp + '(' + number + '))?\\\\s*\\\\))',\n matrix = '(?:(matrix)\\\\s*\\\\(\\\\s*' + '(' + number + ')' + commaWsp + '(' + number + ')' + commaWsp + '(' + number + ')' + commaWsp + '(' + number + ')' + commaWsp + '(' + number + ')' + commaWsp + '(' + number + ')' + '\\\\s*\\\\))',\n transform = '(?:' + matrix + '|' + translate + '|' + scale + '|' + rotate + '|' + skewX + '|' + skewY + ')',\n transforms = '(?:' + transform + '(?:' + commaWsp + '*' + transform + ')*' + ')',\n transformList = '^\\\\s*(?:' + transforms + '?)\\\\s*$',\n // http://www.w3.org/TR/SVG/coords.html#TransformAttribute\n reTransformList = new RegExp(transformList),\n // == end transform regexp\n reTransform = new RegExp(transform, 'g');\n return function (attributeValue) {\n // start with identity matrix\n var matrix = iMatrix.concat(),\n matrices = []; // return if no argument was given or\n // an argument does not match transform attribute regexp\n\n if (!attributeValue || attributeValue && !reTransformList.test(attributeValue)) {\n return matrix;\n }\n\n attributeValue.replace(reTransform, function (match) {\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\n case 'rotate':\n args[0] = fabric.util.degreesToRadians(args[0]);\n rotateMatrix(matrix, args);\n break;\n\n case 'scale':\n scaleMatrix(matrix, args);\n break;\n\n case 'skewX':\n skewMatrix(matrix, args, 2);\n break;\n\n case 'skewY':\n skewMatrix(matrix, args, 1);\n break;\n\n case 'matrix':\n matrix = args;\n break;\n } // snapshot current matrix into matrices array\n\n\n matrices.push(matrix.concat()); // reset\n\n matrix = iMatrix.concat();\n });\n var combinedMatrix = matrices[0];\n\n while (matrices.length > 1) {\n matrices.shift();\n combinedMatrix = fabric.util.multiplyTransformMatrices(combinedMatrix, matrices[0]);\n }\n\n return combinedMatrix;\n };\n }();\n /**\n * @private\n */\n\n\n function parseStyleString(style, oStyle) {\n var attr, value;\n style.replace(/;\\s*$/, '').split(';').forEach(function (chunk) {\n var pair = chunk.split(':');\n attr = pair[0].trim().toLowerCase();\n value = pair[1].trim();\n oStyle[attr] = value;\n });\n }\n /**\n * @private\n */\n\n\n function parseStyleObject(style, oStyle) {\n var attr, value;\n\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 oStyle[attr] = value;\n }\n }\n /**\n * @private\n */\n\n\n function getGlobalStylesForElement(element, svgUid) {\n var styles = {};\n\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\n return styles;\n }\n /**\n * @private\n */\n\n\n function elementMatchesRule(element, selectors) {\n var firstMatching,\n parentMatching = true; //start from rightmost selector.\n\n firstMatching = selectorMatches(element, selectors.pop());\n\n if (firstMatching && selectors.length) {\n parentMatching = doesSomeParentMatch(element, selectors);\n }\n\n return firstMatching && parentMatching && selectors.length === 0;\n }\n\n function doesSomeParentMatch(element, selectors) {\n var selector,\n parentMatching = true;\n\n while (element.parentNode && element.parentNode.nodeType === 1 && selectors.length) {\n if (parentMatching) {\n selector = selectors.pop();\n }\n\n element = element.parentNode;\n parentMatching = selectorMatches(element, selector);\n }\n\n return selectors.length === 0;\n }\n /**\n * @private\n */\n\n\n function selectorMatches(element, selector) {\n var nodeName = element.nodeName,\n classNames = element.getAttribute('class'),\n id = element.getAttribute('id'),\n matcher,\n i; // i check if a selector matches slicing away part from it.\n // if i get empty string i should match\n\n matcher = new RegExp('^' + nodeName, 'i');\n selector = selector.replace(matcher, '');\n\n if (id && selector.length) {\n matcher = new RegExp('#' + id + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n\n if (classNames && selector.length) {\n classNames = classNames.split(' ');\n\n for (i = classNames.length; i--;) {\n matcher = new RegExp('\\\\.' + classNames[i] + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n }\n\n return selector.length === 0;\n }\n /**\n * @private\n * to support IE8 missing getElementById on SVGdocument and on node xmlDOM\n */\n\n\n function elementById(doc, id) {\n var el;\n doc.getElementById && (el = doc.getElementById(id));\n\n if (el) {\n return el;\n }\n\n var node,\n i,\n len,\n nodelist = doc.getElementsByTagName('*');\n\n for (i = 0, len = nodelist.length; i < len; i++) {\n node = nodelist[i];\n\n if (id === node.getAttribute('id')) {\n return node;\n }\n }\n }\n /**\n * @private\n */\n\n\n function parseUseDirectives(doc) {\n var nodelist = _getMultipleNodes(doc, ['use', 'svg:use']),\n i = 0;\n\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,\n oldLength = nodelist.length,\n attr,\n j,\n attrs,\n len,\n namespace = fabric.svgNS;\n applyViewboxTransform(el2);\n\n if (/^svg$/i.test(el2.nodeName)) {\n var el3 = el2.ownerDocument.createElementNS(namespace, 'g');\n\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 } // el2.firstChild != null\n\n\n while (el2.firstChild) {\n el3.appendChild(el2.firstChild);\n }\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\n if (attr.nodeName === 'x' || attr.nodeName === 'y' || attr.nodeName === 'xlink:href' || attr.nodeName === 'href') {\n continue;\n }\n\n if (attr.nodeName === 'transform') {\n currentTrans = attr.nodeValue + ' ' + currentTrans;\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); // some browsers do not shorten nodelist after replaceChild (IE8)\n\n if (nodelist.length === oldLength) {\n i++;\n }\n }\n } // http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute\n // matches, e.g.: +14.56e-12, etc.\n\n\n var reViewBoxAttrValue = new RegExp('^' + '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' + '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' + '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' + '\\\\s*(' + fabric.reNum + '+)\\\\s*' + '$');\n /**\n * Add a element that envelop all child elements and makes the viewbox transformMatrix descend on all elements\n */\n\n function applyViewboxTransform(element) {\n var viewBoxAttr = element.getAttribute('viewBox'),\n scaleX = 1,\n scaleY = 1,\n minX = 0,\n minY = 0,\n viewBoxWidth,\n viewBoxHeight,\n matrix,\n 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 || !fabric.svgViewBoxElementsRegEx.test(element.nodeName) || !(viewBoxAttr = viewBoxAttr.match(reViewBoxAttrValue)),\n missingDimAttr = !widthAttr || !heightAttr || widthAttr === '100%' || heightAttr === '100%',\n toBeParsed = missingViewBox && missingDimAttr,\n parsedDim = {},\n translateMatrix = '',\n widthDiff = 0,\n heightDiff = 0;\n parsedDim.width = 0;\n parsedDim.height = 0;\n parsedDim.toBeParsed = toBeParsed;\n\n if (toBeParsed) {\n return parsedDim;\n }\n\n if (missingViewBox) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n return parsedDim;\n }\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\n if (!missingDimAttr) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n scaleX = parsedDim.width / viewBoxWidth;\n scaleY = parsedDim.height / viewBoxHeight;\n } else {\n parsedDim.width = viewBoxWidth;\n parsedDim.height = viewBoxHeight;\n } // default is to preserve aspect ratio\n\n\n preserveAspectRatio = fabric.util.parsePreserveAspectRatioAttribute(preserveAspectRatio);\n\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; // calculate additional translation to move the viewbox\n }\n\n if (preserveAspectRatio.meetOrSlice === 'slice') {\n scaleY = scaleX = scaleX > scaleY ? scaleX : scaleY; // calculate additional translation to move the viewbox\n }\n\n widthDiff = parsedDim.width - viewBoxWidth * scaleX;\n heightDiff = parsedDim.height - viewBoxHeight * scaleX;\n\n if (preserveAspectRatio.alignX === 'Mid') {\n widthDiff /= 2;\n }\n\n if (preserveAspectRatio.alignY === 'Mid') {\n heightDiff /= 2;\n }\n\n if (preserveAspectRatio.alignX === 'Min') {\n widthDiff = 0;\n }\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\n if (x || y) {\n translateMatrix = ' translate(' + parseUnit(x) + ' ' + parseUnit(y) + ') ';\n }\n\n matrix = translateMatrix + ' matrix(' + scaleX + ' 0' + ' 0 ' + scaleY + ' ' + (minX * scaleX + widthDiff) + ' ' + (minY * scaleY + heightDiff) + ') ';\n parsedDim.viewboxTransform = fabric.parseTransformAttribute(matrix);\n\n if (element.nodeName === 'svg') {\n el = element.ownerDocument.createElementNS(fabric.svgNS, 'g'); // element.firstChild != null\n\n while (element.firstChild) {\n el.appendChild(element.firstChild);\n }\n\n element.appendChild(el);\n } else {\n el = element;\n matrix = el.getAttribute('transform') + matrix;\n }\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:', '')) && !element.getAttribute('instantiated_by_use')) {\n return true;\n }\n }\n\n return false;\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\n\n fabric.parseSVGDocument = function (doc, callback, reviver, parsingOptions) {\n if (!doc) {\n return;\n }\n\n parseUseDirectives(doc);\n var svgUid = fabric.Object.__uid++,\n i,\n 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\n for (i = 0, len = descendants.length; i < len; i++) {\n arr[i] = descendants[i];\n }\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:', '')) && !hasAncestorWithNodeName(el, fabric.svgInvalidAncestorsRegEx); // http://www.w3.org/TR/SVG/struct.html#DefsElement\n });\n\n if (!elements || elements && !elements.length) {\n callback && callback([], {});\n return;\n }\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; // Precedence of rules: style > class > attribute\n\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\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient);\n }\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\n if (!gradient.children.length) {\n var referenceClone = referencedGradient.cloneNode(true);\n\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n\n gradient.removeAttribute(xlinkAttr);\n }\n\n var reFontDeclaration = new RegExp('(normal|italic)?\\\\s*(normal|small-caps)?\\\\s*' + '(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\\\s*(' + fabric.reNum + '(?:px|cm|mm|em|pt|pc|in)*)(?:\\\\/(normal|' + fabric.reNum + '))?\\\\s+(.*)');\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 parseFontDeclaration(value, oStyle) {\n var match = value.match(reFontDeclaration);\n\n if (!match) {\n return;\n }\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\n if (fontWeight) {\n oStyle.fontWeight = isNaN(parseFloat(fontWeight)) ? fontWeight : parseFloat(fontWeight);\n }\n\n if (fontSize) {\n oStyle.fontSize = parseUnit(fontSize);\n }\n\n if (fontFamily) {\n oStyle.fontFamily = fontFamily;\n }\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 getGradientDefs(doc) {\n var tagArray = ['linearGradient', 'radialGradient', 'svg:linearGradient', 'svg:radialGradient'],\n elList = _getMultipleNodes(doc, tagArray),\n el,\n j = 0,\n gradientDefs = {};\n\n j = elList.length;\n\n while (j--) {\n el = elList[j];\n\n if (el.getAttribute('xlink:href')) {\n recursivelyParseGradientsXlink(doc, el);\n }\n\n gradientDefs[el.getAttribute('id')] = el;\n }\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 parseAttributes(element, attributes, svgUid) {\n if (!element) {\n return;\n }\n\n var value,\n parentAttributes = {},\n fontSize,\n parentFontSize;\n\n if (typeof svgUid === 'undefined') {\n svgUid = element.getAttribute('svgUid');\n } // if there's a parent container (`g` or `a` or `symbol` node), parse its attributes recursively upwards\n\n\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\n if (value) {\n // eslint-disable-line\n memo[attr] = value;\n }\n\n return memo;\n }, {}); // add values parsed from style, which take precedence over attributes\n // (see: http://www.w3.org/TR/SVG/styling.html#UsingPresentationAttributes)\n\n var cssAttrs = extend(getGlobalStylesForElement(element, svgUid), fabric.parseStyleAttribute(element));\n ownAttributes = extend(ownAttributes, cssAttrs);\n\n if (cssAttrs[cPath]) {\n element.setAttribute(cPath, cssAttrs[cPath]);\n }\n\n fontSize = parentFontSize = parentAttributes.fontSize || fabric.Text.DEFAULT_SVG_FONT_SIZE;\n\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,\n normalizedValue,\n normalizedStyle = {};\n\n for (var attr in ownAttributes) {\n normalizedAttr = normalizeAttr(attr);\n normalizedValue = normalizeValue(normalizedAttr, ownAttributes[attr], parentAttributes, fontSize);\n normalizedStyle[normalizedAttr] = normalizedValue;\n }\n\n if (normalizedStyle && normalizedStyle.font) {\n fabric.parseFontDeclaration(normalizedStyle.font, normalizedStyle);\n }\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 parseElements(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 parseStyleAttribute(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 } 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 parsePointsAttribute(points) {\n // points attribute is required and must not be empty\n if (!points) {\n return null;\n } // replace commas with whitespace and remove bookending whitespace\n\n\n points = points.replace(/,/g, ' ').trim();\n points = points.split(/\\s+/);\n var parsedPoints = [],\n i,\n 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 } // odd number of points is an error\n // if (parsedPoints.length % 2 !== 0) {\n // return null;\n // }\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 getCSSRules(doc) {\n var styles = doc.getElementsByTagName('style'),\n i,\n len,\n allRules = {},\n rules; // very crude parsing of style contents\n\n for (i = 0, len = styles.length; i < len; i++) {\n // \\n'].join('');\n }\n\n return markup;\n },\n\n /**\n * @private\n */\n _setSVGObjects: function _setSVGObjects(markup, reviver) {\n var instance,\n i,\n len,\n objects = this._objects;\n\n for (i = 0, len = objects.length; i < len; i++) {\n instance = objects[i];\n\n if (instance.excludeFromExport) {\n continue;\n }\n\n this._setSVGObject(markup, instance, reviver);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function _setSVGObject(markup, instance, reviver) {\n markup.push(instance.toSVG(reviver));\n },\n\n /**\n * @private\n */\n _setSVGBgOverlayImage: function _setSVGBgOverlayImage(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 _setSVGBgOverlayColor(markup, property) {\n var filler = this[property + 'Color'],\n vpt = this.viewportTransform,\n finalWidth = this.width,\n finalHeight = this.height;\n\n if (!filler) {\n return;\n }\n\n if (filler.toLive) {\n var repeat = filler.repeat,\n iVpt = fabric.util.invertTransform(vpt),\n shouldInvert = this[property + 'Vpt'],\n additionalTransform = shouldInvert ? fabric.util.matrixToSVG(iVpt) : '';\n markup.push('\\n');\n } else {\n markup.push('\\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 sendToBack(object) {\n if (!object) {\n return this;\n }\n\n var activeSelection = this._activeObject,\n i,\n obj,\n objs;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n\n for (i = objs.length; i--;) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n\n this._objects.unshift(obj);\n }\n } else {\n removeFromArray(this._objects, object);\n\n this._objects.unshift(object);\n }\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 bringToFront(object) {\n if (!object) {\n return this;\n }\n\n var activeSelection = this._activeObject,\n i,\n obj,\n objs;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n\n this._objects.push(obj);\n }\n } else {\n removeFromArray(this._objects, object);\n\n this._objects.push(object);\n }\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 sendBackwards(object, intersecting) {\n if (!object) {\n return this;\n }\n\n var activeSelection = this._activeObject,\n i,\n obj,\n idx,\n newIdx,\n objs,\n objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n\n if (idx > 0 + objsMoved) {\n newIdx = idx - 1;\n removeFromArray(this._objects, obj);\n\n this._objects.splice(newIdx, 0, obj);\n }\n\n objsMoved++;\n }\n } else {\n idx = this._objects.indexOf(object);\n\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\n this._objects.splice(newIdx, 0, object);\n }\n }\n\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewLowerIndex: function _findNewLowerIndex(object, idx, intersecting) {\n var newIdx, i;\n\n if (intersecting) {\n newIdx = idx; // traverse down the stack looking for the nearest intersecting object\n\n for (i = idx - 1; i >= 0; --i) {\n var isIntersecting = object.intersectsWithObject(this._objects[i]) || object.isContainedWithinObject(this._objects[i]) || this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\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 bringForward(object, intersecting) {\n if (!object) {\n return this;\n }\n\n var activeSelection = this._activeObject,\n i,\n obj,\n idx,\n newIdx,\n objs,\n objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n\n for (i = objs.length; i--;) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n\n if (idx < this._objects.length - 1 - objsMoved) {\n newIdx = idx + 1;\n removeFromArray(this._objects, obj);\n\n this._objects.splice(newIdx, 0, obj);\n }\n\n objsMoved++;\n }\n } else {\n idx = this._objects.indexOf(object);\n\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\n this._objects.splice(newIdx, 0, object);\n }\n }\n\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewUpperIndex: function _findNewUpperIndex(object, idx, intersecting) {\n var newIdx, i, len;\n\n if (intersecting) {\n newIdx = idx; // traverse up the stack looking for the nearest intersecting object\n\n for (i = idx + 1, len = this._objects.length; i < len; ++i) {\n var isIntersecting = object.intersectsWithObject(this._objects[i]) || object.isContainedWithinObject(this._objects[i]) || this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\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 moveTo(object, index) {\n removeFromArray(this._objects, object);\n\n this._objects.splice(index, 0, object);\n\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 dispose() {\n // cancel eventually ongoing renders\n if (this.isRendering) {\n fabric.util.cancelAnimFrame(this.isRendering);\n this.isRendering = 0;\n }\n\n this.forEachObject(function (object) {\n object.dispose && object.dispose();\n });\n this._objects = [];\n\n if (this.backgroundImage && this.backgroundImage.dispose) {\n this.backgroundImage.dispose();\n }\n\n this.backgroundImage = null;\n\n if (this.overlayImage && this.overlayImage.dispose) {\n this.overlayImage.dispose();\n }\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 toString() {\n return '#';\n }\n });\n extend(fabric.StaticCanvas.prototype, fabric.Observable);\n extend(fabric.StaticCanvas.prototype, fabric.Collection);\n extend(fabric.StaticCanvas.prototype, fabric.DataURLExporter);\n extend(fabric.StaticCanvas,\n /** @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 supports(methodName) {\n var el = createCanvasElement();\n\n if (!el || !el.getContext) {\n return null;\n }\n\n var ctx = el.getContext('2d');\n\n if (!ctx) {\n return null;\n }\n\n switch (methodName) {\n case 'setLineDash':\n return typeof ctx.setLineDash !== 'undefined';\n\n default:\n return null;\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', 'lockUniScaling']);\n * @example JSON without default values\n * canvas.includeDefaultValues = false;\n * var json = canvas.toJSON();\n */\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\n fabric.StaticCanvas.prototype.createJPEGStream = function (opts) {\n var impl = getNodeCanvas(this.lowerCanvasEl);\n return impl && impl.createJPEGStream(opts);\n };\n }\n})();\n/**\n * BaseBrush class\n * @class fabric.BaseBrush\n * @see {@link http://fabricjs.com/freedrawing|Freedrawing demo}\n */\n\n\nfabric.BaseBrush = fabric.util.createClass(\n/** @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 shadow of an object\n * @param {Object|String} [options] Options object or string (e.g. \"2px 2px 10px rgba(0,0,0,0.2)\")\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setShadow: function setShadow(options) {\n this.shadow = new fabric.Shadow(options);\n return this;\n },\n\n /**\n * Sets brush styles\n * @private\n */\n _setBrushStyles: function _setBrushStyles() {\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\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 _saveAndTransform(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 _setShadow() {\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\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 needsFullRender: function needsFullRender() {\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 _resetShadow() {\n var ctx = this.canvas.contextTop;\n ctx.shadowColor = '';\n ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0;\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,\n /** @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 initialize(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 _drawSegment(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 onMouseDown(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\n\n this._prepareForDrawing(pointer); // capture coordinates immediately\n // this allows to draw dots (when movement never occurs)\n\n\n this._captureDrawingPath(pointer);\n\n this._render();\n },\n\n /**\n * Inovoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function onMouseMove(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\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\n this._render();\n } else {\n var points = this._points,\n length = points.length,\n ctx = this.canvas.contextTop; // draw the curve update\n\n this._saveAndTransform(ctx);\n\n if (this.oldEnd) {\n ctx.beginPath();\n ctx.moveTo(this.oldEnd.x, this.oldEnd.y);\n }\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 onMouseUp(options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return true;\n }\n\n this.oldEnd = undefined;\n\n this._finalizeAndAddPath();\n\n return false;\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _prepareForDrawing: function _prepareForDrawing(pointer) {\n var p = new fabric.Point(pointer.x, pointer.y);\n\n this._reset();\n\n this._addPoint(p);\n\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 _addPoint(point) {\n if (this._points.length > 1 && point.eq(this._points[this._points.length - 1])) {\n return false;\n }\n\n this._points.push(point);\n\n return true;\n },\n\n /**\n * Clear points array and set contextTop canvas style.\n * @private\n */\n _reset: function _reset() {\n this._points = [];\n\n this._setBrushStyles();\n\n this._setShadow();\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _captureDrawingPath: function _captureDrawingPath(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 _render() {\n var ctx = this.canvas.contextTop,\n i,\n len,\n p1 = this._points[0],\n p2 = this._points[1];\n\n this._saveAndTransform(ctx);\n\n ctx.beginPath(); //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\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\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\n p1 = this._points[i];\n p2 = this._points[i + 1];\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\n\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 convertPointsToSVGPath(points) {\n var path = [],\n i,\n 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,\n multSignX = 1,\n multSignY = 0,\n 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\n path.push('M ', p1.x - multSignX * width, ' ', p1.y - multSignY * width, ' ');\n\n for (i = 1; i < len; i++) {\n if (!p1.eq(p2)) {\n var midPoint = p1.midPointFrom(p2); // p1 is our bezier control point\n // midpoint is our endpoint\n // start point is p(i-1) value.\n\n path.push('Q ', p1.x, ' ', p1.y, ' ', midPoint.x, ' ', midPoint.y, ' ');\n }\n\n p1 = points[i];\n\n if (i + 1 < points.length) {\n p2 = points[i + 1];\n }\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\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 createPath(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\n if (this.shadow) {\n this.shadow.affectStroke = true;\n path.setShadow(this.shadow);\n }\n\n return path;\n },\n\n /**\n * Decimate poins array with the decimate value\n */\n decimatePoints: function decimatePoints(points, distance) {\n if (points.length <= 2) {\n return points;\n }\n\n var zoom = this.canvas.getZoom(),\n adjustedDistance = Math.pow(distance / zoom, 2),\n i,\n l = points.length - 1,\n lastPoint = points[0],\n newPoints = [lastPoint],\n cDistance;\n\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\n if (cDistance >= adjustedDistance) {\n lastPoint = points[i];\n newPoints.push(lastPoint);\n }\n }\n\n if (newPoints.length === 1) {\n newPoints.push(new fabric.Point(newPoints[0].x, newPoints[0].y));\n }\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 _finalizeAndAddPath() {\n var ctx = this.canvas.contextTop;\n ctx.closePath();\n\n if (this.decimate) {\n this._points = this.decimatePoints(this._points, this.decimate);\n }\n\n var pathData = this.convertPointsToSVGPath(this._points).join('');\n\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.add(path);\n this.canvas.requestRenderAll();\n path.setCoords();\n\n this._resetShadow(); // fire event 'path' created\n\n\n this.canvas.fire('path:created', {\n path: path\n });\n }\n });\n})();\n/**\n * CircleBrush class\n * @class fabric.CircleBrush\n */\n\n\nfabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush,\n/** @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 initialize(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 drawDot(pointer) {\n var point = this.addPoint(pointer),\n ctx = this.canvas.contextTop;\n\n this._saveAndTransform(ctx);\n\n this.dot(ctx, point);\n ctx.restore();\n },\n dot: function dot(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 onMouseDown(pointer) {\n this.points.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n\n this._setShadow();\n\n this.drawDot(pointer);\n },\n\n /**\n * Render the full state of the brush\n * @private\n */\n _render: function _render() {\n var ctx = this.canvas.contextTop,\n i,\n len,\n points = this.points;\n\n this._saveAndTransform(ctx);\n\n for (i = 0, len = points.length; i < len; i++) {\n this.dot(ctx, points[i]);\n }\n\n ctx.restore();\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function onMouseMove(pointer) {\n if (this.needsFullRender()) {\n this.canvas.clearContext(this.canvas.contextTop);\n this.addPoint(pointer);\n\n this._render();\n } else {\n this.drawDot(pointer);\n }\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function onMouseUp() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove,\n i,\n len;\n this.canvas.renderOnAddRemove = false;\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 this.shadow && circle.setShadow(this.shadow);\n circles.push(circle);\n }\n\n var group = new fabric.Group(circles);\n group.canvas = this.canvas;\n this.canvas.add(group);\n this.canvas.fire('path:created', {\n path: group\n });\n this.canvas.clearContext(this.canvas.contextTop);\n\n this._resetShadow();\n\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 addPoint(pointer) {\n var pointerPoint = new fabric.Point(pointer.x, pointer.y),\n circleRadius = fabric.util.getRandomInt(Math.max(0, this.width - 20), this.width + 20) / 2,\n circleColor = new fabric.Color(this.color).setAlpha(fabric.util.getRandomInt(0, 100) / 100).toRgba();\n pointerPoint.radius = circleRadius;\n pointerPoint.fill = circleColor;\n this.points.push(pointerPoint);\n return pointerPoint;\n }\n});\n/**\n * SprayBrush class\n * @class fabric.SprayBrush\n */\n\nfabric.SprayBrush = fabric.util.createClass(fabric.BaseBrush,\n/** @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 initialize(canvas) {\n this.canvas = canvas;\n this.sprayChunks = [];\n },\n\n /**\n * Invoked on mouse down\n * @param {Object} pointer\n */\n onMouseDown: function onMouseDown(pointer) {\n this.sprayChunks.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n\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 onMouseMove(pointer) {\n this.addSprayChunk(pointer);\n this.render(this.sprayChunkPoints);\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function onMouseUp() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove;\n this.canvas.renderOnAddRemove = false;\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 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.setShadow(this.shadow);\n this.canvas.add(group);\n this.canvas.fire('path:created', {\n path: group\n });\n this.canvas.clearContext(this.canvas.contextTop);\n\n this._resetShadow();\n\n this.canvas.renderOnAddRemove = originalRenderOnAddRemove;\n this.canvas.requestRenderAll();\n },\n\n /**\n * @private\n * @param {Array} rects\n */\n _getOptimizedRects: function _getOptimizedRects(rects) {\n // avoid creating duplicate rects at the same coordinates\n var uniqueRects = {},\n key,\n i,\n len;\n\n for (i = 0, len = rects.length; i < len; i++) {\n key = rects[i].left + '' + rects[i].top;\n\n if (!uniqueRects[key]) {\n uniqueRects[key] = rects[i];\n }\n }\n\n var uniqueRectsArray = [];\n\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 render(sprayChunk) {\n var ctx = this.canvas.contextTop,\n i,\n 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\n if (typeof point.opacity !== 'undefined') {\n ctx.globalAlpha = point.opacity;\n }\n\n ctx.fillRect(point.x, point.y, point.width, point.width);\n }\n\n ctx.restore();\n },\n\n /**\n * Render all spray chunks\n */\n _render: function _render() {\n var ctx = this.canvas.contextTop,\n i,\n 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\n ctx.restore();\n },\n\n /**\n * @param {Object} pointer\n */\n addSprayChunk: function addSprayChunk(pointer) {\n this.sprayChunkPoints = [];\n var x,\n y,\n width,\n radius = this.width / 2,\n i;\n\n for (i = 0; i < this.density; i++) {\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( // bottom clamp width to 1\n Math.max(1, this.dotWidth - this.dotWidthVariance), this.dotWidth + this.dotWidthVariance);\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 * PatternBrush class\n * @class fabric.PatternBrush\n * @extends fabric.BaseBrush\n */\n\nfabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush,\n/** @lends fabric.PatternBrush.prototype */\n{\n getPatternSrc: function getPatternSrc() {\n var dotWidth = 20,\n dotDistance = 5,\n patternCanvas = fabric.util.createCanvasElement(),\n patternCtx = patternCanvas.getContext('2d');\n patternCanvas.width = patternCanvas.height = dotWidth + dotDistance;\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 return patternCanvas;\n },\n getPatternSrcFunction: function getPatternSrcFunction() {\n return String(this.getPatternSrc).replace('this.color', '\"' + this.color + '\"');\n },\n\n /**\n * Creates \"pattern\" instance property\n */\n getPattern: function getPattern() {\n return this.canvas.contextTop.createPattern(this.source || this.getPatternSrc(), 'repeat');\n },\n\n /**\n * Sets brush styles\n */\n _setBrushStyles: function _setBrushStyles() {\n this.callSuper('_setBrushStyles');\n this.canvas.contextTop.strokeStyle = this.getPattern();\n },\n\n /**\n * Creates path\n */\n createPath: function createPath(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(function () {\n var _getPointer = fabric.util.getPointer,\n degreesToRadians = fabric.util.degreesToRadians,\n radiansToDegrees = fabric.util.radiansToDegrees,\n atan2 = Math.atan2,\n abs = Math.abs,\n supportLineDash = fabric.StaticCanvas.supports('setLineDash'),\n STROKE_OFFSET = 0.5;\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: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 * @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 * @fires object:selected this event is deprecated. use selection:created\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 */\n\n fabric.Canvas = fabric.util.createClass(fabric.StaticCanvas,\n /** @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 initialize(el, options) {\n options || (options = {});\n this.renderAndResetBound = this.renderAndReset.bind(this);\n this.requestRenderAllBound = this.requestRenderAll.bind(this);\n\n this._initStatic(el, options);\n\n this._initInteractive();\n\n this._createCacheCanvas();\n },\n\n /**\n * When true, objects can be transformed by one side (unproportionally)\n * @type Boolean\n * @default\n */\n uniScaleTransform: false,\n\n /**\n * Indicates which key enable unproportional 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 feature disabled.\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)',\n // 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 when hovering over canvas. This can be used to improve performance.\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 _initInteractive() {\n this._currentTransform = null;\n this._groupSelector = null;\n\n this._initWrapperElement();\n\n this._createUpperCanvas();\n\n this._initEventListeners();\n\n this._initRetinaScaling();\n\n this.freeDrawingBrush = fabric.PencilBrush && new fabric.PencilBrush(this);\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 _chooseObjectsToRender() {\n var activeObjects = this.getActiveObjects(),\n object,\n objsToRender,\n activeGroupObjects;\n\n if (activeObjects.length > 0 && !this.preserveObjectStacking) {\n objsToRender = [];\n activeGroupObjects = [];\n\n for (var i = 0, length = this._objects.length; i < length; i++) {\n object = this._objects[i];\n\n if (activeObjects.indexOf(object) === -1) {\n objsToRender.push(object);\n } else {\n activeGroupObjects.push(object);\n }\n }\n\n if (activeObjects.length > 1) {\n this._activeObject._objects = activeGroupObjects;\n }\n\n objsToRender.push.apply(objsToRender, activeGroupObjects);\n } else {\n objsToRender = this._objects;\n }\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 renderAll() {\n if (this.contextTopDirty && !this._groupSelector && !this.isDrawingMode) {\n this.clearContext(this.contextTop);\n this.contextTopDirty = false;\n }\n\n if (this.hasLostContext) {\n this.renderTopLayer(this.contextTop);\n }\n\n var canvasToDrawOn = this.contextContainer;\n this.renderCanvas(canvasToDrawOn, this._chooseObjectsToRender());\n return this;\n },\n renderTopLayer: function renderTopLayer(ctx) {\n ctx.save();\n\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this.freeDrawingBrush && this.freeDrawingBrush._render();\n this.contextTopDirty = true;\n } // we render the top context - last object\n\n\n if (this.selection && this._groupSelector) {\n this._drawSelection(ctx);\n\n this.contextTopDirty = true;\n }\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 renderTop() {\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 * Resets the current transform to its original values and chooses the type of resizing based on the event\n * @private\n */\n _resetCurrentTransform: function _resetCurrentTransform() {\n var t = this._currentTransform;\n t.target.set({\n scaleX: t.original.scaleX,\n scaleY: t.original.scaleY,\n skewX: t.original.skewX,\n skewY: t.original.skewY,\n left: t.original.left,\n top: t.original.top\n });\n\n if (this._shouldCenterTransform(t.target)) {\n if (t.originX !== 'center') {\n if (t.originX === 'right') {\n t.mouseXSign = -1;\n } else {\n t.mouseXSign = 1;\n }\n }\n\n if (t.originY !== 'center') {\n if (t.originY === 'bottom') {\n t.mouseYSign = -1;\n } else {\n t.mouseYSign = 1;\n }\n }\n\n t.originX = 'center';\n t.originY = 'center';\n } else {\n t.originX = t.original.originX;\n t.originY = t.original.originY;\n }\n },\n\n /**\n * Checks if point is contained within an area of given object\n * @param {Event} e Event object\n * @param {fabric.Object} target Object to test against\n * @param {Object} [point] x,y object of point coordinates we want to check.\n * @return {Boolean} true if point is contained within an area of given object\n */\n containsPoint: function containsPoint(e, target, point) {\n var ignoreZoom = true,\n pointer = point || this.getPointer(e, ignoreZoom),\n xy;\n\n if (target.group && target.group === this._activeObject && target.group.type === 'activeSelection') {\n xy = this._normalizePointer(target.group, pointer);\n } else {\n xy = {\n x: pointer.x,\n y: pointer.y\n };\n } // http://www.geog.ubc.ca/courses/klink/gis.notes/ncgia/u32.html\n // http://idav.ucdavis.edu/~okreylos/TAship/Spring2000/PointInPolygon.html\n\n\n return target.containsPoint(xy) || target._findTargetCorner(pointer);\n },\n\n /**\n * @private\n */\n _normalizePointer: function _normalizePointer(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 isTargetTransparent(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, {\n x: x,\n y: y\n }),\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(target._cacheContext, Math.round(targetRelativeX), Math.round(targetRelativeY), this.targetFindTolerance);\n return isTransparent;\n }\n\n var ctx = this.contextCache,\n originalColor = target.selectionBackgroundColor,\n v = this.viewportTransform;\n target.selectionBackgroundColor = '';\n this.clearContext(ctx);\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 target === this._activeObject && target._renderControls(ctx, {\n hasBorders: false,\n transparentCorners: false\n }, {\n hasBorders: false\n });\n target.selectionBackgroundColor = originalColor;\n var isTransparent = fabric.util.isTransparent(ctx, x, y, this.targetFindTolerance);\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 _isSelectionKeyPressed(e) {\n var selectionKeyPressed = false;\n\n if (Object.prototype.toString.call(this.selectionKey) === '[object Array]') {\n selectionKeyPressed = !!this.selectionKey.find(function (key) {\n 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 _shouldClearSelection(e, target) {\n var activeObjects = this.getActiveObjects(),\n activeObject = this._activeObject;\n return !target || target && activeObject && activeObjects.length > 1 && activeObjects.indexOf(target) === -1 && activeObject !== target && !this._isSelectionKeyPressed(e) || target && !target.evented || target && !target.selectable && activeObject && activeObject !== target;\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 * @private\n * @param {fabric.Object} target\n */\n _shouldCenterTransform: function _shouldCenterTransform(target) {\n if (!target) {\n return;\n }\n\n var t = this._currentTransform,\n centerTransform;\n\n if (t.action === 'scale' || t.action === 'scaleX' || t.action === 'scaleY') {\n centerTransform = this.centeredScaling || target.centeredScaling;\n } else if (t.action === 'rotate') {\n centerTransform = this.centeredRotation || target.centeredRotation;\n }\n\n return centerTransform ? !t.altKey : t.altKey;\n },\n\n /**\n * @private\n */\n _getOriginFromCorner: function _getOriginFromCorner(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 } 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 } else if (corner === 'bl' || corner === 'mb' || corner === 'br') {\n origin.y = 'top';\n }\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 _getActionFromCorner(alreadySelected, corner, e\n /* target */\n ) {\n if (!corner || !alreadySelected) {\n return 'drag';\n }\n\n switch (corner) {\n case 'mtr':\n return 'rotate';\n\n case 'ml':\n case 'mr':\n return e[this.altActionKey] ? 'skewY' : 'scaleX';\n\n case 'mt':\n case 'mb':\n return e[this.altActionKey] ? 'skewX' : 'scaleY';\n\n default:\n return 'scale';\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _setupCurrentTransform: function _setupCurrentTransform(e, target, alreadySelected) {\n if (!target) {\n return;\n }\n\n var pointer = this.getPointer(e),\n corner = target._findTargetCorner(this.getPointer(e, true)),\n action = this._getActionFromCorner(alreadySelected, corner, e, target),\n origin = this._getOriginFromCorner(target, corner);\n\n this._currentTransform = {\n target: target,\n action: action,\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 usefull 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 mouseXSign: 1,\n mouseYSign: 1,\n shiftKey: e.shiftKey,\n altKey: e[this.centeredKey],\n original: fabric.util.saveObjectTransform(target)\n };\n this._currentTransform.original.originX = origin.x;\n this._currentTransform.original.originY = origin.y;\n\n this._resetCurrentTransform();\n\n this._beforeTransform(e);\n },\n\n /**\n * Translates object by \"setting\" its left/top\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @return {Boolean} true if the translation occurred\n */\n _translateObject: function _translateObject(x, y) {\n var transform = this._currentTransform,\n target = transform.target,\n newLeft = x - transform.offsetX,\n newTop = y - transform.offsetY,\n moveX = !target.get('lockMovementX') && target.left !== newLeft,\n moveY = !target.get('lockMovementY') && target.top !== newTop;\n moveX && target.set('left', newLeft);\n moveY && target.set('top', newTop);\n return moveX || moveY;\n },\n\n /**\n * Check if we are increasing a positive skew or lower it,\n * checking mouse direction and pressed corner.\n * @private\n */\n _changeSkewTransformOrigin: function _changeSkewTransformOrigin(mouseMove, t, by) {\n var property = 'originX',\n origins = {\n 0: 'center'\n },\n skew = t.target.skewX,\n originA = 'left',\n originB = 'right',\n corner = t.corner === 'mt' || t.corner === 'ml' ? 1 : -1,\n flipSign = 1;\n mouseMove = mouseMove > 0 ? 1 : -1;\n\n if (by === 'y') {\n skew = t.target.skewY;\n originA = 'top';\n originB = 'bottom';\n property = 'originY';\n }\n\n origins[-1] = originA;\n origins[1] = originB;\n t.target.flipX && (flipSign *= -1);\n t.target.flipY && (flipSign *= -1);\n\n if (skew === 0) {\n t.skewSign = -corner * mouseMove * flipSign;\n t[property] = origins[-mouseMove];\n } else {\n skew = skew > 0 ? 1 : -1;\n t.skewSign = skew;\n t[property] = origins[skew * corner * flipSign];\n }\n },\n\n /**\n * Skew object by mouse events\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @param {String} by Either 'x' or 'y'\n * @return {Boolean} true if the skewing occurred\n */\n _skewObject: function _skewObject(x, y, by) {\n var t = this._currentTransform,\n target = t.target,\n skewed = false,\n lockSkewingX = target.get('lockSkewingX'),\n lockSkewingY = target.get('lockSkewingY');\n\n if (lockSkewingX && by === 'x' || lockSkewingY && by === 'y') {\n return false;\n } // Get the constraint point\n\n\n var center = target.getCenterPoint(),\n actualMouseByCenter = target.toLocalPoint(new fabric.Point(x, y), 'center', 'center')[by],\n lastMouseByCenter = target.toLocalPoint(new fabric.Point(t.lastX, t.lastY), 'center', 'center')[by],\n actualMouseByOrigin,\n constraintPosition,\n dim = target._getTransformedDimensions();\n\n this._changeSkewTransformOrigin(actualMouseByCenter - lastMouseByCenter, t, by);\n\n actualMouseByOrigin = target.toLocalPoint(new fabric.Point(x, y), t.originX, t.originY)[by];\n constraintPosition = target.translateToOriginPoint(center, t.originX, t.originY); // Actually skew the object\n\n skewed = this._setObjectSkew(actualMouseByOrigin, t, by, dim);\n t.lastX = x;\n t.lastY = y; // Make sure the constraints apply\n\n target.setPositionByOrigin(constraintPosition, t.originX, t.originY);\n return skewed;\n },\n\n /**\n * Set object skew\n * @private\n * @return {Boolean} true if the skewing occurred\n */\n _setObjectSkew: function _setObjectSkew(localMouse, transform, by, _dim) {\n var target = transform.target,\n newValue,\n skewed = false,\n skewSign = transform.skewSign,\n newDim,\n dimNoSkew,\n otherBy,\n _otherBy,\n _by,\n newDimMouse,\n skewX,\n skewY;\n\n if (by === 'x') {\n otherBy = 'y';\n _otherBy = 'Y';\n _by = 'X';\n skewX = 0;\n skewY = target.skewY;\n } else {\n otherBy = 'x';\n _otherBy = 'X';\n _by = 'Y';\n skewX = target.skewX;\n skewY = 0;\n }\n\n dimNoSkew = target._getTransformedDimensions(skewX, skewY);\n newDimMouse = 2 * Math.abs(localMouse) - dimNoSkew[by];\n\n if (newDimMouse <= 2) {\n newValue = 0;\n } else {\n newValue = skewSign * Math.atan(newDimMouse / target['scale' + _by] / (dimNoSkew[otherBy] / target['scale' + _otherBy]));\n newValue = fabric.util.radiansToDegrees(newValue);\n }\n\n skewed = target['skew' + _by] !== newValue;\n target.set('skew' + _by, newValue);\n\n if (target['skew' + _otherBy] !== 0) {\n newDim = target._getTransformedDimensions();\n newValue = _dim[otherBy] / newDim[otherBy] * target['scale' + _otherBy];\n target.set('scale' + _otherBy, newValue);\n }\n\n return skewed;\n },\n\n /**\n * Scales object by invoking its scaleX/scaleY methods\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @param {String} by Either 'x' or 'y' - specifies dimension constraint by which to scale an object.\n * When not provided, an object is scaled by both dimensions equally\n * @return {Boolean} true if the scaling occurred\n */\n _scaleObject: function _scaleObject(x, y, by) {\n var t = this._currentTransform,\n target = t.target,\n lockScalingX = target.lockScalingX,\n lockScalingY = target.lockScalingY,\n lockScalingFlip = target.lockScalingFlip;\n\n if (lockScalingX && lockScalingY) {\n return false;\n } // Get the constraint point\n\n\n var constraintPosition = target.translateToOriginPoint(target.getCenterPoint(), t.originX, t.originY),\n localMouse = target.toLocalPoint(new fabric.Point(x, y), t.originX, t.originY),\n dim = target._getTransformedDimensions(),\n scaled = false;\n\n this._setLocalMouse(localMouse, t); // Actually scale the object\n\n\n scaled = this._setObjectScale(localMouse, t, lockScalingX, lockScalingY, by, lockScalingFlip, dim); // Make sure the constraints apply\n\n target.setPositionByOrigin(constraintPosition, t.originX, t.originY);\n return scaled;\n },\n\n /**\n * @private\n * @return {Boolean} true if the scaling occurred\n */\n _setObjectScale: function _setObjectScale(localMouse, transform, lockScalingX, lockScalingY, by, lockScalingFlip, _dim) {\n var target = transform.target,\n forbidScalingX = false,\n forbidScalingY = false,\n scaled = false,\n scaleX = localMouse.x * target.scaleX / _dim.x,\n scaleY = localMouse.y * target.scaleY / _dim.y,\n changeX = target.scaleX !== scaleX,\n changeY = target.scaleY !== scaleY;\n transform.newScaleX = scaleX;\n transform.newScaleY = scaleY;\n\n if (fabric.Textbox && by === 'x' && target instanceof fabric.Textbox) {\n var w = target.width * (localMouse.x / _dim.x);\n\n if (w >= target.getMinWidth()) {\n scaled = w !== target.width;\n target.set('width', w);\n return scaled;\n }\n\n return false;\n }\n\n if (lockScalingFlip && scaleX <= 0 && scaleX < target.scaleX) {\n forbidScalingX = true;\n localMouse.x = 0;\n }\n\n if (lockScalingFlip && scaleY <= 0 && scaleY < target.scaleY) {\n forbidScalingY = true;\n localMouse.y = 0;\n }\n\n if (by === 'equally' && !lockScalingX && !lockScalingY) {\n scaled = this._scaleObjectEqually(localMouse, target, transform, _dim);\n } else if (!by) {\n forbidScalingX || lockScalingX || target.set('scaleX', scaleX) && (scaled = scaled || changeX);\n forbidScalingY || lockScalingY || target.set('scaleY', scaleY) && (scaled = scaled || changeY);\n } else if (by === 'x' && !target.get('lockUniScaling')) {\n forbidScalingX || lockScalingX || target.set('scaleX', scaleX) && (scaled = changeX);\n } else if (by === 'y' && !target.get('lockUniScaling')) {\n forbidScalingY || lockScalingY || target.set('scaleY', scaleY) && (scaled = changeY);\n }\n\n forbidScalingX || forbidScalingY || this._flipObject(transform, by);\n return scaled;\n },\n\n /**\n * @private\n * @return {Boolean} true if the scaling occurred\n */\n _scaleObjectEqually: function _scaleObjectEqually(localMouse, target, transform, _dim) {\n var dist = localMouse.y + localMouse.x,\n lastDist = _dim.y * transform.original.scaleY / target.scaleY + _dim.x * transform.original.scaleX / target.scaleX,\n scaled,\n signX = localMouse.x < 0 ? -1 : 1,\n signY = localMouse.y < 0 ? -1 : 1,\n newScaleX,\n newScaleY; // We use transform.scaleX/Y instead of target.scaleX/Y\n // because the object may have a min scale and we'll loose the proportions\n\n newScaleX = signX * Math.abs(transform.original.scaleX * dist / lastDist);\n newScaleY = signY * Math.abs(transform.original.scaleY * dist / lastDist);\n scaled = newScaleX !== target.scaleX || newScaleY !== target.scaleY;\n target.set('scaleX', newScaleX);\n target.set('scaleY', newScaleY);\n return scaled;\n },\n\n /**\n * @private\n */\n _flipObject: function _flipObject(transform, by) {\n if (transform.newScaleX < 0 && by !== 'y') {\n if (transform.originX === 'left') {\n transform.originX = 'right';\n } else if (transform.originX === 'right') {\n transform.originX = 'left';\n }\n }\n\n if (transform.newScaleY < 0 && by !== 'x') {\n if (transform.originY === 'top') {\n transform.originY = 'bottom';\n } else if (transform.originY === 'bottom') {\n transform.originY = 'top';\n }\n }\n },\n\n /**\n * @private\n */\n _setLocalMouse: function _setLocalMouse(localMouse, t) {\n var target = t.target,\n zoom = this.getZoom(),\n padding = target.padding / zoom;\n\n if (t.originX === 'right') {\n localMouse.x *= -1;\n } else if (t.originX === 'center') {\n localMouse.x *= t.mouseXSign * 2;\n\n if (localMouse.x < 0) {\n t.mouseXSign = -t.mouseXSign;\n }\n }\n\n if (t.originY === 'bottom') {\n localMouse.y *= -1;\n } else if (t.originY === 'center') {\n localMouse.y *= t.mouseYSign * 2;\n\n if (localMouse.y < 0) {\n t.mouseYSign = -t.mouseYSign;\n }\n } // adjust the mouse coordinates when dealing with padding\n\n\n if (abs(localMouse.x) > padding) {\n if (localMouse.x < 0) {\n localMouse.x += padding;\n } else {\n localMouse.x -= padding;\n }\n } else {\n // mouse is within the padding, set to 0\n localMouse.x = 0;\n }\n\n if (abs(localMouse.y) > padding) {\n if (localMouse.y < 0) {\n localMouse.y += padding;\n } else {\n localMouse.y -= padding;\n }\n } else {\n localMouse.y = 0;\n }\n },\n\n /**\n * Rotates object by invoking its rotate method\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @return {Boolean} true if the rotation occurred\n */\n _rotateObject: function _rotateObject(x, y) {\n var t = this._currentTransform,\n target = t.target,\n constraintPosition,\n constraintPosition = target.translateToOriginPoint(target.getCenterPoint(), t.originX, t.originY);\n\n if (target.lockRotation) {\n return false;\n }\n\n var lastAngle = atan2(t.ey - constraintPosition.y, t.ex - constraintPosition.x),\n curAngle = atan2(y - constraintPosition.y, x - constraintPosition.x),\n angle = radiansToDegrees(curAngle - lastAngle + t.theta),\n hasRotated = true;\n\n if (target.snapAngle > 0) {\n var snapAngle = target.snapAngle,\n snapThreshold = target.snapThreshold || snapAngle,\n rightAngleLocked = Math.ceil(angle / snapAngle) * snapAngle,\n leftAngleLocked = Math.floor(angle / snapAngle) * snapAngle;\n\n if (Math.abs(angle - leftAngleLocked) < snapThreshold) {\n angle = leftAngleLocked;\n } else if (Math.abs(angle - rightAngleLocked) < snapThreshold) {\n angle = rightAngleLocked;\n }\n } // normalize angle to positive value\n\n\n if (angle < 0) {\n angle = 360 + angle;\n }\n\n angle %= 360;\n\n if (target.angle === angle) {\n hasRotated = false;\n } else {\n // rotation only happen here\n target.angle = angle; // Make sure the constraints apply\n\n target.setPositionByOrigin(constraintPosition, t.originX, t.originY);\n }\n\n return hasRotated;\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 setCursor(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 _drawSelection(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 ctx.fillRect(groupSelector.ex - (left > 0 ? 0 : -left), groupSelector.ey - (top > 0 ? 0 : -top), aleft, atop);\n }\n\n if (!this.selectionLineWidth || !this.selectionBorderColor) {\n return;\n }\n\n ctx.lineWidth = this.selectionLineWidth;\n ctx.strokeStyle = this.selectionBorderColor; // selection border\n\n if (this.selectionDashArray.length > 1 && !supportLineDash) {\n var px = groupSelector.ex + STROKE_OFFSET - (left > 0 ? 0 : aleft),\n py = groupSelector.ey + STROKE_OFFSET - (top > 0 ? 0 : atop);\n ctx.beginPath();\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 ctx.closePath();\n ctx.stroke();\n } else {\n fabric.Object.prototype._setLineDash.call(this, ctx, this.selectionDashArray);\n\n ctx.strokeRect(groupSelector.ex + STROKE_OFFSET - (left > 0 ? 0 : aleft), groupSelector.ey + STROKE_OFFSET - (top > 0 ? 0 : atop), aleft, atop);\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 findTarget(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,\n activeTargetSubs; // 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\n this.targets = [];\n\n if (aObjects.length > 1 && !skipGroup && activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n return activeObject;\n } // if we hit the corner of an activeObject, let's return that.\n\n\n if (aObjects.length === 1 && activeObject._findTargetCorner(pointer)) {\n return activeObject;\n }\n\n if (aObjects.length === 1 && activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n if (!this.preserveObjectStacking) {\n return activeObject;\n } else {\n activeTarget = activeObject;\n activeTargetSubs = this.targets;\n this.targets = [];\n }\n }\n\n var target = this._searchPossibleTargets(this._objects, pointer);\n\n if (e[this.altSelectionKey] && target && activeTarget && target !== activeTarget) {\n target = activeTarget;\n this.targets = activeTargetSubs;\n }\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 _checkTarget(pointer, obj, globalPointer) {\n if (obj && obj.visible && obj.evented && this.containsPoint(null, obj, pointer)) {\n if ((this.perPixelTargetFind || obj.perPixelTargetFind) && !obj.isEditing) {\n var isTransparent = this.isTargetTransparent(obj, globalPointer.x, globalPointer.y);\n\n if (!isTransparent) {\n return true;\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 _searchPossibleTargets(objects, pointer) {\n // Cache all targets where their bounding box contains point.\n var target,\n i = objects.length,\n subTarget; // 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\n while (i--) {\n var objToCheck = objects[i];\n var pointerToUse = objToCheck.group && objToCheck.group.type !== 'activeSelection' ? this._normalizePointer(objToCheck.group, pointer) : pointer;\n\n if (this._checkTarget(pointerToUse, objToCheck, pointer)) {\n target = objects[i];\n\n if (target.subTargetCheck && target instanceof fabric.Group) {\n subTarget = this._searchPossibleTargets(target._objects, pointer);\n subTarget && this.targets.push(subTarget);\n }\n\n break;\n }\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 restorePointerVpt(pointer) {\n return fabric.util.transformPoint(pointer, fabric.util.invertTransform(this.viewportTransform));\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 getPointer(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\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\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\n if (!ignoreZoom) {\n pointer = this.restorePointerVpt(pointer);\n }\n\n var retinaScaling = this.getRetinaScaling();\n\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 = {\n width: 1,\n 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 _createUpperCanvas() {\n var lowerCanvasClass = this.lowerCanvasEl.className.replace(/\\s*lower-canvas\\s*/, ''),\n lowerCanvasEl = this.lowerCanvasEl,\n upperCanvasEl = this.upperCanvasEl; // there is no need to create a new upperCanvas element if we have already one.\n\n if (upperCanvasEl) {\n upperCanvasEl.className = '';\n } else {\n upperCanvasEl = this._createCanvasElement();\n this.upperCanvasEl = upperCanvasEl;\n }\n\n fabric.util.addClass(upperCanvasEl, 'upper-canvas ' + lowerCanvasClass);\n this.wrapperEl.appendChild(upperCanvasEl);\n\n this._copyCanvasStyle(lowerCanvasEl, upperCanvasEl);\n\n this._applyCanvasStyle(upperCanvasEl);\n\n this.contextTop = upperCanvasEl.getContext('2d');\n },\n\n /**\n * @private\n */\n _createCacheCanvas: function _createCacheCanvas() {\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 _initWrapperElement() {\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 _applyCanvasStyle(element) {\n var width = this.width || element.width,\n height = this.height || element.height;\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 _copyCanvasStyle(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 getSelectionContext() {\n return this.contextTop;\n },\n\n /**\n * Returns <canvas> element on which object selection is drawn\n * @return {HTMLCanvasElement}\n */\n getSelectionElement: function getSelectionElement() {\n return this.upperCanvasEl;\n },\n\n /**\n * Returns currently active object\n * @return {fabric.Object} active object\n */\n getActiveObject: function getActiveObject() {\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 getActiveObjects() {\n var active = this._activeObject;\n\n if (active) {\n if (active.type === 'activeSelection' && active._objects) {\n return active._objects.slice(0);\n } else {\n return [active];\n }\n }\n\n return [];\n },\n\n /**\n * @private\n * @param {fabric.Object} obj Object that was removed\n */\n _onObjectRemoved: function _onObjectRemoved(obj) {\n // removing active object should fire \"selection:cleared\" events\n if (obj === this._activeObject) {\n this.fire('before:selection:cleared', {\n target: obj\n });\n\n this._discardActiveObject();\n\n this.fire('selection:cleared', {\n target: obj\n });\n obj.fire('deselected');\n }\n\n if (obj === this._hoveredTarget) {\n this._hoveredTarget = null;\n this._hoveredTargets = [];\n }\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 _fireSelectionEvents(oldObjects, e) {\n var somethingChanged = false,\n objects = this.getActiveObjects(),\n added = [],\n removed = [],\n opt = {\n e: e\n };\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\n if (oldObjects.length > 0 && objects.length > 0) {\n opt.selected = added;\n opt.deselected = removed; // added for backward compatibility\n\n opt.updated = added[0] || removed[0];\n opt.target = this._activeObject;\n somethingChanged && this.fire('selection:updated', opt);\n } else if (objects.length > 0) {\n // deprecated event\n if (objects.length === 1) {\n opt.target = added[0];\n this.fire('object:selected', opt);\n }\n\n opt.selected = added; // added for backward compatibility\n\n opt.target = this._activeObject;\n this.fire('selection:created', opt);\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 setActiveObject(object, e) {\n var currentActives = this.getActiveObjects();\n\n this._setActiveObject(object, e);\n\n this._fireSelectionEvents(currentActives, e);\n\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 _setActiveObject(object, e) {\n if (this._activeObject === object) {\n return false;\n }\n\n if (!this._discardActiveObject(e, object)) {\n return false;\n }\n\n if (object.onSelect({\n e: e\n })) {\n return false;\n }\n\n this._activeObject = object;\n return true;\n },\n\n /**\n * @private\n */\n _discardActiveObject: function _discardActiveObject(e, object) {\n var obj = this._activeObject;\n\n if (obj) {\n // onDeselect return TRUE to cancel selection;\n if (obj.onDeselect({\n e: e,\n object: object\n })) {\n return false;\n }\n\n this._activeObject = null;\n }\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 discardActiveObject(e) {\n var currentActives = this.getActiveObjects(),\n activeObject = this.getActiveObject();\n\n if (currentActives.length) {\n this.fire('before:selection:cleared', {\n target: activeObject,\n e: e\n });\n }\n\n this._discardActiveObject(e);\n\n this._fireSelectionEvents(currentActives, e);\n\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 dispose() {\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\n if (wrapper.parentNode) {\n wrapper.parentNode.replaceChild(this.lowerCanvasEl, this.wrapperEl);\n }\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 clear() {\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 drawControls(ctx) {\n var activeObject = this._activeObject;\n\n if (activeObject) {\n activeObject._renderControls(ctx);\n }\n },\n\n /**\n * @private\n */\n _toObject: function _toObject(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); //Undo the damage we did by changing all of its properties\n\n\n this._unwindGroupTransformOnObject(instance, originalProperties);\n\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 _realizeGroupTransformOnObject(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']; //Copy all the positionally relevant properties across now\n\n var originalValues = {};\n layoutProps.forEach(function (prop) {\n originalValues[prop] = instance[prop];\n });\n\n this._activeObject.realizeTransform(instance);\n\n return originalValues;\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 _unwindGroupTransformOnObject(instance, originalValues) {\n if (originalValues) {\n instance.set(originalValues);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function _setSVGObject(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\n this.callSuper('_setSVGObject', markup, instance, reviver);\n\n this._unwindGroupTransformOnObject(instance, originalProperties);\n },\n setViewportTransform: function setViewportTransform(vpt) {\n if (this.renderOnAddRemove && this._activeObject && this._activeObject.isEditing) {\n this._activeObject.clearContextTop();\n }\n\n fabric.StaticCanvas.prototype.setViewportTransform.call(this, vpt);\n }\n }); // copying static properties manually to work around Opera's bug,\n // where \"prototype\" property is enumerable and overrides existing prototype\n\n for (var prop in fabric.StaticCanvas) {\n if (prop !== 'prototype') {\n fabric.Canvas[prop] = fabric.StaticCanvas[prop];\n }\n }\n})();\n\n(function () {\n var cursorOffset = {\n mt: 0,\n // n\n tr: 1,\n // ne\n mr: 2,\n // e\n br: 3,\n // se\n mb: 4,\n // s\n bl: 5,\n // sw\n ml: 6,\n // w\n tl: 7 // nw\n\n },\n addListener = fabric.util.addListener,\n removeListener = fabric.util.removeListener,\n RIGHT_CLICK = 3,\n MIDDLE_CLICK = 2,\n LEFT_CLICK = 1,\n addEventOptions = {\n passive: false\n };\n\n function checkClick(e, value) {\n return e.button && e.button === value - 1;\n }\n\n fabric.util.object.extend(fabric.Canvas.prototype,\n /** @lends fabric.Canvas.prototype */\n {\n /**\n * Map of cursor style values for each of the object controls\n * @private\n */\n cursorMap: ['n-resize', 'ne-resize', 'e-resize', 'se-resize', 's-resize', 'sw-resize', 'w-resize', 'nw-resize'],\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 _initEventListeners() {\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\n this._bindEvents();\n\n this.addOrRemove(addListener, 'add');\n },\n\n /**\n * return an event prefix pointer or mouse.\n * @private\n */\n _getEventPrefix: function _getEventPrefix() {\n return this.enablePointerEvents ? 'pointer' : 'mouse';\n },\n addOrRemove: function addOrRemove(functor, eventjsFunctor) {\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n\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\n if (!this.enablePointerEvents) {\n functor(canvasElement, 'touchstart', this._onTouchStart, addEventOptions);\n }\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 removeListeners() {\n this.addOrRemove(removeListener, 'remove'); // if you dispose on a mouseDown, before mouse up, you need to clean document to...\n\n var eventTypePrefix = this._getEventPrefix();\n\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 _bindEvents() {\n if (this.eventsBound) {\n // for any reason we pass here twice we do not want to bind events twice.\n return;\n }\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 _onGesture(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 _onDrag(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 _onMouseWheel(e) {\n this.__onMouseWheel(e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseOut: function _onMouseOut(e) {\n var target = this._hoveredTarget;\n this.fire('mouse:out', {\n target: target,\n e: e\n });\n this._hoveredTarget = null;\n target && target.fire('mouseout', {\n e: e\n });\n\n var _this = this;\n\n this._hoveredTargets.forEach(function (_target) {\n _this.fire('mouse:out', {\n target: target,\n e: e\n });\n\n _target && target.fire('mouseout', {\n e: e\n });\n });\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 _onMouseEnter(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', {\n target: null,\n e: e\n });\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 _onOrientationChange(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 _onShake(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 _onLongPress(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 _onDragOver(e) {\n e.preventDefault();\n\n var target = this._simpleEventHandler('dragover', e);\n\n this._fireEnterLeaveEvents(target, e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onContextMenu: function _onContextMenu(e) {\n if (this.stopContextMenu) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n return false;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onDoubleClick: function _onDoubleClick(e) {\n this._cacheTransformEventData(e);\n\n this._handleEvent(e, 'dblclick');\n\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 getPointerId(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 _isMainEvent(evt) {\n if (evt.isPrimary === true) {\n return true;\n }\n\n if (evt.isPrimary === false) {\n return false;\n }\n\n if (evt.type === 'touchend' && evt.touches.length === 0) {\n return true;\n }\n\n if (evt.changedTouches) {\n return evt.changedTouches[0].identifier === this.mainTouchId;\n }\n\n return true;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onTouchStart: function _onTouchStart(e) {\n e.preventDefault();\n\n if (this.mainTouchId === null) {\n this.mainTouchId = this.getPointerId(e);\n }\n\n this.__onMouseDown(e);\n\n this._resetTransformEventData();\n\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n\n addListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n addListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions); // Unbind mousedown to prevent double triggers from touch devices\n\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 _onMouseDown(e) {\n this.__onMouseDown(e);\n\n this._resetTransformEventData();\n\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n\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 _onTouchEnd(e) {\n if (e.touches.length > 0) {\n // if there are still touches stop here\n return;\n }\n\n this.__onMouseUp(e);\n\n this._resetTransformEventData();\n\n this.mainTouchId = null;\n\n var eventTypePrefix = this._getEventPrefix();\n\n removeListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n removeListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n\n var _this = this;\n\n if (this._willAddMouseDown) {\n clearTimeout(this._willAddMouseDown);\n }\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 _onMouseUp(e) {\n this.__onMouseUp(e);\n\n this._resetTransformEventData();\n\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n\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 _onMouseMove(e) {\n !this.allowTouchScrolling && e.preventDefault && e.preventDefault();\n\n this.__onMouseMove(e);\n },\n\n /**\n * @private\n */\n _onResize: function _onResize() {\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 _shouldRender(target) {\n var activeObject = this._activeObject;\n\n if (!!activeObject !== !!target || activeObject && target && activeObject !== target) {\n // this covers: switch of target, from target to no target, selection of target\n // multiSelection with key and mouse\n return true;\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\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 __onMouseUp(e) {\n var target,\n transform = this._currentTransform,\n groupSelector = this._groupSelector,\n shouldRender = false,\n isClick = !groupSelector || groupSelector.left === 0 && groupSelector.top === 0;\n\n this._cacheTransformEventData(e);\n\n target = this._target;\n\n this._handleEvent(e, 'up:before'); // if right/middle click just fire events and return\n // target undefined will make the _handleEvent search the target\n\n\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'up', RIGHT_CLICK, isClick);\n }\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\n this._resetTransformEventData();\n\n return;\n }\n\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this._onMouseUpInDrawingMode(e);\n\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n if (transform) {\n this._finalizeCurrentTransform(e);\n\n shouldRender = transform.actionPerformed;\n }\n\n if (!isClick) {\n this._maybeGroupObjects(e);\n\n shouldRender || (shouldRender = this._shouldRender(target));\n }\n\n if (target) {\n target.isMoving = false;\n }\n\n this._setCursorFromEvent(e, target);\n\n this._handleEvent(e, 'up', LEFT_CLICK, isClick);\n\n this._groupSelector = null;\n this._currentTransform = null; // reset the target information about which corner is selected\n\n target && (target.__corner = 0);\n\n if (shouldRender) {\n this.requestRenderAll();\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 _simpleEventHandler(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\n if (!targets) {\n return target;\n }\n\n for (var i = 0; i < targets.length; i++) {\n targets[i].fire(eventType, options);\n }\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 _handleEvent(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 this.fire('mouse:' + eventType, options);\n target && target.fire('mouse' + eventType, options);\n\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 _finalizeCurrentTransform(e) {\n var transform = this._currentTransform,\n target = transform.target,\n eventName,\n options = {\n e: e,\n target: target,\n transform: transform\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 eventName = this._addEventOptions(options, transform);\n\n this._fire(eventName, options);\n }\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 * @param {Object} options to mutate\n * @param {Object} transform to inspect action from\n */\n _addEventOptions: function _addEventOptions(options, transform) {\n // we can probably add more details at low cost\n // scale change, rotation changes, translation changes\n var eventName, by;\n\n switch (transform.action) {\n case 'scaleX':\n eventName = 'scaled';\n by = 'x';\n break;\n\n case 'scaleY':\n eventName = 'scaled';\n by = 'y';\n break;\n\n case 'skewX':\n eventName = 'skewed';\n by = 'x';\n break;\n\n case 'skewY':\n eventName = 'skewed';\n by = 'y';\n break;\n\n case 'scale':\n eventName = 'scaled';\n by = 'equally';\n break;\n\n case 'rotate':\n eventName = 'rotated';\n break;\n\n case 'drag':\n eventName = 'moved';\n break;\n }\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 _onMouseDownInDrawingMode(e) {\n this._isCurrentlyDrawing = true;\n\n if (this.getActiveObject()) {\n this.discardActiveObject(e).requestRenderAll();\n }\n\n if (this.clipTo) {\n fabric.util.clipContext(this, this.contextTop);\n }\n\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseDown(pointer, {\n e: e,\n pointer: pointer\n });\n\n this._handleEvent(e, 'down');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n _onMouseMoveInDrawingMode: function _onMouseMoveInDrawingMode(e) {\n if (this._isCurrentlyDrawing) {\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseMove(pointer, {\n e: e,\n pointer: pointer\n });\n }\n\n this.setCursor(this.freeDrawingCursor);\n\n this._handleEvent(e, 'move');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n _onMouseUpInDrawingMode: function _onMouseUpInDrawingMode(e) {\n if (this.clipTo) {\n this.contextTop.restore();\n }\n\n var pointer = this.getPointer(e);\n this._isCurrentlyDrawing = this.freeDrawingBrush.onMouseUp({\n e: e,\n pointer: pointer\n });\n\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 __onMouseDown(e) {\n this._cacheTransformEventData(e);\n\n this._handleEvent(e, 'down:before');\n\n var target = this._target; // if right click just fire events\n\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'down', RIGHT_CLICK);\n }\n\n return;\n }\n\n if (checkClick(e, MIDDLE_CLICK)) {\n if (this.fireMiddleClick) {\n this._handleEvent(e, 'down', MIDDLE_CLICK);\n }\n\n return;\n }\n\n if (this.isDrawingMode) {\n this._onMouseDownInDrawingMode(e);\n\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n } // ignore if some object is being transformed at this moment\n\n\n if (this._currentTransform) {\n return;\n }\n\n var pointer = this._pointer; // save pointer for check in __onMouseUp event\n\n this._previousPointer = pointer;\n\n var shouldRender = this._shouldRender(target),\n shouldGroup = this._shouldGroup(e, target);\n\n if (this._shouldClearSelection(e, target)) {\n this.discardActiveObject(e);\n } else if (shouldGroup) {\n this._handleGrouping(e, target);\n\n target = this._activeObject;\n }\n\n if (this.selection && (!target || !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\n if (target.selectable) {\n this.setActiveObject(target, e);\n }\n\n if (target === this._activeObject && (target.__corner || !shouldGroup)) {\n this._setupCurrentTransform(e, target, alreadySelected);\n }\n }\n\n this._handleEvent(e, 'down'); // we must renderAll so that we update the visuals\n\n\n (shouldRender || shouldGroup) && this.requestRenderAll();\n },\n\n /**\n * reset cache form common information needed during event processing\n * @private\n */\n _resetTransformEventData: function _resetTransformEventData() {\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 _cacheTransformEventData(e) {\n // reset in order to avoid stale caching\n this._resetTransformEventData();\n\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 _beforeTransform(e) {\n var t = this._currentTransform;\n this.stateful && t.target.saveState();\n this.fire('before:transform', {\n e: e,\n transform: t\n }); // determine if it's a drag or rotate case\n\n if (t.corner) {\n this.onBeforeScaleRotate(t.target);\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 __onMouseMove(e) {\n this._handleEvent(e, 'move:before');\n\n this._cacheTransformEventData(e);\n\n var target, pointer;\n\n if (this.isDrawingMode) {\n this._onMouseMoveInDrawingMode(e);\n\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n var groupSelector = this._groupSelector; // We initially clicked in an empty area, so we draw a box for multiple selection\n\n if (groupSelector) {\n pointer = this._pointer;\n groupSelector.left = pointer.x - groupSelector.ex;\n groupSelector.top = pointer.y - groupSelector.ey;\n this.renderTop();\n } else if (!this._currentTransform) {\n target = this.findTarget(e) || null;\n\n this._setCursorFromEvent(e, target);\n\n this._fireOverOutEvents(target, e);\n } else {\n this._transformObject(e);\n }\n\n this._handleEvent(e, 'move');\n\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 _fireOverOutEvents(target, e) {\n var _hoveredTarget = this._hoveredTarget,\n _hoveredTargets = this._hoveredTargets,\n targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _hoveredTarget,\n evtOut: 'mouseout',\n canvasEvtOut: 'mouse:out',\n evtIn: 'mouseover',\n canvasEvtIn: 'mouse:over'\n });\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\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 _fireEnterLeaveEvents(target, e) {\n var _draggedoverTarget = this._draggedoverTarget,\n _hoveredTargets = this._hoveredTargets,\n targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _draggedoverTarget,\n evtOut: 'dragleave',\n evtIn: 'dragenter'\n });\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\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 fireSyntheticInOutEvents(target, e, config) {\n var inOpt,\n outOpt,\n oldTarget = config.oldTarget,\n outFires,\n inFires,\n targetChanged = oldTarget !== target,\n canvasEvtIn = config.canvasEvtIn,\n canvasEvtOut = config.canvasEvtOut;\n\n if (targetChanged) {\n inOpt = {\n e: e,\n target: target,\n previousTarget: oldTarget\n };\n outOpt = {\n e: e,\n target: oldTarget,\n nextTarget: target\n };\n }\n\n inFires = target && targetChanged;\n outFires = oldTarget && targetChanged;\n\n if (outFires) {\n canvasEvtOut && this.fire(canvasEvtOut, outOpt);\n oldTarget.fire(config.evtOut, outOpt);\n }\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 __onMouseWheel(e) {\n this._cacheTransformEventData(e);\n\n this._handleEvent(e, 'wheel');\n\n this._resetTransformEventData();\n },\n\n /**\n * @private\n * @param {Event} e Event fired on mousemove\n */\n _transformObject: function _transformObject(e) {\n var pointer = this.getPointer(e),\n transform = this._currentTransform;\n transform.reset = false;\n transform.target.isMoving = true;\n transform.shiftKey = e.shiftKey;\n transform.altKey = e[this.centeredKey];\n\n this._beforeScaleTransform(e, transform);\n\n this._performTransformAction(e, transform, pointer);\n\n transform.actionPerformed && this.requestRenderAll();\n },\n\n /**\n * @private\n */\n _performTransformAction: function _performTransformAction(e, transform, pointer) {\n var x = pointer.x,\n y = pointer.y,\n action = transform.action,\n actionPerformed = false,\n options = {\n target: transform.target,\n e: e,\n transform: transform,\n pointer: pointer\n };\n\n if (action === 'rotate') {\n (actionPerformed = this._rotateObject(x, y)) && this._fire('rotating', options);\n } else if (action === 'scale') {\n (actionPerformed = this._onScale(e, transform, x, y)) && this._fire('scaling', options);\n } else if (action === 'scaleX') {\n (actionPerformed = this._scaleObject(x, y, 'x')) && this._fire('scaling', options);\n } else if (action === 'scaleY') {\n (actionPerformed = this._scaleObject(x, y, 'y')) && this._fire('scaling', options);\n } else if (action === 'skewX') {\n (actionPerformed = this._skewObject(x, y, 'x')) && this._fire('skewing', options);\n } else if (action === 'skewY') {\n (actionPerformed = this._skewObject(x, y, 'y')) && this._fire('skewing', options);\n } else {\n actionPerformed = this._translateObject(x, y);\n\n if (actionPerformed) {\n this._fire('moving', options);\n\n this.setCursor(options.target.moveCursor || this.moveCursor);\n }\n }\n\n transform.actionPerformed = transform.actionPerformed || actionPerformed;\n },\n\n /**\n * @private\n */\n _fire: function _fire(eventName, options) {\n this.fire('object:' + eventName, options);\n options.target.fire(eventName, options);\n },\n\n /**\n * @private\n */\n _beforeScaleTransform: function _beforeScaleTransform(e, transform) {\n if (transform.action === 'scale' || transform.action === 'scaleX' || transform.action === 'scaleY') {\n var centerTransform = this._shouldCenterTransform(transform.target); // Switch from a normal resize to center-based\n\n\n if (centerTransform && (transform.originX !== 'center' || transform.originY !== 'center') || // Switch from center-based resize to normal one\n !centerTransform && transform.originX === 'center' && transform.originY === 'center') {\n this._resetCurrentTransform();\n\n transform.reset = true;\n }\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {Object} transform current transform\n * @param {Number} x mouse position x from origin\n * @param {Number} y mouse position y from origin\n * @return {Boolean} true if the scaling occurred\n */\n _onScale: function _onScale(e, transform, x, y) {\n if (this._isUniscalePossible(e, transform.target)) {\n transform.currentAction = 'scale';\n return this._scaleObject(x, y);\n } else {\n // Switch from a normal resize to proportional\n if (!transform.reset && transform.currentAction === 'scale') {\n this._resetCurrentTransform();\n }\n\n transform.currentAction = 'scaleEqually';\n return this._scaleObject(x, y, 'equally');\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target current target\n * @return {Boolean} true if unproportional scaling is possible\n */\n _isUniscalePossible: function _isUniscalePossible(e, target) {\n return (e[this.uniScaleKey] || this.uniScaleTransform) && !target.get('lockUniScaling');\n },\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 _setCursorFromEvent(e, target) {\n if (!target) {\n this.setCursor(this.defaultCursor);\n return false;\n }\n\n var hoverCursor = target.hoverCursor || this.hoverCursor,\n activeSelection = this._activeObject && this._activeObject.type === 'activeSelection' ? this._activeObject : null,\n // only show proper corner when group selection is not active\n corner = (!activeSelection || !activeSelection.contains(target)) && 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\n this.setCursor(hoverCursor);\n } else {\n this.setCursor(this.getCornerCursor(corner, target, e));\n }\n },\n\n /**\n * @private\n */\n getCornerCursor: function getCornerCursor(corner, target, e) {\n if (this.actionIsDisabled(corner, target, e)) {\n return this.notAllowedCursor;\n } else if (corner in cursorOffset) {\n return this._getRotatedCornerCursor(corner, target, e);\n } else if (corner === 'mtr' && target.hasRotatingPoint) {\n return this.rotationCursor;\n } else {\n return this.defaultCursor;\n }\n },\n actionIsDisabled: function actionIsDisabled(corner, target, e) {\n if (corner === 'mt' || corner === 'mb') {\n return e[this.altActionKey] ? target.lockSkewingX : target.lockScalingY;\n } else if (corner === 'ml' || corner === 'mr') {\n return e[this.altActionKey] ? target.lockSkewingY : target.lockScalingX;\n } else if (corner === 'mtr') {\n return target.lockRotation;\n } else {\n return this._isUniscalePossible(e, target) ? target.lockScalingX && target.lockScalingY : target.lockScalingX || target.lockScalingY;\n }\n },\n\n /**\n * @private\n */\n _getRotatedCornerCursor: function _getRotatedCornerCursor(corner, target, e) {\n var n = Math.round(target.angle % 360 / 45);\n\n if (n < 0) {\n n += 8; // full circle ahead\n }\n\n n += cursorOffset[corner];\n\n if (e[this.altActionKey] && cursorOffset[corner] % 2 === 0) {\n //if we are holding shift and we are on a mx corner...\n n += 2;\n } // normalize n to be from 0 to 7\n\n\n n %= 8;\n return this.cursorMap[n];\n }\n });\n})();\n\n(function () {\n var min = Math.min,\n max = Math.max;\n fabric.util.object.extend(fabric.Canvas.prototype,\n /** @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 _shouldGroup(e, target) {\n var activeObject = this._activeObject;\n return activeObject && this._isSelectionKeyPressed(e) && target && target.selectable && this.selection && (activeObject !== target || activeObject.type === 'activeSelection') && !target.onSelect({\n e: e\n });\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _handleGrouping: function _handleGrouping(e, target) {\n var activeObject = this._activeObject; // avoid multi select when shift click on a corner\n\n if (activeObject.__corner) {\n return;\n }\n\n if (target === activeObject) {\n // if it's a group, find target again, using activeGroup objects\n target = this.findTarget(e, true); // if even object is not found or we are on activeObjectCorner, bail out\n\n if (!target || !target.selectable) {\n return;\n }\n }\n\n if (activeObject && activeObject.type === 'activeSelection') {\n this._updateActiveSelection(target, e);\n } else {\n this._createActiveSelection(target, e);\n }\n },\n\n /**\n * @private\n */\n _updateActiveSelection: function _updateActiveSelection(target, e) {\n var activeSelection = this._activeObject,\n currentActiveObjects = activeSelection._objects.slice(0);\n\n if (activeSelection.contains(target)) {\n activeSelection.removeWithUpdate(target);\n this._hoveredTarget = target;\n this._hoveredTargets = this.targets.concat();\n\n if (activeSelection.size() === 1) {\n // activate last remaining object\n this._setActiveObject(activeSelection.item(0), e);\n }\n } else {\n activeSelection.addWithUpdate(target);\n this._hoveredTarget = activeSelection;\n this._hoveredTargets = this.targets.concat();\n }\n\n this._fireSelectionEvents(currentActiveObjects, e);\n },\n\n /**\n * @private\n */\n _createActiveSelection: function _createActiveSelection(target, e) {\n var currentActives = this.getActiveObjects(),\n group = this._createGroup(target);\n\n this._hoveredTarget = group; // ISSUE 4115: should we consider subTargets here?\n // this._hoveredTargets = [];\n // this._hoveredTargets = this.targets.concat();\n\n this._setActiveObject(group, e);\n\n this._fireSelectionEvents(currentActives, e);\n },\n\n /**\n * @private\n * @param {Object} target\n */\n _createGroup: function _createGroup(target) {\n var objects = this._objects,\n isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target),\n groupObjects = isActiveLower ? [this._activeObject, target] : [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 _groupSelectedObjects(e) {\n var group = this._collectObjects(e),\n aGroup; // do not create group for 1 element only\n\n\n if (group.length === 1) {\n this.setActiveObject(group[0], e);\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 _collectObjects(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; // we iterate reverse order to collect top first in case of click.\n\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) || currentObject.isContainedWithinRect(selectionX1Y1, selectionX2Y2) || allowIntersect && currentObject.containsPoint(selectionX1Y1) || allowIntersect && currentObject.containsPoint(selectionX2Y2)) {\n group.push(currentObject); // only add one object if it's a click\n\n if (isClick) {\n break;\n }\n }\n }\n\n if (group.length > 1) {\n group = group.filter(function (object) {\n return !object.onSelect({\n e: e\n });\n });\n }\n\n return group;\n },\n\n /**\n * @private\n */\n _maybeGroupObjects: function _maybeGroupObjects(e) {\n if (this.selection && this._groupSelector) {\n this._groupSelectedObjects(e);\n }\n\n this.setCursor(this.defaultCursor); // clear selection and current transformation\n\n this._groupSelector = null;\n }\n });\n})();\n\n(function () {\n fabric.util.object.extend(fabric.StaticCanvas.prototype,\n /** @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 toDataURL(options) {\n options || (options = {});\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 toCanvasElement(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\nfabric.util.object.extend(fabric.StaticCanvas.prototype,\n/** @lends fabric.StaticCanvas.prototype */\n{\n /**\n * Populates canvas with data from the specified dataless JSON.\n * JSON format must conform to the one of {@link fabric.Canvas#toDatalessJSON}\n * @deprecated since 1.2.2\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 */\n loadFromDatalessJSON: function loadFromDatalessJSON(json, callback, reviver) {\n return this.loadFromJSON(json, callback, reviver);\n },\n\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 loadFromJSON(json, callback, reviver) {\n if (!json) {\n return;\n } // serialize if it wasn't already\n\n\n var serialized = typeof json === 'string' ? JSON.parse(json) : fabric.util.object.clone(json);\n\n var _this = this,\n clipPath = serialized.clipPath,\n renderOnAddRemove = this.renderOnAddRemove;\n\n this.renderOnAddRemove = false;\n delete serialized.clipPath;\n\n this._enlivenObjects(serialized.objects, function (enlivenedObjects) {\n _this.clear();\n\n _this._setBgOverlay(serialized, function () {\n if (clipPath) {\n _this._enlivenObjects([clipPath], function (enlivenedCanvasClip) {\n _this.clipPath = enlivenedCanvasClip[0];\n\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n });\n } else {\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n }\n });\n }, reviver);\n\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 __setupCanvas(serialized, enlivenedObjects, renderOnAddRemove, callback) {\n var _this = this;\n\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; // remove parts i cannot set as options\n\n delete serialized.objects;\n delete serialized.backgroundImage;\n delete serialized.overlayImage;\n delete serialized.background;\n delete serialized.overlay; // 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\n this._setOptions(serialized);\n\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 _setBgOverlay(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 cbIfLoaded() {\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\n this.__setBgOverlay('overlayImage', serialized.overlayImage, loaded, cbIfLoaded);\n\n this.__setBgOverlay('backgroundColor', serialized.background, loaded, cbIfLoaded);\n\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 __setBgOverlay(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 } 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 _enlivenObjects(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 _toDataURL(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 _toDataURLWithMultiplier(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 clone(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 cloneWithoutData(callback) {\n var el = fabric.util.createCanvasElement();\n el.width = this.width;\n el.height = this.height;\n var clone = new fabric.Canvas(el);\n clone.clipTo = this.clipTo;\n\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 } else {\n callback && callback(clone);\n }\n }\n});\n\n(function (global) {\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 * 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\n\n fabric.Object = fabric.util.createClass(fabric.CommonMethods,\n /** @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 * 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: 'rgba(102,153,255,0.75)',\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: 'rgba(102,153,255,0.5)',\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 * Transform matrix (similar to SVG's transform matrix)\n * This property has been depreacted. Since caching and and qrDecompose this\n * property can be handled with the standard top,left,scaleX,scaleY,angle and skewX.\n * A documentation example on how to parse and merge a transformMatrix will be provided before\n * completely removing it in fabric 4.0\n * If you are starting a project now, DO NOT use it.\n * @deprecated since 3.2.0\n * @type Array\n */\n transformMatrix: null,\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 `false`, object's controlling rotating point will not be visible or selectable\n * @type Boolean\n * @default\n */\n hasRotatingPoint: true,\n\n /**\n * Offset for object's controlling rotating point (when enabled via `hasRotatingPoint`)\n * @type Number\n * @default\n */\n rotatingPointOffset: 40,\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 * Function that determines clipping of an object (context is passed as a first argument).\n * If you are using code minification, ctx argument can be minified/manglied you should use\n * as a workaround `var ctx = arguments[0];` in the function;\n * Note that context origin is at the object's center point (not left/top corner)\n * @deprecated since 2.0.0\n * @type Function\n */\n clipTo: null,\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 non-uniform scaling is locked\n * @type Boolean\n * @default\n */\n lockUniScaling: 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: ('top left width height scaleX scaleY flipX flipY originX originY transformMatrix ' + 'stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit ' + 'angle opacity fill globalCompositeOperation shadow clipTo visible backgroundColor ' + 'skewX skewY fillRule paintFirst clipPath strokeUniform').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: ('fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform' + ' strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath').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 initialize(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 _createCacheCanvas() {\n this._cacheProperties = {};\n this._cacheCanvas = fabric.util.createCanvasElement();\n this._cacheContext = this._cacheCanvas.getContext('2d');\n\n this._updateCacheCanvas(); // if canvas gets created, is empty, so dirty.\n\n\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 _limitCacheSize(dims) {\n var perfLimitSizeTotal = fabric.perfLimitSizeTotal,\n width = dims.width,\n height = dims.height,\n max = fabric.maxCacheSideLimit,\n min = fabric.minCacheSideLimit;\n\n if (width <= max && height <= max && width * height <= perfLimitSizeTotal) {\n if (width < min) {\n dims.width = min;\n }\n\n if (height < min) {\n dims.height = min;\n }\n\n return dims;\n }\n\n var ar = width / height,\n 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\n if (width > x) {\n dims.zoomX /= width / x;\n dims.width = x;\n dims.capped = true;\n }\n\n if (height > y) {\n dims.zoomY /= height / y;\n dims.height = y;\n dims.capped = true;\n }\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 _getCacheCanvasDimensions() {\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\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 _updateCacheCanvas() {\n var targetCanvas = this.canvas;\n\n if (this.noScaleCache && targetCanvas && targetCanvas._currentTransform) {\n var target = targetCanvas._currentTransform.target,\n action = targetCanvas._currentTransform.action;\n\n if (this === target && action.slice && action.slice(0, 5) === 'scale') {\n return false;\n }\n }\n\n var canvas = this._cacheCanvas,\n dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n minCacheSize = fabric.minCacheSideLimit,\n width = dims.width,\n height = dims.height,\n drawingWidth,\n drawingHeight,\n zoomX = dims.zoomX,\n 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,\n additionalHeight = 0,\n shouldResizeCanvas = false;\n\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) && canvasWidth > minCacheSize && canvasHeight > minCacheSize;\n shouldResizeCanvas = sizeGrowing || sizeShrinking;\n\n if (sizeGrowing && !dims.capped && (width > minCacheSize || height > minCacheSize)) {\n additionalWidth = width * 0.1;\n additionalHeight = height * 0.1;\n }\n }\n\n if (shouldRedraw) {\n if (shouldResizeCanvas) {\n canvas.width = Math.ceil(width + additionalWidth);\n canvas.height = Math.ceil(height + additionalHeight);\n } else {\n this._cacheContext.setTransform(1, 0, 0, 1, 0, 0);\n\n this._cacheContext.clearRect(0, 0, canvas.width, canvas.height);\n }\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\n this._cacheContext.translate(this.cacheTranslationX, this.cacheTranslationY);\n\n this._cacheContext.scale(zoomX, zoomY);\n\n this.zoomX = zoomX;\n this.zoomY = zoomY;\n return true;\n }\n\n return false;\n },\n\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n setOptions: function setOptions(options) {\n this._setOptions(options);\n\n this._initGradient(options.fill, 'fill');\n\n this._initGradient(options.stroke, 'stroke');\n\n this._initClipping(options);\n\n this._initPattern(options.fill, 'fill');\n\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 transform(ctx) {\n var m;\n\n if (this.group && !this.group._transformDone) {\n m = this.calcTransformMatrix();\n } else {\n m = this.calcOwnMatrix();\n }\n\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 toObject(propertiesToInclude) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,\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 // TODO: add this before release\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 clipTo: this.clipTo && String(this.clipTo),\n backgroundColor: this.backgroundColor,\n fillRule: this.fillRule,\n paintFirst: this.paintFirst,\n globalCompositeOperation: this.globalCompositeOperation,\n transformMatrix: this.transformMatrix ? this.transformMatrix.concat() : null,\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\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 toDatalessObject(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 _removeDefaultValues(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\n if (object[prop] === prototype[prop]) {\n delete object[prop];\n }\n\n var isArray = Object.prototype.toString.call(object[prop]) === '[object Array]' && Object.prototype.toString.call(prototype[prop]) === '[object Array]'; // basically a check for [] === []\n\n if (isArray && object[prop].length === 0 && prototype[prop].length === 0) {\n delete object[prop];\n }\n });\n return object;\n },\n\n /**\n * Returns a string representation of an instance\n * @return {String}\n */\n toString: function toString() {\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 getObjectScaling() {\n var options = fabric.util.qrDecompose(this.calcTransformMatrix());\n return {\n scaleX: Math.abs(options.scaleX),\n scaleY: Math.abs(options.scaleY)\n };\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 getTotalObjectScaling() {\n var scale = this.getObjectScaling(),\n scaleX = scale.scaleX,\n scaleY = scale.scaleY;\n\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\n return {\n scaleX: scaleX,\n scaleY: scaleY\n };\n },\n\n /**\n * Return the object opacity counting also the group property\n * @return {Number}\n */\n getObjectOpacity: function getObjectOpacity() {\n var opacity = this.opacity;\n\n if (this.group) {\n opacity *= this.group.getObjectOpacity();\n }\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 _set(key, value) {\n var shouldConstrainValue = key === 'scaleX' || key === 'scaleY',\n isChanged = this[key] !== value,\n groupNeedsUpdate = false;\n\n if (shouldConstrainValue) {\n value = this._constrainScale(value);\n }\n\n if (key === 'scaleX' && value < 0) {\n this.flipX = !this.flipX;\n value *= -1;\n } else if (key === 'scaleY' && value < 0) {\n this.flipY = !this.flipY;\n value *= -1;\n } else if (key === 'shadow' && value && !(value instanceof fabric.Shadow)) {\n value = new fabric.Shadow(value);\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\n if (this.cacheProperties.indexOf(key) > -1) {\n this.dirty = true;\n groupNeedsUpdate && this.group.set('dirty', true);\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 setOnGroup() {// 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 getViewportTransform() {\n if (this.canvas && this.canvas.viewportTransform) {\n return this.canvas.viewportTransform;\n }\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 isNotVisible() {\n return this.opacity === 0 || this.width === 0 && this.height === 0 && this.strokeWidth === 0 || !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 render(ctx) {\n // do not render if width/height are zeros or object is not visible\n if (this.isNotVisible()) {\n return;\n }\n\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n\n ctx.save();\n\n this._setupCompositeOperation(ctx);\n\n this.drawSelectionBackground(ctx);\n this.transform(ctx);\n\n this._setOpacity(ctx);\n\n this._setShadow(ctx, this);\n\n if (this.transformMatrix) {\n ctx.transform.apply(ctx, this.transformMatrix);\n }\n\n this.clipTo && fabric.util.clipContext(this, ctx);\n\n if (this.shouldCache()) {\n this.renderCache();\n this.drawCacheOnCanvas(ctx);\n } else {\n this._removeCacheCanvas();\n\n this.dirty = false;\n this.drawObject(ctx);\n\n if (this.objectCaching && this.statefullCache) {\n this.saveState({\n propertySet: 'cacheProperties'\n });\n }\n }\n\n this.clipTo && ctx.restore();\n ctx.restore();\n },\n renderCache: function renderCache(options) {\n options = options || {};\n\n if (!this._cacheCanvas) {\n this._createCacheCanvas();\n }\n\n if (this.isCacheDirty()) {\n this.statefullCache && this.saveState({\n propertySet: 'cacheProperties'\n });\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 _removeCacheCanvas() {\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 hasStroke() {\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 hasFill() {\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 needsItsOwnCache() {\n if (this.paintFirst === 'stroke' && this.hasFill() && this.hasStroke() && _typeof(this.shadow) === 'object') {\n return true;\n }\n\n if (this.clipPath) {\n return true;\n }\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 shouldCache() {\n this.ownCaching = this.needsItsOwnCache() || this.objectCaching && (!this.group || !this.group.isOnACache());\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 willDrawShadow() {\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 drawClipPathOnCache(ctx) {\n var path = this.clipPath;\n ctx.save(); // DEBUG: uncomment this line, comment the following\n // ctx.globalAlpha = 0.4\n\n if (path.inverted) {\n ctx.globalCompositeOperation = 'destination-out';\n } else {\n ctx.globalCompositeOperation = 'destination-in';\n } //ctx.scale(1 / 2, 1 / 2);\n\n\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\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 drawObject(ctx, forClipping) {\n var originalFill = this.fill,\n originalStroke = this.stroke;\n\n if (forClipping) {\n this.fill = 'black';\n this.stroke = '';\n\n this._setClippingProperties(ctx);\n } else {\n this._renderBackground(ctx);\n\n this._setStrokeStyles(ctx, this);\n\n this._setFillStyles(ctx, this);\n }\n\n this._render(ctx);\n\n this._drawClipPath(ctx);\n\n this.fill = originalFill;\n this.stroke = originalStroke;\n },\n _drawClipPath: function _drawClipPath(ctx) {\n var path = this.clipPath;\n\n if (!path) {\n return;\n } // needed to setup a couple of variables\n // path canvas gets overridden with this one.\n // TODO find a better solution?\n\n\n path.canvas = this.canvas;\n path.shouldCache();\n path._transformDone = true;\n path.renderCache({\n forClipping: true\n });\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 drawCacheOnCanvas(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 isCacheDirty(skipCanvas) {\n if (this.isNotVisible()) {\n return false;\n }\n\n if (this._cacheCanvas && !skipCanvas && this._updateCacheCanvas()) {\n // in this case the context is already cleared.\n return true;\n } else {\n if (this.dirty || this.clipPath && this.clipPath.absolutePositioned || this.statefullCache && this.hasStateChanged('cacheProperties')) {\n if (this._cacheCanvas && !skipCanvas) {\n var width = this.cacheWidth / this.zoomX;\n var height = this.cacheHeight / this.zoomY;\n\n this._cacheContext.clearRect(-width / 2, -height / 2, width, height);\n }\n\n return true;\n }\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 _renderBackground(ctx) {\n if (!this.backgroundColor) {\n return;\n }\n\n var dim = this._getNonTransformedDimensions();\n\n ctx.fillStyle = this.backgroundColor;\n ctx.fillRect(-dim.x / 2, -dim.y / 2, dim.x, dim.y); // if there is background color no other shadows\n // should be casted\n\n this._removeShadow(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _setOpacity: function _setOpacity(ctx) {\n if (this.group && !this.group._transformDone) {\n ctx.globalAlpha = this.getObjectOpacity();\n } else {\n ctx.globalAlpha *= this.opacity;\n }\n },\n _setStrokeStyles: function _setStrokeStyles(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 ? decl.stroke.toLive(ctx, this) : decl.stroke;\n }\n },\n _setFillStyles: function _setFillStyles(ctx, decl) {\n if (decl.fill) {\n ctx.fillStyle = decl.fill.toLive ? decl.fill.toLive(ctx, this) : decl.fill;\n }\n },\n _setClippingProperties: function _setClippingProperties(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 _setLineDash(ctx, dashArray, alternative) {\n if (!dashArray || dashArray.length === 0) {\n return;\n } // Spec requires the concatenation of two copies the dash list when the number of elements is odd\n\n\n if (1 & dashArray.length) {\n dashArray.push.apply(dashArray, dashArray);\n }\n\n if (supportsLineDash) {\n ctx.setLineDash(dashArray);\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 _renderControls(ctx, styleOverride) {\n var vpt = this.getViewportTransform(),\n matrix = this.calcTransformMatrix(),\n options,\n drawBorders,\n 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\n if (!this.group) {\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n }\n\n if (styleOverride.forActiveSelection) {\n ctx.rotate(degreesToRadians(options.angle));\n drawBorders && this.drawBordersInGroup(ctx, options, styleOverride);\n } else {\n ctx.rotate(degreesToRadians(this.angle));\n drawBorders && this.drawBorders(ctx, styleOverride);\n }\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 _setShadow(ctx) {\n if (!this.shadow) {\n return;\n }\n\n var shadow = this.shadow,\n canvas = this.canvas,\n scaling,\n multX = canvas && canvas.viewportTransform[0] || 1,\n multY = canvas && canvas.viewportTransform[3] || 1;\n\n if (shadow.nonScaling) {\n scaling = {\n scaleX: 1,\n scaleY: 1\n };\n } else {\n scaling = this.getObjectScaling();\n }\n\n if (canvas && canvas._isRetinaScaling()) {\n multX *= fabric.devicePixelRatio;\n multY *= fabric.devicePixelRatio;\n }\n\n ctx.shadowColor = shadow.color;\n ctx.shadowBlur = shadow.blur * fabric.browserShadowBlurConstant * (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 _removeShadow(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 _applyPatternGradientTransform(ctx, filler) {\n if (!filler || !filler.toLive) {\n return {\n offsetX: 0,\n offsetY: 0\n };\n }\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 } else {\n ctx.transform(1, 0, 0, 1, offsetX, offsetY);\n }\n\n if (t) {\n ctx.transform(t[0], t[1], t[2], t[3], t[4], t[5]);\n }\n\n return {\n offsetX: offsetX,\n offsetY: offsetY\n };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderPaintInOrder: function _renderPaintInOrder(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderStroke(ctx);\n\n this._renderFill(ctx);\n } else {\n this._renderFill(ctx);\n\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 _render()\n /* ctx */\n {},\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderFill: function _renderFill(ctx) {\n if (!this.fill) {\n return;\n }\n\n ctx.save();\n\n this._applyPatternGradientTransform(ctx, this.fill);\n\n if (this.fillRule === 'evenodd') {\n ctx.fill('evenodd');\n } else {\n ctx.fill();\n }\n\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderStroke: function _renderStroke(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\n if (this.strokeUniform && this.group) {\n var scaling = this.getObjectScaling();\n ctx.scale(1 / scaling.scaleX, 1 / scaling.scaleY);\n } else if (this.strokeUniform) {\n ctx.scale(1 / this.scaleX, 1 / this.scaleY);\n }\n\n this._setLineDash(ctx, this.strokeDashArray, this._renderDashedStroke);\n\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 } else {\n this._applyPatternGradientTransform(ctx, this.stroke);\n }\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 _applyPatternForTransformedGradient(ctx, filler) {\n var dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n pCanvas = fabric.util.createCanvasElement(),\n pCtx,\n retinaScaling = this.canvas.getRetinaScaling(),\n width = dims.x / this.scaleX / retinaScaling,\n height = dims.y / this.scaleY / retinaScaling;\n\n pCanvas.width = width;\n pCanvas.height = height;\n pCtx = pCanvas.getContext('2d');\n pCtx.beginPath();\n pCtx.moveTo(0, 0);\n pCtx.lineTo(width, 0);\n pCtx.lineTo(width, height);\n pCtx.lineTo(0, height);\n pCtx.closePath();\n pCtx.translate(width / 2, height / 2);\n pCtx.scale(dims.zoomX / this.scaleX / retinaScaling, dims.zoomY / this.scaleY / retinaScaling);\n\n this._applyPatternGradientTransform(pCtx, filler);\n\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(retinaScaling * this.scaleX / dims.zoomX, retinaScaling * this.scaleY / dims.zoomY);\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 _findCenterFromElement() {\n return {\n x: this.left + this.width / 2,\n y: this.top + this.height / 2\n };\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 _assignTransformMatrixProps() {\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 _removeTransformMatrix(preserveAspectRatioOptions) {\n var center = this._findCenterFromElement();\n\n if (this.transformMatrix) {\n this._assignTransformMatrixProps();\n\n center = fabric.util.transformPoint(center, this.transformMatrix);\n }\n\n this.transformMatrix = null;\n\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\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 clone(callback, propertiesToInclude) {\n var objectForm = this.toObject(propertiesToInclude);\n\n if (this.constructor.fromObject) {\n this.constructor.fromObject(objectForm, callback);\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 cloneAsImage(callback, options) {\n var canvasEl = this.toCanvasElement(options);\n\n if (callback) {\n callback(new fabric.Image(canvasEl));\n }\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 toCanvasElement(options) {\n options || (options = {});\n var utils = fabric.util,\n origParams = utils.saveObjectTransform(this),\n originalGroup = this.group,\n originalShadow = this.shadow,\n abs = Math.abs,\n multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? fabric.devicePixelRatio : 1);\n delete this.group;\n\n if (options.withoutTransform) {\n utils.resetObjectTransform(this);\n }\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,\n scaling,\n shadowOffset = {\n x: 0,\n y: 0\n },\n shadowBlur,\n width,\n height;\n\n if (shadow) {\n shadowBlur = shadow.blur;\n\n if (shadow.nonScaling) {\n scaling = {\n scaleX: 1,\n scaleY: 1\n };\n } else {\n scaling = this.getObjectScaling();\n } // consider non scaling shadow.\n\n\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\n width = boundingRect.width + shadowOffset.x;\n height = boundingRect.height + shadowOffset.y; // if the current width/height is not an integer\n // we need to make it so.\n\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\n if (options.format === 'jpeg') {\n canvas.backgroundColor = '#fff';\n }\n\n this.setPositionByOrigin(new fabric.Point(canvas.width / 2, canvas.height / 2), 'center', 'center');\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\n if (originalGroup) {\n this.group = originalGroup;\n }\n\n this.set(origParams).setCoords(); // 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\n canvas._objects = [];\n canvas.dispose();\n canvas = null;\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 toDataURL(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 isType(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 complexity() {\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 toJSON(propertiesToInclude) {\n // delegate, not alias\n return this.toObject(propertiesToInclude);\n },\n\n /**\n * Sets gradient (fill or stroke) of an object\n * percentages for x1,x2,y1,y2,r1,r2 together with gradientUnits 'pixels', are not supported.\n * Backwards incompatibility note: This method was named \"setGradientFill\" until v1.1.0\n * @param {String} property Property name 'stroke' or 'fill'\n * @param {Object} [options] Options object\n * @param {String} [options.type] Type of gradient 'radial' or 'linear'\n * @param {Number} [options.x1=0] x-coordinate of start point\n * @param {Number} [options.y1=0] y-coordinate of start point\n * @param {Number} [options.x2=0] x-coordinate of end point\n * @param {Number} [options.y2=0] y-coordinate of end point\n * @param {Number} [options.r1=0] Radius of start point (only for radial gradients)\n * @param {Number} [options.r2=0] Radius of end point (only for radial gradients)\n * @param {Object} [options.colorStops] Color stops object eg. {0: 'ff0000', 1: '000000'}\n * @param {Object} [options.gradientTransform] transformMatrix for gradient\n * @return {fabric.Object} thisArg\n * @chainable\n * @deprecated since 3.4.0\n * @see {@link http://jsfiddle.net/fabricjs/58y8b/|jsFiddle demo}\n * @example Set linear gradient\n * object.setGradient('fill', {\n * type: 'linear',\n * x1: -object.width / 2,\n * y1: 0,\n * x2: object.width / 2,\n * y2: 0,\n * colorStops: {\n * 0: 'red',\n * 0.5: '#005555',\n * 1: 'rgba(0,0,255,0.5)'\n * }\n * });\n * canvas.renderAll();\n * @example Set radial gradient\n * object.setGradient('fill', {\n * type: 'radial',\n * x1: 0,\n * y1: 0,\n * x2: 0,\n * y2: 0,\n * r1: object.width / 2,\n * r2: 10,\n * colorStops: {\n * 0: 'red',\n * 0.5: '#005555',\n * 1: 'rgba(0,0,255,0.5)'\n * }\n * });\n * canvas.renderAll();\n */\n setGradient: function setGradient(property, options) {\n options || (options = {});\n var gradient = {\n colorStops: []\n };\n gradient.type = options.type || (options.r1 || options.r2 ? 'radial' : 'linear');\n gradient.coords = {\n x1: options.x1,\n y1: options.y1,\n x2: options.x2,\n y2: options.y2\n };\n gradient.gradientUnits = options.gradientUnits || 'pixels';\n\n if (options.r1 || options.r2) {\n gradient.coords.r1 = options.r1;\n gradient.coords.r2 = options.r2;\n }\n\n gradient.gradientTransform = options.gradientTransform;\n fabric.Gradient.prototype.addColorStop.call(gradient, options.colorStops);\n return this.set(property, fabric.Gradient.forObject(this, gradient));\n },\n\n /**\n * Sets pattern fill of an object\n * @param {Object} options Options object\n * @param {(String|HTMLImageElement)} options.source Pattern source\n * @param {String} [options.repeat=repeat] Repeat property of a pattern (one of repeat, repeat-x, repeat-y or no-repeat)\n * @param {Number} [options.offsetX=0] Pattern horizontal offset from object's left/top corner\n * @param {Number} [options.offsetY=0] Pattern vertical offset from object's left/top corner\n * @param {Function} [callback] Callback to invoke when image set as a pattern\n * @return {fabric.Object} thisArg\n * @chainable\n * @deprecated since 3.5.0\n * @see {@link http://jsfiddle.net/fabricjs/QT3pa/|jsFiddle demo}\n * @example Set pattern\n * object.setPatternFill({\n * source: 'http://fabricjs.com/assets/escheresque_ste.png',\n * repeat: 'repeat'\n * },canvas.renderAll.bind(canvas));\n */\n setPatternFill: function setPatternFill(options, callback) {\n return this.set('fill', new fabric.Pattern(options, callback));\n },\n\n /**\n * Sets {@link fabric.Object#shadow|shadow} of an object\n * @param {Object|String} [options] Options object or string (e.g. \"2px 2px 10px rgba(0,0,0,0.2)\")\n * @param {String} [options.color=rgb(0,0,0)] Shadow color\n * @param {Number} [options.blur=0] Shadow blur\n * @param {Number} [options.offsetX=0] Shadow horizontal offset\n * @param {Number} [options.offsetY=0] Shadow vertical offset\n * @return {fabric.Object} thisArg\n * @chainable\n * @deprecated since 3.5.0\n * @see {@link http://jsfiddle.net/fabricjs/7gvJG/|jsFiddle demo}\n * @example Set shadow with string notation\n * object.setShadow('2px 2px 10px rgba(0,0,0,0.2)');\n * canvas.renderAll();\n * @example Set shadow with object notation\n * object.setShadow({\n * color: 'red',\n * blur: 10,\n * offsetX: 20,\n * offsetY: 20\n * });\n * canvas.renderAll();\n */\n setShadow: function setShadow(options) {\n return this.set('shadow', options ? new fabric.Shadow(options) : null);\n },\n\n /**\n * Sets \"color\" of an instance (alias of `set('fill', …)`)\n * @param {String} color Color value\n * @return {fabric.Object} thisArg\n * @deprecated since 3.5.0\n * @chainable\n */\n setColor: function setColor(color) {\n this.set('fill', color);\n return this;\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 rotate(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 centerH() {\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 viewportCenterH() {\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 centerV() {\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 viewportCenterV() {\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 center() {\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 viewportCenter() {\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 getLocalPointer(e, pointer) {\n pointer = pointer || this.canvas.getPointer(e);\n\n var pClicked = new fabric.Point(pointer.x, pointer.y),\n objectLeftTop = this._getLeftTopCoords();\n\n if (this.angle) {\n pClicked = fabric.util.rotatePoint(pClicked, objectLeftTop, degreesToRadians(-this.angle));\n }\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 _setupCompositeOperation(ctx) {\n if (this.globalCompositeOperation) {\n ctx.globalCompositeOperation = this.globalCompositeOperation;\n }\n }\n });\n fabric.util.createAccessors && fabric.util.createAccessors(fabric.Object);\n extend(fabric.Object.prototype, fabric.Observable);\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\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\n if (typeof patterns[1] !== 'undefined') {\n object.stroke = patterns[1];\n }\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 * Unique id used internally when creating SVG elements\n * @static\n * @memberOf fabric.Object\n * @type Number\n */\n\n\n fabric.Object.__uid = 0;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function () {\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 fabric.util.object.extend(fabric.Object.prototype,\n /** @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 translateToGivenOrigin(point, fromOriginX, fromOriginY, toOriginX, toOriginY) {\n var x = point.x,\n y = point.y,\n offsetX,\n offsetY,\n dim;\n\n if (typeof fromOriginX === 'string') {\n fromOriginX = originXOffset[fromOriginX];\n } else {\n fromOriginX -= 0.5;\n }\n\n if (typeof toOriginX === 'string') {\n toOriginX = originXOffset[toOriginX];\n } else {\n toOriginX -= 0.5;\n }\n\n offsetX = toOriginX - fromOriginX;\n\n if (typeof fromOriginY === 'string') {\n fromOriginY = originYOffset[fromOriginY];\n } else {\n fromOriginY -= 0.5;\n }\n\n if (typeof toOriginY === 'string') {\n toOriginY = originYOffset[toOriginY];\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 translateToCenterPoint(point, originX, originY) {\n var p = this.translateToGivenOrigin(point, originX, originY, 'center', 'center');\n\n if (this.angle) {\n return fabric.util.rotatePoint(p, point, degreesToRadians(this.angle));\n }\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 translateToOriginPoint(center, originX, originY) {\n var p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n\n if (this.angle) {\n return fabric.util.rotatePoint(p, center, degreesToRadians(this.angle));\n }\n\n return p;\n },\n\n /**\n * Returns the real center coordinates of the object\n * @return {fabric.Point}\n */\n getCenterPoint: function getCenterPoint() {\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 getPointByOrigin(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 toLocalPoint(point, originX, originY) {\n var center = this.getCenterPoint(),\n p,\n p2;\n\n if (typeof originX !== 'undefined' && typeof originY !== 'undefined') {\n p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n } else {\n p = new fabric.Point(this.left, this.top);\n }\n\n p2 = new fabric.Point(point.x, point.y);\n\n if (this.angle) {\n p2 = fabric.util.rotatePoint(p2, center, -degreesToRadians(this.angle));\n }\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 setPositionByOrigin(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 adjustPosition(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,\n offsetTo; //TODO: this function does not consider mixed situation like top, center.\n\n if (typeof this.originX === 'string') {\n offsetFrom = originXOffset[this.originX];\n } else {\n offsetFrom = this.originX - 0.5;\n }\n\n if (typeof to === 'string') {\n offsetTo = originXOffset[to];\n } else {\n offsetTo = to - 0.5;\n }\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 _setOriginToCenter() {\n this._originalOriginX = this.originX;\n this._originalOriginY = this.originY;\n var center = this.getCenterPoint();\n this.originX = 'center';\n this.originY = 'center';\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 _resetOrigin() {\n var originPoint = this.translateToOriginPoint(this.getCenterPoint(), this._originalOriginX, this._originalOriginY);\n this.originX = this._originalOriginX;\n this.originY = this._originalOriginY;\n this.left = originPoint.x;\n this.top = originPoint.y;\n this._originalOriginX = null;\n this._originalOriginY = null;\n },\n\n /**\n * @private\n */\n _getLeftTopCoords: function _getLeftTopCoords() {\n return this.translateToOriginPoint(this.getCenterPoint(), 'left', 'top');\n }\n });\n})();\n\n(function () {\n function _getCoords(coords) {\n return [new fabric.Point(coords.tl.x, coords.tl.y), new fabric.Point(coords.tr.x, coords.tr.y), new fabric.Point(coords.br.x, coords.br.y), new fabric.Point(coords.bl.x, coords.bl.y)];\n }\n\n var degreesToRadians = fabric.util.degreesToRadians,\n multiplyMatrices = fabric.util.multiplyTransformMatrices,\n transformPoint = fabric.util.transformPoint;\n fabric.util.object.extend(fabric.Object.prototype,\n /** @lends fabric.Object.prototype */\n {\n /**\n * Describe object's corner position in canvas element coordinates.\n * properties are tl,mt,tr,ml,mr,bl,mb,br,mtr for 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 this properties: width, height, scaleX, scaleY\n * skewX, skewY, angle, strokeWidth, viewportTransform, top, left, padding.\n * The coordinates get updated with @method setCoords.\n * You can calculate them without updating with @method calcCoords;\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 calcCoords(true);\n * @memberOf fabric.Object.prototype\n */\n aCoords: 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 * return correct set of coordinates for intersection\n */\n getCoords: function getCoords(absolute, calculate) {\n if (!this.oCoords) {\n this.setCoords();\n }\n\n var coords = absolute ? this.aCoords : this.oCoords;\n return _getCoords(calculate ? this.calcCoords(absolute) : coords);\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 intersectsWithRect(pointTL, pointBR, absolute, calculate) {\n var coords = this.getCoords(absolute, calculate),\n intersection = fabric.Intersection.intersectPolygonRectangle(coords, pointTL, pointBR);\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 intersectsWithObject(other, absolute, calculate) {\n var intersection = fabric.Intersection.intersectPolygonPolygon(this.getCoords(absolute, calculate), other.getCoords(absolute, calculate));\n return intersection.status === 'Intersection' || other.isContainedWithinObject(this, absolute, calculate) || 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 isContainedWithinObject(other, absolute, calculate) {\n var points = this.getCoords(absolute, calculate),\n i = 0,\n lines = other._getImageLines(calculate ? other.calcCoords(absolute) : absolute ? other.aCoords : other.oCoords);\n\n for (; i < 4; i++) {\n if (!other.containsPoint(points[i], lines)) {\n return false;\n }\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 isContainedWithinRect(pointTL, pointBR, absolute, calculate) {\n var boundingRect = this.getBoundingRect(absolute, calculate);\n return boundingRect.left >= pointTL.x && boundingRect.left + boundingRect.width <= pointBR.x && boundingRect.top >= pointTL.y && boundingRect.top + boundingRect.height <= pointBR.y;\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 containsPoint(point, lines, absolute, calculate) {\n var lines = lines || this._getImageLines(calculate ? this.calcCoords(absolute) : absolute ? this.aCoords : this.oCoords),\n xPoints = this._findCrossPoints(point, lines); // if xPoints is odd then point is inside the object\n\n\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 isOnScreen(calculate) {\n if (!this.canvas) {\n return false;\n }\n\n var pointTL = this.canvas.vptCoords.tl,\n pointBR = this.canvas.vptCoords.br;\n var points = this.getCoords(true, calculate),\n point;\n\n for (var i = 0; i < 4; i++) {\n point = points[i];\n\n if (point.x <= pointBR.x && point.x >= pointTL.x && point.y <= pointBR.y && point.y >= pointTL.y) {\n return true;\n }\n } // no points on screen, check intersection with absolute coordinates\n\n\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\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 _containsCenterOfCanvas(pointTL, pointBR, calculate) {\n // worst case scenario the object is so big that contains the screen\n var centerPoint = {\n x: (pointTL.x + pointBR.x) / 2,\n y: (pointTL.y + pointBR.y) / 2\n };\n\n if (this.containsPoint(centerPoint, null, true, calculate)) {\n return true;\n }\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 isPartiallyOnScreen(calculate) {\n if (!this.canvas) {\n return false;\n }\n\n var pointTL = this.canvas.vptCoords.tl,\n pointBR = this.canvas.vptCoords.br;\n\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\n\n return 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 _getImageLines(oCoords) {\n return {\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\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 _findCrossPoints(point, lines) {\n var b1,\n b2,\n a1,\n a2,\n xi,\n // yi,\n xcount = 0,\n iLine;\n\n for (var lineKey in lines) {\n iLine = lines[lineKey]; // optimisation 1: line below point. no cross\n\n if (iLine.o.y < point.y && iLine.d.y < point.y) {\n continue;\n } // optimisation 2: line above point. no cross\n\n\n if (iLine.o.y >= point.y && iLine.d.y >= point.y) {\n continue;\n } // optimisation 3: vertical line case\n\n\n if (iLine.o.x === iLine.d.x && iLine.o.x >= point.x) {\n xi = iLine.o.x; // yi = point.y;\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 xi = -(a1 - a2) / (b1 - b2); // yi = a1 + b1 * xi;\n } // dont count xi < point.x cases\n\n\n if (xi >= point.x) {\n xcount += 1;\n } // optimisation 4: specific for square images\n\n\n if (xcount === 2) {\n break;\n }\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 getBoundingRect(absolute, calculate) {\n var coords = this.getCoords(absolute, calculate);\n return fabric.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 getScaledWidth() {\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 getScaledHeight() {\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 _constrainScale(value) {\n if (Math.abs(value) < this.minScaleLimit) {\n if (value < 0) {\n return -this.minScaleLimit;\n } else {\n return this.minScaleLimit;\n }\n } else if (value === 0) {\n return 0.0001;\n }\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 scale(value) {\n this._set('scaleX', value);\n\n this._set('scaleY', value);\n\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 scaleToWidth(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 scaleToHeight(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 * @return {Object} Object with tl, tr, br, bl ....\n * @chainable\n */\n calcCoords: function calcCoords(absolute) {\n var rotateMatrix = this._calcRotateMatrix(),\n translateMatrix = this._calcTranslateMatrix(),\n startMatrix = multiplyMatrices(translateMatrix, rotateMatrix),\n vpt = this.getViewportTransform(),\n finalMatrix = absolute ? startMatrix : multiplyMatrices(vpt, startMatrix),\n dim = this._getTransformedDimensions(),\n w = dim.x / 2,\n h = dim.y / 2,\n tl = transformPoint({\n x: -w,\n y: -h\n }, finalMatrix),\n tr = transformPoint({\n x: w,\n y: -h\n }, finalMatrix),\n bl = transformPoint({\n x: -w,\n y: h\n }, finalMatrix),\n br = transformPoint({\n x: w,\n y: h\n }, finalMatrix);\n\n if (!absolute) {\n var padding = this.padding,\n angle = degreesToRadians(this.angle),\n cos = fabric.util.cos(angle),\n sin = fabric.util.sin(angle),\n cosP = cos * padding,\n sinP = sin * padding,\n cosPSinP = cosP + sinP,\n cosPMinusSinP = cosP - sinP;\n\n if (padding) {\n tl.x -= cosPMinusSinP;\n tl.y -= cosPSinP;\n tr.x += cosPSinP;\n tr.y -= cosPMinusSinP;\n bl.x -= cosPSinP;\n bl.y += cosPMinusSinP;\n br.x += cosPMinusSinP;\n br.y += cosPSinP;\n }\n\n var ml = new fabric.Point((tl.x + bl.x) / 2, (tl.y + bl.y) / 2),\n mt = new fabric.Point((tr.x + tl.x) / 2, (tr.y + tl.y) / 2),\n mr = new fabric.Point((br.x + tr.x) / 2, (br.y + tr.y) / 2),\n mb = new fabric.Point((br.x + bl.x) / 2, (br.y + bl.y) / 2),\n mtr = new fabric.Point(mt.x + sin * this.rotatingPointOffset, mt.y - cos * this.rotatingPointOffset);\n } // if (!absolute) {\n // var canvas = this.canvas;\n // setTimeout(function() {\n // canvas.contextTop.clearRect(0, 0, 700, 700);\n // canvas.contextTop.fillStyle = 'green';\n // canvas.contextTop.fillRect(mb.x, mb.y, 3, 3);\n // canvas.contextTop.fillRect(bl.x, bl.y, 3, 3);\n // canvas.contextTop.fillRect(br.x, br.y, 3, 3);\n // canvas.contextTop.fillRect(tl.x, tl.y, 3, 3);\n // canvas.contextTop.fillRect(tr.x, tr.y, 3, 3);\n // canvas.contextTop.fillRect(ml.x, ml.y, 3, 3);\n // canvas.contextTop.fillRect(mr.x, mr.y, 3, 3);\n // canvas.contextTop.fillRect(mt.x, mt.y, 3, 3);\n // canvas.contextTop.fillRect(mtr.x, mtr.y, 3, 3);\n // }, 50);\n // }\n\n\n var coords = {\n // corners\n tl: tl,\n tr: tr,\n br: br,\n bl: bl\n };\n\n if (!absolute) {\n // middle\n coords.ml = ml;\n coords.mt = mt;\n coords.mr = mr;\n coords.mb = mb; // rotating point\n\n coords.mtr = mtr;\n }\n\n return coords;\n },\n\n /**\n * Sets corner position coordinates based on current angle, width and height.\n * See {@link https://github.com/kangax/fabric.js/wiki/When-to-call-setCoords|When-to-call-setCoords}\n * @param {Boolean} [ignoreZoom] set oCoords with or without the viewport transform.\n * @param {Boolean} [skipAbsolute] skip calculation of aCoords, useful in setViewportTransform\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setCoords: function setCoords(ignoreZoom, skipAbsolute) {\n this.oCoords = this.calcCoords(ignoreZoom);\n\n if (!skipAbsolute) {\n this.aCoords = this.calcCoords(true);\n } // set coordinates of the draggable boxes in the corners used to scale/rotate the image\n\n\n ignoreZoom || 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 _calcRotateMatrix() {\n return fabric.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 _calcTranslateMatrix() {\n var center = this.getCenterPoint();\n return [1, 0, 0, 1, center.x, center.y];\n },\n transformMatrixKey: function transformMatrixKey(skipGroup) {\n var sep = '_',\n prefix = '';\n\n if (!skipGroup && this.group) {\n prefix = this.group.transformMatrixKey(skipGroup) + sep;\n }\n\n ;\n return prefix + this.top + sep + this.left + sep + this.scaleX + sep + this.scaleY + sep + this.skewX + sep + this.skewY + sep + this.angle + sep + this.originX + sep + this.originY + 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 * @return {Array} transform matrix for the object\n */\n calcTransformMatrix: function calcTransformMatrix(skipGroup) {\n if (skipGroup) {\n return this.calcOwnMatrix();\n }\n\n var key = this.transformMatrixKey(),\n cache = this.matrixCache || (this.matrixCache = {});\n\n if (cache.key === key) {\n return cache.value;\n }\n\n var matrix = this.calcOwnMatrix();\n\n if (this.group) {\n matrix = multiplyMatrices(this.group.calcTransformMatrix(), matrix);\n }\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 calcOwnMatrix() {\n var key = this.transformMatrixKey(true),\n cache = this.ownMatrixCache || (this.ownMatrixCache = {});\n\n if (cache.key === key) {\n return cache.value;\n }\n\n var tMatrix = this._calcTranslateMatrix();\n\n this.translateX = tMatrix[4];\n this.translateY = tMatrix[5];\n cache.key = key;\n cache.value = fabric.util.composeMatrix(this);\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 _calcDimensionsTransformMatrix(skewX, skewY, flipping) {\n return fabric.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 _getNonTransformedDimensions() {\n var strokeWidth = this.strokeWidth,\n w = this.width + strokeWidth,\n h = this.height + strokeWidth;\n return {\n x: w,\n y: h\n };\n },\n\n /*\n * Calculate object bounding box dimensions from its properties scale, skew.\n * The skewX and skewY parameters are used in the skewing logic path and\n * do not provide something useful to common use cases.\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 _getTransformedDimensions(skewX, skewY) {\n if (typeof skewX === 'undefined') {\n skewX = this.skewX;\n }\n\n if (typeof skewY === 'undefined') {\n skewY = this.skewY;\n }\n\n var dimensions = this._getNonTransformedDimensions(),\n dimX,\n dimY,\n noSkew = skewX === 0 && skewY === 0;\n\n if (this.strokeUniform) {\n dimX = this.width;\n dimY = this.height;\n } else {\n dimX = dimensions.x;\n dimY = dimensions.y;\n }\n\n if (noSkew) {\n return this._finalizeDimensions(dimX * this.scaleX, dimY * this.scaleY);\n } else {\n dimX /= 2;\n dimY /= 2;\n }\n\n var points = [{\n x: -dimX,\n y: -dimY\n }, {\n x: dimX,\n y: -dimY\n }, {\n x: -dimX,\n y: dimY\n }, {\n x: dimX,\n y: dimY\n }],\n transformMatrix = fabric.util.calcDimensionsMatrix({\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n skewX: skewX,\n skewY: skewY\n }),\n bbox = fabric.util.makeBoundingBoxFromPoints(points, transformMatrix);\n return this._finalizeDimensions(bbox.width, bbox.height);\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 _finalizeDimensions(width, height) {\n return this.strokeUniform ? {\n x: width + this.strokeWidth,\n y: height + this.strokeWidth\n } : {\n x: width,\n y: height\n };\n },\n\n /*\n * Calculate object dimensions for controls, including padding and canvas zoom.\n * private\n */\n _calculateCurrentDimensions: function _calculateCurrentDimensions() {\n var vpt = this.getViewportTransform(),\n dim = this._getTransformedDimensions(),\n p = fabric.util.transformPoint(dim, vpt, true);\n\n return p.scalarAdd(2 * this.padding);\n }\n });\n})();\n\nfabric.util.object.extend(fabric.Object.prototype,\n/** @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 sendToBack() {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendToBack.call(this.group, this);\n } else if (this.canvas) {\n this.canvas.sendToBack(this);\n }\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 bringToFront() {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringToFront.call(this.group, this);\n } else if (this.canvas) {\n this.canvas.bringToFront(this);\n }\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 sendBackwards(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendBackwards.call(this.group, this, intersecting);\n } else if (this.canvas) {\n this.canvas.sendBackwards(this, intersecting);\n }\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 bringForward(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringForward.call(this.group, this, intersecting);\n } else if (this.canvas) {\n this.canvas.bringForward(this, intersecting);\n }\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 moveTo(index) {\n if (this.group && this.group.type !== 'activeSelection') {\n fabric.StaticCanvas.prototype.moveTo.call(this.group, this, index);\n } else if (this.canvas) {\n this.canvas.moveTo(this, index);\n }\n\n return this;\n }\n});\n/* _TO_SVG_START_ */\n\n(function () {\n function getSvgColorString(prop, value) {\n if (!value) {\n return prop + ': none; ';\n } else if (value.toLive) {\n return prop + ': url(#SVGID_' + value.id + '); ';\n } else {\n var color = new fabric.Color(value),\n str = prop + ': ' + color.toRgb() + '; ',\n opacity = color.getAlpha();\n\n if (opacity !== 1) {\n //change the color in rgb + opacity\n str += prop + '-opacity: ' + opacity.toString() + '; ';\n }\n\n return str;\n }\n }\n\n var toFixed = fabric.util.toFixed;\n fabric.util.object.extend(fabric.Object.prototype,\n /** @lends fabric.Object.prototype */\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 getSvgStyles(skipShadow) {\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 return [stroke, 'stroke-width: ', strokeWidth, '; ', 'stroke-dasharray: ', strokeDashArray, '; ', 'stroke-linecap: ', strokeLineCap, '; ', 'stroke-dashoffset: ', strokeDashOffset, '; ', 'stroke-linejoin: ', strokeLineJoin, '; ', 'stroke-miterlimit: ', strokeMiterLimit, '; ', fill, 'fill-rule: ', fillRule, '; ', 'opacity: ', opacity, ';', filter, visibility].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 getSvgSpanStyles(style, useWhiteSpace) {\n var term = '; ';\n var fontFamily = style.fontFamily ? 'font-family: ' + (style.fontFamily.indexOf('\\'') === -1 && style.fontFamily.indexOf('\"') === -1 ? '\\'' + 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\n if (textDecoration) {\n textDecoration = 'text-decoration: ' + textDecoration + term;\n }\n\n return [stroke, strokeWidth, fontFamily, fontSize, fontStyle, fontWeight, textDecoration, fill, deltaY, useWhiteSpace ? 'white-space: pre; ' : ''].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 getSvgTextDecoration(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 getSvgFilter() {\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 getSvgCommons() {\n return [this.id ? 'id=\"' + this.id + '\" ' : '', this.clipPath ? 'clip-path=\"url(#' + this.clipPath.clipPathId + ')\" ' : ''].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 getSvgTransform(full, additionalTransform) {\n var transform = full ? this.calcTransformMatrix() : this.calcOwnMatrix(),\n svgTransform = 'transform=\"' + fabric.util.matrixToSVG(transform);\n return svgTransform + (additionalTransform || '') + this.getSvgTransformMatrix() + '\" ';\n },\n\n /**\n * Returns transform-string for svg-export from the transform matrix of single elements\n * @return {String}\n */\n getSvgTransformMatrix: function getSvgTransformMatrix() {\n return this.transformMatrix ? ' ' + fabric.util.matrixToSVG(this.transformMatrix) : '';\n },\n _setSVGBg: function _setSVGBg(textBgRects) {\n if (this.backgroundColor) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push('\\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 toSVG(reviver) {\n return this._createBaseSVGMarkup(this._toSVG(reviver), {\n reviver: reviver\n });\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 toClipPathSVG(reviver) {\n return '\\t' + this._createBaseClipPathSVGMarkup(this._toSVG(reviver), {\n reviver: reviver\n });\n },\n\n /**\n * @private\n */\n _createBaseClipPathSVGMarkup: function _createBaseClipPathSVGMarkup(objectMarkup, options) {\n options = options || {};\n var reviver = options.reviver,\n additionalTransform = options.additionalTransform || '',\n commonPieces = [this.getSvgTransform(true, additionalTransform), this.getSvgCommons()].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 _createBaseSVGMarkup(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,\n fill = this.fill,\n shadow = this.shadow,\n commonPieces,\n markup = [],\n clipPathMarkup,\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS'),\n additionalTransform = options.additionalTransform;\n\n if (clipPath) {\n clipPath.clipPathId = 'CLIPPATH_' + fabric.Object.__uid++;\n clipPathMarkup = '\\n' + clipPath.toClipPathSVG(reviver) + '\\n';\n }\n\n if (absoluteClipPath) {\n markup.push('\\n');\n }\n\n markup.push('\\n');\n commonPieces = [styleInfo, vectorEffect, noStyle ? '' : this.addPaintOrder(), ' ', additionalTransform ? 'transform=\"' + additionalTransform + '\" ' : ''].join('');\n objectMarkup[index] = commonPieces;\n\n if (fill && fill.toLive) {\n markup.push(fill.toSVG(this));\n }\n\n if (stroke && stroke.toLive) {\n markup.push(stroke.toSVG(this));\n }\n\n if (shadow) {\n markup.push(shadow.toSVG(this));\n }\n\n if (clipPath) {\n markup.push(clipPathMarkup);\n }\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 addPaintOrder: function addPaintOrder() {\n return this.paintFirst !== 'fill' ? ' paint-order=\"' + this.paintFirst + '\" ' : '';\n }\n });\n})();\n/* _TO_SVG_END_ */\n\n\n(function () {\n var extend = fabric.util.object.extend,\n originalSet = 'stateProperties';\n /*\n Depends on `stateProperties`\n */\n\n function saveProps(origin, destination, props) {\n var tmpObj = {},\n deep = true;\n props.forEach(function (prop) {\n tmpObj[prop] = origin[prop];\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 } else if (Array.isArray(origValue)) {\n if (!Array.isArray(currentValue) || origValue.length !== currentValue.length) {\n return false;\n }\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\n return true;\n } else if (origValue && _typeof(origValue) === 'object') {\n var keys = Object.keys(origValue),\n key;\n\n if (!currentValue || _typeof(currentValue) !== 'object' || !firstPass && keys.length !== Object.keys(currentValue).length) {\n return false;\n }\n\n for (var i = 0, len = keys.length; i < len; i++) {\n key = keys[i]; // 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\n if (key === 'canvas') {\n continue;\n }\n\n if (!_isEqual(origValue[key], currentValue[key])) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n fabric.util.object.extend(fabric.Object.prototype,\n /** @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 hasStateChanged(propertySet) {\n propertySet = propertySet || originalSet;\n var dashedPropertySet = '_' + propertySet;\n\n if (Object.keys(this[dashedPropertySet]).length < this[propertySet].length) {\n return true;\n }\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 saveState(options) {\n var propertySet = options && options.propertySet || originalSet,\n destination = '_' + propertySet;\n\n if (!this[destination]) {\n return this.setupState(options);\n }\n\n saveProps(this, destination, this[propertySet]);\n\n if (options && options.stateProperties) {\n saveProps(this, destination, options.stateProperties);\n }\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 setupState(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(function () {\n var degreesToRadians = fabric.util.degreesToRadians;\n fabric.util.object.extend(fabric.Object.prototype,\n /** @lends fabric.Object.prototype */\n {\n /**\n * The object interactivity controls.\n * @private\n */\n _controlsVisibility: null,\n\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 _findTargetCorner(pointer) {\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;\n this.__corner = 0;\n\n for (var i in this.oCoords) {\n if (!this.isControlVisible(i)) {\n continue;\n }\n\n if (i === 'mtr' && !this.hasRotatingPoint) {\n continue;\n }\n\n if (this.get('lockUniScaling') && (i === 'mt' || i === 'mr' || i === 'mb' || i === 'ml')) {\n continue;\n }\n\n lines = this._getImageLines(this.oCoords[i].corner); // debugging\n // canvas.contextTop.fillRect(lines.bottomline.d.x, lines.bottomline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.bottomline.o.x, lines.bottomline.o.y, 2, 2);\n // canvas.contextTop.fillRect(lines.leftline.d.x, lines.leftline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.leftline.o.x, lines.leftline.o.y, 2, 2);\n // canvas.contextTop.fillRect(lines.topline.d.x, lines.topline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.topline.o.x, lines.topline.o.y, 2, 2);\n // canvas.contextTop.fillRect(lines.rightline.d.x, lines.rightline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.rightline.o.x, lines.rightline.o.y, 2, 2);\n\n xPoints = this._findCrossPoints({\n x: ex,\n y: ey\n }, lines);\n\n if (xPoints !== 0 && xPoints % 2 === 1) {\n this.__corner = i;\n return i;\n }\n }\n\n return false;\n },\n\n /**\n * Sets the coordinates of the draggable boxes in the corners of\n * the image used to scale/rotate it.\n * @private\n */\n _setCornerCoords: function _setCornerCoords() {\n var coords = this.oCoords,\n newTheta = degreesToRadians(45 - this.angle),\n\n /* Math.sqrt(2 * Math.pow(this.cornerSize, 2)) / 2, */\n\n /* 0.707106 stands for sqrt(2)/2 */\n cornerHypotenuse = this.cornerSize * 0.707106,\n cosHalfOffset = cornerHypotenuse * fabric.util.cos(newTheta),\n sinHalfOffset = cornerHypotenuse * fabric.util.sin(newTheta),\n x,\n y;\n\n for (var point in coords) {\n x = coords[point].x;\n y = coords[point].y;\n coords[point].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 }\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 drawSelectionBackground(ctx) {\n if (!this.selectionBackgroundColor || this.canvas && !this.canvas.interactive || this.canvas && this.canvas._activeObject !== this) {\n return this;\n }\n\n ctx.save();\n\n var center = this.getCenterPoint(),\n wh = this._calculateCurrentDimensions(),\n vpt = this.canvas.viewportTransform;\n\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 drawBorders(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n\n var wh = this._calculateCurrentDimensions(),\n strokeWidth = this.borderScaleFactor,\n width = wh.x + strokeWidth,\n height = wh.y + strokeWidth,\n drawRotatingPoint = typeof styleOverride.hasRotatingPoint !== 'undefined' ? styleOverride.hasRotatingPoint : this.hasRotatingPoint,\n hasControls = typeof styleOverride.hasControls !== 'undefined' ? styleOverride.hasControls : this.hasControls,\n rotatingPointOffset = typeof styleOverride.rotatingPointOffset !== 'undefined' ? styleOverride.rotatingPointOffset : this.rotatingPointOffset;\n\n ctx.save();\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n\n ctx.strokeRect(-width / 2, -height / 2, width, height);\n\n if (drawRotatingPoint && this.isControlVisible('mtr') && hasControls) {\n var rotateHeight = -height / 2;\n ctx.beginPath();\n ctx.moveTo(0, rotateHeight);\n ctx.lineTo(0, rotateHeight - rotatingPointOffset);\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 drawBordersInGroup(ctx, options, styleOverride) {\n styleOverride = styleOverride || {};\n var p = {\n x: this.width,\n y: this.height\n },\n matrix = fabric.util.composeMatrix({\n scaleX: options.scaleX,\n scaleY: options.scaleY,\n skewX: options.skewX\n }),\n wh = fabric.util.transformPoint(p, matrix),\n strokeWidth = this.strokeWidth,\n borderScaleFactor = this.borderScaleFactor,\n width = wh.x + strokeWidth * (this.strokeUniform ? this.canvas.getZoom() : options.scaleX) + borderScaleFactor,\n height = wh.y + strokeWidth * (this.strokeUniform ? this.canvas.getZoom() : options.scaleY) + borderScaleFactor;\n ctx.save();\n\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n ctx.strokeRect(-width / 2, -height / 2, width, height);\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 drawControls(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n\n var wh = this._calculateCurrentDimensions(),\n width = wh.x,\n height = wh.y,\n scaleOffset = styleOverride.cornerSize || this.cornerSize,\n left = -(width + scaleOffset) / 2,\n top = -(height + scaleOffset) / 2,\n transparentCorners = typeof styleOverride.transparentCorners !== 'undefined' ? styleOverride.transparentCorners : this.transparentCorners,\n hasRotatingPoint = typeof styleOverride.hasRotatingPoint !== 'undefined' ? styleOverride.hasRotatingPoint : this.hasRotatingPoint,\n methodName = transparentCorners ? 'stroke' : 'fill';\n\n ctx.save();\n ctx.strokeStyle = ctx.fillStyle = styleOverride.cornerColor || this.cornerColor;\n\n if (!this.transparentCorners) {\n ctx.strokeStyle = styleOverride.cornerStrokeColor || this.cornerStrokeColor;\n }\n\n this._setLineDash(ctx, styleOverride.cornerDashArray || this.cornerDashArray, null); // top-left\n\n\n this._drawControl('tl', ctx, methodName, left, top, styleOverride); // top-right\n\n\n this._drawControl('tr', ctx, methodName, left + width, top, styleOverride); // bottom-left\n\n\n this._drawControl('bl', ctx, methodName, left, top + height, styleOverride); // bottom-right\n\n\n this._drawControl('br', ctx, methodName, left + width, top + height, styleOverride);\n\n if (!this.get('lockUniScaling')) {\n // middle-top\n this._drawControl('mt', ctx, methodName, left + width / 2, top, styleOverride); // middle-bottom\n\n\n this._drawControl('mb', ctx, methodName, left + width / 2, top + height, styleOverride); // middle-right\n\n\n this._drawControl('mr', ctx, methodName, left + width, top + height / 2, styleOverride); // middle-left\n\n\n this._drawControl('ml', ctx, methodName, left, top + height / 2, styleOverride);\n } // middle-top-rotate\n\n\n if (hasRotatingPoint) {\n this._drawControl('mtr', ctx, methodName, left + width / 2, top - this.rotatingPointOffset, styleOverride);\n }\n\n ctx.restore();\n return this;\n },\n\n /**\n * @private\n */\n _drawControl: function _drawControl(control, ctx, methodName, left, top, styleOverride) {\n styleOverride = styleOverride || {};\n\n if (!this.isControlVisible(control)) {\n return;\n }\n\n var size = this.cornerSize,\n stroke = !this.transparentCorners && this.cornerStrokeColor;\n\n switch (styleOverride.cornerStyle || this.cornerStyle) {\n case 'circle':\n ctx.beginPath();\n ctx.arc(left + size / 2, top + size / 2, size / 2, 0, 2 * Math.PI, false);\n ctx[methodName]();\n\n if (stroke) {\n ctx.stroke();\n }\n\n break;\n\n default:\n this.transparentCorners || ctx.clearRect(left, top, size, size);\n ctx[methodName + 'Rect'](left, top, size, size);\n\n if (stroke) {\n ctx.strokeRect(left, top, size, size);\n }\n\n }\n },\n\n /**\n * Returns true if the specified control is visible, false otherwise.\n * @param {String} controlName The name 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 isControlVisible(controlName) {\n return this._getControlsVisibility()[controlName];\n },\n\n /**\n * Sets the visibility of the specified control.\n * @param {String} controlName The name 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 setControlVisible(controlName, visible) {\n this._getControlsVisibility()[controlName] = 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 setControlsVisibility(options) {\n options || (options = {});\n\n for (var p in options) {\n this.setControlVisible(p, options[p]);\n }\n\n return this;\n },\n\n /**\n * Returns the instance of the control visibility set for this object.\n * @private\n * @returns {Object}\n */\n _getControlsVisibility: function _getControlsVisibility() {\n if (!this._controlsVisibility) {\n this._controlsVisibility = {\n tl: true,\n tr: true,\n br: true,\n bl: true,\n ml: true,\n mt: true,\n mr: true,\n mb: true,\n mtr: true\n };\n }\n\n return this._controlsVisibility;\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 onDeselect() {// implemented by sub-classes, as needed.\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 onSelect() {// implemented by sub-classes, as needed.\n }\n });\n})();\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype,\n/** @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 fxCenterObjectH(object, callbacks) {\n callbacks = callbacks || {};\n\n var empty = function empty() {},\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 onChange(value) {\n object.set('left', value);\n\n _this.requestRenderAll();\n\n _onChange();\n },\n onComplete: function onComplete() {\n object.setCoords();\n\n _onComplete();\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 fxCenterObjectV(object, callbacks) {\n callbacks = callbacks || {};\n\n var empty = function empty() {},\n _onComplete2 = callbacks.onComplete || empty,\n _onChange2 = 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 onChange(value) {\n object.set('top', value);\n\n _this.requestRenderAll();\n\n _onChange2();\n },\n onComplete: function onComplete() {\n object.setCoords();\n\n _onComplete2();\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 fxRemove(object, callbacks) {\n callbacks = callbacks || {};\n\n var empty = function empty() {},\n _onComplete3 = callbacks.onComplete || empty,\n _onChange3 = 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 onChange(value) {\n object.set('opacity', value);\n\n _this.requestRenderAll();\n\n _onChange3();\n },\n onComplete: function onComplete() {\n _this.remove(object);\n\n _onComplete3();\n }\n });\n return this;\n }\n});\nfabric.util.object.extend(fabric.Object.prototype,\n/** @lends fabric.Object.prototype */\n{\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 animate() {\n if (arguments[0] && _typeof(arguments[0]) === 'object') {\n var propsToAnimate = [],\n prop,\n skipCallbacks;\n\n for (prop in arguments[0]) {\n propsToAnimate.push(prop);\n }\n\n for (var i = 0, len = propsToAnimate.length; i < len; i++) {\n prop = propsToAnimate[i];\n skipCallbacks = i !== len - 1;\n\n this._animate(prop, arguments[0][prop], arguments[1], skipCallbacks);\n }\n } else {\n this._animate.apply(this, arguments);\n }\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 _animate(property, to, options, skipCallbacks) {\n var _this = this,\n propPair;\n\n to = to.toString();\n\n if (!options) {\n options = {};\n } else {\n options = fabric.util.object.clone(options);\n }\n\n if (~property.indexOf('.')) {\n propPair = property.split('.');\n }\n\n var currentValue = propPair ? this.get(propPair[0])[propPair[1]] : this.get(property);\n\n if (!('from' in options)) {\n options.from = currentValue;\n }\n\n if (~to.indexOf('=')) {\n to = currentValue + parseFloat(to.replace('=', ''));\n } else {\n to = parseFloat(to);\n }\n\n fabric.util.animate({\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 onChange(value, valueProgress, timeProgress) {\n if (propPair) {\n _this[propPair[0]][propPair[1]] = value;\n } else {\n _this.set(property, value);\n }\n\n if (skipCallbacks) {\n return;\n }\n\n options.onChange && options.onChange(value, valueProgress, timeProgress);\n },\n onComplete: function onComplete(value, valueProgress, timeProgress) {\n if (skipCallbacks) {\n return;\n }\n\n _this.setCoords();\n\n options.onComplete && options.onComplete(value, valueProgress, timeProgress);\n }\n });\n }\n});\n\n(function (global) {\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 = {\n x1: 1,\n x2: 1,\n y1: 1,\n y2: 1\n },\n supportsLineDash = fabric.StaticCanvas.supports('setLineDash');\n\n if (fabric.Line) {\n fabric.warn('fabric.Line is already defined');\n return;\n }\n /**\n * Line class\n * @class fabric.Line\n * @extends fabric.Object\n * @see {@link fabric.Line#initialize} for constructor definition\n */\n\n\n fabric.Line = fabric.util.createClass(fabric.Object,\n /** @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 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 initialize(points, options) {\n if (!points) {\n points = [0, 0, 0, 0];\n }\n\n this.callSuper('initialize', options);\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 _setWidthHeight(options) {\n options || (options = {});\n this.width = Math.abs(this.x2 - this.x1);\n this.height = Math.abs(this.y2 - this.y1);\n this.left = 'left' in options ? options.left : this._getLeftToOriginX();\n this.top = 'top' in options ? options.top : this._getTopToOriginY();\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set: function _set(key, value) {\n this.callSuper('_set', key, value);\n\n if (typeof coordProps[key] !== 'undefined') {\n this._setWidthHeight();\n }\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 * @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 * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function _render(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; // 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\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 _renderDashedStroke(ctx) {\n var p = this.calcLinePoints();\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 _findCenterFromElement() {\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 toObject(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 _getNonTransformedDimensions() {\n var dim = this.callSuper('_getNonTransformedDimensions');\n\n if (this.strokeLineCap === 'butt') {\n if (this.width === 0) {\n dim.y -= this.strokeWidth;\n }\n\n if (this.height === 0) {\n dim.x -= this.strokeWidth;\n }\n }\n\n return dim;\n },\n\n /**\n * Recalculates line points given width and height\n * @private\n */\n calcLinePoints: function calcLinePoints() {\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 return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\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 _toSVG() {\n var p = this.calcLinePoints();\n return ['\\n'];\n }\n /* _TO_SVG_END_ */\n\n });\n /* _FROM_SVG_START_ */\n\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\n fabric.Line.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x1 y1 x2 y2'.split(' '));\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\n fabric.Line.fromElement = function (element, callback, options) {\n options = options || {};\n var parsedAttributes = fabric.parseAttributes(element, fabric.Line.ATTRIBUTE_NAMES),\n points = [parsedAttributes.x1 || 0, parsedAttributes.y1 || 0, parsedAttributes.x2 || 0, parsedAttributes.y2 || 0];\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\n\n fabric.Line.fromObject = function (object, callback) {\n function _callback(instance) {\n delete instance.points;\n callback && callback(instance);\n }\n\n ;\n var options = clone(object, true);\n options.points = [object.x1, object.y1, object.x2, object.y2];\n\n fabric.Object._fromObject('Line', options, _callback, 'points');\n };\n /**\n * Produces a function that calculates distance from canvas edge to Line origin.\n */\n\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 return function () {\n switch (this.get(origin)) {\n case nearest:\n return Math.min(this.get(axis1), this.get(axis2));\n\n case center:\n return Math.min(this.get(axis1), this.get(axis2)) + 0.5 * this.get(dimension);\n\n case farthest:\n return Math.max(this.get(axis1), this.get(axis2));\n }\n };\n }\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * Circle class\n * @class fabric.Circle\n * @extends fabric.Object\n * @see {@link fabric.Circle#initialize} for constructor definition\n */\n\n\n fabric.Circle = fabric.util.createClass(fabric.Object,\n /** @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 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 _set(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 toObject(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 _toSVG() {\n var svgString,\n x = 0,\n y = 0,\n angle = (this.endAngle - this.startAngle) % (2 * pi);\n\n if (angle === 0) {\n svgString = ['\\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 return svgString;\n },\n\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function _render(ctx) {\n ctx.beginPath();\n ctx.arc(0, 0, this.radius, this.startAngle, this.endAngle, false);\n\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 getRadiusX() {\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 getRadiusY() {\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 setRadius(value) {\n this.radius = value;\n return this.set('width', value * 2).set('height', value * 2);\n }\n });\n /* _FROM_SVG_START_ */\n\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\n fabric.Circle.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy r'.split(' '));\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\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 * @private\n */\n\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\n\n fabric.Circle.fromObject = function (object, callback) {\n return fabric.Object._fromObject('Circle', object, callback);\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n\n fabric.Triangle = fabric.util.createClass(fabric.Object,\n /** @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 _render(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\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 _renderDashedStroke(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\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 /**\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 _toSVG() {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2,\n points = [-widthBy2 + ' ' + heightBy2, '0 ' + -heightBy2, widthBy2 + ' ' + heightBy2].join(',');\n return [''];\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\n fabric.Triangle.fromObject = function (object, callback) {\n return fabric.Object._fromObject('Triangle', object, callback);\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n\n fabric.Ellipse = fabric.util.createClass(fabric.Object,\n /** @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 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 initialize(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 _set(key, value) {\n this.callSuper('_set', key, value);\n\n switch (key) {\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 getRx() {\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 getRy() {\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 toObject(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].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 _toSVG() {\n return ['\\n'];\n },\n\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function _render(ctx) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(0, 0, this.rx, 0, piBy2, false);\n ctx.restore();\n\n this._renderPaintInOrder(ctx);\n }\n });\n /* _FROM_SVG_START_ */\n\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\n fabric.Ellipse.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy rx ry'.split(' '));\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\n fabric.Ellipse.fromElement = function (element, callback) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Ellipse.ATTRIBUTE_NAMES);\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\n\n fabric.Ellipse.fromObject = function (object, callback) {\n return fabric.Object._fromObject('Ellipse', object, callback);\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n\n fabric.Rect = fabric.util.createClass(fabric.Object,\n /** @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 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 initialize(options) {\n this.callSuper('initialize', options);\n\n this._initRxRy();\n },\n\n /**\n * Initializes rx/ry attributes\n * @private\n */\n _initRxRy: function _initRxRy() {\n if (this.rx && !this.ry) {\n this.ry = this.rx;\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 _render(ctx) {\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 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\n /* \"magic number\" for bezier approximations of arcs (http://itc.ktu.lt/itc354/Riskus354.pdf) */\n k = 1 - 0.5522847498;\n ctx.beginPath();\n ctx.moveTo(x + rx, y);\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 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 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 ctx.lineTo(x, y + ry);\n isRounded && ctx.bezierCurveTo(x, y + k * ry, x + k * rx, y, x + rx, y);\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 _renderDashedStroke(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\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 toObject(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].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 _toSVG() {\n var x = -this.width / 2,\n y = -this.height / 2;\n return ['\\n'];\n }\n /* _TO_SVG_END_ */\n\n });\n /* _FROM_SVG_START_ */\n\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\n fabric.Rect.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x y rx ry width height'.split(' '));\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\n fabric.Rect.fromElement = function (element, callback, options) {\n if (!element) {\n return callback(null);\n }\n\n options = options || {};\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\n\n fabric.Rect.fromObject = function (object, callback) {\n return fabric.Object._fromObject('Rect', object, callback);\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * Polyline class\n * @class fabric.Polyline\n * @extends fabric.Object\n * @see {@link fabric.Polyline#initialize} for constructor definition\n */\n\n\n fabric.Polyline = fabric.util.createClass(fabric.Object,\n /** @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 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 initialize(points, options) {\n options = options || {};\n this.points = points || [];\n this.callSuper('initialize', options);\n\n this._setPositionDimensions(options);\n },\n _setPositionDimensions: function _setPositionDimensions(options) {\n var calcDim = this._calcDimensions(options),\n correctLeftTop;\n\n this.width = calcDim.width;\n this.height = calcDim.height;\n\n if (!options.fromSVG) {\n correctLeftTop = this.translateToGivenOrigin({\n x: calcDim.left - this.strokeWidth / 2,\n y: calcDim.top - this.strokeWidth / 2\n }, 'left', 'top', this.originX, this.originY);\n }\n\n if (typeof options.left === 'undefined') {\n this.left = options.fromSVG ? calcDim.left : correctLeftTop.x;\n }\n\n if (typeof options.top === 'undefined') {\n this.top = options.fromSVG ? calcDim.top : correctLeftTop.y;\n }\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 _calcDimensions() {\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 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 toObject(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n points: this.points.concat()\n });\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 _toSVG() {\n var points = [],\n diffX = this.pathOffset.x,\n 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(toFixed(this.points[i].x - diffX, NUM_FRACTION_DIGITS), ',', toFixed(this.points[i].y - diffY, NUM_FRACTION_DIGITS), ' ');\n }\n\n return ['<' + this.type + ' ', 'COMMON_PARTS', 'points=\"', points.join(''), '\" />\\n'];\n },\n\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n commonRender: function commonRender(ctx) {\n var point,\n 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\n ctx.beginPath();\n ctx.moveTo(this.points[0].x - x, this.points[0].y - y);\n\n for (var i = 0; i < len; i++) {\n point = this.points[i];\n ctx.lineTo(point.x - x, point.y - y);\n }\n\n return true;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function _render(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\n\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function _renderDashedStroke(ctx) {\n var p1, p2;\n ctx.beginPath();\n\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 complexity() {\n return this.get('points').length;\n }\n });\n /* _FROM_SVG_START_ */\n\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\n fabric.Polyline.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\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\n fabric.Polyline.fromElementGenerator = function (_class) {\n return function (element, callback, options) {\n if (!element) {\n return callback(null);\n }\n\n options || (options = {});\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 /* _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\n fabric.Polyline.fromObject = function (object, callback) {\n return fabric.Object._fromObject('Polyline', object, callback, 'points');\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * Polygon class\n * @class fabric.Polygon\n * @extends fabric.Polyline\n * @see {@link fabric.Polygon#initialize} for constructor definition\n */\n\n\n fabric.Polygon = fabric.util.createClass(fabric.Polyline,\n /** @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 _render(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\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 _renderDashedStroke(ctx) {\n this.callSuper('_renderDashedStroke', ctx);\n ctx.closePath();\n }\n });\n /* _FROM_SVG_START_ */\n\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\n fabric.Polygon.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\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\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\n fabric.Polygon.fromObject = function (object, callback) {\n return fabric.Object._fromObject('Polygon', object, callback, 'points');\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 drawArc = fabric.util.drawArc,\n toFixed = fabric.util.toFixed,\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\n if (fabric.Path) {\n fabric.warn('fabric.Path is already defined');\n return;\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\n\n fabric.Path = fabric.util.createClass(fabric.Object,\n /** @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 cacheProperties: fabric.Object.prototype.cacheProperties.concat('path', 'fillRule'),\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 initialize(path, options) {\n options = options || {};\n this.callSuper('initialize', options);\n\n if (!path) {\n path = [];\n }\n\n var fromArray = _toString.call(path) === '[object Array]';\n this.path = fromArray ? path // one of commands (m,M,l,L,q,Q,c,C,etc.) followed by non-command characters (i.e. command values)\n : path.match && path.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi);\n\n if (!this.path) {\n return;\n }\n\n if (!fromArray) {\n this.path = this._parsePath();\n }\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 _renderPathCommands(ctx) {\n var current,\n // current instruction\n previous = null,\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0,\n // current x\n y = 0,\n // current y\n controlX = 0,\n // current control point x\n controlY = 0,\n // current control point y\n tempX,\n tempY,\n l = -this.pathOffset.x,\n t = -this.pathOffset.y;\n ctx.beginPath();\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n current = this.path[i];\n\n switch (current[0]) {\n // first letter\n case 'l':\n // lineto, relative\n x += current[1];\n y += current[2];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'L':\n // lineto, absolute\n x = current[1];\n y = current[2];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'h':\n // horizontal lineto, relative\n x += current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'H':\n // horizontal lineto, absolute\n x = current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'v':\n // vertical lineto, relative\n y += current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'V':\n // verical lineto, absolute\n y = current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'm':\n // moveTo, relative\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 'M':\n // 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':\n // bezierCurveTo, relative\n tempX = x + current[5];\n tempY = y + current[6];\n controlX = x + current[3];\n controlY = y + current[4];\n ctx.bezierCurveTo(x + current[1] + l, // x1\n y + current[2] + t, // y1\n controlX + l, // x2\n controlY + t, // y2\n tempX + l, tempY + t);\n x = tempX;\n y = tempY;\n break;\n\n case 'C':\n // bezierCurveTo, absolute\n x = current[5];\n y = current[6];\n controlX = current[3];\n controlY = current[4];\n ctx.bezierCurveTo(current[1] + l, current[2] + t, controlX + l, controlY + t, x + l, y + t);\n break;\n\n case 's':\n // shorthand cubic bezierCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n\n if (previous[0].match(/[CcSs]/) === null) {\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 } else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n ctx.bezierCurveTo(controlX + l, controlY + t, x + current[1] + l, y + current[2] + t, tempX + l, tempY + t); // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n\n controlX = x + current[1];\n controlY = y + current[2];\n x = tempX;\n y = tempY;\n break;\n\n case 'S':\n // shorthand cubic bezierCurveTo, absolute\n tempX = current[3];\n tempY = current[4];\n\n if (previous[0].match(/[CcSs]/) === null) {\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 } else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n ctx.bezierCurveTo(controlX + l, controlY + t, current[1] + l, current[2] + t, tempX + l, tempY + t);\n x = tempX;\n y = tempY; // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n\n controlX = current[1];\n controlY = current[2];\n break;\n\n case 'q':\n // quadraticCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n controlX = x + current[1];\n controlY = y + current[2];\n ctx.quadraticCurveTo(controlX + l, controlY + t, tempX + l, tempY + t);\n x = tempX;\n y = tempY;\n break;\n\n case 'Q':\n // quadraticCurveTo, absolute\n tempX = current[3];\n tempY = current[4];\n ctx.quadraticCurveTo(current[1] + l, current[2] + t, tempX + l, tempY + t);\n x = tempX;\n y = tempY;\n controlX = current[1];\n controlY = current[2];\n break;\n\n case 't':\n // shorthand quadraticCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[1];\n tempY = y + current[2];\n\n if (previous[0].match(/[QqTt]/) === null) {\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 } else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n ctx.quadraticCurveTo(controlX + l, controlY + t, tempX + l, tempY + t);\n x = tempX;\n y = tempY;\n break;\n\n case 'T':\n tempX = current[1];\n tempY = current[2];\n\n if (previous[0].match(/[QqTt]/) === null) {\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 } else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n ctx.quadraticCurveTo(controlX + l, controlY + t, tempX + l, tempY + t);\n x = tempX;\n y = tempY;\n break;\n\n case 'a':\n // TODO: optimize this\n drawArc(ctx, x + l, y + t, [current[1], current[2], current[3], current[4], current[5], current[6] + x + l, current[7] + y + t]);\n x += current[6];\n y += current[7];\n break;\n\n case 'A':\n // TODO: optimize this\n drawArc(ctx, x + l, y + t, [current[1], current[2], current[3], current[4], current[5], current[6] + l, current[7] + t]);\n x = current[6];\n y = current[7];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n ctx.closePath();\n break;\n }\n\n previous = current;\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render path on\n */\n _render: function _render(ctx) {\n this._renderPathCommands(ctx);\n\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 toString() {\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 toObject(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n path: this.path.map(function (item) {\n return item.slice();\n })\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 toDatalessObject(propertiesToInclude) {\n var o = this.toObject(['sourcePath'].concat(propertiesToInclude));\n\n if (o.sourcePath) {\n delete o.path;\n }\n\n return o;\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 _toSVG() {\n var path = this.path.map(function (path) {\n return path.join(' ');\n }).join(' ');\n return ['\\n'];\n },\n _getOffsetTransform: function _getOffsetTransform() {\n var digits = fabric.Object.NUM_FRACTION_DIGITS;\n return ' translate(' + toFixed(-this.pathOffset.x, digits) + ', ' + 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 toClipPathSVG(reviver) {\n var additionalTransform = this._getOffsetTransform();\n\n return '\\t' + this._createBaseClipPathSVGMarkup(this._toSVG(), {\n reviver: reviver,\n 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 toSVG(reviver) {\n var additionalTransform = this._getOffsetTransform();\n\n return this._createBaseSVGMarkup(this._toSVG(), {\n reviver: reviver,\n additionalTransform: additionalTransform\n });\n },\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 complexity() {\n return this.path.length;\n },\n\n /**\n * @private\n */\n _parsePath: function _parsePath() {\n var result = [],\n coords = [],\n currentPath,\n parsed,\n re = fabric.rePathCommand,\n match,\n coordsStr;\n\n for (var i = 0, coordsParsed, len = this.path.length; i < len; i++) {\n currentPath = this.path[i];\n coordsStr = currentPath.slice(1).trim();\n coords.length = 0;\n\n while (match = re.exec(coordsStr)) {\n coords.push(match[0]);\n }\n\n coordsParsed = [currentPath.charAt(0)];\n\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n parsed = parseFloat(coords[j]);\n\n if (!isNaN(parsed)) {\n coordsParsed.push(parsed);\n }\n }\n\n var command = coordsParsed[0],\n 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 } else {\n result.push(coordsParsed);\n }\n }\n\n return result;\n },\n\n /**\n * @private\n */\n _calcDimensions: function _calcDimensions() {\n var aX = [],\n aY = [],\n current,\n // current instruction\n previous = null,\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0,\n // current x\n y = 0,\n // current y\n controlX = 0,\n // current control point x\n controlY = 0,\n // current control point y\n tempX,\n tempY,\n bounds;\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n current = this.path[i];\n\n switch (current[0]) {\n // first letter\n case 'l':\n // lineto, relative\n x += current[1];\n y += current[2];\n bounds = [];\n break;\n\n case 'L':\n // lineto, absolute\n x = current[1];\n y = current[2];\n bounds = [];\n break;\n\n case 'h':\n // horizontal lineto, relative\n x += current[1];\n bounds = [];\n break;\n\n case 'H':\n // horizontal lineto, absolute\n x = current[1];\n bounds = [];\n break;\n\n case 'v':\n // vertical lineto, relative\n y += current[1];\n bounds = [];\n break;\n\n case 'V':\n // verical lineto, absolute\n y = current[1];\n bounds = [];\n break;\n\n case 'm':\n // moveTo, relative\n x += current[1];\n y += current[2];\n subpathStartX = x;\n subpathStartY = y;\n bounds = [];\n break;\n\n case 'M':\n // moveTo, absolute\n x = current[1];\n y = current[2];\n subpathStartX = x;\n subpathStartY = y;\n bounds = [];\n break;\n\n case 'c':\n // bezierCurveTo, relative\n tempX = x + current[5];\n tempY = y + current[6];\n controlX = x + current[3];\n controlY = y + current[4];\n bounds = fabric.util.getBoundsOfCurve(x, y, x + current[1], // x1\n y + current[2], // y1\n controlX, // x2\n controlY, // y2\n tempX, tempY);\n x = tempX;\n y = tempY;\n break;\n\n case 'C':\n // bezierCurveTo, absolute\n controlX = current[3];\n controlY = current[4];\n bounds = fabric.util.getBoundsOfCurve(x, y, current[1], current[2], controlX, controlY, current[5], current[6]);\n x = current[5];\n y = current[6];\n break;\n\n case 's':\n // shorthand cubic bezierCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n\n if (previous[0].match(/[CcSs]/) === null) {\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 } else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n bounds = fabric.util.getBoundsOfCurve(x, y, controlX, controlY, x + current[1], y + current[2], tempX, tempY); // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n\n controlX = x + current[1];\n controlY = y + current[2];\n x = tempX;\n y = tempY;\n break;\n\n case 'S':\n // shorthand cubic bezierCurveTo, absolute\n tempX = current[3];\n tempY = current[4];\n\n if (previous[0].match(/[CcSs]/) === null) {\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 } else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n bounds = fabric.util.getBoundsOfCurve(x, y, controlX, controlY, current[1], current[2], tempX, tempY);\n x = tempX;\n y = tempY; // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n\n controlX = current[1];\n controlY = current[2];\n break;\n\n case 'q':\n // quadraticCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n controlX = x + current[1];\n controlY = y + current[2];\n bounds = fabric.util.getBoundsOfCurve(x, y, controlX, controlY, controlX, controlY, tempX, tempY);\n x = tempX;\n y = tempY;\n break;\n\n case 'Q':\n // quadraticCurveTo, absolute\n controlX = current[1];\n controlY = current[2];\n bounds = fabric.util.getBoundsOfCurve(x, y, controlX, controlY, controlX, controlY, current[3], current[4]);\n x = current[3];\n y = current[4];\n break;\n\n case 't':\n // shorthand quadraticCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[1];\n tempY = y + current[2];\n\n if (previous[0].match(/[QqTt]/) === null) {\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 } else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n bounds = fabric.util.getBoundsOfCurve(x, y, controlX, controlY, controlX, controlY, tempX, tempY);\n x = tempX;\n y = tempY;\n break;\n\n case 'T':\n tempX = current[1];\n tempY = current[2];\n\n if (previous[0].match(/[QqTt]/) === null) {\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 } else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n bounds = fabric.util.getBoundsOfCurve(x, y, controlX, controlY, controlX, controlY, tempX, tempY);\n x = tempX;\n y = tempY;\n break;\n\n case 'a':\n // TODO: optimize this\n bounds = fabric.util.getBoundsOfArc(x, y, current[1], current[2], current[3], current[4], current[5], current[6] + x, current[7] + y);\n x += current[6];\n y += current[7];\n break;\n\n case 'A':\n // TODO: optimize this\n bounds = fabric.util.getBoundsOfArc(x, y, current[1], current[2], current[3], current[4], current[5], current[6], current[7]);\n x = current[6];\n y = current[7];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n break;\n }\n\n previous = current;\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 return {\n left: minX,\n top: minY,\n width: deltaX,\n height: deltaY\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\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 } else {\n fabric.Object._fromObject('Path', object, callback, 'path');\n }\n };\n /* _FROM_SVG_START_ */\n\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\n\n fabric.Path.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(['d']);\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\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(function (global) {\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 * 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\n\n fabric.Group = fabric.util.createClass(fabric.Object, fabric.Collection,\n /** @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 initialize(objects, options, isAlreadyGrouped) {\n options = options || {};\n this._objects = []; // 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\n isAlreadyGrouped && this.callSuper('initialize', options);\n this._objects = objects || [];\n\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; // 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\n if (options.originX !== undefined) {\n this.originX = options.originX;\n }\n\n if (options.originY !== undefined) {\n this.originY = options.originY;\n } // if coming from svg i do not want to calc bounds.\n // i assume width and height are passed along options\n\n\n center || this._calcBounds();\n\n this._updateObjectsCoords(center);\n\n delete options.centerPoint;\n this.callSuper('initialize', options);\n } else {\n this._updateObjectsACoords();\n }\n\n this.setCoords();\n },\n\n /**\n * @private\n * @param {Boolean} [skipCoordsChange] if true, coordinates of objects enclosed in a group do not change\n */\n _updateObjectsACoords: function _updateObjectsACoords() {\n var ignoreZoom = true,\n skipAbsolute = true;\n\n for (var i = this._objects.length; i--;) {\n this._objects[i].setCoords(ignoreZoom, skipAbsolute);\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 _updateObjectsCoords(center) {\n var center = center || this.getCenterPoint();\n\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 _updateObjectCoords(object, center) {\n var objectLeft = object.left,\n objectTop = object.top,\n ignoreZoom = true,\n skipAbsolute = true;\n object.set({\n left: objectLeft - center.x,\n top: objectTop - center.y\n });\n object.group = this;\n object.setCoords(ignoreZoom, skipAbsolute);\n },\n\n /**\n * Returns string represenation of a group\n * @return {String}\n */\n toString: function toString() {\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 addWithUpdate(object) {\n this._restoreObjectsState();\n\n fabric.util.resetObjectTransform(this);\n\n if (object) {\n this._objects.push(object);\n\n object.group = this;\n\n object._set('canvas', this.canvas);\n }\n\n this._calcBounds();\n\n this._updateObjectsCoords();\n\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 removeWithUpdate(object) {\n this._restoreObjectsState();\n\n fabric.util.resetObjectTransform(this);\n this.remove(object);\n\n this._calcBounds();\n\n this._updateObjectsCoords();\n\n this.setCoords();\n this.dirty = true;\n return this;\n },\n\n /**\n * @private\n */\n _onObjectAdded: function _onObjectAdded(object) {\n this.dirty = true;\n object.group = this;\n\n object._set('canvas', this.canvas);\n },\n\n /**\n * @private\n */\n _onObjectRemoved: function _onObjectRemoved(object) {\n this.dirty = true;\n delete object.group;\n },\n\n /**\n * @private\n */\n _set: function _set(key, value) {\n var i = this._objects.length;\n\n if (this.useSetOnGroup) {\n while (i--) {\n this._objects[i].setOnGroup(key, value);\n }\n }\n\n if (key === 'canvas') {\n while (i--) {\n this._objects[i]._set(key, value);\n }\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 toObject(propertiesToInclude) {\n var _includeDefaultValues = this.includeDefaultValues;\n\n var objsToObject = this._objects.map(function (obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n\n var _obj = obj.toObject(propertiesToInclude);\n\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\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 toDatalessObject(propertiesToInclude) {\n var objsToObject,\n sourcePath = this.sourcePath;\n\n if (sourcePath) {\n objsToObject = sourcePath;\n } else {\n var _includeDefaultValues = this.includeDefaultValues;\n objsToObject = this._objects.map(function (obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n\n var _obj = obj.toDatalessObject(propertiesToInclude);\n\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\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 render(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 shouldCache() {\n var ownCache = fabric.Object.prototype.shouldCache.call(this);\n\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\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 willDrawShadow() {\n if (fabric.Object.prototype.willDrawShadow.call(this)) {\n return true;\n }\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\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 isOnACache() {\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 drawObject(ctx) {\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i].render(ctx);\n }\n\n this._drawClipPath(ctx);\n },\n\n /**\n * Check if cache is dirty\n */\n isCacheDirty: function isCacheDirty(skipCanvas) {\n if (this.callSuper('isCacheDirty', skipCanvas)) {\n return true;\n }\n\n if (!this.statefullCache) {\n return false;\n }\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,\n y = this.cacheHeight / this.zoomY;\n\n this._cacheContext.clearRect(-x / 2, -y / 2, x, y);\n }\n\n return true;\n }\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 _restoreObjectsState() {\n this._objects.forEach(this._restoreObjectState, this);\n\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 realizeTransform(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 _restoreObjectState(object) {\n this.realizeTransform(object);\n object.setCoords();\n delete object.group;\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 destroy() {\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\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 toActiveSelection() {\n if (!this.canvas) {\n return;\n }\n\n var objects = this._objects,\n 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 ungroupOnCanvas() {\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 setObjectsCoords() {\n var ignoreZoom = true,\n skipAbsolute = true;\n this.forEachObject(function (object) {\n object.setCoords(ignoreZoom, skipAbsolute);\n });\n return this;\n },\n\n /**\n * @private\n */\n _calcBounds: function _calcBounds(onlyWidthHeight) {\n var aX = [],\n aY = [],\n o,\n prop,\n props = ['tr', 'br', 'bl', 'tl'],\n i = 0,\n iLen = this._objects.length,\n j,\n jLen = props.length,\n ignoreZoom = true;\n\n for (; i < iLen; ++i) {\n o = this._objects[i];\n o.setCoords(ignoreZoom);\n\n for (j = 0; j < jLen; j++) {\n prop = props[j];\n aX.push(o.oCoords[prop].x);\n aY.push(o.oCoords[prop].y);\n }\n }\n\n this._getBounds(aX, aY, onlyWidthHeight);\n },\n\n /**\n * @private\n */\n _getBounds: function _getBounds(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,\n 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\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({\n x: left,\n y: top\n }, 'left', 'top');\n }\n },\n\n /* _TO_SVG_START_ */\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 _toSVG(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\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 getSvgStyles() {\n var opacity = typeof this.opacity !== 'undefined' && this.opacity !== 1 ? 'opacity: ' + this.opacity + ';' : '',\n visibility = this.visible ? '' : ' visibility: hidden;';\n return [opacity, this.getSvgFilter(), visibility].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 toClipPathSVG(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, {\n reviver: reviver\n });\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\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\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\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})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {});\n\n if (fabric.ActiveSelection) {\n return;\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\n\n fabric.ActiveSelection = fabric.util.createClass(fabric.Group,\n /** @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 initialize(objects, options) {\n options = options || {};\n this._objects = objects || [];\n\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\n if (options.originY) {\n this.originY = options.originY;\n }\n\n this._calcBounds();\n\n this._updateObjectsCoords();\n\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 toGroup() {\n var objects = this._objects.concat();\n\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\n if (!this.canvas) {\n return newGroup;\n }\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 onDeselect() {\n this.destroy();\n return false;\n },\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString: function toString() {\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 shouldCache() {\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 isOnACache() {\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 _renderControls(ctx, styleOverride, childrenOverride) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n this.callSuper('_renderControls', ctx, styleOverride);\n childrenOverride = childrenOverride || {};\n\n if (typeof childrenOverride.hasControls === 'undefined') {\n childrenOverride.hasControls = false;\n }\n\n if (typeof childrenOverride.hasRotatingPoint === 'undefined') {\n childrenOverride.hasRotatingPoint = false;\n }\n\n childrenOverride.forActiveSelection = true;\n\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i]._renderControls(ctx, childrenOverride);\n }\n\n ctx.restore();\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\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})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n\n fabric.Image = fabric.util.createClass(fabric.Object,\n /** @lends fabric.Image.prototype */\n {\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'image',\n\n /**\n * crossOrigin value (one of \"\", \"anonymous\", \"use-credentials\")\n * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes\n * @type String\n * @default\n */\n crossOrigin: '',\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 * 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 initialize(element, options) {\n options || (options = {});\n this.filters = [];\n this.cacheKey = 'texture' + fabric.Object.__uid++;\n this.callSuper('initialize', options);\n\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 getElement() {\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 setElement(element, options) {\n this.removeTexture(this.cacheKey);\n this.removeTexture(this.cacheKey + '_filtered');\n this._element = element;\n this._originalElement = element;\n\n this._initConfig(options);\n\n if (this.filters.length !== 0) {\n this.applyFilters();\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\n\n if (this.resizeFilter) {\n this.applyResizeFilters();\n }\n\n return this;\n },\n\n /**\n * Delete a single texture if in webgl mode\n */\n removeTexture: function removeTexture(key) {\n var backend = fabric.filterBackend;\n\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 dispose() {\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 * Sets crossOrigin value (on an instance and corresponding image element)\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setCrossOrigin: function setCrossOrigin(value) {\n this.crossOrigin = value;\n this._element.crossOrigin = value;\n return this;\n },\n\n /**\n * Returns original size of an image\n * @return {Object} Object with \"width\" and \"height\" properties\n */\n getOriginalSize: function getOriginalSize() {\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 _stroke(ctx) {\n if (!this.stroke || this.strokeWidth === 0) {\n return;\n }\n\n var w = this.width / 2,\n 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 _renderDashedStroke(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\n ctx.save();\n\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 toObject(propertiesToInclude) {\n var filters = [];\n this.filters.forEach(function (filterObj) {\n if (filterObj) {\n filters.push(filterObj.toObject());\n }\n });\n var object = extend(this.callSuper('toObject', ['crossOrigin', 'cropX', 'cropY'].concat(propertiesToInclude)), {\n src: this.getSrc(),\n filters: filters\n });\n\n if (this.resizeFilter) {\n object.resizeFilter = this.resizeFilter.toObject();\n }\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 hasCrop() {\n return this.cropX || this.cropY || this.width < this._element.width || this.height < this._element.height;\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 _toSVG() {\n var svgString = [],\n imageMarkup = [],\n strokeSvg,\n x = -this.width / 2,\n y = -this.height / 2,\n clipPath = '';\n\n if (this.hasCrop()) {\n var clipPathId = fabric.Object.__uid++;\n svgString.push('\\n', '\\t\\n', '\\n');\n clipPath = ' clip-path=\"url(#imageCrop_' + clipPathId + ')\" ';\n }\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=\"', this._element.width || this._element.naturalWidth, '\" height=\"', this._element.height || this._element.height, '\"', clipPath, '>\\n');\n\n if (this.stroke || this.strokeDashArray) {\n var origFill = this.fill;\n this.fill = null;\n strokeSvg = ['\\t\\n'];\n this.fill = origFill;\n }\n\n if (this.paintFirst !== 'fill') {\n svgString = svgString.concat(strokeSvg, imageMarkup);\n } else {\n svgString = svgString.concat(imageMarkup, strokeSvg);\n }\n\n return svgString;\n },\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 getSrc(filtered) {\n var element = filtered ? this._element : this._originalElement;\n\n if (element) {\n if (element.toDataURL) {\n return element.toDataURL();\n }\n\n if (this.srcFromAttribute) {\n return element.getAttribute('src');\n } else {\n return element.src;\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 * @return {fabric.Image} thisArg\n * @chainable\n */\n setSrc: function setSrc(src, callback, options) {\n fabric.util.loadImage(src, function (img) {\n this.setElement(img, options);\n\n this._setWidthHeight();\n\n callback && callback(this);\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 toString() {\n return '#';\n },\n applyResizeFilters: function applyResizeFilters() {\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\n if (this.group) {\n this.set('dirty', true);\n }\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\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n\n var canvasEl = fabric.util.createCanvasElement(),\n cacheKey = this._filteredEl ? this.cacheKey + '_filtered' : this.cacheKey,\n sourceWidth = elementToFilter.width,\n 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([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 applyFilters(filters) {\n filters = filters || this.filters || [];\n filters = filters.filter(function (filter) {\n return filter && !filter.isNeutralState();\n });\n this.set('dirty', true); // needs to clear out or WEBGL will not resize correctly\n\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 } else {\n // clear the existing element to get new filter data\n // also dereference the eventual resized _element\n this._element = this._filteredEl;\n\n this._filteredEl.getContext('2d').clearRect(0, 0, sourceWidth, sourceHeight); // we also need to resize again at next renderAll, so remove saved _lastScaleX/Y\n\n\n this._lastScaleX = 1;\n this._lastScaleY = 1;\n }\n\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n\n fabric.filterBackend.applyFilters(filters, this._originalElement, sourceWidth, sourceHeight, this._element, this.cacheKey);\n\n if (this._originalElement.width !== this._element.width || 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\n return this;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function _render(ctx) {\n if (this.isMoving !== true && this.resizeFilter && this._needsResize()) {\n this.applyResizeFilters();\n }\n\n this._stroke(ctx);\n\n this._renderPaintInOrder(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 shouldCache() {\n return this.needsItsOwnCache();\n },\n _renderFill: function _renderFill(ctx) {\n var elementToDraw = this._element;\n\n if (!elementToDraw) {\n return;\n }\n\n var scaleX = this._filterScalingX,\n scaleY = this._filterScalingY,\n w = this.width,\n h = this.height,\n min = Math.min,\n max = Math.max,\n // crop values cannot be lesser than 0.\n cropX = max(this.cropX, 0),\n 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,\n y = -h / 2,\n maxDestW = min(w, elWidth / scaleX - cropX),\n maxDestH = min(h, elHeight / scaleX - cropY);\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 _needsResize() {\n var scale = this.getTotalObjectScaling();\n return scale.scaleX !== this._lastScaleX || scale.scaleY !== this._lastScaleY;\n },\n\n /**\n * @private\n */\n _resetWidthHeight: function _resetWidthHeight() {\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 _initElement(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 _initConfig(options) {\n options || (options = {});\n this.setOptions(options);\n\n this._setWidthHeight(options);\n\n if (this._element && this.crossOrigin) {\n this._element.crossOrigin = this.crossOrigin;\n }\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 _initFilters(filters, callback) {\n if (filters && filters.length) {\n fabric.util.enlivenObjects(filters, function (enlivenedObjects) {\n callback && callback(enlivenedObjects);\n }, 'fabric.Image.filters');\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 _setWidthHeight(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 parsePreserveAspectRatioAttribute() {\n var pAR = fabric.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio || ''),\n rWidth = this._element.width,\n rHeight = this._element.height,\n scaleX = 1,\n scaleY = 1,\n offsetLeft = 0,\n offsetTop = 0,\n cropX = 0,\n cropY = 0,\n offset,\n pWidth = this.width,\n pHeight = this.height,\n parsedAttributes = {\n width: pWidth,\n height: pHeight\n };\n\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\n if (pAR.alignX === 'Min') {\n offsetLeft = -offset;\n }\n\n if (pAR.alignX === 'Max') {\n offsetLeft = offset;\n }\n\n offset = (pHeight - rHeight * scaleY) / 2;\n\n if (pAR.alignY === 'Min') {\n offsetTop = -offset;\n }\n\n if (pAR.alignY === 'Max') {\n offsetTop = offset;\n }\n }\n\n if (pAR.meetOrSlice === 'slice') {\n scaleX = scaleY = fabric.util.findScaleToCover(this._element, parsedAttributes);\n offset = rWidth - pWidth / scaleX;\n\n if (pAR.alignX === 'Mid') {\n cropX = offset / 2;\n }\n\n if (pAR.alignX === 'Max') {\n cropX = offset;\n }\n\n offset = rHeight - pHeight / scaleY;\n\n if (pAR.alignY === 'Mid') {\n cropY = offset / 2;\n }\n\n if (pAR.alignY === 'Max') {\n cropY = offset;\n }\n\n rWidth = pWidth / scaleX;\n rHeight = pHeight / scaleY;\n }\n } else {\n scaleX = pWidth / rWidth;\n scaleY = pHeight / rHeight;\n }\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 * Default CSS class name for canvas\n * @static\n * @type String\n * @default\n */\n\n fabric.Image.CSS_CANVAS = 'canvas-img';\n /**\n * Alias for getSrc\n * @static\n */\n\n fabric.Image.prototype.getSvgSrc = fabric.Image.prototype.getSrc;\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\n fabric.Image.fromObject = function (_object, callback) {\n var object = fabric.util.object.clone(_object);\n fabric.util.loadImage(object.src, function (img, error) {\n if (error) {\n callback && callback(null, error);\n return;\n }\n\n fabric.Image.prototype._initFilters.call(object, object.filters, function (filters) {\n object.filters = filters || [];\n\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);\n });\n });\n });\n }, null, object.crossOrigin);\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)\n * @param {Object} [imgOptions] Options object\n */\n\n\n fabric.Image.fromURL = function (url, callback, imgOptions) {\n fabric.util.loadImage(url, function (img) {\n callback && callback(new fabric.Image(img, imgOptions));\n }, null, imgOptions && imgOptions.crossOrigin);\n };\n /* _FROM_SVG_START_ */\n\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\n\n fabric.Image.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x y width height preserveAspectRatio xlink:href crossOrigin'.split(' '));\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\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, extend(options ? fabric.util.object.clone(options) : {}, parsedAttributes));\n };\n /* _FROM_SVG_END_ */\n\n})(typeof exports !== 'undefined' ? exports : this);\n\nfabric.util.object.extend(fabric.Object.prototype,\n/** @lends fabric.Object.prototype */\n{\n /**\n * @private\n * @return {Number} angle value\n */\n _getAngleValueForStraighten: function _getAngleValueForStraighten() {\n var angle = this.angle % 360;\n\n if (angle > 0) {\n return Math.round((angle - 1) / 90) * 90;\n }\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 straighten() {\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 fxStraighten(callbacks) {\n callbacks = callbacks || {};\n\n var empty = function empty() {},\n _onComplete4 = callbacks.onComplete || empty,\n _onChange4 = 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 onChange(value) {\n _this.rotate(value);\n\n _onChange4();\n },\n onComplete: function onComplete() {\n _this.setCoords();\n\n _onComplete4();\n }\n });\n return this;\n }\n});\nfabric.util.object.extend(fabric.StaticCanvas.prototype,\n/** @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 straightenObject(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 fxStraightenObject(object) {\n object.fxStraighten({\n onChange: this.requestRenderAllBound\n });\n return this;\n }\n});\n\n(function () {\n 'use strict';\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\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\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n return false;\n }\n\n return true;\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\n\n fabric.isWebglSupported = function (tileSize) {\n if (fabric.isLikelyNode) {\n return false;\n }\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; // eslint-disable-next-line\n\n if (gl) {\n fabric.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n isSupported = fabric.maxTextureSize >= tileSize;\n var precisions = ['highp', 'mediump', 'lowp'];\n\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 }\n }\n\n this.isSupported = isSupported;\n return isSupported;\n };\n\n fabric.WebglFilterBackend = WebglFilterBackend;\n /**\n * WebGL filter backend.\n */\n\n function WebglFilterBackend(options) {\n if (options && options.tileSize) {\n this.tileSize = options.tileSize;\n }\n\n this.setupGLContext(this.tileSize, this.tileSize);\n this.captureGPUInfo();\n }\n\n ;\n WebglFilterBackend.prototype =\n /** @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 * Setup a WebGL context suitable for filtering, and bind any needed event handlers.\n */\n setupGLContext: function setupGLContext(width, height) {\n this.dispose();\n this.createWebGLCanvas(width, height); // eslint-disable-next-line\n\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 chooseFastestCopyGLTo2DMethod(width, height) {\n var canMeasurePerf = typeof window.performance !== 'undefined',\n canUseImageData;\n\n try {\n new ImageData(1, 1);\n canUseImageData = true;\n } catch (e) {\n canUseImageData = false;\n } // eslint-disable-next-line no-undef\n\n\n var canUseArrayBuffer = typeof ArrayBuffer !== 'undefined'; // eslint-disable-next-line no-undef\n\n var canUseUint8Clamped = typeof Uint8ClampedArray !== 'undefined';\n\n if (!(canMeasurePerf && canUseImageData && canUseArrayBuffer && canUseUint8Clamped)) {\n return;\n }\n\n var targetCanvas = fabric.util.createCanvasElement(); // eslint-disable-next-line no-undef\n\n var imageBuffer = new ArrayBuffer(width * height * 4);\n\n if (fabric.forceGLPutImageData) {\n this.imageBuffer = imageBuffer;\n this.copyGLTo2D = copyGLTo2DPutImageData;\n return;\n }\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 startTime = window.performance.now();\n copyGLTo2DDrawImage.call(testContext, this.gl, testContext);\n drawImageTime = window.performance.now() - startTime;\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 } 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 createWebGLCanvas(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\n if (!gl) {\n gl = canvas.getContext('experimental-webgl', glOptions);\n }\n\n if (!gl) {\n return;\n }\n\n gl.clearColor(0, 0, 0, 0); // this canvas can fire webglcontextlost and webglcontextrestored\n\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 applyFilters(filters, source, width, height, targetCanvas, cacheKey) {\n var gl = this.gl;\n var cachedTexture;\n\n if (cacheKey) {\n cachedTexture = this.getCachedTexture(cacheKey, source);\n }\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 || 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) {\n filter && filter.applyTo(pipelineState);\n });\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 dispose() {\n if (this.canvas) {\n this.canvas = null;\n this.gl = null;\n }\n\n this.clearWebGLCaches();\n },\n\n /**\n * Wipe out WebGL-related caches.\n */\n clearWebGLCaches: function clearWebGLCaches() {\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 createTexture(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\n if (textureImageSource) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, textureImageSource);\n } else {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n }\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 getCachedTexture(uniqueId, textureImageSource) {\n if (this.textureCache[uniqueId]) {\n return this.textureCache[uniqueId];\n } else {\n var texture = this.createTexture(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 evictCachesForKey(cacheKey) {\n if (this.textureCache[cacheKey]) {\n this.gl.deleteTexture(this.textureCache[cacheKey]);\n delete this.textureCache[cacheKey];\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 captureGPUInfo() {\n if (this.gpuInfo) {\n return this.gpuInfo;\n }\n\n var gl = this.gl,\n gpuInfo = {\n renderer: '',\n vendor: ''\n };\n\n if (!gl) {\n return gpuInfo;\n }\n\n var ext = gl.getExtension('WEBGL_debug_renderer_info');\n\n if (ext) {\n var renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);\n var vendor = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);\n\n if (renderer) {\n gpuInfo.renderer = renderer.toLowerCase();\n }\n\n if (vendor) {\n gpuInfo.vendor = vendor.toLowerCase();\n }\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,\n 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 * 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 */\n\n\nfunction copyGLTo2DDrawImage(gl, pipelineState) {\n var glCanvas = gl.canvas,\n targetCanvas = pipelineState.targetCanvas,\n ctx = targetCanvas.getContext('2d');\n ctx.translate(0, targetCanvas.height); // move it down again\n\n ctx.scale(1, -1); // vertical flip\n // where is my image on the big glcanvas?\n\n var sourceY = glCanvas.height - targetCanvas.height;\n ctx.drawImage(glCanvas, 0, sourceY, targetCanvas.width, targetCanvas.height, 0, 0, targetCanvas.width, targetCanvas.height);\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 */\n\n\nfunction copyGLTo2DPutImageData(gl, pipelineState) {\n var targetCanvas = pipelineState.targetCanvas,\n ctx = targetCanvas.getContext('2d'),\n dWidth = pipelineState.destinationWidth,\n dHeight = pipelineState.destinationHeight,\n numBytes = dWidth * dHeight * 4; // eslint-disable-next-line no-undef\n\n var u8 = new Uint8Array(this.imageBuffer, 0, numBytes); // eslint-disable-next-line no-undef\n\n var u8Clamped = new Uint8ClampedArray(this.imageBuffer, 0, numBytes);\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(function () {\n 'use strict';\n\n var noop = function noop() {};\n\n fabric.Canvas2dFilterBackend = Canvas2dFilterBackend;\n /**\n * Canvas 2D filter backend.\n */\n\n function Canvas2dFilterBackend() {}\n\n ;\n Canvas2dFilterBackend.prototype =\n /** @lends fabric.Canvas2dFilterBackend.prototype */\n {\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 * 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 applyFilters(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) {\n filter.applyTo(pipelineState);\n });\n\n if (pipelineState.imageData.width !== sourceWidth || pipelineState.imageData.height !== sourceHeight) {\n targetCanvas.width = pipelineState.imageData.width;\n targetCanvas.height = pipelineState.imageData.height;\n }\n\n ctx.putImageData(pipelineState.imageData, 0, 0);\n return pipelineState;\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 */\n\n\nfabric.Image = fabric.Image || {};\nfabric.Image.filters = fabric.Image.filters || {};\n/**\n * Root filter class from which all filter classes inherit from\n * @class fabric.Image.filters.BaseFilter\n * @memberOf fabric.Image.filters\n */\n\nfabric.Image.filters.BaseFilter = fabric.util.createClass(\n/** @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 vertexSource: 'attribute vec2 aPosition;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vTexCoord = aPosition;\\n' + 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' + '}',\n fragmentSource: 'precision highp float;\\n' + 'varying vec2 vTexCoord;\\n' + 'uniform sampler2D uTexture;\\n' + 'void main() {\\n' + 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' + '}',\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function initialize(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 setOptions(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 createProgram(gl, fragmentSource, vertexSource) {\n fragmentSource = fragmentSource || this.fragmentSource;\n vertexSource = vertexSource || this.vertexSource;\n\n if (fabric.webGlPrecision !== 'highp') {\n fragmentSource = fragmentSource.replace(/precision highp float/g, 'precision ' + fabric.webGlPrecision + ' float');\n }\n\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexSource);\n gl.compileShader(vertexShader);\n\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n throw new Error( // eslint-disable-next-line prefer-template\n 'Vertex shader compile error for ' + this.type + ': ' + gl.getShaderInfoLog(vertexShader));\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n throw new Error( // eslint-disable-next-line prefer-template\n 'Fragment shader compile error for ' + this.type + ': ' + gl.getShaderInfoLog(fragmentShader));\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n throw new Error( // eslint-disable-next-line prefer-template\n 'Shader link error for \"${this.type}\" ' + gl.getProgramInfoLog(program));\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 getAttributeLocations(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 getUniformLocations()\n /* gl, program */\n {\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 sendAttributeData(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 _setupFrameBuffer: function _setupFrameBuffer(options) {\n var gl = options.context,\n width,\n height;\n\n if (options.passes > 1) {\n width = options.destinationWidth;\n height = options.destinationHeight;\n\n if (options.sourceWidth !== width || options.sourceHeight !== height) {\n gl.deleteTexture(options.targetTexture);\n options.targetTexture = options.filterBackend.createTexture(gl, width, height);\n }\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, options.targetTexture, 0);\n } else {\n // draw last filter on canvas and not to framebuffer.\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n gl.finish();\n }\n },\n _swapTextures: function _swapTextures(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 isNeutralState()\n /* options */\n {\n var main = this.mainParameter,\n _class = fabric.Image.filters[this.type].prototype;\n\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\n return true;\n } else {\n return _class[main] === this[main];\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 applyTo(options) {\n if (options.webgl) {\n this._setupFrameBuffer(options);\n\n this.applyToWebGL(options);\n\n this._swapTextures(options);\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 retrieveShader(options) {\n if (!options.programCache.hasOwnProperty(this.type)) {\n options.programCache[this.type] = this.createProgram(options.context);\n }\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 applyToWebGL(options) {\n var gl = options.context;\n var shader = this.retrieveShader(options);\n\n if (options.pass === 0 && options.originalTexture) {\n gl.bindTexture(gl.TEXTURE_2D, options.originalTexture);\n } else {\n gl.bindTexture(gl.TEXTURE_2D, options.sourceTexture);\n }\n\n gl.useProgram(shader.program);\n this.sendAttributeData(gl, shader.attributeLocations, options.aPosition);\n gl.uniform1f(shader.uniformLocations.uStepW, 1 / options.sourceWidth);\n gl.uniform1f(shader.uniformLocations.uStepH, 1 / options.sourceHeight);\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 bindAdditionalTexture: function bindAdditionalTexture(gl, texture, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, texture); // reset active texture to 0 as usual\n\n gl.activeTexture(gl.TEXTURE0);\n },\n unbindAdditionalTexture: function unbindAdditionalTexture(gl, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.activeTexture(gl.TEXTURE0);\n },\n getMainParameter: function getMainParameter() {\n return this[this.mainParameter];\n },\n setMainParameter: function setMainParameter(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 sendUniformData()\n /* 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 createHelpLayer(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 toObject() {\n var object = {\n type: this.type\n },\n mainP = this.mainParameter;\n\n if (mainP) {\n object[mainP] = this[mainP];\n }\n\n return object;\n },\n\n /**\n * Returns a JSON representation of an instance\n * @return {Object} JSON\n */\n toJSON: function toJSON() {\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(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.ColorMatrix = createClass(filters.BaseFilter,\n /** @lends fabric.Image.filters.ColorMatrix.prototype */\n {\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'ColorMatrix',\n fragmentSource: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'varying vec2 vTexCoord;\\n' + 'uniform mat4 uColorMatrix;\\n' + 'uniform vec4 uConstants;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'color *= uColorMatrix;\\n' + 'color += uConstants;\\n' + 'gl_FragColor = color;\\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: [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0],\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 initialize(options) {\n this.callSuper('initialize', options); // create a new array instead mutating the prototype with push\n\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 applyTo2d(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = data.length,\n m = this.matrix,\n r,\n g,\n b,\n a,\n i,\n 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\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 } 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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n var m = this.matrix,\n matrix = [m[0], m[1], m[2], m[3], m[5], m[6], m[7], m[8], m[10], m[11], m[12], m[13], m[15], m[16], m[17], m[18]],\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 * 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\n fabric.Image.filters.ColorMatrix.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Brightness = createClass(filters.BaseFilter,\n /** @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' + 'uniform sampler2D uTexture;\\n' + 'uniform float uBrightness;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'color.rgb += uBrightness;\\n' + 'gl_FragColor = color;\\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 applyTo2d(options) {\n if (this.brightness === 0) {\n return;\n }\n\n var imageData = options.imageData,\n data = imageData.data,\n i,\n len = data.length,\n brightness = Math.round(this.brightness * 255);\n\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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBrightness, this.brightness);\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\n fabric.Image.filters.Brightness.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n filters.Convolute = createClass(filters.BaseFilter,\n /** @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' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[9];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 0);\\n' + 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\\n' + 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\\n' + '}\\n' + '}\\n' + 'gl_FragColor = color;\\n' + '}',\n Convolute_3_0: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[9];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 1);\\n' + 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\\n' + 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\\n' + '}\\n' + '}\\n' + 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' + 'gl_FragColor = color;\\n' + 'gl_FragColor.a = alpha;\\n' + '}',\n Convolute_5_1: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[25];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 0);\\n' + 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' + 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\\n' + '}\\n' + '}\\n' + 'gl_FragColor = color;\\n' + '}',\n Convolute_5_0: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[25];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 1);\\n' + 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' + 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\\n' + '}\\n' + '}\\n' + 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' + 'gl_FragColor = color;\\n' + 'gl_FragColor.a = alpha;\\n' + '}',\n Convolute_7_1: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[49];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 0);\\n' + 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' + 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\\n' + '}\\n' + '}\\n' + 'gl_FragColor = color;\\n' + '}',\n Convolute_7_0: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[49];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 1);\\n' + 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' + 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\\n' + '}\\n' + '}\\n' + 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' + 'gl_FragColor = color;\\n' + 'gl_FragColor.a = alpha;\\n' + '}',\n Convolute_9_1: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[81];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 0);\\n' + 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' + 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\\n' + '}\\n' + '}\\n' + 'gl_FragColor = color;\\n' + '}',\n Convolute_9_0: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uMatrix[81];\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = vec4(0, 0, 0, 1);\\n' + 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' + 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' + 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' + 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\\n' + '}\\n' + '}\\n' + 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' + 'gl_FragColor = color;\\n' + 'gl_FragColor.a = alpha;\\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 * 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 retrieveShader(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\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\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 applyTo2d(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,\n g,\n b,\n a,\n dstOff,\n scx,\n scy,\n srcOff,\n wt,\n x,\n y,\n cx,\n cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4; // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n\n r = 0;\n g = 0;\n b = 0;\n 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; // eslint-disable-next-line max-depth\n\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 r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt; // eslint-disable-next-line max-depth\n\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n } else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\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 getUniformLocations(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 sendUniformData(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 toObject() {\n return extend(this.callSuper('toObject'), {\n opaque: this.opaque,\n matrix: this.matrix\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\n fabric.Image.filters.Convolute.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Grayscale = createClass(filters.BaseFilter,\n /** @lends fabric.Image.filters.Grayscale.prototype */\n {\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Grayscale',\n fragmentSource: {\n average: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'float average = (color.r + color.b + color.g) / 3.0;\\n' + 'gl_FragColor = vec4(average, average, average, color.a);\\n' + '}',\n lightness: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform int uMode;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 col = texture2D(uTexture, vTexCoord);\\n' + 'float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\\n' + 'gl_FragColor = vec4(average, average, average, col.a);\\n' + '}',\n luminosity: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform int uMode;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 col = texture2D(uTexture, vTexCoord);\\n' + 'float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\\n' + 'gl_FragColor = vec4(average, average, average, col.a);\\n' + '}'\n },\n\n /**\n * Grayscale mode, between 'average', 'lightness', 'luminosity'\n * @param {String} type\n * @default\n */\n mode: 'average',\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 applyTo2d(options) {\n var imageData = options.imageData,\n data = imageData.data,\n i,\n len = data.length,\n value,\n mode = this.mode;\n\n for (i = 0; i < len; i += 4) {\n if (mode === 'average') {\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n } else if (mode === 'lightness') {\n value = (Math.min(data[i], data[i + 1], data[i + 2]) + Math.max(data[i], data[i + 1], data[i + 2])) / 2;\n } else if (mode === 'luminosity') {\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n }\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 retrieveShader(options) {\n var cacheKey = this.type + '_' + this.mode;\n\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var shaderSource = this.fragmentSource[this.mode];\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\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 getUniformLocations(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 sendUniformData(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 isNeutralState() {\n return false;\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\n fabric.Image.filters.Grayscale.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Invert = createClass(filters.BaseFilter,\n /** @lends fabric.Image.filters.Invert.prototype */\n {\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Invert',\n fragmentSource: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform int uInvert;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'if (uInvert == 1) {\\n' + 'gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\\n' + '} else {\\n' + 'gl_FragColor = color;\\n' + '}\\n' + '}',\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n invert: true,\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 applyTo2d(options) {\n var imageData = options.imageData,\n data = imageData.data,\n i,\n len = data.length;\n\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 isNeutralState() {\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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n gl.uniform1i(uniformLocations.uInvert, this.invert);\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\n fabric.Image.filters.Invert.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n filters.Noise = createClass(filters.BaseFilter,\n /** @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' + 'uniform sampler2D uTexture;\\n' + 'uniform float uStepH;\\n' + 'uniform float uNoise;\\n' + 'uniform float uSeed;\\n' + 'varying vec2 vTexCoord;\\n' + 'float rand(vec2 co, float seed, float vScale) {\\n' + 'return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\\n' + '}\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\\n' + 'gl_FragColor = color;\\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 applyTo2d(options) {\n if (this.noise === 0) {\n return;\n }\n\n var imageData = options.imageData,\n data = imageData.data,\n i,\n len = data.length,\n noise = this.noise,\n rand;\n\n for (i = 0, len = data.length; i < len; i += 4) {\n rand = (0.5 - Math.random()) * noise;\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 getUniformLocations(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 sendUniformData(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 toObject() {\n return extend(this.callSuper('toObject'), {\n noise: this.noise\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\n fabric.Image.filters.Noise.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Pixelate = createClass(filters.BaseFilter,\n /** @lends fabric.Image.filters.Pixelate.prototype */\n {\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Pixelate',\n blocksize: 4,\n mainParameter: 'blocksize',\n\n /**\n * Fragment source for the Pixelate program\n */\n fragmentSource: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uBlocksize;\\n' + 'uniform float uStepW;\\n' + 'uniform float uStepH;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'float blockW = uBlocksize * uStepW;\\n' + 'float blockH = uBlocksize * uStepW;\\n' + 'int posX = int(vTexCoord.x / blockW);\\n' + 'int posY = int(vTexCoord.y / blockH);\\n' + 'float fposX = float(posX);\\n' + 'float fposY = float(posY);\\n' + 'vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\\n' + 'vec4 color = texture2D(uTexture, squareCoords);\\n' + 'gl_FragColor = color;\\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 applyTo2d(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = imageData.height,\n jLen = imageData.width,\n index,\n i,\n j,\n r,\n g,\n b,\n a,\n _i,\n _j,\n _iLen,\n _jLen;\n\n for (i = 0; i < iLen; i += this.blocksize) {\n for (j = 0; j < jLen; j += this.blocksize) {\n index = i * 4 * jLen + j * 4;\n r = data[index];\n g = data[index + 1];\n b = data[index + 2];\n a = data[index + 3];\n _iLen = Math.min(i + this.blocksize, iLen);\n _jLen = Math.min(j + this.blocksize, jLen);\n\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 isNeutralState() {\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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBlocksize, this.blocksize);\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\n fabric.Image.filters.Pixelate.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n filters.RemoveColor = createClass(filters.BaseFilter,\n /** @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' + 'uniform sampler2D uTexture;\\n' + 'uniform vec4 uLow;\\n' + 'uniform vec4 uHigh;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' + 'if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\\n' + 'gl_FragColor.a = 0.0;\\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 applyTo2d(options) {\n var imageData = options.imageData,\n data = imageData.data,\n i,\n distance = this.distance * 255,\n r,\n g,\n b,\n source = new fabric.Color(this.color).getSource(),\n lowC = [source[0] - distance, source[1] - distance, source[2] - distance],\n highC = [source[0] + distance, source[1] + distance, source[2] + distance];\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] && g > lowC[1] && b > lowC[2] && r < highC[0] && g < highC[1] && 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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n var source = new fabric.Color(this.color).getSource(),\n distance = parseFloat(this.distance),\n lowC = [0 + source[0] / 255 - distance, 0 + source[1] / 255 - distance, 0 + source[2] / 255 - distance, 1],\n highC = [source[0] / 255 + distance, source[1] / 255 + distance, source[2] / 255 + distance, 1];\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 toObject() {\n return extend(this.callSuper('toObject'), {\n color: this.color,\n distance: this.distance\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\n fabric.Image.filters.RemoveColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n var matrices = {\n Brownie: [0.59970, 0.34553, -0.27082, 0, 0.186, -0.03770, 0.86095, 0.15059, 0, -0.1449, 0.24113, -0.07441, 0.44972, 0, -0.02965, 0, 0, 0, 1, 0],\n Vintage: [0.62793, 0.32021, -0.03965, 0, 0.03784, 0.02578, 0.64411, 0.03259, 0, 0.02926, 0.04660, -0.08512, 0.52416, 0, 0.02023, 0, 0, 0, 1, 0],\n Kodachrome: [1.12855, -0.39673, -0.03992, 0, 0.24991, -0.16404, 1.08352, -0.05498, 0, 0.09698, -0.16786, -0.56034, 1.60148, 0, 0.13972, 0, 0, 0, 1, 0],\n Technicolor: [1.91252, -0.85453, -0.09155, 0, 0.04624, -0.30878, 1.76589, -0.10601, 0, -0.27589, -0.23110, -0.75018, 1.84759, 0, 0.12137, 0, 0, 0, 1, 0],\n Polaroid: [1.438, -0.062, -0.062, 0, 0, -0.122, 1.378, -0.122, 0, 0, -0.016, -0.016, 1.483, 0, 0, 0, 0, 0, 1, 0],\n Sepia: [0.393, 0.769, 0.189, 0, 0, 0.349, 0.686, 0.168, 0, 0, 0.272, 0.534, 0.131, 0, 0, 0, 0, 0, 1, 0],\n BlackWhite: [1.5, 1.5, 1.5, 0, -1, 1.5, 1.5, 1.5, 0, -1, 1.5, 1.5, 1.5, 0, -1, 0, 0, 0, 1, 0]\n };\n\n for (var key in matrices) {\n filters[key] = createClass(filters.ColorMatrix,\n /** @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 /**\n * Lock the colormatrix on the color part, skipping alpha\n */\n colorsOnly: true\n });\n fabric.Image.filters[key].fromObject = fabric.Image.filters.BaseFilter.fromObject;\n }\n})(typeof exports !== 'undefined' ? exports : this);\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 * 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,\n /** @lends fabric.Image.filters.Blend.prototype */\n {\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' + 'gl_FragColor.r *= 2.0 * uColor.r;\\n' + '} else {\\n' + 'gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\\n' + '}\\n' + 'if (uColor.g < 0.5) {\\n' + 'gl_FragColor.g *= 2.0 * uColor.g;\\n' + '} else {\\n' + 'gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\\n' + '}\\n' + 'if (uColor.b < 0.5) {\\n' + 'gl_FragColor.b *= 2.0 * uColor.b;\\n' + '} else {\\n' + 'gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\\n' + '}\\n',\n tint: 'gl_FragColor.rgb *= (1.0 - uColor.a);\\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 buildSource(mode) {\n return 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform vec4 uColor;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'gl_FragColor = color;\\n' + 'if (color.a > 0.0) {\\n' + this.fragmentSource[mode] + '}\\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 retrieveShader(options) {\n var cacheKey = this.type + '_' + this.mode,\n shaderSource;\n\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n shaderSource = this.buildSource(this.mode);\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\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 applyTo2d(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = data.length,\n tr,\n tg,\n tb,\n r,\n g,\n b,\n source,\n alpha1 = 1 - this.alpha;\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 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\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\n case 'add':\n data[i] = r + tr;\n data[i + 1] = g + tg;\n data[i + 2] = b + tb;\n break;\n\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\n case 'subtract':\n data[i] = r - tr;\n data[i + 1] = g - tg;\n data[i + 2] = b - tb;\n break;\n\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\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\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\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\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 getUniformLocations(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 sendUniformData(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 toObject() {\n return {\n type: this.type,\n color: this.color,\n mode: this.mode,\n alpha: this.alpha\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\n fabric.Image.filters.BlendColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\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 * 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,\n /** @lends fabric.Image.filters.BlendImage.prototype */\n {\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 vertexSource: 'attribute vec2 aPosition;\\n' + 'varying vec2 vTexCoord;\\n' + 'varying vec2 vTexCoord2;\\n' + 'uniform mat3 uTransformMatrix;\\n' + 'void main() {\\n' + 'vTexCoord = aPosition;\\n' + 'vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\\n' + 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' + '}',\n\n /**\n * Fragment source for the Multiply program\n */\n fragmentSource: {\n multiply: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform sampler2D uImage;\\n' + 'uniform vec4 uColor;\\n' + 'varying vec2 vTexCoord;\\n' + 'varying vec2 vTexCoord2;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' + 'color.rgba *= color2.rgba;\\n' + 'gl_FragColor = color;\\n' + '}',\n mask: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform sampler2D uImage;\\n' + 'uniform vec4 uColor;\\n' + 'varying vec2 vTexCoord;\\n' + 'varying vec2 vTexCoord2;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' + 'color.a = color2.a;\\n' + 'gl_FragColor = color;\\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 retrieveShader(options) {\n var cacheKey = this.type + '_' + this.mode;\n var shaderSource = this.fragmentSource[this.mode];\n\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n\n return options.programCache[cacheKey];\n },\n applyToWebGL: function applyToWebGL(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 createTexture: function createTexture(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 calculateMatrix() {\n var image = this.image,\n width = image._element.width,\n height = image._element.height;\n return [1 / image.scaleX, 0, 0, 0, 1 / image.scaleY, 0, -image.left / width, -image.top / height, 1];\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 applyTo2d(options) {\n var imageData = options.imageData,\n resources = options.filterBackend.resources,\n data = imageData.data,\n iLen = data.length,\n width = imageData.width,\n height = imageData.height,\n tr,\n tg,\n tb,\n ta,\n r,\n g,\n b,\n a,\n canvas1,\n context,\n image = this.image,\n blendData;\n\n if (!resources.blendImage) {\n resources.blendImage = fabric.util.createCanvasElement();\n }\n\n canvas1 = resources.blendImage;\n context = canvas1.getContext('2d');\n\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas1.width = width;\n canvas1.height = height;\n } else {\n context.clearRect(0, 0, width, height);\n }\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\n for (var i = 0; i < iLen; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\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\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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n var matrix = this.calculateMatrix();\n gl.uniform1i(uniformLocations.uImage, 1); // texture unit 1.\n\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 toObject() {\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 * 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\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})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n pow = Math.pow,\n floor = Math.floor,\n sqrt = Math.sqrt,\n abs = Math.abs,\n round = Math.round,\n sin = Math.sin,\n ceil = Math.ceil,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Resize = createClass(filters.BaseFilter,\n /** @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 * 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 getUniformLocations(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 sendUniformData(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 retrieveShader(options) {\n var filterWindow = this.getFilterWindow(),\n cacheKey = this.type + '_' + filterWindow;\n\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var fragmentShader = this.generateShader(filterWindow);\n options.programCache[cacheKey] = this.createProgram(options.context, fragmentShader);\n }\n\n return options.programCache[cacheKey];\n },\n getFilterWindow: function getFilterWindow() {\n var scale = this.tempScale;\n return Math.ceil(this.lanczosLobes / scale);\n },\n getTaps: function getTaps() {\n var lobeFunction = this.lanczosCreate(this.lanczosLobes),\n scale = this.tempScale,\n filterWindow = this.getFilterWindow(),\n taps = new Array(filterWindow);\n\n for (var i = 1; i <= filterWindow; i++) {\n taps[i - 1] = lobeFunction(i * scale);\n }\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 generateShader(filterWindow) {\n var offsets = new Array(filterWindow),\n fragmentShader = this.fragmentSourceTOP,\n 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 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 fragmentSourceTOP: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform vec2 uDelta;\\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 applyTo(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\n this._setupFrameBuffer(options);\n\n this.applyToWebGL(options);\n\n this._swapTextures(options);\n\n options.sourceWidth = options.destinationWidth;\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\n this._setupFrameBuffer(options);\n\n this.applyToWebGL(options);\n\n this._swapTextures(options);\n\n options.sourceHeight = options.destinationHeight;\n } else {\n this.applyTo2d(options);\n }\n },\n isNeutralState: function isNeutralState() {\n return this.scaleX === 1 && this.scaleY === 1;\n },\n lanczosCreate: function lanczosCreate(lobes) {\n return function (x) {\n if (x >= lobes || x <= -lobes) {\n return 0.0;\n }\n\n if (x < 1.19209290E-07 && x > -1.19209290E-07) {\n return 1.0;\n }\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 applyTo2d(options) {\n var imageData = options.imageData,\n scaleX = this.scaleX,\n scaleY = this.scaleY;\n this.rcpScaleX = 1 / scaleX;\n this.rcpScaleY = 1 / scaleY;\n var oW = imageData.width,\n oH = imageData.height,\n dW = round(oW * scaleX),\n dH = round(oH * scaleY),\n newData;\n\n if (this.resizeType === 'sliceHack') {\n newData = this.sliceByTwo(options, oW, oH, dW, dH);\n } else if (this.resizeType === 'hermite') {\n newData = this.hermiteFastResize(options, oW, oH, dW, dH);\n } else if (this.resizeType === 'bilinear') {\n newData = this.bilinearFiltering(options, oW, oH, dW, dH);\n } else if (this.resizeType === 'lanczos') {\n newData = this.lanczosResize(options, oW, oH, dW, dH);\n }\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 sliceByTwo(options, oW, oH, dW, dH) {\n var imageData = options.imageData,\n mult = 0.5,\n doneW = false,\n doneH = false,\n stepW = oW * mult,\n stepH = oH * mult,\n resources = fabric.filterBackend.resources,\n tmpCanvas,\n ctx,\n sX = 0,\n sY = 0,\n dX = oW,\n dY = 0;\n\n if (!resources.sliceByTwo) {\n resources.sliceByTwo = document.createElement('canvas');\n }\n\n tmpCanvas = resources.sliceByTwo;\n\n if (tmpCanvas.width < oW * 1.5 || tmpCanvas.height < oH) {\n tmpCanvas.width = oW * 1.5;\n tmpCanvas.height = oH;\n }\n\n ctx = tmpCanvas.getContext('2d');\n ctx.clearRect(0, 0, oW * 1.5, oH);\n ctx.putImageData(imageData, 0, 0);\n dW = floor(dW);\n dH = floor(dH);\n\n while (!doneW || !doneH) {\n oW = stepW;\n oH = stepH;\n\n if (dW < floor(stepW * mult)) {\n stepW = floor(stepW * mult);\n } else {\n stepW = dW;\n doneW = true;\n }\n\n if (dH < floor(stepH * mult)) {\n stepH = floor(stepH * mult);\n } else {\n stepH = dH;\n doneH = true;\n }\n\n ctx.drawImage(tmpCanvas, sX, sY, oW, oH, dX, dY, stepW, stepH);\n sX = dX;\n sY = dY;\n dY += stepH;\n }\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 lanczosResize(options, oW, oH, dW, dH) {\n function process(u) {\n var v, i, weight, idx, a, red, green, blue, alpha, fX, fY;\n center.x = (u + 0.5) * ratioX;\n icenter.x = floor(center.x);\n\n for (v = 0; v < dH; v++) {\n center.y = (v + 0.5) * ratioY;\n icenter.y = floor(center.y);\n a = 0;\n red = 0;\n green = 0;\n blue = 0;\n alpha = 0;\n\n for (i = icenter.x - range2X; i <= icenter.x + range2X; i++) {\n if (i < 0 || i >= oW) {\n continue;\n }\n\n fX = floor(1000 * abs(i - center.x));\n\n if (!cacheLanc[fX]) {\n cacheLanc[fX] = {};\n }\n\n for (var j = icenter.y - range2Y; j <= icenter.y + range2Y; j++) {\n if (j < 0 || j >= oH) {\n continue;\n }\n\n fY = floor(1000 * abs(j - center.y));\n\n if (!cacheLanc[fX][fY]) {\n cacheLanc[fX][fY] = lanczos(sqrt(pow(fX * rcpRatioX, 2) + pow(fY * rcpRatioY, 2)) / 1000);\n }\n\n weight = cacheLanc[fX][fY];\n\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\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 } 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,\n ratioY = this.rcpScaleY,\n rcpRatioX = 2 / this.rcpScaleX,\n rcpRatioY = 2 / this.rcpScaleY,\n range2X = ceil(ratioX * this.lanczosLobes / 2),\n range2Y = ceil(ratioY * this.lanczosLobes / 2),\n cacheLanc = {},\n center = {},\n icenter = {};\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 bilinearFiltering(options, oW, oH, dW, dH) {\n var a,\n b,\n c,\n d,\n x,\n y,\n i,\n j,\n xDiff,\n yDiff,\n chnl,\n color,\n offset = 0,\n origPix,\n ratioX = this.rcpScaleX,\n ratioY = this.rcpScaleY,\n w4 = 4 * (oW - 1),\n img = options.imageData,\n pixels = img.data,\n destImage = options.ctx.createImageData(dW, dH),\n destPixels = destImage.data;\n\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) + c * yDiff * (1 - xDiff) + d * xDiff * yDiff;\n destPixels[offset++] = color;\n }\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 hermiteFastResize(options, oW, oH, dW, dH) {\n var ratioW = this.rcpScaleX,\n ratioH = this.rcpScaleY,\n ratioWHalf = ceil(ratioW / 2),\n ratioHHalf = ceil(ratioH / 2),\n img = options.imageData,\n data = img.data,\n img2 = options.ctx.createImageData(dW, dH),\n data2 = img2.data;\n\n for (var j = 0; j < dH; j++) {\n for (var i = 0; i < dW; i++) {\n var x2 = (i + j * dW) * 4,\n weight = 0,\n weights = 0,\n weightsAlpha = 0,\n gxR = 0,\n gxG = 0,\n gxB = 0,\n gxA = 0,\n centerY = (j + 0.5) * ratioH;\n\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,\n w0 = dy * dy;\n\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\n if (w > 1 && w < -1) {\n continue;\n } //hermite filter\n\n\n weight = 2 * w * w * w - 3 * w * w + 1;\n\n if (weight > 0) {\n dx = 4 * (xx + yy * oW); //alpha\n\n gxA += weight * data[dx + 3];\n weightsAlpha += weight; //colors\n\n if (data[dx + 3] < 255) {\n weight = weight * data[dx + 3] / 250;\n }\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 }\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\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 toObject() {\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 * 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\n fabric.Image.filters.Resize.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Contrast = createClass(filters.BaseFilter,\n /** @lends fabric.Image.filters.Contrast.prototype */\n {\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Contrast',\n fragmentSource: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uContrast;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\\n' + 'color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\\n' + 'gl_FragColor = color;\\n' + '}',\n\n /**\n * contrast value, range from -1 to 1.\n * @param {Number} contrast\n * @default 0\n */\n contrast: 0,\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 applyTo2d(options) {\n if (this.contrast === 0) {\n return;\n }\n\n var imageData = options.imageData,\n i,\n len,\n data = imageData.data,\n 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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uContrast, this.contrast);\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\n fabric.Image.filters.Contrast.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Saturation = createClass(filters.BaseFilter,\n /** @lends fabric.Image.filters.Saturation.prototype */\n {\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Saturation',\n fragmentSource: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform float uSaturation;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'float rgMax = max(color.r, color.g);\\n' + 'float rgbMax = max(rgMax, color.b);\\n' + 'color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\\n' + 'color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\\n' + 'color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\\n' + 'gl_FragColor = color;\\n' + '}',\n saturation: 0,\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 applyTo2d(options) {\n if (this.saturation === 0) {\n return;\n }\n\n var imageData = options.imageData,\n data = imageData.data,\n len = data.length,\n adjust = -this.saturation,\n i,\n 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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uSaturation, -this.saturation);\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\n fabric.Image.filters.Saturation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.Blur = createClass(filters.BaseFilter,\n /** @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' + 'uniform sampler2D uTexture;\\n' + 'uniform vec2 uDelta;\\n' + 'varying vec2 vTexCoord;\\n' + 'const float nSamples = 15.0;\\n' + 'vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\\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' + 'void main() {\\n' + 'vec4 color = vec4(0.0);\\n' + 'float total = 0.0;\\n' + 'float offset = random(v3offset);\\n' + 'for (float t = -nSamples; t <= nSamples; t++) {\\n' + 'float percent = (t + offset - 0.5) / nSamples;\\n' + 'float weight = 1.0 - abs(percent);\\n' + 'color += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\\n' + 'total += weight;\\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 mainParameter: 'blur',\n applyTo: function applyTo(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\n this._setupFrameBuffer(options);\n\n this.horizontal = true;\n this.applyToWebGL(options);\n\n this._swapTextures(options);\n\n this._setupFrameBuffer(options);\n\n this.horizontal = false;\n this.applyToWebGL(options);\n\n this._swapTextures(options);\n } else {\n this.applyTo2d(options);\n }\n },\n applyTo2d: function applyTo2d(options) {\n // paint canvasEl with current image data.\n //options.ctx.putImageData(options.imageData, 0, 0);\n options.imageData = this.simpleBlur(options);\n },\n simpleBlur: function simpleBlur(options) {\n var resources = options.filterBackend.resources,\n canvas1,\n 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\n canvas1 = resources.blurLayer1;\n canvas2 = resources.blurLayer2;\n\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas2.width = canvas1.width = width;\n canvas2.height = canvas1.height = height;\n }\n\n var ctx1 = canvas1.getContext('2d'),\n ctx2 = canvas2.getContext('2d'),\n nSamples = 15,\n random,\n percent,\n j,\n i,\n blur = this.blur * 0.06 * 0.5; // load first canvas\n\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\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\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 getUniformLocations(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 sendUniformData(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 chooseRightDelta() {\n var blurScale = 1,\n delta = [0, 0],\n blur;\n\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 } else {\n if (this.aspectRatio < 1) {\n // image is tall, i want to shrink radius vertical\n blurScale = this.aspectRatio;\n }\n }\n\n blur = blurScale * this.blur * 0.12;\n\n if (this.horizontal) {\n delta[0] = blur;\n } else {\n delta[1] = blur;\n }\n\n return delta;\n }\n });\n /**\n * Deserialize a JSON definition of a BlurFilter into a concrete instance.\n */\n\n filters.Blur.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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 * brightness: 200\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n\n filters.Gamma = createClass(filters.BaseFilter,\n /** @lends fabric.Image.filters.Gamma.prototype */\n {\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Gamma',\n fragmentSource: 'precision highp float;\\n' + 'uniform sampler2D uTexture;\\n' + 'uniform vec3 uGamma;\\n' + 'varying vec2 vTexCoord;\\n' + 'void main() {\\n' + 'vec4 color = texture2D(uTexture, vTexCoord);\\n' + 'vec3 correction = (1.0 / uGamma);\\n' + 'color.r = pow(color.r, correction.r);\\n' + 'color.g = pow(color.g, correction.g);\\n' + 'color.b = pow(color.b, correction.b);\\n' + 'gl_FragColor = color;\\n' + 'gl_FragColor.rgb *= color.a;\\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 initialize(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 applyTo2d(options) {\n var imageData = options.imageData,\n data = imageData.data,\n gamma = this.gamma,\n len = data.length,\n rInv = 1 / gamma[0],\n gInv = 1 / gamma[1],\n bInv = 1 / gamma[2],\n i;\n\n if (!this.rVals) {\n // eslint-disable-next-line\n this.rVals = new Uint8Array(256); // eslint-disable-next-line\n\n this.gVals = new Uint8Array(256); // eslint-disable-next-line\n\n this.bVals = new Uint8Array(256);\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\n\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\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 getUniformLocations(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 sendUniformData(gl, uniformLocations) {\n gl.uniform3fv(uniformLocations.uGamma, this.gamma);\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\n fabric.Image.filters.Gamma.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n /**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\n\n filters.Composed = createClass(filters.BaseFilter,\n /** @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 initialize(options) {\n this.callSuper('initialize', options); // create a new array instead mutating the prototype with push\n\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 applyTo(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 toObject() {\n return fabric.util.object.extend(this.callSuper('toObject'), {\n subFilters: this.subFilters.map(function (filter) {\n return filter.toObject();\n })\n });\n },\n isNeutralState: function isNeutralState() {\n return !this.subFilters.some(function (filter) {\n return !filter.isNeutralState();\n });\n }\n });\n /**\n * Deserialize a JSON definition of a ComposedFilter into a concrete instance.\n */\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({\n subFilters: subFilters\n });\n callback && callback(instance);\n return instance;\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {}),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\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\n filters.HueRotation = createClass(filters.ColorMatrix,\n /** @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 calculateMatrix: function calculateMatrix() {\n var rad = this.rotation * Math.PI,\n cos = fabric.util.cos(rad),\n sin = fabric.util.sin(rad),\n aThird = 1 / 3,\n aThirdSqtSin = Math.sqrt(aThird) * sin,\n OneMinusCos = 1 - cos;\n this.matrix = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];\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 isNeutralState(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 applyTo(options) {\n this.calculateMatrix();\n filters.BaseFilter.prototype.applyTo.call(this, options);\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\n fabric.Image.filters.HueRotation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function (global) {\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 * 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\n\n fabric.Text = fabric.util.createClass(fabric.Object,\n /** @lends fabric.Text.prototype */\n {\n /**\n * Properties which when set cause object to change dimensions\n * @type Array\n * @private\n */\n _dimensionAffectingProps: ['fontSize', 'fontWeight', 'fontFamily', 'fontStyle', 'lineHeight', 'text', 'charSpacing', 'textAlign', 'styles'],\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,\n // fontSize factor\n baseline: -0.35 // baseline-shift factor (upwards)\n\n },\n\n /**\n * Subscript schema object (minimum overlap)\n * @type {Object}\n * @default\n */\n subscript: {\n size: 0.60,\n // fontSize factor\n baseline: 0.11 // baseline-shift factor (downwards)\n\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', 'fontWeight', 'fontSize', 'text', 'underline', 'overline', 'linethrough', 'textAlign', 'fontStyle', 'lineHeight', 'textBackgroundColor', 'charSpacing', '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', 'fontWeight', 'fontSize', 'text', 'underline', 'overline', 'linethrough', 'textAlign', 'fontStyle', 'lineHeight', 'textBackgroundColor', 'charSpacing', '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: ['stroke', 'strokeWidth', 'fill', 'fontFamily', 'fontSize', 'fontWeight', 'fontStyle', 'underline', 'overline', 'linethrough', 'deltaY', 'textBackgroundColor'],\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 initialize(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({\n propertySet: '_dimensionAffectingProps'\n });\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 getMeasuringContext() {\n // if we did not return we have to measure something.\n if (!fabric._measuringContext) {\n fabric._measuringContext = this.canvas && this.canvas.contextCache || fabric.util.createCanvasElement().getContext('2d');\n }\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 _splitText() {\n var newLines = this._splitTextIntoLines(this.text);\n\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 initDimensions() {\n if (this.__skipDimension) {\n return;\n }\n\n this._splitText();\n\n this._clearCache();\n\n this.width = this.calcTextWidth() || this.cursorWidth || this.MIN_TEXT_WIDTH;\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\n this.height = this.calcTextHeight();\n this.saveState({\n propertySet: '_dimensionAffectingProps'\n });\n },\n\n /**\n * Enlarge space boxes and shift the others\n */\n enlargeSpaces: function enlargeSpaces() {\n var diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;\n\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\n accumulatedSpace = 0;\n line = this._textLines[i];\n currentLineWidth = this.getLineWidth(i);\n\n if (currentLineWidth < this.width && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {\n numberOfSpaces = spaces.length;\n diffSpace = (this.width - currentLineWidth) / numberOfSpaces;\n\n for (var j = 0, jlen = line.length; j <= jlen; j++) {\n charBound = this.__charBounds[i][j];\n\n if (this._reSpaceAndTab.test(line[j])) {\n charBound.width += diffSpace;\n charBound.kernedWidth += diffSpace;\n charBound.left += accumulatedSpace;\n accumulatedSpace += diffSpace;\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 isEndOfWrapping(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 missingNewlineOffset() {\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 toString() {\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 _getCacheCanvasDimensions() {\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 _render(ctx) {\n this._setTextStyles(ctx);\n\n this._renderTextLinesBackground(ctx);\n\n this._renderTextDecoration(ctx, 'underline');\n\n this._renderText(ctx);\n\n this._renderTextDecoration(ctx, 'overline');\n\n this._renderTextDecoration(ctx, 'linethrough');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderText: function _renderText(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderTextStroke(ctx);\n\n this._renderTextFill(ctx);\n } else {\n this._renderTextFill(ctx);\n\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 _setTextStyles(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 calcTextWidth() {\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\n if (currentLineWidth > maxWidth) {\n maxWidth = currentLineWidth;\n }\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 _renderTextLine(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 _renderTextLinesBackground(ctx) {\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {\n return;\n }\n\n var lineTopOffset = 0,\n heightOfLine,\n lineLeftOffset,\n originalFill = ctx.fillStyle,\n line,\n lastColor,\n leftOffset = this._getLeftOffset(),\n topOffset = this._getTopOffset(),\n boxStart = 0,\n boxWidth = 0,\n charBox,\n currentColor;\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor', i)) {\n lineTopOffset += heightOfLine;\n continue;\n }\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\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\n if (currentColor !== lastColor) {\n ctx.fillStyle = lastColor;\n lastColor && ctx.fillRect(leftOffset + lineLeftOffset + boxStart, topOffset + lineTopOffset, boxWidth, heightOfLine / this.lineHeight);\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n } else {\n boxWidth += charBox.kernedWidth;\n }\n }\n\n if (currentColor) {\n ctx.fillStyle = currentColor;\n ctx.fillRect(leftOffset + lineLeftOffset + boxStart, topOffset + lineTopOffset, boxWidth, heightOfLine / this.lineHeight);\n }\n\n lineTopOffset += heightOfLine;\n }\n\n ctx.fillStyle = originalFill; // if there is text background color no\n // other shadows should be casted\n\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 getFontCache(decl) {\n var fontFamily = decl.fontFamily.toLowerCase();\n\n if (!fabric.charWidthsCache[fontFamily]) {\n fabric.charWidthsCache[fontFamily] = {};\n }\n\n var cache = fabric.charWidthsCache[fontFamily],\n cacheProp = decl.fontStyle.toLowerCase() + '_' + (decl.fontWeight + '').toLowerCase();\n\n if (!cache[cacheProp]) {\n cache[cacheProp] = {};\n }\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 _applyCharStyles(method, ctx, lineIndex, charIndex, styleDeclaration) {\n this._setFillStyles(ctx, styleDeclaration);\n\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 _measureChar(_char, charStyle, previousChar, prevCharStyle) {\n // first i try to return from cache\n var fontCache = this.getFontCache(charStyle),\n fontDeclaration = this._getFontDeclaration(charStyle),\n previousFontDeclaration = this._getFontDeclaration(prevCharStyle),\n couple = previousChar + _char,\n stylesAreEqual = fontDeclaration === previousFontDeclaration,\n width,\n coupleWidth,\n previousWidth,\n fontMultiplier = charStyle.fontSize / this.CACHE_FONT_SIZE,\n kernedWidth;\n\n if (previousChar && fontCache[previousChar] !== undefined) {\n previousWidth = fontCache[previousChar];\n }\n\n if (fontCache[_char] !== undefined) {\n kernedWidth = width = fontCache[_char];\n }\n\n if (stylesAreEqual && fontCache[couple] !== undefined) {\n coupleWidth = fontCache[couple];\n kernedWidth = coupleWidth - previousWidth;\n }\n\n if (width === undefined || previousWidth === undefined || coupleWidth === undefined) {\n var ctx = this.getMeasuringContext(); // send a TRUE to specify measuring font size CACHE_FONT_SIZE\n\n this._setTextStyles(ctx, charStyle, true);\n }\n\n if (width === undefined) {\n kernedWidth = width = ctx.measureText(_char).width;\n fontCache[_char] = width;\n }\n\n if (previousWidth === undefined && stylesAreEqual && previousChar) {\n previousWidth = ctx.measureText(previousChar).width;\n fontCache[previousChar] = previousWidth;\n }\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\n return {\n width: width * fontMultiplier,\n kernedWidth: kernedWidth * fontMultiplier\n };\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 getHeightOfChar(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 measureLine(lineIndex) {\n var lineInfo = this._measureLine(lineIndex);\n\n if (this.charSpacing !== 0) {\n lineInfo.width -= this._getWidthOfCharSpacing();\n }\n\n if (lineInfo.width < 0) {\n lineInfo.width = 0;\n }\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 _measureLine(lineIndex) {\n var width = 0,\n i,\n grapheme,\n line = this._textLines[lineIndex],\n prevGrapheme,\n graphemeInfo,\n numOfSpaces = 0,\n lineBounds = new Array(line.length);\n this.__charBounds[lineIndex] = lineBounds;\n\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 } // this latest bound box represent the last character of the line\n // to simplify cursor handling in interactive mode.\n\n\n lineBounds[i] = {\n left: graphemeInfo ? graphemeInfo.left + graphemeInfo.width : 0,\n width: 0,\n kernedWidth: 0,\n height: this.fontSize\n };\n return {\n width: width,\n numOfSpaces: numOfSpaces\n };\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 _getGraphemeBox(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,\n 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\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\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 getHeightOfLine(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\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 calcTextHeight() {\n var lineHeight,\n height = 0;\n\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\n return height;\n },\n\n /**\n * @private\n * @return {Number} Left offset\n */\n _getLeftOffset: function _getLeftOffset() {\n return -this.width / 2;\n },\n\n /**\n * @private\n * @return {Number} Top offset\n */\n _getTopOffset: function _getTopOffset() {\n return -this.height / 2;\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 _applyPatternGradientTransform(ctx, filler) {\n if (!filler || !filler.toLive) {\n return {\n offsetX: 0,\n offsetY: 0\n };\n }\n\n var offsetX = -this.width / 2 + filler.offsetX || 0,\n offsetY = -this.height / 2 + filler.offsetY || 0;\n ctx.transform(1, 0, 0, 1, offsetX, offsetY);\n return {\n offsetX: offsetX,\n offsetY: offsetY\n };\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 _renderTextCommon(ctx, method) {\n ctx.save();\n\n var lineHeights = 0,\n left = this._getLeftOffset(),\n top = this._getTopOffset(),\n offsets = this._applyPatternGradientTransform(ctx, method === 'fillText' ? this.fill : this.stroke);\n\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\n this._renderTextLine(method, ctx, this._textLines[i], left + leftOffset - offsets.offsetX, top + lineHeights + maxHeight - offsets.offsetY, i);\n\n lineHeights += heightOfLine;\n }\n\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextFill: function _renderTextFill(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 _renderTextStroke(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\n this._setLineDash(ctx, this.strokeDashArray);\n\n ctx.beginPath();\n\n this._renderTextCommon(ctx, 'strokeText');\n\n ctx.closePath();\n ctx.restore();\n },\n\n /**\n * @private\n * @param {String} method\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} line Content of the line\n * @param {Number} left\n * @param {Number} top\n * @param {Number} lineIndex\n * @param {Number} charOffset\n */\n _renderChars: function _renderChars(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 ctx.save();\n top -= lineHeight * this._fontSizeFraction / this.lineHeight;\n\n if (shortCut) {\n // render all the line in one pass without checking\n this._renderChar(method, ctx, lineIndex, 0, this.textLines[lineIndex], left, top, lineHeight);\n\n ctx.restore();\n return;\n }\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\n if (boxWidth === 0) {\n left += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n } else {\n boxWidth += charBox.kernedWidth;\n }\n\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\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\n if (timeToRender) {\n this._renderChar(method, ctx, lineIndex, i, charsToRender, left, top, lineHeight);\n\n charsToRender = '';\n actualStyle = nextStyle;\n left += boxWidth;\n boxWidth = 0;\n }\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 _renderChar(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\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\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 setSuperscript(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 setSubscript(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 _setScript(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 = {\n fontSize: fontSize * schema.size,\n deltaY: dy + fontSize * schema.baseline\n };\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 _hasStyleChanged(prevStyle, thisStyle) {\n return prevStyle.fill !== thisStyle.fill || prevStyle.stroke !== thisStyle.stroke || prevStyle.strokeWidth !== thisStyle.strokeWidth || prevStyle.fontSize !== thisStyle.fontSize || prevStyle.fontFamily !== thisStyle.fontFamily || prevStyle.fontWeight !== thisStyle.fontWeight || prevStyle.fontStyle !== thisStyle.fontStyle || prevStyle.deltaY !== thisStyle.deltaY;\n },\n\n /**\n * @private\n * @param {Object} prevStyle\n * @param {Object} thisStyle\n */\n _hasStyleChangedForSvg: function _hasStyleChangedForSvg(prevStyle, thisStyle) {\n return this._hasStyleChanged(prevStyle, thisStyle) || prevStyle.overline !== thisStyle.overline || prevStyle.underline !== thisStyle.underline || 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 _getLineLeftOffset(lineIndex) {\n var lineWidth = this.getLineWidth(lineIndex);\n\n if (this.textAlign === 'center') {\n return (this.width - lineWidth) / 2;\n }\n\n if (this.textAlign === 'right') {\n return this.width - lineWidth;\n }\n\n if (this.textAlign === 'justify-center' && this.isEndOfWrapping(lineIndex)) {\n return (this.width - lineWidth) / 2;\n }\n\n if (this.textAlign === 'justify-right' && this.isEndOfWrapping(lineIndex)) {\n return this.width - lineWidth;\n }\n\n return 0;\n },\n\n /**\n * @private\n */\n _clearCache: function _clearCache() {\n this.__lineWidths = [];\n this.__lineHeights = [];\n this.__charBounds = [];\n },\n\n /**\n * @private\n */\n _shouldClearDimensionCache: function _shouldClearDimensionCache() {\n var shouldClear = this._forceClearCache;\n shouldClear || (shouldClear = this.hasStateChanged('_dimensionAffectingProps'));\n\n if (shouldClear) {\n this.dirty = true;\n this._forceClearCache = false;\n }\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 getLineWidth(lineIndex) {\n if (this.__lineWidths[lineIndex]) {\n return this.__lineWidths[lineIndex];\n }\n\n var width,\n line = this._textLines[lineIndex],\n lineInfo;\n\n if (line === '') {\n width = 0;\n } else {\n lineInfo = this.measureLine(lineIndex);\n width = lineInfo.width;\n }\n\n this.__lineWidths[lineIndex] = width;\n return width;\n },\n _getWidthOfCharSpacing: function _getWidthOfCharSpacing() {\n if (this.charSpacing !== 0) {\n return this.fontSize * this.charSpacing / 1000;\n }\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 getValueOfPropertyAt(lineIndex, charIndex, property) {\n var charStyle = this._getStyleDeclaration(lineIndex, charIndex);\n\n if (charStyle && typeof charStyle[property] !== 'undefined') {\n return charStyle[property];\n }\n\n return this[property];\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextDecoration: function _renderTextDecoration(ctx, type) {\n if (!this[type] && !this.styleHas(type)) {\n return;\n }\n\n var heightOfLine,\n size,\n _size,\n lineLeftOffset,\n dy,\n _dy,\n line,\n lastDecoration,\n leftOffset = this._getLeftOffset(),\n topOffset = this._getTopOffset(),\n top,\n boxStart,\n boxWidth,\n charBox,\n currentDecoration,\n maxHeight,\n currentFill,\n lastFill,\n charSpacing = this._getWidthOfCharSpacing();\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n\n if (!this[type] && !this.styleHas(type, i)) {\n topOffset += heightOfLine;\n continue;\n }\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\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\n if ((currentDecoration !== lastDecoration || currentFill !== lastFill || _size !== size || _dy !== dy) && boxWidth > 0) {\n ctx.fillStyle = lastFill;\n lastDecoration && lastFill && ctx.fillRect(leftOffset + lineLeftOffset + boxStart, top + this.offsets[type] * size + dy, boxWidth, this.fontSize / 15);\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastDecoration = currentDecoration;\n lastFill = currentFill;\n size = _size;\n dy = _dy;\n } else {\n boxWidth += charBox.kernedWidth;\n }\n }\n\n ctx.fillStyle = currentFill;\n currentDecoration && currentFill && ctx.fillRect(leftOffset + lineLeftOffset + boxStart, top + this.offsets[type] * size + dy, boxWidth - charSpacing, this.fontSize / 15);\n topOffset += heightOfLine;\n } // if there is text background color no\n // other shadows should be casted\n\n\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 _getFontDeclaration(styleObject, forMeasuring) {\n var style = styleObject || this,\n family = this.fontFamily,\n fontIsGeneric = fabric.Text.genericFonts.indexOf(family.toLowerCase()) > -1;\n var fontFamily = family === undefined || family.indexOf('\\'') > -1 || family.indexOf(',') > -1 || family.indexOf('\"') > -1 || fontIsGeneric ? style.fontFamily : '\"' + style.fontFamily + '\"';\n return [// 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, fabric.isLikelyNode ? style.fontStyle : style.fontWeight, forMeasuring ? this.CACHE_FONT_SIZE + 'px' : style.fontSize + 'px', fontFamily].join(' ');\n },\n\n /**\n * Renders text instance on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function render(ctx) {\n // do not render if object is not visible\n if (!this.visible) {\n return;\n }\n\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n }\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 _splitTextIntoLines(text) {\n var lines = text.split(this._reNewline),\n newLines = new Array(lines.length),\n newLine = ['\\n'],\n newText = [];\n\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\n newText.pop();\n return {\n _unwrappedLines: newLines,\n lines: lines,\n graphemeText: newText,\n graphemeLines: newLines\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 toObject(propertiesToInclude) {\n var additionalProperties = ['text', 'fontSize', 'fontWeight', 'fontFamily', 'fontStyle', 'lineHeight', 'underline', 'overline', 'linethrough', 'textAlign', 'textBackgroundColor', 'charSpacing'].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 set(key, value) {\n this.callSuper('set', key, value);\n var needsDims = false;\n\n if (_typeof(key) === 'object') {\n for (var _key in key) {\n needsDims = needsDims || this._dimensionAffectingProps.indexOf(_key) !== -1;\n }\n } else {\n needsDims = this._dimensionAffectingProps.indexOf(key) !== -1;\n }\n\n if (needsDims) {\n this.initDimensions();\n this.setCoords();\n }\n\n return this;\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity\n */\n complexity: function complexity() {\n return 1;\n }\n });\n /* _FROM_SVG_START_ */\n\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\n fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor'.split(' '));\n /**\n * Default SVG font size\n * @static\n * @memberOf fabric.Text\n */\n\n fabric.Text.DEFAULT_SVG_FONT_SIZE = 16;\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\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 options.top = options.top || 0;\n options.left = options.left || 0;\n\n if (parsedAttributes.textDecoration) {\n var textDecoration = parsedAttributes.textDecoration;\n\n if (textDecoration.indexOf('underline') !== -1) {\n options.underline = true;\n }\n\n if (textDecoration.indexOf('overline') !== -1) {\n options.overline = true;\n }\n\n if (textDecoration.indexOf('line-through') !== -1) {\n options.linethrough = true;\n }\n\n delete options.textDecoration;\n }\n\n if ('dx' in parsedAttributes) {\n options.left += parsedAttributes.dx;\n }\n\n if ('dy' in parsedAttributes) {\n options.top += parsedAttributes.dy;\n }\n\n if (!('fontSize' in options)) {\n options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\n\n var textContent = ''; // 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\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 } 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 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\n if (parsedAnchor === 'center') {\n offX = text.getScaledWidth() / 2;\n }\n\n if (parsedAnchor === 'right') {\n offX = text.getScaledWidth();\n }\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\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 fabric.util.createAccessors && fabric.util.createAccessors(fabric.Text);\n})(typeof exports !== 'undefined' ? exports : this);\n\n(function () {\n fabric.util.object.extend(fabric.Text.prototype,\n /** @lends fabric.Text.prototype */\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 isEmptyStyles(lineIndex) {\n if (!this.styles) {\n return true;\n }\n\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return true;\n }\n\n var obj = typeof lineIndex === 'undefined' ? this.styles : {\n line: this.styles[lineIndex]\n };\n\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\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 styleHas(property, lineIndex) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return false;\n }\n\n var obj = typeof lineIndex === 'undefined' ? this.styles : {\n 0: this.styles[lineIndex]\n }; // eslint-disable-next-line\n\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\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 cleanStyle(property) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n\n var obj = this.styles,\n stylesCount = 0,\n letterCount,\n stylePropertyValue,\n allStyleObjectPropertiesMatch = true,\n graphemeCount = 0,\n styleObject; // eslint-disable-next-line\n\n for (var p1 in obj) {\n letterCount = 0; // eslint-disable-next-line\n\n for (var p2 in obj[p1]) {\n var styleObject = obj[p1][p2],\n stylePropertyHasBeenSet = styleObject.hasOwnProperty(property);\n stylesCount++;\n\n if (stylePropertyHasBeenSet) {\n if (!stylePropertyValue) {\n stylePropertyValue = styleObject[property];\n } else if (styleObject[property] !== stylePropertyValue) {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (styleObject[property] === this[property]) {\n delete styleObject[property];\n }\n } else {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (Object.keys(styleObject).length !== 0) {\n letterCount++;\n } else {\n delete obj[p1][p2];\n }\n }\n\n if (letterCount === 0) {\n delete obj[p1];\n }\n } // if every grapheme has the same style set then\n // delete those styles and set it on the parent\n\n\n for (var i = 0; i < this._textLines.length; i++) {\n graphemeCount += this._textLines[i].length;\n }\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 removeStyle(property) {\n if (!this.styles || !property || property === '') {\n return;\n }\n\n var obj = this.styles,\n line,\n lineNum,\n charNum;\n\n for (lineNum in obj) {\n line = obj[lineNum];\n\n for (charNum in line) {\n delete line[charNum][property];\n\n if (Object.keys(line[charNum]).length === 0) {\n delete line[charNum];\n }\n }\n\n if (Object.keys(line).length === 0) {\n delete obj[lineNum];\n }\n }\n },\n\n /**\n * @private\n */\n _extendStyles: function _extendStyles(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. usefull to manage styles.\n */\n get2DCursorLocation: function get2DCursorLocation(selectionStart, skipWrapping) {\n if (typeof selectionStart === 'undefined') {\n selectionStart = this.selectionStart;\n }\n\n var lines = skipWrapping ? this._unwrappedTextLines : this._textLines,\n len = lines.length;\n\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\n selectionStart -= lines[i].length + this.missingNewlineOffset(i);\n }\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 getSelectionStyles(startIndex, endIndex, complete) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\n\n var styles = [];\n\n for (var i = startIndex; i < endIndex; i++) {\n styles.push(this.getStyleAtPosition(i, complete));\n }\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 getStyleAtPosition(position, complete) {\n var loc = this.get2DCursorLocation(position),\n style = complete ? this.getCompleteStyleDeclaration(loc.lineIndex, loc.charIndex) : 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 setSelectionStyles(styles, startIndex, endIndex) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\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\n\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 _getStyleDeclaration(lineIndex, charIndex) {\n var lineStyle = this.styles && this.styles[lineIndex];\n\n if (!lineStyle) {\n return null;\n }\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 getCompleteStyleDeclaration(lineIndex, charIndex) {\n var style = this._getStyleDeclaration(lineIndex, charIndex) || {},\n styleObject = {},\n prop;\n\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\n return styleObject;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n _setStyleDeclaration: function _setStyleDeclaration(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 _deleteStyleDeclaration(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 _getLineStyle(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 _setLineStyle(lineIndex) {\n this.styles[lineIndex] = {};\n },\n\n /**\n * @param {Number} lineIndex\n * @private\n */\n _deleteLineStyle: function _deleteLineStyle(lineIndex) {\n delete this.styles[lineIndex];\n }\n });\n})();\n\n(function () {\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 * 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\n\n fabric.IText = fabric.util.createClass(fabric.Text, fabric.Observable,\n /** @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 default cursor (when not overwritten by character style)\n * @type String\n * @default\n */\n cursorColor: '#333',\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 initialize(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 setSelectionStart(index) {\n index = Math.max(index, 0);\n\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 setSelectionEnd(index) {\n index = Math.min(index, this.text.length);\n\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 _updateAndFire(property, index) {\n if (this[property] !== index) {\n this._fireSelectionChanged();\n\n this[property] = index;\n }\n\n this._updateTextarea();\n },\n\n /**\n * Fires the even of selection changed\n * @private\n */\n _fireSelectionChanged: function _fireSelectionChanged() {\n this.fire('selection:changed');\n this.canvas && this.canvas.fire('text:selection:changed', {\n target: this\n });\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 initDimensions() {\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 render(ctx) {\n this.clearContextTop();\n this.callSuper('render', ctx); // clear the cursorOffsetCache, so we ensure to calculate once per renderCursor\n // the correct position but not at every cursor animation.\n\n this.cursorOffsetCache = {};\n this.renderCursorOrSelection();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function _render(ctx) {\n this.callSuper('_render', ctx);\n },\n\n /**\n * Prepare and clean the contextTop\n */\n clearContextTop: function clearContextTop(skipRestore) {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n\n var ctx = this.canvas.contextTop,\n 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.transformMatrix && ctx.transform.apply(ctx, this.transformMatrix);\n\n this._clearTextArea(ctx);\n\n skipRestore || ctx.restore();\n },\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 renderCursorOrSelection() {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n\n var boundaries = this._getCursorBoundaries(),\n ctx = this.canvas.contextTop;\n\n this.clearContextTop(true);\n\n if (this.selectionStart === this.selectionEnd) {\n this.renderCursor(boundaries, ctx);\n } else {\n this.renderSelection(boundaries, ctx);\n }\n\n ctx.restore();\n },\n _clearTextArea: function _clearTextArea(ctx) {\n // we add 4 pixel, to be sure to do not leave any pixel out\n var width = this.width + 4,\n 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 _getCursorBoundaries(position) {\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 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 _getCursorBoundariesOffsets(position) {\n if (this.cursorOffsetCache && 'top' in this.cursorOffsetCache) {\n return this.cursorOffsetCache;\n }\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\n for (var i = 0; i < lineIndex; i++) {\n topOffset += this.getHeightOfLine(i);\n }\n\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n var bound = this.__charBounds[lineIndex][charIndex];\n bound && (leftOffset = bound.left);\n\n if (this.charSpacing !== 0 && charIndex === this._textLines[lineIndex].length) {\n leftOffset -= this._getWidthOfCharSpacing();\n }\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 renderCursor(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 topOffset += (1 - this._fontSizeFraction) * this.getHeightOfLine(lineIndex) / this.lineHeight - charHeight * (1 - this._fontSizeFraction);\n\n if (this.inCompositionMode) {\n this.renderSelection(boundaries, ctx);\n }\n\n ctx.fillStyle = this.getValueOfPropertyAt(lineIndex, charIndex, 'fill');\n ctx.globalAlpha = this.__isMousedown ? 1 : this._currentCursorOpacity;\n ctx.fillRect(boundaries.left + boundaries.leftOffset - cursorWidth / 2, topOffset + boundaries.top + dy, cursorWidth, 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 renderSelection(boundaries, ctx) {\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,\n boxStart = 0,\n boxEnd = 0;\n\n if (i === startLine) {\n boxStart = this.__charBounds[startLine][startChar].left;\n }\n\n if (i >= startLine && i < endLine) {\n boxEnd = isJustify && !this.isEndOfWrapping(i) ? this.width : this.getLineWidth(i) || 5; // WTF is this 5?\n } else if (i === endLine) {\n if (endChar === 0) {\n boxEnd = this.__charBounds[endLine][endChar].left;\n } else {\n var charSpacing = this._getWidthOfCharSpacing();\n\n boxEnd = this.__charBounds[endLine][endChar - 1].left + this.__charBounds[endLine][endChar - 1].width - charSpacing;\n }\n }\n\n realLineHeight = lineHeight;\n\n if (this.lineHeight < 1 || i === endLine && this.lineHeight > 1) {\n lineHeight /= this.lineHeight;\n }\n\n if (this.inCompositionMode) {\n ctx.fillStyle = this.compositionColor || 'black';\n ctx.fillRect(boundaries.left + lineOffset + boxStart, boundaries.top + boundaries.topOffset + lineHeight, boxEnd - boxStart, 1);\n } else {\n ctx.fillStyle = this.selectionColor;\n ctx.fillRect(boundaries.left + lineOffset + boxStart, boundaries.top + boundaries.topOffset, boxEnd - boxStart, lineHeight);\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 getCurrentCharFontSize() {\n var cp = this._getCurrentCharIndex();\n\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 getCurrentCharColor() {\n var cp = this._getCurrentCharIndex();\n\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 _getCurrentCharIndex() {\n var cursorPosition = this.get2DCursorLocation(this.selectionStart, true),\n charIndex = cursorPosition.charIndex > 0 ? cursorPosition.charIndex - 1 : 0;\n return {\n l: cursorPosition.lineIndex,\n 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\n fabric.IText.fromObject = function (object, callback) {\n parseDecoration(object);\n\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\n fabric.Object._fromObject('IText', object, callback, 'text');\n };\n})();\n\n(function () {\n var clone = fabric.util.object.clone;\n fabric.util.object.extend(fabric.IText.prototype,\n /** @lends fabric.IText.prototype */\n {\n /**\n * Initializes all the interactive behavior of IText\n */\n initBehavior: function initBehavior() {\n this.initAddedHandler();\n this.initRemovedHandler();\n this.initCursorSelectionHandlers();\n this.initDoubleClickSimulation();\n this.mouseMoveHandler = this.mouseMoveHandler.bind(this);\n },\n onDeselect: function onDeselect() {\n this.isEditing && this.exitEditing();\n this.selected = false;\n },\n\n /**\n * Initializes \"added\" event handler\n */\n initAddedHandler: function initAddedHandler() {\n var _this = this;\n\n this.on('added', function () {\n var canvas = _this.canvas;\n\n if (canvas) {\n if (!canvas._hasITextHandlers) {\n canvas._hasITextHandlers = true;\n\n _this._initCanvasHandlers(canvas);\n }\n\n canvas._iTextInstances = canvas._iTextInstances || [];\n\n canvas._iTextInstances.push(_this);\n }\n });\n },\n initRemovedHandler: function initRemovedHandler() {\n var _this = this;\n\n this.on('removed', function () {\n var canvas = _this.canvas;\n\n if (canvas) {\n canvas._iTextInstances = canvas._iTextInstances || [];\n fabric.util.removeFromArray(canvas._iTextInstances, _this);\n\n if (canvas._iTextInstances.length === 0) {\n canvas._hasITextHandlers = false;\n\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 _initCanvasHandlers(canvas) {\n canvas._mouseUpITextHandler = function () {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function (obj) {\n obj.__isMousedown = false;\n });\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 _removeCanvasHandlers(canvas) {\n canvas.off('mouse:up', canvas._mouseUpITextHandler);\n },\n\n /**\n * @private\n */\n _tick: function _tick() {\n this._currentTickState = this._animateCursor(this, 1, this.cursorDuration, '_onTickComplete');\n },\n\n /**\n * @private\n */\n _animateCursor: function _animateCursor(obj, targetOpacity, duration, completeMethod) {\n var tickState;\n tickState = {\n isAborted: false,\n abort: function abort() {\n this.isAborted = true;\n }\n };\n obj.animate('_currentCursorOpacity', targetOpacity, {\n duration: duration,\n onComplete: function onComplete() {\n if (!tickState.isAborted) {\n obj[completeMethod]();\n }\n },\n onChange: function onChange() {\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 abort() {\n return tickState.isAborted;\n }\n });\n return tickState;\n },\n\n /**\n * @private\n */\n _onTickComplete: function _onTickComplete() {\n var _this = this;\n\n if (this._cursorTimeout1) {\n clearTimeout(this._cursorTimeout1);\n }\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 initDelayedCursor(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 abortCursorAnimation() {\n var shouldClear = this._currentTickState || this._currentTickCompleteState,\n canvas = this.canvas;\n this._currentTickState && this._currentTickState.abort();\n this._currentTickCompleteState && this._currentTickCompleteState.abort();\n clearTimeout(this._cursorTimeout1);\n clearTimeout(this._cursorTimeout2);\n this._currentCursorOpacity = 0; // to clear just itext area we need to transform the context\n // it may not be worth it\n\n if (shouldClear && canvas) {\n canvas.clearContext(canvas.contextTop || canvas.contextContainer);\n }\n },\n\n /**\n * Selects entire text\n * @return {fabric.IText} thisArg\n * @chainable\n */\n selectAll: function selectAll() {\n this.selectionStart = 0;\n this.selectionEnd = this._text.length;\n\n this._fireSelectionChanged();\n\n this._updateTextarea();\n\n return this;\n },\n\n /**\n * Returns selected text\n * @return {String}\n */\n getSelectedText: function getSelectedText() {\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 findWordBoundaryLeft(startFrom) {\n var offset = 0,\n index = startFrom - 1; // remove space before cursor first\n\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index--;\n }\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 findWordBoundaryRight(startFrom) {\n var offset = 0,\n index = startFrom; // remove space after cursor first\n\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index++;\n }\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 findLineBoundaryLeft(startFrom) {\n var offset = 0,\n 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 findLineBoundaryRight(startFrom) {\n var offset = 0,\n 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 searchWordBoundary(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\n if (reNonWord.test(_char)) {\n index += direction === 1 ? 0 : 1;\n }\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 selectWord(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.searchWordBoundary(selectionStart, -1),\n\n /* search backwards */\n newSelectionEnd = this.searchWordBoundary(selectionStart, 1);\n /* search forward */\n\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n\n this._fireSelectionChanged();\n\n this._updateTextarea();\n\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 selectLine(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.findLineBoundaryLeft(selectionStart),\n newSelectionEnd = this.findLineBoundaryRight(selectionStart);\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n\n this._fireSelectionChanged();\n\n this._updateTextarea();\n\n return this;\n },\n\n /**\n * Enters editing state\n * @return {fabric.IText} thisArg\n * @chainable\n */\n enterEditing: function enterEditing(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 this.initHiddenTextarea(e);\n this.hiddenTextarea.focus();\n this.hiddenTextarea.value = this.text;\n\n this._updateTextarea();\n\n this._saveEditingProps();\n\n this._setEditingProps();\n\n this._textBeforeEdit = this.text;\n\n this._tick();\n\n this.fire('editing:entered');\n\n this._fireSelectionChanged();\n\n if (!this.canvas) {\n return this;\n }\n\n this.canvas.fire('text:editing:entered', {\n target: this\n });\n this.initMouseMoveHandler();\n this.canvas.requestRenderAll();\n return this;\n },\n exitEditingOnOthers: function exitEditingOnOthers(canvas) {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function (obj) {\n obj.selected = false;\n\n if (obj.isEditing) {\n obj.exitEditing();\n }\n });\n }\n },\n\n /**\n * Initializes \"mousemove\" event handler\n */\n initMouseMoveHandler: function initMouseMoveHandler() {\n this.canvas.on('mouse:move', this.mouseMoveHandler);\n },\n\n /**\n * @private\n */\n mouseMoveHandler: function mouseMoveHandler(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\n if ((newSelectionStart !== this.__selectionStartOnMouseDown || currentStart === currentEnd) && (currentStart === newSelectionStart || currentEnd === newSelectionStart)) {\n return;\n }\n\n if (newSelectionStart > this.__selectionStartOnMouseDown) {\n this.selectionStart = this.__selectionStartOnMouseDown;\n this.selectionEnd = newSelectionStart;\n } else {\n this.selectionStart = newSelectionStart;\n this.selectionEnd = this.__selectionStartOnMouseDown;\n }\n\n if (this.selectionStart !== currentStart || this.selectionEnd !== currentEnd) {\n this.restartCursorIfNeeded();\n\n this._fireSelectionChanged();\n\n this._updateTextarea();\n\n this.renderCursorOrSelection();\n }\n },\n\n /**\n * @private\n */\n _setEditingProps: function _setEditingProps() {\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 fromStringToGraphemeSelection(start, end, text) {\n var smallerTextStart = text.slice(0, start),\n graphemeStart = fabric.util.string.graphemeSplit(smallerTextStart).length;\n\n if (start === end) {\n return {\n selectionStart: graphemeStart,\n selectionEnd: graphemeStart\n };\n }\n\n var smallerTextEnd = text.slice(start, end),\n graphemeEnd = fabric.util.string.graphemeSplit(smallerTextEnd).length;\n return {\n selectionStart: graphemeStart,\n selectionEnd: graphemeStart + graphemeEnd\n };\n },\n\n /**\n * convert from fabric to textarea values\n */\n fromGraphemeToStringSelection: function fromGraphemeToStringSelection(start, end, _text) {\n var smallerTextStart = _text.slice(0, start),\n graphemeStart = smallerTextStart.join('').length;\n\n if (start === end) {\n return {\n selectionStart: graphemeStart,\n selectionEnd: graphemeStart\n };\n }\n\n var smallerTextEnd = _text.slice(start, end),\n graphemeEnd = smallerTextEnd.join('').length;\n\n return {\n selectionStart: graphemeStart,\n selectionEnd: graphemeStart + graphemeEnd\n };\n },\n\n /**\n * @private\n */\n _updateTextarea: function _updateTextarea() {\n this.cursorOffsetCache = {};\n\n if (!this.hiddenTextarea) {\n return;\n }\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\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateFromTextArea: function updateFromTextArea() {\n if (!this.hiddenTextarea) {\n return;\n }\n\n this.cursorOffsetCache = {};\n this.text = this.hiddenTextarea.value;\n\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n\n var newSelection = this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart, this.hiddenTextarea.selectionEnd, this.hiddenTextarea.value);\n this.selectionEnd = this.selectionStart = newSelection.selectionEnd;\n\n if (!this.inCompositionMode) {\n this.selectionStart = newSelection.selectionStart;\n }\n\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateTextareaPosition: function updateTextareaPosition() {\n if (this.selectionStart === this.selectionEnd) {\n var style = this._calcTextareaPosition();\n\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 _calcTextareaPosition() {\n if (!this.canvas) {\n return {\n x: 1,\n y: 1\n };\n }\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\n if (p.x < 0) {\n p.x = 0;\n }\n\n if (p.x > maxWidth) {\n p.x = maxWidth;\n }\n\n if (p.y < 0) {\n p.y = 0;\n }\n\n if (p.y > maxHeight) {\n p.y = maxHeight;\n } // add canvas offset on document\n\n\n p.x += this.canvas._offset.left;\n p.y += this.canvas._offset.top;\n return {\n left: p.x + 'px',\n top: p.y + 'px',\n fontSize: charHeight + 'px',\n charHeight: charHeight\n };\n },\n\n /**\n * @private\n */\n _saveEditingProps: function _saveEditingProps() {\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 _restoreEditingProps() {\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 exitEditing() {\n var isTextChanged = this._textBeforeEdit !== this.text;\n var hiddenTextarea = this.hiddenTextarea;\n this.selected = false;\n this.isEditing = false;\n this.selectionEnd = this.selectionStart;\n\n if (hiddenTextarea) {\n hiddenTextarea.blur && hiddenTextarea.blur();\n hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n }\n\n this.hiddenTextarea = null;\n this.abortCursorAnimation();\n\n this._restoreEditingProps();\n\n this._currentCursorOpacity = 0;\n\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n\n this.fire('editing:exited');\n isTextChanged && this.fire('modified');\n\n if (this.canvas) {\n this.canvas.off('mouse:move', this.mouseMoveHandler);\n this.canvas.fire('text:editing:exited', {\n target: this\n });\n isTextChanged && this.canvas.fire('object:modified', {\n target: this\n });\n }\n\n return this;\n },\n\n /**\n * @private\n */\n _removeExtraneousStyles: function _removeExtraneousStyles() {\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 removeStyleFromTo(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,\n styleObj;\n\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 } // step2 move the trailing of lineEnd to lineStart if needed\n\n\n if (this.styles[lineEnd]) {\n for (i = charEnd; i < this._unwrappedTextLines[lineEnd].length; i++) {\n styleObj = this.styles[lineEnd][i];\n\n if (styleObj) {\n this.styles[lineStart] || (this.styles[lineStart] = {});\n this.styles[lineStart][charStart + i - charEnd] = styleObj;\n }\n }\n } // step3 detects lines will be completely removed.\n\n\n for (i = lineStart + 1; i <= lineEnd; i++) {\n delete this.styles[i];\n } // step4 shift remaining lines.\n\n\n this.shiftLineStyles(lineEnd, lineStart - lineEnd);\n } else {\n // remove and shift left on the same line\n if (this.styles[lineStart]) {\n styleObj = this.styles[lineStart];\n\n var diff = charEnd - charStart,\n numericChar,\n _char;\n\n for (i = charStart; i < charEnd; i++) {\n delete styleObj[i];\n }\n\n for (_char in this.styles[lineStart]) {\n numericChar = parseInt(_char, 10);\n\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 shiftLineStyles(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\n for (var line in this.styles) {\n var numericLine = parseInt(line, 10);\n\n if (numericLine > lineIndex) {\n this.styles[numericLine + offset] = clonedStyles[numericLine];\n\n if (!clonedStyles[numericLine - offset]) {\n delete this.styles[numericLine];\n }\n }\n }\n },\n restartCursorIfNeeded: function restartCursorIfNeeded() {\n if (!this._currentTickState || this._currentTickState.isAborted || !this._currentTickCompleteState || this._currentTickCompleteState.isAborted) {\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 insertNewlineStyleObject(lineIndex, charIndex, qty, copiedStyle) {\n var currentCharStyle,\n newLineStyles = {},\n somethingAdded = false,\n isEndOfLine = this._unwrappedTextLines[lineIndex].length === charIndex;\n qty || (qty = 1);\n this.shiftLineStyles(lineIndex, qty);\n\n if (this.styles[lineIndex]) {\n currentCharStyle = this.styles[lineIndex][charIndex === 0 ? charIndex : charIndex - 1];\n } // we clone styles of all chars\n // after cursor onto the current line\n\n\n for (var index in this.styles[lineIndex]) {\n var numIndex = parseInt(index, 10);\n\n if (numIndex >= charIndex) {\n somethingAdded = true;\n newLineStyles[numIndex - charIndex] = this.styles[lineIndex][index]; // remove lines from the previous line since they're on a new line now\n\n if (!(isEndOfLine && charIndex === 0)) {\n delete this.styles[lineIndex][index];\n }\n }\n }\n\n var styleCarriedOver = false;\n\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\n if (styleCarriedOver) {\n // skip the last line of since we already prepared it.\n qty--;\n } // for the all the lines or all the other lines\n // we clone current char style onto the next (otherwise empty) line\n\n\n while (qty > 0) {\n if (copiedStyle && copiedStyle[qty - 1]) {\n this.styles[lineIndex + qty] = {\n 0: clone(copiedStyle[qty - 1])\n };\n } else if (currentCharStyle) {\n this.styles[lineIndex + qty] = {\n 0: clone(currentCharStyle)\n };\n } else {\n delete this.styles[lineIndex + qty];\n }\n\n qty--;\n }\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 insertCharStyleObject(lineIndex, charIndex, quantity, copiedStyle) {\n if (!this.styles) {\n this.styles = {};\n }\n\n var currentLineStyles = this.styles[lineIndex],\n currentLineStylesCloned = currentLineStyles ? clone(currentLineStyles) : {};\n quantity || (quantity = 1); // 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\n for (var index in currentLineStylesCloned) {\n var numericIndex = parseInt(index, 10);\n\n if (numericIndex >= charIndex) {\n currentLineStyles[numericIndex + quantity] = currentLineStylesCloned[numericIndex]; // only delete the style if there was nothing moved there\n\n if (!currentLineStylesCloned[numericIndex - quantity]) {\n delete currentLineStyles[numericIndex];\n }\n }\n }\n\n this._forceClearCache = true;\n\n if (copiedStyle) {\n while (quantity--) {\n if (!Object.keys(copiedStyle[quantity]).length) {\n continue;\n }\n\n if (!this.styles[lineIndex]) {\n this.styles[lineIndex] = {};\n }\n\n this.styles[lineIndex][charIndex + quantity] = clone(copiedStyle[quantity]);\n }\n\n return;\n }\n\n if (!currentLineStyles) {\n return;\n }\n\n var newStyle = currentLineStyles[charIndex ? charIndex - 1 : 1];\n\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 insertNewStyleBlock(insertedText, start, copiedStyle) {\n var cursorLoc = this.get2DCursorLocation(start, true),\n addedLines = [0],\n linesLength = 0; // get an array of how many char per lines are being added.\n\n for (var i = 0; i < insertedText.length; i++) {\n if (insertedText[i] === '\\n') {\n linesLength++;\n addedLines[linesLength] = 0;\n } else {\n addedLines[linesLength]++;\n }\n } // for the first line copy the style from the current char position.\n\n\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\n linesLength && this.insertNewlineStyleObject(cursorLoc.lineIndex, cursorLoc.charIndex + addedLines[0], linesLength);\n\n for (var i = 1; i < linesLength; i++) {\n if (addedLines[i] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex + i, 0, addedLines[i], copiedStyle);\n } else if (copiedStyle) {\n this.styles[cursorLoc.lineIndex + i][0] = copiedStyle[0];\n }\n\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[i] + 1);\n } // we use i outside the loop to get it like linesLength\n\n\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 setSelectionStartEndWithShift(start, end, newSelection) {\n if (newSelection <= start) {\n if (end === start) {\n this._selectionDirection = 'left';\n } else if (this._selectionDirection === 'right') {\n this._selectionDirection = 'left';\n this.selectionEnd = start;\n }\n\n this.selectionStart = newSelection;\n } else if (newSelection > start && newSelection < end) {\n if (this._selectionDirection === 'right') {\n this.selectionEnd = newSelection;\n } else {\n this.selectionStart = newSelection;\n }\n } else {\n // newSelection is > selection start and end\n if (end === start) {\n this._selectionDirection = 'right';\n } else if (this._selectionDirection === 'left') {\n this._selectionDirection = 'right';\n this.selectionStart = end;\n }\n\n this.selectionEnd = newSelection;\n }\n },\n setSelectionInBoundaries: function setSelectionInBoundaries() {\n var length = this.text.length;\n\n if (this.selectionStart > length) {\n this.selectionStart = length;\n } else if (this.selectionStart < 0) {\n this.selectionStart = 0;\n }\n\n if (this.selectionEnd > length) {\n this.selectionEnd = length;\n } else if (this.selectionEnd < 0) {\n this.selectionEnd = 0;\n }\n }\n });\n})();\n\nfabric.util.object.extend(fabric.IText.prototype,\n/** @lends fabric.IText.prototype */\n{\n /**\n * Initializes \"dbclick\" event handler\n */\n initDoubleClickSimulation: function initDoubleClickSimulation() {\n // for double click\n this.__lastClickTime = +new Date(); // for triple click\n\n this.__lastLastClickTime = +new Date();\n this.__lastPointer = {};\n this.on('mousedown', this.onMouseDown);\n },\n\n /**\n * Default event handler to simulate triple click\n * @private\n */\n onMouseDown: function onMouseDown(options) {\n if (!this.canvas) {\n return;\n }\n\n this.__newClickTime = +new Date();\n var newPointer = options.pointer;\n\n if (this.isTripleClick(newPointer)) {\n this.fire('tripleclick', options);\n\n this._stopEvent(options.e);\n }\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 isTripleClick: function isTripleClick(newPointer) {\n return this.__newClickTime - this.__lastClickTime < 500 && this.__lastClickTime - this.__lastLastClickTime < 500 && this.__lastPointer.x === newPointer.x && this.__lastPointer.y === newPointer.y;\n },\n\n /**\n * @private\n */\n _stopEvent: function _stopEvent(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 initCursorSelectionHandlers() {\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 doubleClickHandler(options) {\n if (!this.isEditing) {\n return;\n }\n\n this.selectWord(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Default handler for triple click, select a line\n */\n tripleClickHandler: function tripleClickHandler(options) {\n if (!this.isEditing) {\n return;\n }\n\n this.selectLine(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Initializes double and triple click event handlers\n */\n initClicks: function initClicks() {\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 */\n _mouseDownHandler: function _mouseDownHandler(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.setCursorByClick(options.e);\n }\n\n if (this.isEditing) {\n this.__selectionStartOnMouseDown = this.selectionStart;\n\n if (this.selectionStart === this.selectionEnd) {\n this.abortCursorAnimation();\n }\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 _mouseDownHandlerBefore(options) {\n if (!this.canvas || !this.editable || options.e.button && options.e.button !== 1) {\n return;\n } // we want to avoid that an object that was selected and then becomes unselectable,\n // may trigger editing mode in some way.\n\n\n this.selected = this === this.canvas._activeObject;\n },\n\n /**\n * Initializes \"mousedown\" event handler\n */\n initMousedownHandler: function initMousedownHandler() {\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 initMouseupHandler() {\n this.on('mouseup', this.mouseUpHandler);\n },\n\n /**\n * standard hander for mouse up, overridable\n * @private\n */\n mouseUpHandler: function mouseUpHandler(options) {\n this.__isMousedown = false;\n\n if (!this.editable || this.group || options.transform && options.transform.actionPerformed || options.e.button && options.e.button !== 1) {\n return;\n }\n\n if (this.canvas) {\n var currentActive = this.canvas._activeObject;\n\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\n if (this.selectionStart === this.selectionEnd) {\n this.initDelayedCursor(true);\n } else {\n this.renderCursorOrSelection();\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 setCursorByClick(e) {\n var newSelection = this.getSelectionStartFromPointer(e),\n start = this.selectionStart,\n end = this.selectionEnd;\n\n if (e.shiftKey) {\n this.setSelectionStartEndWithShift(start, end, newSelection);\n } else {\n this.selectionStart = newSelection;\n this.selectionEnd = newSelection;\n }\n\n if (this.isEditing) {\n this._fireSelectionChanged();\n\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 getSelectionStartFromPointer(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\n if (i > 0) {\n charIndex += this._textLines[i - 1].length + this.missingNewlineOffset(i - 1);\n }\n } else {\n break;\n }\n }\n\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n width = lineLeftOffset * this.scaleX;\n line = this._textLines[lineIndex];\n\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n prevWidth = width; // i removed something about flipX here, check.\n\n width += this.__charBounds[lineIndex][j].kernedWidth * this.scaleX;\n\n if (width <= mouseOffset.x) {\n charIndex++;\n } else {\n break;\n }\n }\n\n return this._getNewSelectionStartFromOffset(mouseOffset, prevWidth, width, charIndex, jlen);\n },\n\n /**\n * @private\n */\n _getNewSelectionStartFromOffset: function _getNewSelectionStartFromOffset(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 || distanceBtwNextCharAndCursor < 0 ? 0 : 1,\n newSelectionStart = index + offset; // if object is horizontally flipped, mirror cursor location from the end\n\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});\nfabric.util.object.extend(fabric.IText.prototype,\n/** @lends fabric.IText.prototype */\n{\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea: function initHiddenTextarea() {\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\n var style = this._calcTextareaPosition(); // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n\n\n this.hiddenTextarea.style.cssText = 'position: absolute; top: ' + style.top + '; left: ' + style.left + '; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px;' + ' paddingーtop: ' + style.fontSize + ';';\n fabric.document.body.appendChild(this.hiddenTextarea);\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 onClick: function onClick() {\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 keyup event\n * @param {Event} e Event object\n */\n onKeyDown: function onKeyDown(e) {\n if (!this.isEditing || this.inCompositionMode) {\n return;\n }\n\n if (e.keyCode in this.keysMap) {\n this[this.keysMap[e.keyCode]](e);\n } else if (e.keyCode in this.ctrlKeysMapDown && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapDown[e.keyCode]](e);\n } else {\n return;\n }\n\n e.stopImmediatePropagation();\n e.preventDefault();\n\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.clearContextTop();\n this.renderCursorOrSelection();\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 onKeyUp(e) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n\n if (e.keyCode in this.ctrlKeysMapUp && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapUp[e.keyCode]](e);\n } else {\n return;\n }\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 onInput(e) {\n var fromPaste = this.fromPaste;\n this.fromPaste = false;\n e && e.stopPropagation();\n\n if (!this.isEditing) {\n return;\n } // decisions about style changes.\n\n\n var nextText = this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n removedText,\n insertedText,\n charDiff = nextCharCount - charCount,\n selectionStart = this.selectionStart,\n selectionEnd = this.selectionEnd,\n selection = selectionStart !== selectionEnd,\n copiedStyle,\n removeFrom,\n removeTo;\n\n if (this.hiddenTextarea.value === '') {\n this.styles = {};\n this.updateFromTextArea();\n this.fire('changed');\n\n if (this.canvas) {\n this.canvas.fire('text:changed', {\n target: this\n });\n this.canvas.requestRenderAll();\n }\n\n return;\n }\n\n var textareaSelection = this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart, this.hiddenTextarea.selectionEnd, this.hiddenTextarea.value);\n var backDelete = selectionStart > textareaSelection.selectionStart;\n\n if (selection) {\n removedText = this._text.slice(selectionStart, selectionEnd);\n charDiff += selectionEnd - selectionStart;\n } else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(selectionEnd + charDiff, selectionEnd);\n } else {\n removedText = this._text.slice(selectionStart, selectionStart - charDiff);\n }\n }\n\n var copiedStyle;\n insertedText = nextText.slice(textareaSelection.selectionEnd - charDiff, textareaSelection.selectionEnd);\n\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, true); // now duplicate the style one for each inserted text.\n\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\n if (selection) {\n removeFrom = selectionStart;\n removeTo = selectionEnd;\n } else if (backDelete) {\n // detect differencies between forwardDelete and backDelete\n removeFrom = selectionEnd - removedText.length;\n removeTo = selectionEnd;\n } else {\n removeFrom = selectionEnd;\n removeTo = selectionEnd + removedText.length;\n }\n\n this.removeStyleFromTo(removeFrom, removeTo);\n }\n\n if (insertedText.length) {\n if (fromPaste && insertedText.join('') === fabric.copiedText && !fabric.disableStyleCopyPaste) {\n copiedStyle = fabric.copiedTextStyle;\n }\n\n this.insertNewStyleBlock(insertedText, selectionStart, copiedStyle);\n }\n\n this.updateFromTextArea();\n this.fire('changed');\n\n if (this.canvas) {\n this.canvas.fire('text:changed', {\n target: this\n });\n this.canvas.requestRenderAll();\n }\n },\n\n /**\n * Composition start\n */\n onCompositionStart: function onCompositionStart() {\n this.inCompositionMode = true;\n },\n\n /**\n * Composition end\n */\n onCompositionEnd: function onCompositionEnd() {\n this.inCompositionMode = false;\n },\n // /**\n // * Composition update\n // */\n onCompositionUpdate: function onCompositionUpdate(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 copy() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n\n fabric.copiedText = this.getSelectedText();\n\n if (!fabric.disableStyleCopyPaste) {\n fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true);\n } else {\n fabric.copiedTextStyle = null;\n }\n\n this._copyDone = true;\n },\n\n /**\n * Pastes text\n * @param {Event} e Event object\n */\n paste: function paste() {\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 _getClipboardData(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 _getWidthBeforeCursor(lineIndex, charIndex) {\n var widthBeforeCursor = this._getLineLeftOffset(lineIndex),\n bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\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 getDownCursorOffset(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex; // if on last line, down cursor goes to end of line\n\n\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\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\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 _getSelectionForOffset(e, isRight) {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\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 getUpCursorOffset(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n\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\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); // return a negative offset\n\n\n return -this._textLines[lineIndex - 1].length + indexOnOtherLine - textBeforeCursor.length + (1 - missingNewlineOffset);\n },\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine: function _getIndexOnLine(lineIndex, width) {\n var line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex),\n widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0,\n charWidth,\n foundMatch;\n\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n\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 indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : j - 1;\n break;\n }\n } // reached end\n\n\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n },\n\n /**\n * Moves cursor down\n * @param {Event} e Event object\n */\n moveCursorDown: function moveCursorDown(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\n\n this._moveCursorUpOrDown('Down', e);\n },\n\n /**\n * Moves cursor up\n * @param {Event} e Event object\n */\n moveCursorUp: function moveCursorUp(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\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 _moveCursorUpOrDown(direction, e) {\n // getUpCursorOffset\n // getDownCursorOffset\n var action = 'get' + direction + 'CursorOffset',\n offset = this[action](e, this._selectionDirection === 'right');\n\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n } else {\n this.moveCursorWithoutShift(offset);\n }\n\n if (offset !== 0) {\n this.setSelectionInBoundaries();\n this.abortCursorAnimation();\n this._currentCursorOpacity = 1;\n this.initDelayedCursor();\n\n this._fireSelectionChanged();\n\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift: function moveCursorWithShift(offset) {\n var newSelection = this._selectionDirection === 'left' ? this.selectionStart + offset : 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 moveCursorWithoutShift(offset) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n } else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n\n return offset !== 0;\n },\n\n /**\n * Moves cursor left\n * @param {Event} e Event object\n */\n moveCursorLeft: function moveCursorLeft(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n\n this._moveCursorLeftOrRight('Left', e);\n },\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n */\n _move: function _move(e, prop, direction) {\n var newValue;\n\n if (e.altKey) {\n newValue = this['findWordBoundary' + direction](this[prop]);\n } else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36) {\n newValue = this['findLineBoundary' + direction](this[prop]);\n } else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\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 _moveLeft(e, prop) {\n return this._move(e, prop, 'Left');\n },\n\n /**\n * @private\n */\n _moveRight: function _moveRight(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 moveCursorLeftWithoutShift(e) {\n var change = true;\n this._selectionDirection = 'left'; // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n\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 moveCursorLeftWithShift(e) {\n if (this._selectionDirection === 'right' && this.selectionStart !== this.selectionEnd) {\n return this._moveLeft(e, 'selectionEnd');\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 moveCursorRight(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\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 _moveCursorLeftOrRight(direction, e) {\n var actionName = 'moveCursor' + direction + 'With';\n this._currentCursorOpacity = 1;\n\n if (e.shiftKey) {\n actionName += 'Shift';\n } else {\n actionName += 'outShift';\n }\n\n if (this[actionName](e)) {\n this.abortCursorAnimation();\n this.initDelayedCursor();\n\n this._fireSelectionChanged();\n\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor right while keeping selection\n * @param {Event} e\n */\n moveCursorRightWithShift: function moveCursorRightWithShift(e) {\n if (this._selectionDirection === 'left' && this.selectionStart !== this.selectionEnd) {\n return this._moveRight(e, 'selectionStart');\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 moveCursorRightWithoutShift(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 } else {\n this.selectionStart = this.selectionEnd;\n }\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 removeChars(start, end) {\n if (typeof end === 'undefined') {\n end = start + 1;\n }\n\n this.removeStyleFromTo(start, end);\n\n this._text.splice(start, end - start);\n\n this.text = this._text.join('');\n this.set('dirty', true);\n\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\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 insertChars(text, style, start, end) {\n if (typeof end === 'undefined') {\n end = start;\n }\n\n if (end > start) {\n this.removeStyleFromTo(start, end);\n }\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\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n\n this._removeExtraneousStyles();\n }\n});\n/* _TO_SVG_START_ */\n\n(function () {\n var toFixed = fabric.util.toFixed,\n multipleSpacesRegex = / +/g;\n fabric.util.object.extend(fabric.Text.prototype,\n /** @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 _toSVG() {\n var offsets = this._getSVGLeftTopOffsets(),\n textAndBg = this._getSVGTextAndBg(offsets.textTop, offsets.textLeft);\n\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 toSVG(reviver) {\n return this._createBaseSVGMarkup(this._toSVG(), {\n reviver: reviver,\n noStyle: true,\n withShadow: true\n });\n },\n\n /**\n * @private\n */\n _getSVGLeftTopOffsets: function _getSVGLeftTopOffsets() {\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 _wrapSVGTextAndBg(textAndBg) {\n var noShadow = true,\n textDecoration = this.getSvgTextDecoration(this);\n return [textAndBg.textBgRects.join(''), '\\t\\t', textAndBg.textSpans.join(''), '\\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 _getSVGTextAndBg(textTopOffset, textLeftOffset) {\n var textSpans = [],\n textBgRects = [],\n height = textTopOffset,\n lineOffset; // bounding-box background\n\n this._setSVGBg(textBgRects); // text and text-background\n\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n lineOffset = this._getLineLeftOffset(i);\n\n if (this.textBackgroundColor || this.styleHas('textBackgroundColor', i)) {\n this._setSVGTextLineBg(textBgRects, i, textLeftOffset + lineOffset, height);\n }\n\n this._setSVGTextLineText(textSpans, i, textLeftOffset + lineOffset, height);\n\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 _createTextCharSpan(_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,\n dySpan = '',\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n\n if (dy) {\n dySpan = ' dy=\"' + toFixed(dy, NUM_FRACTION_DIGITS) + '\" ';\n }\n\n return ['', fabric.util.string.escapeXml(_char), ''].join('');\n },\n _setSVGTextLineText: function _setSVGTextLineText(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,\n style,\n boxWidth = 0,\n line = this._textLines[lineIndex],\n timeToRender;\n textTopOffset += lineHeight * (1 - this._fontSizeFraction) / this.lineHeight;\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\n if (boxWidth === 0) {\n textLeftOffset += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n } else {\n boxWidth += charBox.kernedWidth;\n }\n\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\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\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 _pushTextBgRect: function _pushTextBgRect(textBgRects, color, left, top, width, height) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push('\\t\\t\\n');\n },\n _setSVGTextLineBg: function _setSVGTextLineBg(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,\n currentColor,\n lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\n\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\n if (currentColor !== lastColor) {\n lastColor && this._pushTextBgRect(textBgRects, lastColor, leftOffset + boxStart, textTopOffset, boxWidth, heightOfLine);\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n } else {\n boxWidth += charBox.kernedWidth;\n }\n }\n\n currentColor && this._pushTextBgRect(textBgRects, currentColor, leftOffset + boxStart, 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 _getFillAttributes(value) {\n var fillColor = value && typeof value === 'string' ? new fabric.Color(value) : '';\n\n if (!fillColor || !fillColor.getSource() || fillColor.getAlpha() === 1) {\n return 'fill=\"' + value + '\"';\n }\n\n return 'opacity=\"' + fillColor.getAlpha() + '\" fill=\"' + fillColor.setAlpha(1).toRgb() + '\"';\n },\n\n /**\n * @private\n */\n _getSVGLineTopOffset: function _getSVGLineTopOffset(lineIndex) {\n var lineTopOffset = 0,\n lastHeight = 0;\n\n for (var j = 0; j < lineIndex; j++) {\n lineTopOffset += this.getHeightOfLine(j);\n }\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 getSvgStyles(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 'use strict';\n\n var fabric = global.fabric || (global.fabric = {});\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\n fabric.Textbox = fabric.util.createClass(fabric.IText, fabric.Observable, {\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 initDimensions() {\n if (this.__skipDimension) {\n return;\n }\n\n this.isEditing && this.initDelayedCursor();\n this.clearContextTop();\n\n this._clearCache(); // clear dynamicMinWidth as it will be different after we re-wrap line\n\n\n this.dynamicMinWidth = 0; // wrap lines\n\n this._styleMap = this._generateStyleMap(this._splitText()); // if after wrapping, the width is smaller than dynamicMinWidth, change the width and re-wrap\n\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n }\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 } // clear cache and re-calculate height\n\n\n this.height = this.calcTextHeight();\n this.saveState({\n propertySet: '_dimensionAffectingProps'\n });\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 _generateStyleMap(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 } 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] = {\n line: realLineCount,\n 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 styleHas(property, lineIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n\n if (map) {\n lineIndex = map.line;\n }\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 isEmptyStyles(lineIndex) {\n if (!this.styles) {\n return true;\n }\n\n var offset = 0,\n nextLineIndex = lineIndex + 1,\n nextOffset,\n obj,\n shouldLimit = false,\n map = this._styleMap[lineIndex],\n mapNextLine = this._styleMap[lineIndex + 1];\n\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n\n obj = typeof lineIndex === 'undefined' ? this.styles : {\n line: this.styles[lineIndex]\n };\n\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\n return true;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _getStyleDeclaration: function _getStyleDeclaration(lineIndex, charIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n\n if (!map) {\n return null;\n }\n\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\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 _setStyleDeclaration(lineIndex, charIndex, style) {\n var map = this._styleMap[lineIndex];\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n this.styles[lineIndex][charIndex] = style;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _deleteStyleDeclaration: function _deleteStyleDeclaration(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 _getLineStyle(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 _setLineStyle(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 _wrapText(lines, desiredWidth) {\n var wrapped = [],\n i;\n this.isWrapping = true;\n\n for (i = 0; i < lines.length; i++) {\n wrapped = wrapped.concat(this._wrapLine(lines[i], i, desiredWidth));\n }\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 _measureWord(word, lineIndex, charOffset) {\n var width = 0,\n prevGrapheme,\n skipLeft = true;\n charOffset = charOffset || 0;\n\n for (var i = 0, len = word.length; i < len; i++) {\n var box = this._getGraphemeBox(word[i], lineIndex, i + charOffset, prevGrapheme, skipLeft);\n\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\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 _wrapLine(_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 = splitByGrapheme ? 0 : this._getWidthOfCharSpacing(),\n reservedSpace = reservedSpace || 0; // fix a difference between split and graphemeSplit\n\n if (words.length === 0) {\n words.push([]);\n }\n\n desiredWidth -= reservedSpace;\n\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 lineWidth += infixWidth + wordWidth - additionalSpace;\n\n if (lineWidth >= desiredWidth && !lineJustStarted) {\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth;\n lineJustStarted = true;\n } else {\n lineWidth += additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n\n line = line.concat(word);\n infixWidth = this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false; // keep track of largest word\n\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\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 isEndOfWrapping(lineIndex) {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\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\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 missingNewlineOffset(lineIndex) {\n if (this.splitByGrapheme) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\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 _splitTextIntoLines(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\n for (var i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n },\n getMinWidth: function getMinWidth() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n },\n _removeExtraneousStyles: function _removeExtraneousStyles() {\n var linesToKeep = {};\n\n for (var prop in this._styleMap) {\n if (this._textLines[prop]) {\n linesToKeep[this._styleMap[prop].line] = 1;\n }\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 toObject(propertiesToInclude) {\n return this.callSuper('toObject', ['minWidth', 'splitByGrapheme'].concat(propertiesToInclude));\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\n fabric.Textbox.fromObject = function (object, callback) {\n return fabric.Object._fromObject('Textbox', object, callback, 'text');\n };\n})(typeof exports !== 'undefined' ? exports : this);","/**\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 */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\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}","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 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\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _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) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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 c, { createContext as m, useContext as L, useMemo as f, useState as b } from \"react\";\nimport { useId as T } from '../../hooks/use-id.js';\nimport { forwardRefWithAs as E, render as g } from '../../utils/render.js';\nimport { useIsoMorphicEffect as x } from '../../hooks/use-iso-morphic-effect.js';\nimport { useSyncRefs as P } from '../../hooks/use-sync-refs.js';\nimport { useEvent as y } from '../../hooks/use-event.js';\nvar d = /*#__PURE__*/m(null);\n\nfunction u() {\n var o = L(d);\n\n if (o === null) {\n var t = new Error(\"You used a