{"version":3,"sources":["webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./src/components/notifications/notification.vue","webpack:///./src/components/notifications/notification.vue?5300","webpack:///./src/components/notifications/notification.vue?be4c","webpack:///./src/components/notifications/notification.vue?adcd","webpack:///./src/components/modals/validationRules.ts","webpack:///./src/helpers/cloudinary-image-resize.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///./node_modules/lodash/isObject.js","webpack:///../../../src/components/VOverlay/index.ts","webpack:///./node_modules/lodash/_objectToString.js","webpack:///../../../src/components/VToolbar/index.ts","webpack:///./node_modules/lodash/_root.js","webpack:///./src/components/mainNav/mainNav.vue?1599","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///../../../src/components/VDatePicker/VDatePickerTitle.ts","webpack:///../../../../src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack:///../../../../src/components/VDatePicker/util/monthChange.ts","webpack:///../../../src/components/VDatePicker/VDatePickerHeader.ts","webpack:///../../../../src/components/VDatePicker/util/eventHelpers.ts","webpack:///../../../../src/components/VDatePicker/util/sanitizeDateString.ts","webpack:///../../../../src/components/VDatePicker/util/isDateAllowed.ts","webpack:///../../../../src/components/VDatePicker/mixins/date-picker-table.ts","webpack:///../../../src/components/VDatePicker/VDatePickerDateTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerMonthTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerYears.ts","webpack:///../../../src/components/VDatePicker/VDatePicker.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///./node_modules/konva/lib/Util.js","webpack:///./node_modules/konva/lib/Validators.js","webpack:///./node_modules/konva/lib/Factory.js","webpack:///./node_modules/konva/lib/Context.js","webpack:///./node_modules/konva/lib/Canvas.js","webpack:///./node_modules/konva/lib/DragAndDrop.js","webpack:///./node_modules/konva/lib/Node.js","webpack:///./node_modules/konva/lib/Container.js","webpack:///./node_modules/konva/lib/PointerEvents.js","webpack:///./node_modules/konva/lib/Stage.js","webpack:///./node_modules/konva/lib/Shape.js","webpack:///./node_modules/konva/lib/Layer.js","webpack:///./node_modules/konva/lib/FastLayer.js","webpack:///./node_modules/konva/lib/Group.js","webpack:///./node_modules/konva/lib/Animation.js","webpack:///./node_modules/konva/lib/Tween.js","webpack:///./node_modules/konva/lib/_CoreInternals.js","webpack:///./node_modules/konva/lib/shapes/Arc.js","webpack:///./node_modules/konva/lib/shapes/Line.js","webpack:///./node_modules/konva/lib/shapes/Path.js","webpack:///./node_modules/konva/lib/shapes/Arrow.js","webpack:///./node_modules/konva/lib/shapes/Circle.js","webpack:///./node_modules/konva/lib/shapes/Ellipse.js","webpack:///./node_modules/konva/lib/shapes/Image.js","webpack:///./node_modules/konva/lib/shapes/Label.js","webpack:///./node_modules/konva/lib/shapes/Rect.js","webpack:///./node_modules/konva/lib/shapes/RegularPolygon.js","webpack:///./node_modules/konva/lib/shapes/Ring.js","webpack:///./node_modules/konva/lib/shapes/Sprite.js","webpack:///./node_modules/konva/lib/shapes/Star.js","webpack:///./node_modules/konva/lib/shapes/Text.js","webpack:///./node_modules/konva/lib/shapes/TextPath.js","webpack:///./node_modules/konva/lib/shapes/Transformer.js","webpack:///./node_modules/konva/lib/shapes/Wedge.js","webpack:///./node_modules/konva/lib/filters/Blur.js","webpack:///./node_modules/konva/lib/filters/Brighten.js","webpack:///./node_modules/konva/lib/filters/Contrast.js","webpack:///./node_modules/konva/lib/filters/Emboss.js","webpack:///./node_modules/konva/lib/filters/Enhance.js","webpack:///./node_modules/konva/lib/filters/Grayscale.js","webpack:///./node_modules/konva/lib/filters/HSL.js","webpack:///./node_modules/konva/lib/filters/HSV.js","webpack:///./node_modules/konva/lib/filters/Invert.js","webpack:///./node_modules/konva/lib/filters/Kaleidoscope.js","webpack:///./node_modules/konva/lib/filters/Mask.js","webpack:///./node_modules/konva/lib/filters/Noise.js","webpack:///./node_modules/konva/lib/filters/Pixelate.js","webpack:///./node_modules/konva/lib/filters/Posterize.js","webpack:///./node_modules/konva/lib/filters/RGB.js","webpack:///./node_modules/konva/lib/filters/RGBA.js","webpack:///./node_modules/konva/lib/filters/Sepia.js","webpack:///./node_modules/konva/lib/filters/Solarize.js","webpack:///./node_modules/konva/lib/filters/Threshold.js","webpack:///./node_modules/konva/lib/_FullInternals.js","webpack:///./node_modules/konva/lib/index.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///../../../src/components/VTooltip/VTooltip.ts","webpack:///../../../src/mixins/applicationable/index.ts","webpack:///./node_modules/lodash/now.js","webpack:///../../../src/components/VPicker/VPicker.ts","webpack:///../../../src/components/VPicker/index.ts","webpack:///../../../src/mixins/picker/index.ts","webpack:///./src/components/modals/postModals/msoPostModal.vue?eed6","webpack:///./src/components/modals/postModals/storesTable.vue?a89b","webpack:///../../../src/components/VForm/VForm.ts","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./src/components/modals/postModals/postModal.vue?a1e3","webpack:///../../src/util/dateTimeUtils.ts","webpack:///../../../../src/components/VDatePicker/util/pad.ts","webpack:///../../../src/components/VStepper/VStepperStep.ts","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./src/models/assets/assetListRequest.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///./node_modules/vue-konva/umd/vue-konva.js","webpack:///../../../src/components/VStepper/VStepper.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///./src/components/mainNav/mainNavMob.vue?4559","webpack:///./src/components/notifications/notification.vue?4752","webpack:///../../../src/components/VPagination/VPagination.ts","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../../src/components/VDataTable/mixins/header.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///../../src/util/dedupeModelListeners.ts","webpack:///../../src/util/rebuildFunctionalSlots.ts","webpack:///../../../src/components/VDataTable/VDataTableHeader.ts","webpack:///../../../src/components/VDataTable/Row.ts","webpack:///../../../src/components/VDataTable/RowGroup.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///./src/components/modals/authoriseSocialChannelsModal.vue?30bc","webpack:///../../../src/components/VStepper/index.ts","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./src/components/mainNav/RegionalTimer.vue?6253","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///./src/components/base/loggedInComponentBase.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/components/modals/newAssetModal.vue?3dbb","webpack:///./src/components/modals/postModals/storesTable.vue","webpack:///./src/components/modals/postModals/storesTable.vue?658e","webpack:///./src/components/modals/postModals/storesTable.vue?e8f0","webpack:///./src/components/modals/postModals/storesTable.vue?e611","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/mixins/selectable/index.ts","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///../../../src/directives/touch/index.ts","webpack:///./src/components/modals/authoriseSocialChannelsModal.vue","webpack:///./src/components/modals/authoriseSocialChannelsModal.vue?7919","webpack:///./src/components/modals/authoriseSocialChannelsModal.vue?b6dd","webpack:///./src/components/modals/authoriseSocialChannelsModal.vue?ea1d","webpack:///./src/layouts/authenticatedLayout.vue","webpack:///./src/components/mainNav/mainNav.vue","webpack:///./src/components/mainNav/RegionalTimer.vue","webpack:///./src/components/mainNav/RegionalTimer.vue?0855","webpack:///./src/components/mainNav/RegionalTimer.vue?777a","webpack:///./src/components/mainNav/RegionalTimer.vue?0d4f","webpack:///./src/components/mainNav/mainNav.vue?8a0f","webpack:///./src/components/mainNav/mainNav.vue?8cbc","webpack:///./src/components/mainNav/mainNav.vue?2554","webpack:///../../../src/directives/scroll/index.ts","webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack:///./src/components/mainNav/mainNavMob.vue","webpack:///./src/components/mainNav/mainNavMob.vue?3c8d","webpack:///./src/components/mainNav/mainNavMob.vue?72a6","webpack:///./src/components/mainNav/mainNavMob.vue?e661","webpack:///./src/components/modals/newAssetModal.vue","webpack:///./src/components/modals/newAssetModal.vue?c2cf","webpack:///./src/components/modals/newAssetModal.vue?c928","webpack:///./src/components/modals/newAssetModal.vue?bffe","webpack:///./src/components/modals/findAssetModal.vue","webpack:///./src/models/pagination/paginationRequest.ts","webpack:///./src/components/modals/findAssetModal.vue?c44b","webpack:///./src/components/modals/findAssetModal.vue?902f","webpack:///./src/components/modals/findAssetModal.vue?6827","webpack:///./src/components/modals/postModals/postModal.vue","webpack:///./src/components/modals/postModals/postModal.vue?9bd1","webpack:///./src/components/modals/postModals/postModal.vue?f6d8","webpack:///./src/components/modals/postModals/postModal.vue?bf72","webpack:///./src/components/modals/postModals/msoPostModal.vue","webpack:///./src/components/modals/postModals/msoPostModal.vue?45c8","webpack:///./src/models/pagination/paginationSortEnums.ts","webpack:///./src/components/modals/postModals/msoPostModal.vue?4013","webpack:///./src/components/modals/postModals/msoPostModal.vue?5397","webpack:///./src/components/modals/findStickersModal.vue","webpack:///./src/models/assets/stickersRequest.ts","webpack:///./src/components/modals/findStickersModal.vue?d565","webpack:///./src/components/modals/findStickersModal.vue?c051","webpack:///./src/components/modals/findStickersModal.vue?1d90","webpack:///./src/layouts/authenticatedLayout.vue?a45b","webpack:///./src/layouts/authenticatedLayout.vue?17db","webpack:///./src/layouts/authenticatedLayout.vue?e6cf","webpack:///../../../src/components/VTimePicker/SelectingTimes.ts","webpack:///../../../src/components/VTimePicker/VTimePickerTitle.ts","webpack:///../../../src/components/VTimePicker/VTimePickerClock.ts","webpack:///../../../src/components/VTimePicker/VTimePicker.ts","webpack:///./node_modules/konva/lib/Global.js","webpack:///../../../src/components/VItemGroup/VItem.ts","webpack:///../../../src/mixins/picker-button/index.ts","webpack:///../../../src/mixins/localable/index.ts","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/components/VStepper/VStepperContent.ts","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///../../../../src/components/VCalendar/util/timestamp.ts","webpack:///../../../src/components/VChipGroup/VChipGroup.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///./src/components/modals/newAssetModal.vue?8552","webpack:///./node_modules/lodash/isSymbol.js"],"names":["Symbol","objectProto","Object","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","getRawTag","value","isOwn","call","tag","unmasked","e","result","module","exports","_setup","_vm","attrs","colour","timeout","scopedSlots","key","on","expression","staticClass","staticRenderFns","render","timeouts","success","error","Notification","LoggedInComponentBase","constructor","show","message","hide","this","resetNotification","successTimeout","showError","errorTimeout","showSuccess","__decorate","Prop","Component","component","ValidationRules","required","titleLength","length","socialBodyLength","cloudinaryImageResize","url","width","height","insert","str","index","substring","precedingStr","insertParamIndex","indexOf","newParams","breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","props","val","upperFirst","alignValidator","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","extend","name","functional","dense","Boolean","noGutters","h","data","children","cacheKey","classList","get","forEach","push","set","mergeData","class","isObjectLike","baseMixins","mixins","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","directives","ClickOutside","dark","disabled","fullscreen","light","maxWidth","Number","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","computed","classes","contentClass","trim","isActive","contentClasses","hasActivator","$slots","activator","$scopedSlots","watch","hideScroll","removeOverlay","unbind","_a","focus","showScroll","genOverlay","created","$attrs","removed","beforeMount","$nextTick","isBooted","beforeDestroy","window","methods","animateClick","clearTimeout","setTimeout","closeConditional","target","_isDestroyed","$refs","content","contains","overlay","$el","activeZIndex","getMaxZIndex","document","documentElement","add","options","hideOverlay","dialog","activeElement","_b","bind","addEventListener","onFocusin","removeEventListener","onClickOutside","$emit","onKeydown","keyCode","keyCodes","esc","getOpenDependents","getActivator","getOpenDependentElements","some","el","focusable","querySelectorAll","find","hasAttribute","matches","genContent","showLazyContent","$createElement","VThemeProvider","root","role","getScopeIdAttrs","keydown","style","zIndex","ref","genTransition","genInnerContent","appear","tabindex","handler","include","transformOrigin","convertToUnit","getContentSlot","attach","genActivator","isObject","VOverlay","objectToString","VToolbarTitle","createSimpleFunctional","VToolbarItems","VToolbar","freeGlobal","freeSelf","self","Function","VSheet","Colorable","Toggleable","PositionableFactory","app","centered","multiLine","text","v","vertical","activeTimeout","absolute","bottom","top","hasBackground","left","right","outlined","isDark","Themeable","styles","bar","footer","insetFooter","$vuetify","application","paddingBottom","paddingLeft","paddingRight","paddingTop","mounted","deprecate","genActions","getSlot","genWrapper","setColor","setBackgroundColor","setTextColor","color","pointerenter","pointerleave","PickerButton","date","readonly","selectingYear","year","yearIcon","isReversing","computedTransition","prev","genYearIcon","VIcon","getYearBtn","genPickerButton","genTitleText","domProps","innerHTML","genTitleDate","createNativeLocaleFormatter","locale","substrOptions","start","makeIsoString","dateString","month","split","pad","join","intlFormatter","Intl","DateTimeFormat","format","Date","substr","sign","map","Localable","min","max","nextAriaLabel","nextIcon","prevAriaLabel","prevIcon","formatter","currentLocale","timeZone","newVal","oldVal","genBtn","change","ariaLabelId","ariaLabel","lang","t","calculateChange","VBtn","icon","click","stopPropagation","rtl","monthChange","genHeader","header","themeClasses","createItemTypeNativeListeners","instance","itemTypeSuffix","$listeners","eventName","endsWith","slice","event","createItemTypeListeners","isDateAllowed","allowedFn","Touch","allowedDates","current","events","Array","eventColor","range","tableDate","wheelThrottle","displayedMonth","displayedYear","throttle","wheel","genButtonClasses","isAllowed","isFloating","isSelected","isCurrent","isFirst","isLast","genButtonEvents","mouseEventType","mergeListeners","genButton","isOtherMonth","isArray","genEvents","getEventColors","arrayize","eventData","eventColors","filter","isValidScroll","calculateTableDate","sanitizeType","sanitizeDateString","deltaY","touch","genTable","touchDirective","offsetX","preventDefault","from","to","sort","DatePickerTable","firstDayOfWeek","localeFirstDayOfYear","showAdjacentMonths","showWeek","weekdayFormat","day","weekdayFormatter","weekday","weekDays","first","parseInt","createRange","i","delta","Math","genTHead","days","unshift","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","weekDay","getUTCDay","getWeekNumber","dayInMonth","weekNumber","genWeekNumber","padStart","genTBody","daysInMonth","getDate","rows","prevMonthYear","prevMonth","firstDayFromPreviousMonth","cellsInRow","nextMonthYear","nextMonth","nextMonthDay","cols","fill","row","tds","_","col","defaultColor","activeItem","getElementsByClassName","scrollTop","offsetTop","offsetHeight","scrollHeight","genYearItem","formatted","active","genYearItems","selectedYear","getFullYear","maxYear","minYear","Picker","activePicker","dayFormat","headerDateFormat","monthFormat","multiple","nextMonthAriaLabel","nextYearAriaLabel","pickerDate","prevMonthAriaLabel","prevYearAriaLabel","reactive","showCurrent","selectedItemsText","titleDateFormat","yearFormat","now","internalActivePicker","toUpperCase","inputDay","inputMonth","inputYear","multipleValue","wrapInArray","getMonth","isMultiple","lastValue","selectedMonths","inputDate","tableMonth","tableYear","minMonth","maxMonth","formatters","titleDate","defaultTitleMultipleDateFormatter","defaultTitleDateFormatter","dates","titleFormats","titleDateFormatter","landscapeFormatter","match","nonDigit","digit","landscape","immediate","newValue","oldValue","checkMultipleProp","setInputDate","output","emitInput","newInput","concat","x","valueType","expected","consoleWarn","yearClick","monthClick","dateClick","genPickerTitle","VDatePickerTitle","slot","genTableHeader","VDatePickerHeader","toggle","input","genDateTable","VDatePickerDateTable","genMonthTable","VDatePickerMonthTable","genYears","VDatePickerYears","genPickerBody","array","genPicker","Transform","m","dirty","tr","point","y","sx","sy","rad","c","cos","s","sin","m11","m12","m21","m22","matrix","dx","dy","d","m0","m1","m2","m3","m4","m5","a","b","f","rotation","scaleX","scaleY","skewX","skewY","r","sqrt","acos","PI","Util","_getRotation","OBJECT_ARRAY","OBJECT_NUMBER","OBJECT_STRING","OBJECT_BOOLEAN","PI_OVER_DEG180","DEG180_OVER_PI","HASH","EMPTY_STRING","ZERO","KONVA_WARNING","KONVA_ERROR","RGB_PAREN","COLORS","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","darkgreen","darkgrey","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","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","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","tan","teal","thistle","transparent","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","RGB_REGEX","animQueue","req","requestAnimationFrame","obj","nodeType","apply","isNaN","isFinite","selector","firstChar","number","callback","queue","cb","canvas","createElement","parentNode","imageObj","createImageElement","onload","src","g","hex","bigint","randColor","random","rgb","_hexToRgb","exec","_namedColorToRBA","_hex3ColorToRGBA","_hex6ColorToRGBA","_rgbColorToRGBA","_rgbaColorToRGBA","_hslColorToRGBA","parts","n","test","hsl","l","t2","t3","round","t1","r1","r2","retObj","_isPlainObject","cloneObject","_isArray","cloneArray","arr","deg","warn","degToRad","radToDeg","radians","angleDeg","charAt","Error","console","showWarnings","func","x1","y1","x2","y2","x3","y3","dist","pd2","u","pt","line","isClosed","pc","MAX_VALUE","p1","p2","proj","_getProjectionToSegment","px","py","pdist","startArray","endArray","end","temp","newStart","pr","_getProjectionToLine","desc","visitedByCircularReferenceRemoval","getOwnPropertyDescriptor","_isElement","configurable","_prepareToStringify","source","evt","touches","changedTouches","identifier","pointerId","canvases","releaseCanvasOnDestroy","_formatValue","_isString","_isBoolean","RGBComponent","getNumberValidator","isUnminified","attr","_isNumber","getNumberOrArrayOfNumbersValidator","noOfElements","isNumber","isValidArray","getNumberOrAutoValidator","isAuto","getStringValidator","getStringOrGradientValidator","isString","isGradient","addColorStop","getNumberArrayValidator","TypedArray","Int8Array","getPrototypeOf","item","getBooleanValidator","isBool","getComponentValidator","components","GET","SET","Factory","after","addGetter","addSetter","addOverloadedGetterSetter","method","_capitalize","overWriteSetter","_setAttr","len","capitalize","getter","setter","ret","getAttr","basicValidator","_fireChangeEvent","capitalizedAttr","arguments","each","oldMethodName","newMethodName","oldGetter","oldSetter","deprecated","_filterUpToDate","simplifyArray","retArr","util","COMMA","OPEN_PAREN","CLOSE_PAREN","OPEN_PAREN_BRACKET","CLOSE_BRACKET_PAREN","SEMICOLON","DOUBLE_PAREN","EQUALS","CONTEXT_METHODS","CONTEXT_PROPERTIES","traceArrMax","enableTrace","traceArr","_enableTrace","shape","fillEnabled","_fill","hasStroke","_stroke","fillAfterStrokeEnabled","strokeShape","fillShape","relaxed","rounded","trace","args","floor","property","shift","pixelRatio","getCanvas","getPixelRatio","setTransform","bounds","clearRect","getWidth","getHeight","lineCap","getLineCap","setAttr","absOpacity","getAbsoluteOpacity","lineJoin","_context","a0","a1","a2","a3","a4","a5","arc","arcTo","beginPath","bezierCurveTo","clip","closePath","createImageData","createLinearGradient","createPattern","createRadialGradient","a6","a7","a8","drawImage","ellipse","isPointInPath","path2d","fillRect","strokeRect","fillText","measureText","getImageData","lineTo","moveTo","rect","putImageData","quadraticCurveTo","restore","rotate","save","scale","setLineDash","getLineDash","stroke","strokeText","transform","translate","that","origSetter","methodName","origMethod","_trace","node","op","globalCompositeOperation","defineProperty","SceneContext","super","_canvas","getContext","_fillFunc","_getFillPattern","grd","_getLinearGradient","_getRadialGradient","hasColor","fillPriority","getFillPriority","_fillColor","hasPattern","getFillPatternImage","_fillPattern","hasLinearGradient","getFillLinearGradientColorStops","_fillLinearGradient","hasRadialGradient","getFillRadialGradientColorStops","_fillRadialGradient","getStrokeLinearGradientStartPoint","getStrokeLinearGradientEndPoint","colorStops","getStrokeLinearGradientColorStops","dash","strokeScaleEnabled","getStrokeScaleEnabled","_applyLineCap","dashEnabled","dashOffset","strokeWidth","getShadowForStrokeEnabled","_strokeLinearGradient","_strokeFunc","_c","getShadowRGBA","blur","getShadowBlur","offset","getShadowOffset","getAbsoluteScale","ratio","abs","HitContext","willReadFrequently","colorKey","_fillFuncHit","hasHitStroke","hitStrokeWidth","_strokeFuncHit","_pixelRatio","getDevicePixelRatio","createCanvasElement","context","devicePixelRatio","_global","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","releaseCanvas","config","isCache","conf","padding","margin","border","background","position","previousRatio","setSize","setWidth","setHeight","mimeType","quality","toDataURL","err","addGetterSetter","hitCanvas","DD","flag","_dragElements","elem","dragStatus","justDragged","nodesToFireEvents","stage","getStage","setPointersPositions","_getFirstPointerId","pos","_changedPointerPositions","id","dragDistance","distance","startPointerPos","startDrag","isDragging","_setDragPosition","fire","drawNodes","_mouseListenClick","_touchListenClick","_pointerListenClick","drawNode","getLayer","draw","delete","isBrowser","_endDragBefore","_drag","_endDragAfter","ABSOLUTE_OPACITY","ALL_LISTENERS","ABSOLUTE_TRANSFORM","ABSOLUTE_SCALE","CANVAS","CHANGE","CHILDREN","KONVA","LISTENING","MOUSEENTER","MOUSELEAVE","SHAPE","SPACE","STAGE","TRANSFORM","UPPER_STAGE","VISIBLE","TRANSFORM_CHANGE_STR","idCounter","_id","eventListeners","_allEventListeners","parent","_cache","_attachedDepsListeners","_lastPos","_batchingTransformChange","_needClearTransformCache","_isUnderCache","_dragEventId","_shouldFireChangeEvents","setAttrs","clear","privateGetter","isTransform","invalid","deps","depsString","dep","_clearCache","_getCache","has","scene","hit","_clearSelfAndDescendantCache","_requestDraw","getClientRect","skipTransform","relativeTo","getParent","ceil","drawBorder","hitCanvasPixelRatio","cachedSceneCanvas","cachedFilterCanvas","cachedHitCanvas","sceneContext","hitContext","imageSmoothingEnabled","drawScene","drawHit","minX","minY","maxX","maxY","points","trans","getAbsoluteTransform","transformed","_applyOpacity","_applyGlobalCompositeOperation","canvasCache","_getCanvasCache","cacheCanvas","_getCachedSceneCanvas","imageData","filters","cachedCanvas","sceneCanvas","filterCanvas","filterContext","evtStr","_delegate","baseEvent","_off","off","stopNode","targets","findAncestors","currentTarget","stopDrag","_remove","_clearCaches","splice","_setChildrenIndices","remove","clearCache","_isFunction","ancestors","_batchTransformChanges","_isListening","listening","_isVisible","visible","skipDragCheck","layer","layerUnderDrag","dragSkip","hitOnDragEnabled","isListening","isVisible","nodes","child","depth","getDepth","addChildren","getChildren","getPointerPosition","copy","invert","haveCachedParent","isCached","absoluteMatrix","getMatrix","absoluteTransform","getTranslation","origTrans","_clearTransform","it","_getAbsoluteTransform","_setTransform","setPosition","offsetY","changeX","changeY","family","theta","_getAbsoluteOpacity","opacity","newContainer","defaultValue","nonPlainObject","getAttrs","getClassName","JSON","stringify","toObject","includeSelf","res","_isMatch","ancestor","sel","selectorArr","isValidSelector","hasName","_getStage","eventType","bubble","_fireAndBubble","_fire","at","_eachAncestorReverse","transformsEnabled","multiply","getTransform","copyInto","reset","decompose","_getTransform","getAngle","skew","allListeners","listener","box","_toKonvaCanvas","Promise","resolve","reject","_urlToImage","img","toCanvas","toBlob","blob","size","getDragDistance","evtName","evtListeners","oldName","newName","fullName","names","autoDrawEnabled","batchDraw","compareShape","shouldStop","isAncestorOf","stopBubble","cancelBubble","listeners","newEvents","oldEvents","topListeners","_getProtoListeners","selfListeners","ap","getAbsolutePosition","_getPointerById","bubbleEvent","_createDragElement","newNodePos","dbf","dragBoundFunc","bounded","setAbsolutePosition","draggable","_dragChange","_dragCleanup","shouldCheckButton","canDrag","dragButtons","hasDraggingChild","_listenDrag","dragElement","isReady","screenRect","haveIntersection","container","parse","_createNode","no","Class","_attrsAffectingSize","addComponentsGetterSetter","backCompat","rotateDeg","setRotationDeg","getRotationDeg","filterFunc","results","destroy","_validateAdd","hasChildren","destroyChildren","_generalFind","findOne","_descendants","valid","fn","clone","intersects","can","caching","_drawCachedSceneCanvas","_drawChildren","shouldDrawHit","_drawCachedHitCanvas","drawMethod","clipWidth","clipHeight","clipFunc","hasClip","selfCache","clipX","clipY","hasComposition","selfRect","Infinity","skipShadow","skipStroke","shapes","hasVisible","_transformedRect","Captures","SUPPORT_POINTER_EVENTS","getCapturedShape","createEvent","hasPointerCapture","setPointerCapture","releaseCapture","PointerEvent","STRING","PX","MOUSEOUT","MOUSEOVER","MOUSEMOVE","MOUSEDOWN","MOUSEUP","POINTERMOVE","POINTERDOWN","POINTERUP","POINTERCANCEL","LOSTPOINTERCAPTURE","POINTEROUT","POINTERLEAVE","POINTEROVER","POINTERENTER","CONTEXTMENU","TOUCHSTART","TOUCHEND","TOUCHMOVE","TOUCHCANCEL","WHEEL","MAX_LAYERS_NUMBER","EVENTS","EVENTS_MAP","mouse","pointerclick","pointerdblclick","pointer","getEventType","getEventsMap","pointerEventsEnabled","checkNoClip","NO_POINTERS_MESSAGE","stages","_pointerPositions","_buildDOM","_bindContentEvents","_resizeDOM","_checkVisibility","isLayer","getType","isFastLayer","throw","display","getElementById","parentElement","removeChild","appendChild","layers","_isInDocument","bufferCanvas","bufferHitCanvas","p","layerCanvas","getIntersection","rest","passive","pointerover","evenType","targetShape","_getTargetShape","eventsEnabled","pointerout","pointerPos","triggeredOnShape","hasShape","capturePointerEventsEnabled","pointerdown","isTouch","cancelable","processedShapesIds","differentTarget","assign","pointermove","clickStartShape","clickEndShape","fireDblClick","dblClickWindow","pointerup","contentPosition","_getContentPosition","clientX","clientY","getBoundingClientRect","clientWidth","clientHeight","userSelect","setAttribute","HAS_SHADOW","SHADOW_RGBA","patternImage","linearGradient","radialGradient","dummyContext","getDummyContext","_clearHasShadowCache","_clearGetShadowRGBACache","_clearFillPatternCache","_clearLinearGradientCache","_clearRadialGradientCache","getRandomColor","sceneFunc","hitFunc","_hasShadow","shadowEnabled","shadowOpacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","__getFillPattern","fillPatternImage","ctx","pattern","fillPatternRepeat","fillPatternX","fillPatternY","fillPatternRotation","fillPatternScaleX","fillPatternScaleY","fillPatternOffsetX","fillPatternOffsetY","DOMMatrix","__getLinearGradient","fillLinearGradientColorStops","fillLinearGradientStartPoint","fillLinearGradientEndPoint","__getRadialGradient","fillRadialGradientColorStops","fillRadialGradientStartPoint","fillRadialGradientEndPoint","fillRadialGradientStartRadius","fillRadialGradientEndRadius","_getShadowRGBA","hasShadow","rgba","colorToRGBA","_calculate","strokeEnabled","strokeLinearGradientColorStops","forceFill","perfectDrawEnabled","hasFill","isTransparent","strokeForShadow","shadowForStrokeEnabled","_centroid","getSelfRect","applyStroke","fillAndStrokeWidth","fillAndStrokeHeight","applyShadow","preWidth","preHeight","blurRadius","bufferContext","drawFunc","getSceneFunc","skipBuffer","cachingSelf","_useBufferCanvas","_applyLineJoin","o","_applyShadow","alphaThreshold","hitImageData","hitData","rgbColorKey","alpha","hitWidth","hitHeight","dashArray","getDashArray","setDashArray","getDrawFunc","setDrawFunc","drawHitFunc","getDrawHitFunc","setDrawHitFunc","BEFORE_DRAW","DRAW","INTERSECTION_OFFSETS","INTERSECTION_OFFSETS_LEN","_waitingForDraw","_setSmoothEnabled","createPNGStream","getHitCanvas","setZIndex","getNativeCanvasElement","insertBefore","moveToTop","moved","moveUp","moveDown","moveToBottom","requestAnimFrame","spiralSearchDistance","continueSearch","intersectionOffset","_getIntersection","antialiased","p3","_rgbToHex","clearBeforeDraw","hitGraphEnabled","added","performance","getTime","animIdCounter","frame","time","timeDiff","lastTime","frameRate","setLayers","lays","animations","stop","_addAnimation","_removeAnimation","anim","_handleAnimation","layersLen","needRedraw","layerHash","_updateFrameObject","Anim","_runFrames","_animationLoop","animRunning","blacklist","duration","easing","onFinish","yoyo","PAUSED","PLAYING","REVERSING","colorAttrs","TweenEngine","propFunc","begin","finish","_pos","_change","prevPos","_time","_position","_startTime","_finish","pause","reverse","play","update","state","getTimer","onEnterFrame","getPosition","setTime","nodeId","Easings","Linear","getLayers","tween","_tweenFunc","_addListeners","tweens","_addAttr","onReset","onUpdate","diff","tweenId","trueEnd","trueStart","endRGBA","_prepareArrayForTween","closed","startRGBA","onPlay","onReverse","onPause","seek","thisId","params","asin","pow","BounceEaseOut","BounceEaseIn","Konva","_assign","Global","Node","Container","Stage","Layer","FastLayer","Group","Shape","Animation","Tween","Context","Canvas","angle","clockwise","outerRadius","innerRadius","fillStrokeShape","boundLeftRatio","boundRightRatio","boundTopRatio","boundBottomRatio","boundLeft","boundRight","boundTop","boundBottom","getControlPoints","x0","y0","d01","d12","fa","fb","p1x","p1y","p2x","p2y","expandPoints","tension","cp","allPoints","tp","bezier","getTensionPoints","_getTensionPoints","_getTensionPointsClosed","firstControlPoints","lastControlPoints","middle","dataArray","pathLength","parsePathData","ca","command","cx","cy","rx","ry","dTheta","psi","fs","inc","getPointOnEllipticalArc","getPointOnCubicBezier","ii","getPointOnLine","getPointOnQuadraticBezier","P1x","P1y","P2x","P2y","fromX","fromY","run","rise","ix","iy","getLineLength","pRise","pRun","pct","P3x","P3y","P4x","P4y","CB1","CB2","CB3","CB4","QB1","QB2","QB3","cosPsi","sinPsi","cs","cc","RegExp","coords","cpx","cpy","re","j","jlen","parsed","parseFloat","prevCmd","ctlPtx","ctlPty","cmd","startX","startY","idx","convertEndpointToCenterParameterization","calcLength","path","psiDeg","xp","yp","lambda","cxp","cyp","vMag","vRatio","vAngle","_sceneFunc","PI2","fromTension","pointerLength","lp","lastLength","previous","atan2","pointerWidth","pointerAtEnding","__fillStroke","pointerAtBeginning","isDashEnabled","lineRect","radius","radiusX","radiusY","_setImageLoad","image","complete","readyState","cropWidth","cropHeight","cropX","cropY","onError","onerror","crossOrigin","ATTR_CHANGE_LIST","CHANGE_KONVA","NONE","UP","RIGHT","DOWN","LEFT","attrChangeListLen","_sync","getText","pointerDirection","pointerHeight","getTag","cornerRadius","topLeft","topRight","bottomLeft","bottomRight","direction","_getPoints","sides","PIx2","_updated","updated","frameIndex","isRunning","clearInterval","interval","_setInterval","animation","ix4","offsets","frameOffsets","ix2","setInterval","_updateIndex","getIndex","setIndex","numPoints","stringToArray","string","AUTO","CENTER","JUSTIFY","CONTEXT_2D","DASH","TEXT","TEXT_UPPER","TOP","BOTTOM","MIDDLE","NORMAL","PX_SPACE","WORD","CHAR","ELLIPSIS","normalizeFontFamily","fontFamily","hasSpace","hasQuotes","_partialText","_partialTextX","_partialTextY","checkDefaultFill","_setTextData","textArr","textArrLen","fontSize","lineHeightPx","lineHeight","verticalAlign","alignY","totalWidth","letterSpacing","textDecoration","shouldUnderline","shouldLineThrough","translateY","lineTranslateX","lineTranslateY","_getContextFont","spacesNumber","oneWord","lineWidth","lastLine","lastInParagraph","strokeStyle","li","letter","measureSize","getTextWidth","textWidth","textHeight","metrics","font","fontStyle","fontVariant","_getTextWidth","lines","fixedWidth","fixedHeight","maxHeightPx","currentHeightPx","wrap","shouldWrap","wrapAtWord","shouldAddEllipsis","ellipsis","additionalWidth","low","high","matchWidth","mid","substrWidth","wrapIndex","nextChar","nextIsSpaceOrDash","lastIndexOf","trimRight","_addTextLine","shouldHandleEllipsis","_shouldHandleEllipsis","_tryToAddEllipsisToLastLine","trimLeft","haveSpace","partialText","dummyCanvas","textBaseline","glyphInfo","p0","setText","_getTextSize","kerningFunc","textFullWidth","fullPathWidth","pathCmd","charArr","pIndex","currentT","getNextPathSegment","pathData","findSegmentToFitCharacter","glyphWidth","currLen","attempts","cumulativePathLength","needNewSegment","testChar","lettersInOffset","k","kern","midpoint","transposeX","transposeY","info","EVENTS_NAME","NODES_RECT","ANGLES","TOUCH_DEVICE","getCursor","anchorName","_inRange","ANCHORS_NAMES","MAX_SAFE_INTEGER","getCenter","rotateAroundPoint","angleRad","rotateAroundCenter","deltaRad","center","getSnap","snaps","newRotationRad","tol","snapped","absDiff","dif","_transforming","_createElements","_handleMouseMove","_handleMouseUp","getNode","setNode","setNodes","_nodes","detach","useSingleNodeRotation","getAbsoluteRotation","onChange","_resetTransformCache","additionalEvents","_getEventNamespace","_proxyDrag","elementsCreated","lastPos","otherNode","otherAbs","_movingAnchorName","__getNodeRect","rot","relative","ignoreStroke","absScale","absPos","totalPoints","_getNodeRect","_createBack","_createAnchor","anchor","_handleMouseDown","cursor","_cursorChange","back","rotateEnabled","rotateAnchorOffset","_sign","shouldOverdrawWholeArea","hypotenuse","_anchorDragOffset","newHypotenuse","anchorNode","pp","oldAbs","anchorDragBoundFunc","newAbs","keepProportion","keepRatio","shiftKey","centeredScaling","altKey","comparePoint","reverseX","reverseY","topOffsetX","topOffsetY","bottomOffsetX","bottomOffsetY","move","_fitNodesInto","oldRotation","newRotation","rotationSnapTolerance","snappedRot","rotationSnaps","_removeEvents","newAttrs","oldAttrs","minSize","allowNegativeScale","flipEnabled","boundBoxFunc","baseSize","oldTr","newTr","parentTransform","localTransform","newLocalTransform","enabledAnchors","resizeEnabled","anchorSize","anchorStroke","anchorStrokeWidth","anchorFill","anchorCornerRadius","_batchChangeChild","borderEnabled","borderStroke","borderStrokeWidth","borderDash","validateAnchors","lineEnabled","rotateHandlerOffset","enabledHandlers","BlurStack","next","getAngleDeg","setAngleDeg","mul_table","shg_table","filterGaussBlurRGBA","yi","yw","r_sum","g_sum","b_sum","a_sum","r_out_sum","g_out_sum","b_out_sum","a_out_sum","r_in_sum","g_in_sum","b_in_sum","a_in_sum","pg","pb","pa","rbs","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","stackEnd","stack","stackIn","stackOut","mul_sum","shg_sum","Blur","afterSetFilter","Brighten","brightness","Contrast","adjust","contrast","nPixels","Emboss","strength","embossStrength","greyLevel","embossWhiteLevel","embossDirection","blend","embossBlend","dirY","dirX","w","w4","otherY","offsetYOther","otherX","offsetOther","dR","dG","dB","absDif","absG","absB","remap","fromValue","fromMin","fromMax","toMin","toMax","toValue","fromRange","toRange","Enhance","nSubPixels","rMin","rMax","gMin","gMax","bMin","bMax","enhanceAmount","enhance","rMid","rGoalMax","rGoalMin","gMid","gGoalMax","gGoalMin","bMid","bGoalMax","bGoalMin","Grayscale","HSL","saturation","hue","luminance","vsu","vsw","rr","rg","rb","gr","gg","gb","br","bg","bb","HSV","Invert","ToPolar","dst","opt","srcPixels","dstPixels","xSize","ySize","xMid","polarCenterX","yMid","polarCenterY","rSize","tSize","conversion","FromPolar","phaseShift","polarRotation","Kaleidoscope","xoff","srcPos","dstPos","power","kaleidoscopePower","kaleidoscopeAngle","tempCanvas","scratchData","minSectionSize","sectionSize","xStart","xEnd","xDelta","pixelAt","idata","rgbDistance","rgbMean","pTab","backgroundMask","threshold","rgbv_no","rgbv_ne","rgbv_so","rgbv_se","thres","mean","mask","applyMask","erodeMask","sw","sh","weights","side","halfSide","maskResult","so","scy","scx","srcOff","wt","dilateMask","smoothEdgeMask","Mask","Noise","amount","noise","half","Pixelate","xBinStart","xBinEnd","yBinStart","yBinEnd","xBin","yBin","pixelsInBin","pixelSize","nBinsX","nBinsY","Posterize","levels","RGB","RGBA","ia","Sepia","Solarize","Threshold","level","Arc","Arrow","Circle","Ellipse","Image","Label","Tag","Line","Path","Rect","RegularPolygon","Ring","Sprite","Star","Text","TextPath","Transformer","Wedge","Filters","nullTag","undefinedTag","baseGetTag","Delayable","Menuable","closeDelay","openDelay","openOnHover","openOnFocus","calculatedMinWidth","closeDependents","calculatedLeft","dimensions","unknown","activatorLeft","offsetLeft","nudgeLeft","nudgeRight","calcXOverflow","calculatedTop","activatorTop","nudgeTop","nudgeBottom","pageYOffset","calcYOverflow","minWidth","callActivate","getSlotType","consoleError","activate","updateDimensions","startTransition","deactivate","runDelay","genActivatorListeners","genActivatorAttributes","menuable__content__active","activatorFixed","isContentActive","applicationable","applicationProperty","removeApplication","callUpdate","unregister","_uid","activated","$watch","deactivated","destroyed","register","updateApplication","force","Elevatable","flat","fullWidth","noTitle","computedTitleColor","defaultTitleColor","genTitle","title","genBodyTransition","genBody","actions","elevationClasses","VPicker","headerColor","genPickerActionsSlot","cancel","body","elevation","BindsAttrs","RegistrableProvide","provide","form","inheritAttrs","lazyValidation","inputs","watchers","errorBag","errors","values","deep","watchInput","watcher","$set","shouldValidate","validate","resetErrorBag","resetValidation","found","unwatch","$delete","novalidate","attrs$","submit","reWhitespace","trimmedEndIndex","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","firstDayOfYear","firstWeekDayInFirstWeek","firstWeekDayOfYear","dayOfYear","isLeapYear","weeksInYear","weekOffset","weekOffsetNext","daysInYear","week","targetLength","padString","repeat","RegistrableInject","ripple","inject","completeIcon","editable","editIcon","errorIcon","rules","step","isInactive","hasError","stepper","stepClick","genIcon","genLabel","genStep","genStepContent","keyboardClick","space","global","breakpointProps","offsetProps","orderProps","order","alignSelf","hasColClasses","startsWith","AssetListRequest","campaignId","campaignCategoryId","campaignSubCategoryId","productTypeCategoryId","audienceCategoryId","query","includeRecommended","pagination","limit","collapse","extended","extensionHeight","floating","prominent","short","isExtended","computedHeight","computedContentHeight","isCollapsed","isProminent","smAndDown","measurableStyles","breakingProps","original","replacement","breaking","genBackground","VImg","genExtension","extension","factory","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__2__","modules","installedModules","__webpack_require__","moduleId","enumerable","mode","__esModule","ns","create","object","__webpack_exports__","external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_","external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_default","updatePicture","drawingNode","propsToSkip","elm","isRootInsert","EVENTS_NAMESPACE","applyNodeProps","vueComponent","oldProps","useStrict","_konvaNode","updatedProps","hasUpdates","isEvent","propChanged","toRemove","_key","_isEvent","toAdd","_eventName","componentPrefix","konvaNodeMarker","createListener","findParentKonva","$parent","findKonvaNode","$options","$children","checkOrder","$vnode","konvaNode","componentOptions","componentInstance","tagName","getZIndex","_extends","uploadKonva","__useStrictMode","validateChildren","KonvaNode_extends","KonvaNode_EVENTS_NAMESPACE","CONTAINERS","KonvaNode","nameNode","_ref","isContainer","initKonva","parentVueInstance","parentKonvaNode","NodeClass","VueComponent","KONVA_NODES","VueKonva","install","prefixToUse","use","Proxyable","isVertical","altLabels","nonLinear","steps","isReverse","internalLazyValue","internalValue","updateView","bias","calculateUpdatedOffset","selectedElement","widths","currentScrollOffset","wrapper","itemOffset","additionalOffset","calculateCenteredOffset","offsetCentered","BaseSlideGroup","BaseItemGroup","Mobile","Resize","activeClass","centerActive","showArrows","isOverflowing","resizeTimeout","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","__cachedNext","__cachedPrev","hasAffixes","isMobile","hasNext","hasPrev","scroll","ResizeObserver","obs","onResize","observe","$on","disconnect","itemsLength","setWidths","onScroll","scrollLeft","composedPath","vm","items","genNext","onAffixClick","focusin","genData","location","upperLocation","hasAffix","genPrev","VFadeTransition","overflowCheck","onTouchStart","onTouchMove","onTouchEnd","calculateNewOffset","newAbosluteOffset","scrollTo","touchstartX","setProperty","diffX","touchmoveX","diffY","touchmoveY","touchstartY","overflowY","maxScrollOffset","removeProperty","scrollIntoView","selectedItem","lastItemPosition","wrapperPosition","selectedIndex","slideGroup","Intersectable","onVisible","circle","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","wrapperAriaLabel","maxButtons","selected","maxLength","even","firstItem","lastItem","secondItem","beforeLastItem","init","innerWidth","label","genItem","isCurrentPage","genItems","genList","modifiers","quiet","reTrimStart","baseTrim","sortBy","sortDesc","customSort","sortItems","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","groupItems","disableSort","disablePagination","disableFiltering","search","customFilter","searchItems","serverItemsLength","internalOptions","sortDiff","groupDiff","fillArray","filteredItems","pageCount","pageStart","pageStop","isGrouped","computedItems","paginateItems","groupedItems","scopedProps","sortArray","group","updateOptions","originalItemsLength","computedOptions","old","deepEqual","oldBy","oldDesc","by","byIndex","findIndex","itemsPerPageOptions","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","genDataItemsPerPageOption","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genItemsPerPageSelect","computedIPPO","ippo","VSelect","hideDetails","auto","genPaginationInfo","genIcons","before","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","loading","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","someItems","sanitizedFooterProps","camelizeObjectKeys","isSelectable","getObjectValueByPath","removedProps","onKeyDown","onKeyUp","toggleSelectAll","select","emit","lastEntryKey","lastEntryKeySelected","multipleSelect","currentItem","isExpanded","expand","createItemProps","genEmptyWrapper","genEmpty","filteredItemsLength","noData","noResults","empty","genFooter","getPrefixedScopedSlots","VDataFooter","genDefaultScopedSlot","outerProps","$props","headers","checkboxColor","sortIcon","showGroupBy","genSelectAll","indeterminate","VSimpleCheckbox","genSortIcon","sortByText","genSortChip","sortIndex","beingSorted","isDesc","sortable","asc","VChip","genSortSelect","menuProps","closeOnContentClick","sortHeaders","th","genGroupByToggle","getAria","$t","ariaSort","scope","divider","groupable","dedupeModelListeners","model","rebuildFunctionalSlots","slots","mobile","rebuildSlots","VDataTableHeaderMobile","VDataTableHeaderDesktop","needsTd","computedSlots","columns","slotName","scopedSlot","regularSlot","textAlign","cellClass","headerClass","summaryClass","fixedHeader","hideDefaultHeader","mobileRowChildren","filterFn","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","matchesColumnFilters","defaultFilter","matchesSearchTerm","VDataIterator","Loadable","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","itemClass","loaderHeight","internalGroupBy","openCache","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","acc","filterable","sanitizedHeaderProps","computedItemsPerPage","firstOption","groupByText","calcWidths","customFilterWithColumns","customSortWithHeaders","genCaption","genColgroup","genLoading","genProgress","genHeaders","VDataTableHeader","genGroupedRows","genRows","genDefaultGroupedRow","isOpen","toggleFn","removeFn","small","column","RowGroup","genScopedRows","genDefaultRows","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","MobileRow","Row","mergeClasses","getPropertyFromItem","contextmenu","dblclick","genFoot","foot","genFooters","simpleProps","VSimpleTable","proxySlot","VStepperHeader","VStepperItems","VStepper","VStepperContent","VStepperStep","VGrid","Grid","fluid","__scrim","computedOpacity","assetModalModule","getModule","AssetModalModule","newAssetModalModule","NewAssetModalModule","postModalModule","PostModalModule","stickerModalModule","StickerModalModule","storesModule","StoresModule","uiModule","UiModule","userModule","UserModule","createModule","CreateModule","createAssetModule","CreateAssetModule","createPostModule","CreatePostModule","currentStore","campaignSidebarOpen","toggleAltDrawer","drawerType","AltDrawerType","CampaignSidebar","open","isLoading","mainNavigationDrawerOpen","upcomingPostsSidebarOpen","user","isViewingSingleStore","getStoreChannels","storeChannels","$route","toggleAuthoriseSocialChannelsModal","VTextField","autoGrow","noResize","rowHeight","noResizeHandle","calculateInputHeight","lazyValue","minHeight","genInput","onInput","isFocused","syncedItems","_v","facebook","storeChannelToggled","$$v","instagram","StoresTable","tableItem","channel","payload","PropSync","genRipple","prevent","VInput","Rippleable","Comparable","inputValue","falseValue","trueValue","computedColor","appIsDark","valueComparator","isDirty","rippleState","isDisabled","validationState","computedId","checked","onBlur","onFocus","onClick","isInteractive","Selectable","indeterminateIcon","offIcon","onIcon","inputIndeterminate","computedIcon","hasSuccess","genCheckbox","checkboxAttrs","genDefaultSlot","Measurable","aspectRatio","computedAspectRatio","aspectStyle","__cachedSizer","VResponsive","hasIntersect","intersect","alt","contain","eager","gradient","lazySrc","rootMargin","sizes","srcset","currentSrc","calculatedAspectRatio","naturalWidth","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","entries","observer","isIntersecting","lazyImg","pollForSize","onLoad","getSrc","naturalHeight","decode","catch","then","poll","__genPlaceholder","placeholder","once","toNumber","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","flush","debounced","isInvoking","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","valueOf","isBinary","handleGesture","touchendX","touchendY","dirRatio","minDistance","up","down","touchstart","touchend","touchmove","createHandlers","inserted","binding","vnode","handlers","_touchHandlers","authoriseSocialChannels","storesServiceClient","StoresServiceClient","AuthoriseSocialChannelsModal","modalIsLoading","showAuthoriseSocialChannelsModal","channelsNotAuthorised","SocialChannels","notification","response","getAdapterSSOLink","ssoLink","ssoWindow","loop","async","updateSocialChannels","notificationInstance","progressColour","isNavigationVisible","onCloseBtnClick","isBrandToggleMenuVisible","currentBrandIndex","_l","availableBrands","isMSO","selectedRegion","selectedStore","menu","rawName","routeName","_self","_setupProxy","utc8Timer","_s","regions","_e","utc95Timer","utc10Timer","RegionalTimer","getTimerForRegion","region","AustralianTimeZones","initZonedTimer","timer","hour","minute","job","initTimers","Region","ALL","onRegionsChanged","Watch","MainNav","storesLoading","logoKey","wasBrandJustChanged","isBrandIndexWatchEnabled","xs","categoryId","isExact","isMultiStoreOwner","currentRegion","regionsFilteredBySelectedBrand","uniq","currentUser","stores","store","selectedBrand","brand","getRegionSelectionItemText","currentBrand","regionChanged","checkSocialChannelsAuthorised","BrandName","LOCAL","SUPA","isParticipatingInAutomatedProgram","setCurrentStore","currentStoreSet","displayName","userStoresInBrandAndRegion","logout","RefreshTokenService","stopRefreshTokenTimeout","$router","drawerStateChangeHandler","setNavigationDrawer","storeCount","regionalStoreCount","getRegions","getUserStores","onRegionSelected","setCurrentBrand","userStores","onBrandFileNameChange","changedTo","arg","querySelector","_onScroll","Scroll","scrollTarget","scrollThreshold","currentScroll","currentThreshold","isScrollingUp","previousScroll","savedScroll","canScroll","computedScrollThreshold","thresholdMet","Scrollable","SSRBootable","Applicationable","VAppBar","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","fixed","hideShadow","scrollRatio","computedOriginalHeight","computedFontSize","computedLeft","computedMarginTop","computedRight","computedTransform","marginTop","defaultSlot","$root","MainNavMob","onCameraBtnClick","camera","showSteps","resetAndCloseModal","$event","selectedSocialChannels","availableChannels","categoryFilters","showSelectAll","staticStyle","showSelectAllForRegion","toggleAllStoresInRegion","tableItems","goToStep3","assetDetailsForm","assetTitle","maxHeight","selectedAudiences","selectedProductTypes","selectAssetHandler","newX","konvaMainImage","newY","mainImageDragEnd","konvaStickerImage","configStage","configRect","showNotification","assetServiceClient","AssetsServiceClient","campaignModule","CampaignModule","NewAssetModal","dataURL","selectedNode","fileInputImage","isImageImported","isResetBtnCreated","strokePercentage","imageExportSize","sharedMsoAssetId","selectedCategory","selectedRegions","selectedStores","tableHeaders","notificationMessage","notificationColour","notificationTimeout","isFormValid","showMsoFields","campaignCategories","category","isDeselect","allStoreOptionsInRegion","ALLSTORES","uploadImage","imageUploader","audiences","audience","description","subCategories","productTypes","product","mainImage","sticker","clipRect","transformer","setNewAssetModalVisible","selectedAsset","selectedSticker","getAudiences","getProductTypes","fitStageIntoParentContainer","setInitialImagePosition","konvaStage","handleTransformEndMainImage","setMainImageTransforms","handleTransformEndSticker","setStickerTransforms","handleStageMouseDown","updateTransformer","clickedOnTransformer","transformerNode","setImageDimensions","stageWidth","stageHeight","imageWidth","imageHeight","isSquare","isLandscape","widthFit","heightFit","newWidth","newHeight","imageSelectedHandler","file","files","setSelectedImage","URL","createObjectURL","goToStep2","setCurrentStep","konvaTransformer","exportPixelRatio","asset","blobUrl","isVideoAsset","isYoutubeVideo","videoCode","isRecommended","fileName","postAsset","storeId","allSettled","postMsoAsset","msoGuid","resetMainImage","resetSticker","resetState","modalVisible","setAssetModalVisible","showGetStickers","setFindStickerModalVisible","stickerDragEnd","setStickerPosition","setMainImagePosition","onDropZoneDragOver","onDropZoneDragLeave","onDropZoneDrop","dataTransfer","alert","createResetBtn","btn","createTextNode","onResetBtnClick","stageCard","offsetWidth","containerWidth","containerHeight","outerHeight","dropZone","konvaClipRect","setSticker","getSharedMsoAssetId","searchString","closeModal","PaginationRequest","total","FindAssetModal","client","assets","getImageUrl","onSelectBtnClick","setSelectedAsset","oldPage","assetRequest","getAssets","selectedAssetError","postTitle","postChannels","_u","dateModal","timeModal","postBody","saveDraft","publishButtonDisabled","SubmissionTypes","DRAFT","PUBLISH","PostModal","PostsServiceClient","submissionType","stateVals","States","unpublishChannels","Set","requiredValidationError","dateTimeError","socialChannels","toggleChannel","EXISTING_POST","editedPost","channels","NEW_POST","currentState","isDraft","selectedAnyChannel","draftButtonDisabled","setTitle","setChannels","setImmediate","setDate","setBody","resetFormValidation","setVisible","usedTemplateId","publishPost","draftPostWithStoreChannels","msoPostId","post","suggestedPublishDateTime","toISOString","fixTimeAm","multiStoreChannels","postForm","submitResponse","selectedChannels","isCreatingNewPost","afterValidationSubmit","msoPostStores","postType","EventTypesLabels","DraftPosts","postUpdated","responseData","displayMessage","errorHelpLink","updatedPost","setEditedPost","unpublishPost","updatePostResponse","updatePost","postId","publishTime","draftPost","draftResponse","saveDraftPost","submitNewPost","submitExistingPost","channelDisabled","onSelectedAssetChanged","requiredValidation","customValidation","onDialogChanged","currentStep","proxy","allChannels","channelSelectionTableItems","channelReviewTableItems","_g","MsoPostModal","tableLoading","tableLoaded","MsoPostTableHeaders","storesPostingTo","selectedStoreChannelsMap","formSubmit","hint","isLastStep","stepTo","stepTitles","modalTitle","toggleChannelForStore","toLocaleLowerCase","editedPostStoreChannels","unpublishing","postedChannels","toggleChannelForAll","selectedTableItems","storeIds","allStoresSocialChannels","getAllStoresChannels","loadingResult","status","failedLoading","SocialChannel","Facebook","isChannelAvailable","Instagram","isStoreSelected","isUnpublishing","initChannelSelectionTable","fillInPostedChannels","correspondingPostStore","ch","isSelectingSocialChannels","loadAllStoresChannels","onChannelToggled","onTableLoading","onTableLoaded","onAssetValidationError","onDateTimeValidationError","getMsoPostId","SortTypes","stickers","StickersRequest","FindStickersModal","setSelectedSticker","DatePublishedDescending","stickersRequest","getStickers","AuthenticatedLayout","isMsoPost","SelectingTimes","ampm","ampmReadonly","second","period","useSeconds","selecting","genTime","displayedHour","displayedMinute","titleContent","Hour","Minute","displayedSecond","Second","genAmPm","allowedValues","double","valueOnMouseDown","valueOnMouseUp","count","degreesPerUnit","roundCount","degrees","displayedValue","innerRadiusScale","isInner","handScale","genValues","genHand","rotateRadians","onMouseDown","onDragMove","onMouseUp","clock","innerClock","handAngle","insideClick","euclidean","checksCount","angleToValue","setMouseDownValue","mousedown","mouseup","mouseleave","mousemove","rangeHours24","rangeHours12am","rangeHours12pm","range60","selectingNames","1","2","3","allowedHours","allowedMinutes","allowedSeconds","ampmInTitle","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","selectingHour","selectingMinute","selectingSecond","isAllowedHourCb","minHour","maxHour","isAllowedMinuteCb","isHourAllowed","minMinute","maxMinute","minTime","maxTime","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","setInputData","setPeriod","genValue","emitValue","newHour","firstAllowed","getHours","getMinutes","getSeconds","convert12to24","convert24to12","emitChange","genClock","VTimePickerClock","genClockAmPm","VTimePickerTitle","PI_OVER_180","detectBrowser","glob","WorkerGlobalScope","version","param","_mouseInDblClickWindow","_touchInDblClickWindow","_pointerInDblClickWindow","_mouseDblClickPointerId","_touchDblClickPointerId","_pointerDblClickPointerId","_registerNode","_injectGlobal","BaseItem","element","GroupableFactory","kebabCase","mobileWidth","isVerticalProvided","VTabReverseTransition","VTabTransition","enter","leave","onTransition","propertyName","contentData","wrapperData","overlayColor","overlayOpacity","animationFrame","createOverlay","propsData","$mount","firstChild","addOnceEventListener","$destroy","cancelAnimationFrame","scrollListener","isContentEditable","pageup","pagedown","checkPath","hasScrollbar","ELEMENT_NODE","getComputedStyle","overflowX","scrollWidth","shouldScroll","dir","deltaX","alreadyAtStart","alreadyAtEnd","scrollingUp","scrollingDown","isInside","getSelection","addPassiveEventListener","PARSE_REGEX","PARSE_TIME","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP","DAYS_IN_MONTH_MIN","DAYS_IN_MONTH_MAX","MONTH_MAX","MONTH_MIN","DAY_MIN","DAYS_IN_WEEK","MINUTES_IN_HOUR","MINUTE_MAX","MINUTES_IN_DAY","HOUR_MAX","OFFSET_YEAR","OFFSET_MONTH","OFFSET_HOUR","OFFSET_TIME","getStartOfWeek","timestamp","weekdays","today","copyTimestamp","findWeekday","prevDay","updateFormatted","updateRelative","hasTime","getEndOfWeek","getStartOfMonth","updateWeekday","getEndOfMonth","validateTime","parseTime","validateTimestamp","parseTimestamp","parseDate","hasDay","past","present","future","getDay","getDayIdentifier","getTimeIdentifier","getTimestampIdentifier","isTimedless","updateHasTime","updateMinutes","minutes","getWeekday","C","Y","padNumber","padded","nextDay","relativeDays","mover","diffMinutes","M","D","maxDays","getWeekdaySkips","skips","filled","skip","timestampToDate","createDayList","weekdaySkips","currentIdentifier","stopped","createIntervalList","intervals","mins","int","getOptions","emptyFormatter","_t","chipGroup","isInNav","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","miniVariant","miniVariantWidth","permanent","stateless","temporary","touchless","isMouseover","touchArea","isMiniVariant","computedMaxHeight","hasApp","computedTop","isBottom","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","updateMiniVariant","calculateTouchArea","parentRect","genAppend","genPosition","genDirectives","swipeLeft","swipeRight","genListeners","mouseenter","transitionend","resizeEvent","initUIEvent","dispatchEvent","genPrepend","genBorder","onRouteChange","symbolTag"],"mappings":"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ACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEAC,GAAY,CACZ,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEJ,SAASC,GAAoB95B,EAAWynB,GACpC,IACI/xC,EAAG4B,EAAGlI,EAAG8gC,EAAGkW,EAAI2T,EAAIC,EAAIC,EAAOC,EAAOC,EAAOC,EAAOC,EAAWC,EAAWC,EAAWC,EAAWC,EAAUC,E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","file":"js/chunk-6d6a342e.dcfe0926.js","sourcesContent":["var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-snackbar',{attrs:{\"color\":_vm.colour,\"timeout\":_vm.timeout},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({staticClass:\"btn-close\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.show = false}}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}]),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"snackbar-message-text\"},[_vm._v(\" \"+_vm._s(_vm.message)+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { LoggedInComponentBase } from '@/components/base/loggedInComponentBase';\r\n\r\nconst timeouts = {\r\n success: '4000',\r\n error: '10000'\r\n};\r\n\r\n@Component\r\nexport default class Notification extends LoggedInComponentBase {\r\n /**\r\n * Use these optional props to override default timeouts.\r\n */\r\n @Prop() successTimeout: string | undefined;\r\n @Prop() errorTimeout: string | undefined;\r\n\r\n public show: boolean = false;\r\n public colour: string = 'success';\r\n public timeout: string = timeouts.success;\r\n public message: string = '';\r\n\r\n public hide() {\r\n this.show = false;\r\n }\r\n\r\n public resetNotification() {\r\n this.timeout = this.successTimeout ?? timeouts.success;\r\n this.message = '';\r\n this.colour = 'success';\r\n }\r\n\r\n public showError(message: string): void {\r\n this.timeout = this.errorTimeout ?? timeouts.error;\r\n this.message = message;\r\n this.colour = 'error';\r\n this.show = true;\r\n }\r\n\r\n public showSuccess(message: string): void {\r\n this.resetNotification();\r\n this.message = message;\r\n this.show = true;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notification.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./notification.vue?vue&type=template&id=e708a696&scoped=true&\"\nimport script from \"./notification.vue?vue&type=script&lang=ts&\"\nexport * from \"./notification.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./notification.vue?vue&type=style&index=0&id=e708a696&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e708a696\",\n null\n \n)\n\nexport default component.exports","export class ValidationRules {\r\n public required: ValidationRule = value => !!value || 'Required.';\r\n\r\n public titleLength: ValidationRule = value =>\r\n (value && value.length <= 100) || 'Maximum of 100 characters.';\r\n\r\n public socialBodyLength: ValidationRule = value =>\r\n (value && value.length <= 2000) || 'Maximum of 2000 characters.';\r\n}\r\n","function cloudinaryImageResize(\r\n url: string,\r\n width: number | null = null,\r\n height: number | null = null\r\n) {\r\n function insert(str: string, index: number, value: string) {\r\n return str.substring(0, index) + value + str.substring(index);\r\n }\r\n\r\n const precedingStr = 'image/upload/';\r\n let insertParamIndex = url.indexOf(precedingStr);\r\n if (insertParamIndex < 0) return url;\r\n insertParamIndex = insertParamIndex + precedingStr.length;\r\n\r\n // https://cloudinary.com/documentation/resizing_and_cropping\r\n // e.g. inserting 'f_auto,w_100,h_200/' after 'image/upload/'\r\n let newParams = 'f_auto';\r\n if (width) {\r\n newParams = `,w_${width}`;\r\n if (height) {\r\n newParams += `,h_${height}`;\r\n }\r\n }\r\n newParams += '/';\r\n return insert(url, insertParamIndex, newParams);\r\n}\r\n\r\nexport default cloudinaryImageResize;\r\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeDestroy () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.options.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mainNav.vue?vue&type=style&index=0&id=625934f2&prod&lang=scss&scoped=true&\"","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n VSheet,\n Colorable,\n Toggleable,\n PositionableFactory([\n 'absolute',\n 'bottom',\n 'left',\n 'right',\n 'top',\n ])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n text: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n transition: {\n type: [Boolean, String] as PropType,\n default: 'v-snack-transition',\n validator: v => typeof v === 'string' || v === false,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--absolute': this.absolute,\n 'v-snack--active': this.isActive,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--centered': this.centered,\n 'v-snack--has-background': this.hasBackground,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--text': this.text,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n // Text and outlined styles both\n // use transparent backgrounds\n hasBackground (): boolean {\n return (\n !this.text &&\n !this.outlined\n )\n },\n // Snackbar is dark by default\n // override themeable logic.\n isDark (): boolean {\n return this.hasBackground\n ? !this.light\n : Themeable.options.computed.isDark.call(this)\n },\n styles (): object {\n if (this.absolute || !this.app) return {}\n\n const {\n bar,\n bottom,\n footer,\n insetFooter,\n left,\n right,\n top,\n } = this.$vuetify.application\n\n return {\n paddingBottom: convertToUnit(bottom + footer + insetFooter),\n paddingLeft: convertToUnit(left),\n paddingRight: convertToUnit(right),\n paddingTop: convertToUnit(bar + top),\n }\n },\n },\n\n watch: {\n isActive: 'setTimeout',\n timeout: 'setTimeout',\n },\n\n mounted () {\n if (this.isActive) this.setTimeout()\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line eqeqeq\n if (this.timeout == 0) {\n deprecate('timeout=\"0\"', '-1', this)\n }\n },\n\n methods: {\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-snack__action ',\n }, [\n getSlot(this, 'action', {\n attrs: { class: 'v-snack__btn' },\n }),\n ])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-snack__content',\n class: {\n [this.contentClass]: true,\n },\n attrs: {\n role: 'status',\n 'aria-live': 'polite',\n },\n }, [getSlot(this)])\n },\n genWrapper () {\n const setColor = this.hasBackground\n ? this.setBackgroundColor\n : this.setTextColor\n\n const data = setColor(this.color, {\n staticClass: 'v-snack__wrapper',\n class: VSheet.options.computed.classes.call(this),\n style: VSheet.options.computed.styles.call(this),\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: {\n pointerenter: () => window.clearTimeout(this.activeTimeout),\n pointerleave: this.setTimeout,\n },\n })\n\n return this.$createElement('div', data, [\n this.genContent(),\n this.genActions(),\n ])\n },\n genTransition () {\n return this.$createElement('transition', {\n props: { name: this.transition },\n }, [this.genWrapper()])\n },\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n const timeout = Number(this.timeout)\n\n if (\n !this.isActive ||\n // TODO: remove 0 in v3\n [0, -1].includes(timeout)\n ) {\n return\n }\n\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, timeout)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n style: this.styles,\n }, [\n this.transition !== false\n ? this.genTransition()\n : this.genWrapper(),\n ])\n },\n})\n","import './VDatePickerTitle.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-date-picker-title',\n\n props: {\n date: {\n type: String,\n default: '',\n },\n disabled: Boolean,\n readonly: Boolean,\n selectingYear: Boolean,\n value: {\n type: String,\n },\n year: {\n type: [Number, String],\n default: '',\n },\n yearIcon: {\n type: String,\n },\n },\n\n data: () => ({\n isReversing: false,\n }),\n\n computed: {\n computedTransition (): string {\n return this.isReversing ? 'picker-reverse-transition' : 'picker-transition'\n },\n },\n\n watch: {\n value (val: string, prev: string) {\n this.isReversing = val < prev\n },\n },\n\n methods: {\n genYearIcon (): VNode {\n return this.$createElement(VIcon, {\n props: {\n dark: true,\n },\n }, this.yearIcon)\n },\n getYearBtn (): VNode {\n return this.genPickerButton('selectingYear', true, [\n String(this.year),\n this.yearIcon ? this.genYearIcon() : null,\n ], false, 'v-date-picker-title__year')\n },\n genTitleText (): VNode {\n return this.$createElement('transition', {\n props: {\n name: this.computedTransition,\n },\n }, [\n this.$createElement('div', {\n domProps: { innerHTML: this.date || ' ' },\n key: this.value,\n }),\n ])\n },\n genTitleDate (): VNode {\n return this.genPickerButton('selectingYear', false, [this.genTitleText()], false, 'v-date-picker-title__date')\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-date-picker-title',\n class: {\n 'v-date-picker-title--disabled': this.disabled,\n },\n }, [\n this.getYearBtn(),\n this.genTitleDate(),\n ])\n },\n})\n","import pad from './pad'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface SubstrOptions {\n start?: number\n length: number\n}\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions\n): DatePickerFormatter | undefined\n\nfunction createNativeLocaleFormatter (\n local: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions\n): DatePickerFormatter\n\nfunction createNativeLocaleFormatter (\n locale: string | undefined,\n options: Intl.DateTimeFormatOptions,\n substrOptions: SubstrOptions = { start: 0, length: 0 }\n): DatePickerFormatter | undefined {\n const makeIsoString = (dateString: string) => {\n const [year, month, date] = dateString.trim().split(' ')[0].split('-')\n return [pad(year, 4), pad(month || 1), pad(date || 1)].join('-')\n }\n\n try {\n const intlFormatter = new Intl.DateTimeFormat(locale || undefined, options)\n return (dateString: string) => intlFormatter.format(new Date(`${makeIsoString(dateString)}T00:00:00+00:00`))\n } catch (e) {\n return (substrOptions.start || substrOptions.length)\n ? (dateString: string) => makeIsoString(dateString).substr(substrOptions.start || 0, substrOptions.length)\n : undefined\n }\n}\n\nexport default createNativeLocaleFormatter\n","import pad from './pad'\n\n/**\n * @param {String} value YYYY-MM format\n * @param {Number} sign -1 or +1\n */\nexport default (value: string, sign: number) => {\n const [year, month] = value.split('-').map(Number)\n\n if (month + sign === 0) {\n return `${year - 1}-12`\n } else if (month + sign === 13) {\n return `${year + 1}-01`\n } else {\n return `${year}-${pad(month + sign)}`\n }\n}\n","import './VDatePickerHeader.sass'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport { createNativeLocaleFormatter, monthChange } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-header',\n\n props: {\n disabled: Boolean,\n format: Function as PropType,\n min: String,\n max: String,\n nextAriaLabel: String,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevAriaLabel: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n readonly: Boolean,\n value: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n isReversing: false,\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n if (this.format) {\n return this.format\n } else if (String(this.value).split('-')[1]) {\n return createNativeLocaleFormatter(this.currentLocale, { month: 'long', year: 'numeric', timeZone: 'UTC' }, { length: 7 })\n } else {\n return createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n }\n },\n },\n\n watch: {\n value (newVal, oldVal) {\n this.isReversing = newVal < oldVal\n },\n },\n\n methods: {\n genBtn (change: number) {\n const ariaLabelId = change > 0 ? this.nextAriaLabel : this.prevAriaLabel\n const ariaLabel = ariaLabelId ? this.$vuetify.lang.t(ariaLabelId) : undefined\n const disabled = this.disabled ||\n (change < 0 && this.min && this.calculateChange(change) < this.min) ||\n (change > 0 && this.max && this.calculateChange(change) > this.max)\n\n return this.$createElement(VBtn, {\n attrs: { 'aria-label': ariaLabel },\n props: {\n dark: this.dark,\n disabled,\n icon: true,\n light: this.light,\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n this.$emit('input', this.calculateChange(change))\n },\n },\n }, [\n this.$createElement(VIcon, ((change < 0) === !this.$vuetify.rtl) ? this.prevIcon : this.nextIcon),\n ])\n },\n calculateChange (sign: number) {\n const [year, month] = String(this.value).split('-').map(Number)\n\n if (month == null) {\n return `${year + sign}`\n } else {\n return monthChange(String(this.value), sign)\n }\n },\n genHeader () {\n const color = !this.disabled && (this.color || 'accent')\n const header = this.$createElement('div', this.setTextColor(color, {\n key: String(this.value),\n }), [this.$createElement('button', {\n attrs: {\n type: 'button',\n },\n on: {\n click: () => this.$emit('toggle'),\n },\n }, [this.$slots.default || this.formatter(String(this.value))])])\n\n const transition = this.$createElement('transition', {\n props: {\n name: (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition',\n },\n }, [header])\n\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header__value',\n class: {\n 'v-date-picker-header__value--disabled': this.disabled,\n },\n }, [transition])\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-date-picker-header',\n class: {\n 'v-date-picker-header--disabled': this.disabled,\n ...this.themeClasses,\n },\n }, [\n this.genBtn(-1),\n this.genHeader(),\n this.genBtn(+1),\n ])\n },\n})\n","import Vue from 'vue'\n\nexport function createItemTypeNativeListeners (instance: Vue, itemTypeSuffix: string, value: any) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName.slice(0, -itemTypeSuffix.length)] = (event: Event) => instance.$emit(eventName, value, event)\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n\nexport function createItemTypeListeners (instance: Vue, itemTypeSuffix: string) {\n return Object.keys(instance.$listeners).reduce((on, eventName) => {\n if (eventName.endsWith(itemTypeSuffix)) {\n on[eventName] = instance.$listeners[eventName]\n }\n\n return on\n }, {} as typeof instance.$listeners)\n}\n","// Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',\n// 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'\nimport pad from './pad'\n\nexport default (dateString: string, type: 'date' | 'month' | 'year'): string => {\n const [year, month = 1, date = 1] = dateString.split('-')\n return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])\n}\n","import { DatePickerAllowedDatesFunction } from 'vuetify/types'\n\nexport default function isDateAllowed (date: string, min: string, max: string, allowedFn: DatePickerAllowedDatesFunction | undefined) {\n return (!allowedFn || allowedFn(date)) &&\n (!min || date >= min.substr(0, 10)) &&\n (!max || date <= max)\n}\n","import '../VDatePickerTable.sass'\n\n// Directives\nimport Touch from '../../../directives/touch'\n\n// Mixins\nimport Colorable from '../../../mixins/colorable'\nimport Localable from '../../../mixins/localable'\nimport Themeable from '../../../mixins/themeable'\n\n// Utils\nimport { createItemTypeNativeListeners, sanitizeDateString } from '../util'\nimport isDateAllowed from '../util/isDateAllowed'\nimport { mergeListeners } from '../../../util/mergeData'\nimport mixins from '../../../util/mixins'\nimport { throttle } from '../../../util/helpers'\n\n// Types\nimport {\n PropType,\n VNodeChildren,\n} from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEventColorValue,\n DatePickerEvents,\n DatePickerFormatter,\n TouchWrapper,\n} from 'vuetify/types'\n\ntype CalculateTableDateFunction = (v: number) => string\n\nexport default mixins(\n Colorable,\n Localable,\n Themeable\n/* @vue/component */\n).extend({\n directives: { Touch },\n\n props: {\n allowedDates: Function as PropType,\n current: String,\n disabled: Boolean,\n format: Function as PropType,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n min: String,\n max: String,\n range: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n tableDate: {\n type: String,\n required: true,\n },\n value: [String, Array] as PropType,\n },\n\n data: () => ({\n isReversing: false,\n wheelThrottle: null as any,\n }),\n\n computed: {\n computedTransition (): string {\n return (this.isReversing === !this.$vuetify.rtl) ? 'tab-reverse-transition' : 'tab-transition'\n },\n displayedMonth (): number {\n return Number(this.tableDate.split('-')[1]) - 1\n },\n displayedYear (): number {\n return Number(this.tableDate.split('-')[0])\n },\n },\n\n watch: {\n tableDate (newVal: string, oldVal: string) {\n this.isReversing = newVal < oldVal\n },\n },\n\n mounted () {\n this.wheelThrottle = throttle(this.wheel, 250)\n },\n\n methods: {\n genButtonClasses (\n isAllowed: boolean,\n isFloating: boolean,\n isSelected: boolean,\n isCurrent: boolean,\n isFirst: boolean,\n isLast: boolean,\n ) {\n return {\n 'v-size--default': !isFloating,\n 'v-date-picker-table__current': isCurrent,\n 'v-btn--active': isSelected,\n 'v-btn--flat': !isAllowed || this.disabled,\n 'v-btn--text': isSelected === isCurrent,\n 'v-btn--rounded': isFloating,\n 'v-btn--disabled': !isAllowed || this.disabled,\n 'v-btn--outlined': isCurrent && !isSelected,\n 'v-date-picker--first-in-range': isFirst,\n 'v-date-picker--last-in-range': isLast,\n ...this.themeClasses,\n }\n },\n genButtonEvents (value: string, isAllowed: boolean, mouseEventType: string) {\n if (this.disabled) return undefined\n\n return mergeListeners({\n click: () => {\n if (isAllowed && !this.readonly) this.$emit('input', value)\n },\n }, createItemTypeNativeListeners(this, `:${mouseEventType}`, value))\n },\n genButton (value: string, isFloating: boolean, mouseEventType: string, formatter: DatePickerFormatter, isOtherMonth = false) {\n const isAllowed = isDateAllowed(value, this.min, this.max, this.allowedDates)\n const isSelected = this.isSelected(value) && isAllowed\n const isCurrent = value === this.current\n const setColor = isSelected ? this.setBackgroundColor : this.setTextColor\n const color = (isSelected || isCurrent) && (this.color || 'accent')\n let isFirst = false\n let isLast = false\n if (this.range && !!this.value && Array.isArray(this.value)) {\n isFirst = value === this.value[0]\n isLast = value === this.value[this.value.length - 1]\n }\n\n return this.$createElement('button', setColor(color, {\n staticClass: 'v-btn',\n class: this.genButtonClasses(\n isAllowed && !isOtherMonth,\n isFloating,\n isSelected,\n isCurrent,\n isFirst,\n isLast,\n ),\n attrs: {\n type: 'button',\n },\n domProps: {\n disabled: this.disabled || !isAllowed || isOtherMonth,\n },\n on: this.genButtonEvents(value, isAllowed, mouseEventType),\n }), [\n this.$createElement('div', {\n staticClass: 'v-btn__content',\n }, [formatter(value)]),\n this.genEvents(value),\n ])\n },\n getEventColors (date: string) {\n const arrayize = (v: string | string[]) => Array.isArray(v) ? v : [v]\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: string[] = []\n\n if (Array.isArray(this.events)) {\n eventData = this.events.includes(date)\n } else if (this.events instanceof Function) {\n eventData = this.events(date) || false\n } else if (this.events) {\n eventData = this.events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = arrayize(eventData)\n } else if (typeof this.eventColor === 'string') {\n eventColors = [this.eventColor]\n } else if (typeof this.eventColor === 'function') {\n eventColors = arrayize(this.eventColor(date))\n } else if (Array.isArray(this.eventColor)) {\n eventColors = this.eventColor\n } else {\n eventColors = arrayize(this.eventColor[date])\n }\n\n return eventColors.filter(v => v)\n },\n genEvents (date: string) {\n const eventColors = this.getEventColors(date)\n\n return eventColors.length ? this.$createElement('div', {\n staticClass: 'v-date-picker-table__events',\n }, eventColors.map(color => this.$createElement('div', this.setBackgroundColor(color)))) : null\n },\n isValidScroll (value: number, calculateTableDate: CalculateTableDateFunction) {\n const tableDate = calculateTableDate(value)\n // tableDate is 'YYYY-MM' for DateTable and 'YYYY' for MonthTable\n const sanitizeType = tableDate.split('-').length === 1 ? 'year' : 'month'\n return (value < 0 && (this.min ? tableDate >= sanitizeDateString(this.min, sanitizeType) : true)) ||\n (value > 0 && (this.max ? tableDate <= sanitizeDateString(this.max, sanitizeType) : true))\n },\n wheel (e: WheelEvent, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(e.deltaY))\n },\n touch (value: number, calculateTableDate: CalculateTableDateFunction) {\n this.$emit('update:table-date', calculateTableDate(value))\n },\n genTable (staticClass: string, children: VNodeChildren, calculateTableDate: CalculateTableDateFunction) {\n const transition = this.$createElement('transition', {\n props: { name: this.computedTransition },\n }, [this.$createElement('table', { key: this.tableDate }, children)])\n\n const touchDirective = {\n name: 'touch',\n value: {\n left: (e: TouchWrapper) => (e.offsetX < -15) &&\n (this.isValidScroll(1, calculateTableDate) && this.touch(1, calculateTableDate)),\n right: (e: TouchWrapper) => (e.offsetX > 15) &&\n (this.isValidScroll(-1, calculateTableDate) && this.touch(-1, calculateTableDate)),\n },\n }\n\n return this.$createElement('div', {\n staticClass,\n class: {\n 'v-date-picker-table--disabled': this.disabled,\n ...this.themeClasses,\n },\n on: (!this.disabled && this.scrollable) ? {\n wheel: (e: WheelEvent) => {\n e.preventDefault()\n if (this.isValidScroll(e.deltaY, calculateTableDate)) { this.wheelThrottle(e, calculateTableDate) }\n },\n } : undefined,\n directives: [touchDirective],\n }, [transition])\n },\n isSelected (value: string): boolean {\n if (Array.isArray(this.value)) {\n if (this.range && this.value.length === 2) {\n const [from, to] = [...this.value].sort()\n return from <= value && value <= to\n } else {\n return this.value.indexOf(value) !== -1\n }\n }\n\n return value === this.value\n },\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { weekNumber } from '../../util/dateTimeUtils'\nimport { pad, createNativeLocaleFormatter, monthChange } from './util'\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-date-table',\n\n props: {\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n weekdayFormat: Function as PropType,\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { day: 'numeric', timeZone: 'UTC' }, { start: 8, length: 2 })\n },\n weekdayFormatter (): DatePickerFormatter | undefined {\n return this.weekdayFormat || createNativeLocaleFormatter(this.currentLocale, { weekday: 'narrow', timeZone: 'UTC' })\n },\n weekDays (): string[] {\n const first = parseInt(this.firstDayOfWeek, 10)\n\n return this.weekdayFormatter\n ? createRange(7).map(i => this.weekdayFormatter!(`2017-01-${first + i + 15}`)) // 2017-01-15 is Sunday\n : createRange(7).map(i => ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7])\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return monthChange(this.tableDate, Math.sign(delta || 1))\n },\n genTHead () {\n const days = this.weekDays.map(day => this.$createElement('th', day))\n if (this.showWeek) {\n days.unshift(this.$createElement('th'))\n }\n\n return this.$createElement('thead', this.genTR(days))\n },\n // Returns number of the days from the firstDayOfWeek to the first day of the current month\n weekDaysBeforeFirstDayOfTheMonth () {\n const firstDayOfTheMonth = new Date(`${this.displayedYear}-${pad(this.displayedMonth + 1)}-01T00:00:00+00:00`)\n const weekDay = firstDayOfTheMonth.getUTCDay()\n\n return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7\n },\n getWeekNumber (dayInMonth: number) {\n return weekNumber(\n this.displayedYear,\n this.displayedMonth,\n dayInMonth,\n parseInt(this.firstDayOfWeek),\n parseInt(this.localeFirstDayOfYear)\n )\n },\n genWeekNumber (weekNumber: number) {\n return this.$createElement('td', [\n this.$createElement('small', {\n staticClass: 'v-date-picker-table--date__week',\n }, String(weekNumber).padStart(2, '0')),\n ])\n },\n // eslint-disable-next-line max-statements\n genTBody () {\n const children = []\n const daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate()\n let rows = []\n let day = this.weekDaysBeforeFirstDayOfTheMonth()\n\n if (this.showWeek) {\n rows.push(this.genWeekNumber(this.getWeekNumber(1)))\n }\n\n const prevMonthYear = this.displayedMonth ? this.displayedYear : this.displayedYear - 1\n const prevMonth = (this.displayedMonth + 11) % 12\n const firstDayFromPreviousMonth = new Date(this.displayedYear, this.displayedMonth, 0).getDate()\n const cellsInRow = this.showWeek ? 8 : 7\n\n while (day--) {\n const date = `${prevMonthYear}-${pad(prevMonth + 1)}-${pad(firstDayFromPreviousMonth - day)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n for (day = 1; day <= daysInMonth; day++) {\n const date = `${this.displayedYear}-${pad(this.displayedMonth + 1)}-${pad(day)}`\n\n rows.push(this.$createElement('td', [\n this.genButton(date, true, 'date', this.formatter),\n ]))\n\n if (rows.length % cellsInRow === 0) {\n children.push(this.genTR(rows))\n rows = []\n if (this.showWeek && (day < daysInMonth || this.showAdjacentMonths)) {\n rows.push(this.genWeekNumber(this.getWeekNumber(day + 7)))\n }\n }\n }\n\n const nextMonthYear = this.displayedMonth === 11 ? this.displayedYear + 1 : this.displayedYear\n const nextMonth = (this.displayedMonth + 1) % 12\n let nextMonthDay = 1\n\n while (rows.length < cellsInRow) {\n const date = `${nextMonthYear}-${pad(nextMonth + 1)}-${pad(nextMonthDay++)}`\n\n rows.push(this.$createElement('td', this.showAdjacentMonths ? [\n this.genButton(date, true, 'date', this.formatter, true),\n ] : []))\n }\n\n if (rows.length) {\n children.push(this.genTR(rows))\n }\n\n return this.$createElement('tbody', children)\n },\n genTR (children: VNodeChildren) {\n return [this.$createElement('tr', children)]\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--date', [\n this.genTHead(),\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","// Mixins\nimport DatePickerTable from './mixins/date-picker-table'\n\n// Utils\nimport { pad, createNativeLocaleFormatter } from './util'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\nexport default mixins(\n DatePickerTable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-month-table',\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { month: 'short', timeZone: 'UTC' }, { start: 5, length: 2 })\n },\n },\n\n methods: {\n calculateTableDate (delta: number) {\n return `${parseInt(this.tableDate, 10) + Math.sign(delta || 1)}`\n },\n genTBody () {\n const children = []\n const cols = Array(3).fill(null)\n const rows = 12 / cols.length\n\n for (let row = 0; row < rows; row++) {\n const tds = cols.map((_, col) => {\n const month = row * cols.length + col\n const date = `${this.displayedYear}-${pad(month + 1)}`\n return this.$createElement('td', {\n key: month,\n }, [\n this.genButton(date, false, 'month', this.formatter),\n ])\n })\n\n children.push(this.$createElement('tr', {\n key: row,\n }, tds))\n }\n\n return this.$createElement('tbody', children)\n },\n },\n\n render (): VNode {\n return this.genTable('v-date-picker-table v-date-picker-table--month', [\n this.genTBody(),\n ], this.calculateTableDate)\n },\n})\n","import './VDatePickerYears.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Localable from '../../mixins/localable'\n\n// Utils\nimport {\n createItemTypeNativeListeners,\n createNativeLocaleFormatter,\n} from './util'\nimport { mergeListeners } from '../../util/mergeData'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DatePickerFormatter } from 'vuetify/types'\n\ninterface options extends Vue {\n $el: HTMLElement\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n Colorable,\n Localable\n/* @vue/component */\n).extend({\n name: 'v-date-picker-years',\n\n props: {\n format: Function as PropType,\n min: [Number, String],\n max: [Number, String],\n readonly: Boolean,\n value: [Number, String],\n },\n\n data () {\n return {\n defaultColor: 'primary',\n }\n },\n\n computed: {\n formatter (): DatePickerFormatter {\n return this.format || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 })\n },\n },\n\n mounted () {\n setTimeout(() => {\n const activeItem = this.$el.getElementsByClassName('active')[0]\n if (activeItem) {\n this.$el.scrollTop = activeItem.offsetTop - this.$el.offsetHeight / 2 + activeItem.offsetHeight / 2\n } else if (this.min && !this.max) {\n this.$el.scrollTop = this.$el.scrollHeight\n } else if (!this.min && this.max) {\n this.$el.scrollTop = 0\n } else {\n this.$el.scrollTop = this.$el.scrollHeight / 2 - this.$el.offsetHeight / 2\n }\n })\n },\n\n methods: {\n genYearItem (year: number): VNode {\n const formatted = this.formatter(`${year}`)\n const active = parseInt(this.value, 10) === year\n const color = active && (this.color || 'primary')\n\n return this.$createElement('li', this.setTextColor(color, {\n key: year,\n class: { active },\n on: mergeListeners({\n click: () => this.$emit('input', year),\n }, createItemTypeNativeListeners(this, ':year', year)),\n }), formatted)\n },\n\n genYearItems (): VNode[] {\n const children = []\n const selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear()\n const maxYear = this.max ? parseInt(this.max, 10) : (selectedYear + 100)\n const minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : (selectedYear - 100))\n\n for (let year = maxYear; year >= minYear; year--) {\n children.push(this.genYearItem(year))\n }\n\n return children\n },\n },\n\n render (): VNode {\n return this.$createElement('ul', {\n staticClass: 'v-date-picker-years',\n ref: 'years',\n }, this.genYearItems())\n },\n})\n","// Components\nimport VDatePickerTitle from './VDatePickerTitle'\nimport VDatePickerHeader from './VDatePickerHeader'\nimport VDatePickerDateTable from './VDatePickerDateTable'\nimport VDatePickerMonthTable from './VDatePickerMonthTable'\nimport VDatePickerYears from './VDatePickerYears'\n\n// Mixins\nimport Localable from '../../mixins/localable'\nimport Picker from '../../mixins/picker'\n\n// Utils\nimport isDateAllowed from './util/isDateAllowed'\nimport mixins from '../../util/mixins'\nimport { wrapInArray } from '../../util/helpers'\nimport { daysInMonth } from '../VCalendar/util/timestamp'\nimport { consoleWarn } from '../../util/console'\nimport {\n createItemTypeListeners,\n createNativeLocaleFormatter,\n pad,\n sanitizeDateString,\n} from './util'\n\n// Types\nimport {\n PropType,\n PropValidator,\n} from 'vue/types/options'\nimport { VNode } from 'vue'\nimport {\n DatePickerFormatter,\n DatePickerMultipleFormatter,\n DatePickerAllowedDatesFunction,\n DatePickerEventColors,\n DatePickerEvents,\n DatePickerType,\n} from 'vuetify/types'\n\ntype DatePickerValue = string | string[] | undefined\ninterface Formatters {\n year: DatePickerFormatter\n titleDate: DatePickerFormatter | DatePickerMultipleFormatter\n}\n\ntype ActivePicker = 'DATE' | 'MONTH' | 'YEAR';\n\nexport default mixins(\n Localable,\n Picker,\n/* @vue/component */\n).extend({\n name: 'v-date-picker',\n\n props: {\n activePicker: String as PropType,\n allowedDates: Function as PropType,\n // Function formatting the day in date picker table\n dayFormat: Function as PropType,\n disabled: Boolean,\n events: {\n type: [Array, Function, Object],\n default: () => null,\n } as PropValidator,\n eventColor: {\n type: [Array, Function, Object, String],\n default: () => 'warning',\n } as PropValidator,\n firstDayOfWeek: {\n type: [String, Number],\n default: 0,\n },\n // Function formatting the tableDate in the day/month table header\n headerDateFormat: Function as PropType,\n localeFirstDayOfYear: {\n type: [String, Number],\n default: 0,\n },\n max: String,\n min: String,\n // Function formatting month in the months table\n monthFormat: Function as PropType,\n multiple: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n nextMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextMonthAriaLabel',\n },\n nextYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.nextYearAriaLabel',\n },\n pickerDate: String,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n prevMonthAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevMonthAriaLabel',\n },\n prevYearAriaLabel: {\n type: String,\n default: '$vuetify.datePicker.prevYearAriaLabel',\n },\n range: Boolean,\n reactive: Boolean,\n readonly: Boolean,\n scrollable: Boolean,\n showCurrent: {\n type: [Boolean, String],\n default: true,\n },\n selectedItemsText: {\n type: String,\n default: '$vuetify.datePicker.itemsSelected',\n },\n showAdjacentMonths: Boolean,\n showWeek: Boolean,\n // Function formatting currently selected date in the picker title\n titleDateFormat: Function as PropType,\n type: {\n type: String,\n default: 'date',\n validator: (type: any) => ['date', 'month'].includes(type), // TODO: year\n } as PropValidator,\n value: [Array, String] as PropType,\n weekdayFormat: Function as PropType,\n // Function formatting the year in table header and pickup title\n yearFormat: Function as PropType,\n yearIcon: String,\n },\n\n data () {\n const now = new Date()\n return {\n internalActivePicker: this.type.toUpperCase(),\n inputDay: null as number | null,\n inputMonth: null as number | null,\n inputYear: null as number | null,\n isReversing: false,\n now,\n // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)\n tableDate: (() => {\n if (this.pickerDate) {\n return this.pickerDate\n }\n\n const multipleValue = wrapInArray(this.value)\n const date = multipleValue[multipleValue.length - 1] ||\n (typeof this.showCurrent === 'string' ? this.showCurrent : `${now.getFullYear()}-${now.getMonth() + 1}`)\n return sanitizeDateString(date as string, this.type === 'date' ? 'month' : 'year')\n })(),\n }\n },\n\n computed: {\n multipleValue (): string[] {\n return wrapInArray(this.value)\n },\n isMultiple (): boolean {\n return this.multiple || this.range\n },\n lastValue (): string | null {\n return this.isMultiple ? this.multipleValue[this.multipleValue.length - 1] : (this.value as string | null)\n },\n selectedMonths (): string | string[] | undefined {\n if (!this.value || this.type === 'month') {\n return this.value\n } else if (this.isMultiple) {\n return this.multipleValue.map(val => val.substr(0, 7))\n } else {\n return (this.value as string).substr(0, 7)\n }\n },\n current (): string | null {\n if (this.showCurrent === true) {\n return sanitizeDateString(`${this.now.getFullYear()}-${this.now.getMonth() + 1}-${this.now.getDate()}`, this.type)\n }\n\n return this.showCurrent || null\n },\n inputDate (): string {\n return this.type === 'date'\n ? `${this.inputYear}-${pad(this.inputMonth! + 1)}-${pad(this.inputDay!)}`\n : `${this.inputYear}-${pad(this.inputMonth! + 1)}`\n },\n tableMonth (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[1]) - 1\n },\n tableYear (): number {\n return Number((this.pickerDate || this.tableDate).split('-')[0])\n },\n minMonth (): string | null {\n return this.min ? sanitizeDateString(this.min, 'month') : null\n },\n maxMonth (): string | null {\n return this.max ? sanitizeDateString(this.max, 'month') : null\n },\n minYear (): string | null {\n return this.min ? sanitizeDateString(this.min, 'year') : null\n },\n maxYear (): string | null {\n return this.max ? sanitizeDateString(this.max, 'year') : null\n },\n formatters (): Formatters {\n return {\n year: this.yearFormat || createNativeLocaleFormatter(this.currentLocale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),\n titleDate: this.titleDateFormat ||\n (this.isMultiple ? this.defaultTitleMultipleDateFormatter : this.defaultTitleDateFormatter),\n }\n },\n defaultTitleMultipleDateFormatter (): DatePickerMultipleFormatter {\n return dates => {\n if (!dates.length) {\n return '-'\n }\n\n if (dates.length === 1) {\n return this.defaultTitleDateFormatter(dates[0])\n }\n\n return this.$vuetify.lang.t(this.selectedItemsText, dates.length)\n }\n },\n defaultTitleDateFormatter (): DatePickerFormatter {\n const titleFormats = {\n year: { year: 'numeric', timeZone: 'UTC' },\n month: { month: 'long', timeZone: 'UTC' },\n date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' },\n } as const\n\n const titleDateFormatter = createNativeLocaleFormatter(this.currentLocale, titleFormats[this.type], {\n start: 0,\n length: { date: 10, month: 7, year: 4 }[this.type],\n })\n\n const landscapeFormatter = (date: string) => titleDateFormatter(date)\n .replace(/([^\\d\\s])([\\d])/g, (match, nonDigit, digit) => `${nonDigit} ${digit}`)\n .replace(', ', ',
')\n\n return this.landscape ? landscapeFormatter : titleDateFormatter\n },\n },\n\n watch: {\n internalActivePicker: {\n immediate: true,\n handler (val: ActivePicker) {\n this.$emit('update:active-picker', val)\n },\n },\n activePicker (val: ActivePicker) {\n this.internalActivePicker = val\n },\n tableDate (val: string, prev: string) {\n // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly\n // compare for example '2000-9' and '2000-10'\n const sanitizeType = this.type === 'month' ? 'year' : 'month'\n this.isReversing = sanitizeDateString(val, sanitizeType) < sanitizeDateString(prev, sanitizeType)\n this.$emit('update:picker-date', val)\n },\n pickerDate (val: string | null) {\n if (val) {\n this.tableDate = val\n } else if (this.lastValue && this.type === 'date') {\n this.tableDate = sanitizeDateString(this.lastValue, 'month')\n } else if (this.lastValue && this.type === 'month') {\n this.tableDate = sanitizeDateString(this.lastValue, 'year')\n }\n },\n value (newValue: DatePickerValue, oldValue: DatePickerValue) {\n this.checkMultipleProp()\n this.setInputDate()\n\n if (\n (!this.isMultiple && this.value && !this.pickerDate) ||\n (this.isMultiple && this.multipleValue.length && (!oldValue || !oldValue.length) && !this.pickerDate)\n ) {\n this.tableDate = sanitizeDateString(this.inputDate, this.type === 'month' ? 'year' : 'month')\n }\n },\n type (type: DatePickerType) {\n this.internalActivePicker = type.toUpperCase()\n\n if (this.value && this.value.length) {\n const output = this.multipleValue\n .map((val: string) => sanitizeDateString(val, type))\n .filter(this.isDateAllowed)\n this.$emit('input', this.isMultiple ? output : output[0])\n }\n },\n },\n\n created () {\n this.checkMultipleProp()\n\n if (this.pickerDate !== this.tableDate) {\n this.$emit('update:picker-date', this.tableDate)\n }\n this.setInputDate()\n },\n\n methods: {\n emitInput (newInput: string) {\n if (this.range) {\n if (this.multipleValue.length !== 1) {\n this.$emit('input', [newInput])\n } else {\n const output = [this.multipleValue[0], newInput]\n this.$emit('input', output)\n this.$emit('change', output)\n }\n return\n }\n\n const output = this.multiple\n ? (\n this.multipleValue.indexOf(newInput) === -1\n ? this.multipleValue.concat([newInput])\n : this.multipleValue.filter(x => x !== newInput)\n )\n : newInput\n\n this.$emit('input', output)\n this.multiple || this.$emit('change', newInput)\n },\n checkMultipleProp () {\n if (this.value == null) return\n const valueType = this.value.constructor.name\n const expected = this.isMultiple ? 'Array' : 'String'\n if (valueType !== expected) {\n consoleWarn(`Value must be ${this.isMultiple ? 'an' : 'a'} ${expected}, got ${valueType}`, this)\n }\n },\n isDateAllowed (value: string): boolean {\n return isDateAllowed(value, this.min, this.max, this.allowedDates)\n },\n yearClick (value: number) {\n this.inputYear = value\n if (this.type === 'month') {\n this.tableDate = `${value}`\n } else {\n this.tableDate = `${value}-${pad((this.tableMonth || 0) + 1)}`\n }\n this.internalActivePicker = 'MONTH'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n },\n monthClick (value: string) {\n const [year, month] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n\n if (this.type === 'date') {\n if (this.inputDay) {\n this.inputDay = Math.min(this.inputDay, daysInMonth(this.inputYear, this.inputMonth + 1))\n }\n\n this.tableDate = value\n this.internalActivePicker = 'DATE'\n if (this.reactive && !this.readonly && !this.isMultiple && this.isDateAllowed(this.inputDate)) {\n this.$emit('input', this.inputDate)\n }\n } else {\n this.emitInput(this.inputDate)\n }\n },\n dateClick (value: string) {\n const [year, month, day] = value.split('-')\n\n this.inputYear = parseInt(year, 10)\n this.inputMonth = parseInt(month, 10) - 1\n this.inputDay = parseInt(day, 10)\n\n this.emitInput(this.inputDate)\n },\n genPickerTitle (): VNode {\n return this.$createElement(VDatePickerTitle, {\n props: {\n date: this.value ? (this.formatters.titleDate as (value: any) => string)(this.isMultiple ? this.multipleValue : this.value) : '',\n disabled: this.disabled,\n readonly: this.readonly,\n selectingYear: this.internalActivePicker === 'YEAR',\n year: this.formatters.year(this.multipleValue.length ? `${this.inputYear}` : this.tableDate),\n yearIcon: this.yearIcon,\n value: this.multipleValue[0],\n },\n slot: 'title',\n on: {\n 'update:selecting-year': (value: boolean) => this.internalActivePicker = value ? 'YEAR' : this.type.toUpperCase(),\n },\n })\n },\n genTableHeader (): VNode {\n return this.$createElement(VDatePickerHeader, {\n props: {\n nextIcon: this.nextIcon,\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n format: this.headerDateFormat,\n light: this.light,\n locale: this.locale,\n min: this.internalActivePicker === 'DATE' ? this.minMonth : this.minYear,\n max: this.internalActivePicker === 'DATE' ? this.maxMonth : this.maxYear,\n nextAriaLabel: this.internalActivePicker === 'DATE' ? this.nextMonthAriaLabel : this.nextYearAriaLabel,\n prevAriaLabel: this.internalActivePicker === 'DATE' ? this.prevMonthAriaLabel : this.prevYearAriaLabel,\n prevIcon: this.prevIcon,\n readonly: this.readonly,\n value: this.internalActivePicker === 'DATE' ? `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}` : `${pad(this.tableYear, 4)}`,\n },\n on: {\n toggle: () => this.internalActivePicker = (this.internalActivePicker === 'DATE' ? 'MONTH' : 'YEAR'),\n input: (value: string) => this.tableDate = value,\n },\n })\n },\n genDateTable (): VNode {\n return this.$createElement(VDatePickerDateTable, {\n props: {\n allowedDates: this.allowedDates,\n color: this.color,\n current: this.current,\n dark: this.dark,\n disabled: this.disabled,\n events: this.events,\n eventColor: this.eventColor,\n firstDayOfWeek: this.firstDayOfWeek,\n format: this.dayFormat,\n light: this.light,\n locale: this.locale,\n localeFirstDayOfYear: this.localeFirstDayOfYear,\n min: this.min,\n max: this.max,\n range: this.range,\n readonly: this.readonly,\n scrollable: this.scrollable,\n showAdjacentMonths: this.showAdjacentMonths,\n showWeek: this.showWeek,\n tableDate: `${pad(this.tableYear, 4)}-${pad(this.tableMonth + 1)}`,\n value: this.value,\n weekdayFormat: this.weekdayFormat,\n },\n ref: 'table',\n on: {\n input: this.dateClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':date'),\n },\n })\n },\n genMonthTable (): VNode {\n return this.$createElement(VDatePickerMonthTable, {\n props: {\n allowedDates: this.type === 'month' ? this.allowedDates : null,\n color: this.color,\n current: this.current ? sanitizeDateString(this.current, 'month') : null,\n dark: this.dark,\n disabled: this.disabled,\n events: this.type === 'month' ? this.events : null,\n eventColor: this.type === 'month' ? this.eventColor : null,\n format: this.monthFormat,\n light: this.light,\n locale: this.locale,\n min: this.minMonth,\n max: this.maxMonth,\n range: this.range,\n readonly: this.readonly && this.type === 'month',\n scrollable: this.scrollable,\n value: this.selectedMonths,\n tableDate: `${pad(this.tableYear, 4)}`,\n },\n ref: 'table',\n on: {\n input: this.monthClick,\n 'update:table-date': (value: string) => this.tableDate = value,\n ...createItemTypeListeners(this, ':month'),\n },\n })\n },\n genYears (): VNode {\n return this.$createElement(VDatePickerYears, {\n props: {\n color: this.color,\n format: this.yearFormat,\n locale: this.locale,\n min: this.minYear,\n max: this.maxYear,\n value: this.tableYear,\n },\n on: {\n input: this.yearClick,\n ...createItemTypeListeners(this, ':year'),\n },\n })\n },\n genPickerBody (): VNode {\n const children = this.internalActivePicker === 'YEAR' ? [\n this.genYears(),\n ] : [\n this.genTableHeader(),\n this.internalActivePicker === 'DATE' ? this.genDateTable() : this.genMonthTable(),\n ]\n\n return this.$createElement('div', {\n key: this.internalActivePicker,\n }, children)\n },\n setInputDate () {\n if (this.lastValue) {\n const array = this.lastValue.split('-')\n this.inputYear = parseInt(array[0], 10)\n this.inputMonth = parseInt(array[1], 10) - 1\n if (this.type === 'date') {\n this.inputDay = parseInt(array[2], 10)\n }\n } else {\n this.inputYear = this.inputYear || this.now.getFullYear()\n this.inputMonth = this.inputMonth == null ? this.inputMonth : this.now.getMonth()\n this.inputDay = this.inputDay || this.now.getDate()\n }\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--date')\n },\n})\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","import { Konva } from './Global.js';\nexport class Transform {\n constructor(m = [1, 0, 0, 1, 0, 0]) {\n this.dirty = false;\n this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];\n }\n reset() {\n this.m[0] = 1;\n this.m[1] = 0;\n this.m[2] = 0;\n this.m[3] = 1;\n this.m[4] = 0;\n this.m[5] = 0;\n }\n copy() {\n return new Transform(this.m);\n }\n copyInto(tr) {\n tr.m[0] = this.m[0];\n tr.m[1] = this.m[1];\n tr.m[2] = this.m[2];\n tr.m[3] = this.m[3];\n tr.m[4] = this.m[4];\n tr.m[5] = this.m[5];\n }\n point(point) {\n var m = this.m;\n return {\n x: m[0] * point.x + m[2] * point.y + m[4],\n y: m[1] * point.x + m[3] * point.y + m[5],\n };\n }\n translate(x, y) {\n this.m[4] += this.m[0] * x + this.m[2] * y;\n this.m[5] += this.m[1] * x + this.m[3] * y;\n return this;\n }\n scale(sx, sy) {\n this.m[0] *= sx;\n this.m[1] *= sx;\n this.m[2] *= sy;\n this.m[3] *= sy;\n return this;\n }\n rotate(rad) {\n var c = Math.cos(rad);\n var s = Math.sin(rad);\n var m11 = this.m[0] * c + this.m[2] * s;\n var m12 = this.m[1] * c + this.m[3] * s;\n var m21 = this.m[0] * -s + this.m[2] * c;\n var m22 = this.m[1] * -s + this.m[3] * c;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n getTranslation() {\n return {\n x: this.m[4],\n y: this.m[5],\n };\n }\n skew(sx, sy) {\n var m11 = this.m[0] + this.m[2] * sy;\n var m12 = this.m[1] + this.m[3] * sy;\n var m21 = this.m[2] + this.m[0] * sx;\n var m22 = this.m[3] + this.m[1] * sx;\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n return this;\n }\n multiply(matrix) {\n var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];\n var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];\n var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];\n var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];\n var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];\n var dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];\n this.m[0] = m11;\n this.m[1] = m12;\n this.m[2] = m21;\n this.m[3] = m22;\n this.m[4] = dx;\n this.m[5] = dy;\n return this;\n }\n invert() {\n var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);\n var m0 = this.m[3] * d;\n var m1 = -this.m[1] * d;\n var m2 = -this.m[2] * d;\n var m3 = this.m[0] * d;\n var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);\n var m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);\n this.m[0] = m0;\n this.m[1] = m1;\n this.m[2] = m2;\n this.m[3] = m3;\n this.m[4] = m4;\n this.m[5] = m5;\n return this;\n }\n getMatrix() {\n return this.m;\n }\n decompose() {\n var a = this.m[0];\n var b = this.m[1];\n var c = this.m[2];\n var d = this.m[3];\n var e = this.m[4];\n var f = this.m[5];\n var delta = a * d - b * c;\n let result = {\n x: e,\n y: f,\n rotation: 0,\n scaleX: 0,\n scaleY: 0,\n skewX: 0,\n skewY: 0,\n };\n if (a != 0 || b != 0) {\n var r = Math.sqrt(a * a + b * b);\n result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);\n result.scaleX = r;\n result.scaleY = delta / r;\n result.skewX = (a * c + b * d) / delta;\n result.skewY = 0;\n }\n else if (c != 0 || d != 0) {\n var s = Math.sqrt(c * c + d * d);\n result.rotation =\n Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));\n result.scaleX = delta / s;\n result.scaleY = s;\n result.skewX = 0;\n result.skewY = (a * c + b * d) / delta;\n }\n else {\n }\n result.rotation = Util._getRotation(result.rotation);\n return result;\n }\n}\nvar OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', COLORS = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 132, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 255, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 203],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n rebeccapurple: [102, 51, 153],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [119, 128, 144],\n slategrey: [119, 128, 144],\n snow: [255, 255, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n transparent: [255, 255, 255, 0],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 5],\n}, RGB_REGEX = /rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)/, animQueue = [];\nconst req = (typeof requestAnimationFrame !== 'undefined' && requestAnimationFrame) ||\n function (f) {\n setTimeout(f, 60);\n };\nexport const Util = {\n _isElement(obj) {\n return !!(obj && obj.nodeType == 1);\n },\n _isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n },\n _isPlainObject(obj) {\n return !!obj && obj.constructor === Object;\n },\n _isArray(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_ARRAY;\n },\n _isNumber(obj) {\n return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&\n !isNaN(obj) &&\n isFinite(obj));\n },\n _isString(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_STRING;\n },\n _isBoolean(obj) {\n return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;\n },\n isObject(val) {\n return val instanceof Object;\n },\n isValidSelector(selector) {\n if (typeof selector !== 'string') {\n return false;\n }\n var firstChar = selector[0];\n return (firstChar === '#' ||\n firstChar === '.' ||\n firstChar === firstChar.toUpperCase());\n },\n _sign(number) {\n if (number === 0) {\n return 1;\n }\n if (number > 0) {\n return 1;\n }\n else {\n return -1;\n }\n },\n requestAnimFrame(callback) {\n animQueue.push(callback);\n if (animQueue.length === 1) {\n req(function () {\n const queue = animQueue;\n animQueue = [];\n queue.forEach(function (cb) {\n cb();\n });\n });\n }\n },\n createCanvasElement() {\n var canvas = document.createElement('canvas');\n try {\n canvas.style = canvas.style || {};\n }\n catch (e) { }\n return canvas;\n },\n createImageElement() {\n return document.createElement('img');\n },\n _isInDocument(el) {\n while ((el = el.parentNode)) {\n if (el == document) {\n return true;\n }\n }\n return false;\n },\n _urlToImage(url, callback) {\n var imageObj = Util.createImageElement();\n imageObj.onload = function () {\n callback(imageObj);\n };\n imageObj.src = url;\n },\n _rgbToHex(r, g, b) {\n return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n },\n _hexToRgb(hex) {\n hex = hex.replace(HASH, EMPTY_STRING);\n var bigint = parseInt(hex, 16);\n return {\n r: (bigint >> 16) & 255,\n g: (bigint >> 8) & 255,\n b: bigint & 255,\n };\n },\n getRandomColor() {\n var randColor = ((Math.random() * 0xffffff) << 0).toString(16);\n while (randColor.length < 6) {\n randColor = ZERO + randColor;\n }\n return HASH + randColor;\n },\n getRGB(color) {\n var rgb;\n if (color in COLORS) {\n rgb = COLORS[color];\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n };\n }\n else if (color[0] === HASH) {\n return this._hexToRgb(color.substring(1));\n }\n else if (color.substr(0, 4) === RGB_PAREN) {\n rgb = RGB_REGEX.exec(color.replace(/ /g, ''));\n return {\n r: parseInt(rgb[1], 10),\n g: parseInt(rgb[2], 10),\n b: parseInt(rgb[3], 10),\n };\n }\n else {\n return {\n r: 0,\n g: 0,\n b: 0,\n };\n }\n },\n colorToRGBA(str) {\n str = str || 'black';\n return (Util._namedColorToRBA(str) ||\n Util._hex3ColorToRGBA(str) ||\n Util._hex6ColorToRGBA(str) ||\n Util._rgbColorToRGBA(str) ||\n Util._rgbaColorToRGBA(str) ||\n Util._hslColorToRGBA(str));\n },\n _namedColorToRBA(str) {\n var c = COLORS[str.toLowerCase()];\n if (!c) {\n return null;\n }\n return {\n r: c[0],\n g: c[1],\n b: c[2],\n a: 1,\n };\n },\n _rgbColorToRGBA(str) {\n if (str.indexOf('rgb(') === 0) {\n str = str.match(/rgb\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map(Number);\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: 1,\n };\n }\n },\n _rgbaColorToRGBA(str) {\n if (str.indexOf('rgba(') === 0) {\n str = str.match(/rgba\\(([^)]+)\\)/)[1];\n var parts = str.split(/ *, */).map((n, index) => {\n if (n.slice(-1) === '%') {\n return index === 3 ? parseInt(n) / 100 : (parseInt(n) / 100) * 255;\n }\n return Number(n);\n });\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: parts[3],\n };\n }\n },\n _hex6ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 7) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: 1,\n };\n }\n },\n _hex3ColorToRGBA(str) {\n if (str[0] === '#' && str.length === 4) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: 1,\n };\n }\n },\n _hslColorToRGBA(str) {\n if (/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.test(str)) {\n const [_, ...hsl] = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(str);\n const h = Number(hsl[0]) / 360;\n const s = Number(hsl[1]) / 100;\n const l = Number(hsl[2]) / 100;\n let t2;\n let t3;\n let val;\n if (s === 0) {\n val = l * 255;\n return {\n r: Math.round(val),\n g: Math.round(val),\n b: Math.round(val),\n a: 1,\n };\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n }\n else {\n t2 = l + s - l * s;\n }\n const t1 = 2 * l - t2;\n const rgb = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n t3 = h + (1 / 3) * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n }\n else if (2 * t3 < 1) {\n val = t2;\n }\n else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n }\n else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return {\n r: Math.round(rgb[0]),\n g: Math.round(rgb[1]),\n b: Math.round(rgb[2]),\n a: 1,\n };\n }\n },\n haveIntersection(r1, r2) {\n return !(r2.x > r1.x + r1.width ||\n r2.x + r2.width < r1.x ||\n r2.y > r1.y + r1.height ||\n r2.y + r2.height < r1.y);\n },\n cloneObject(obj) {\n var retObj = {};\n for (var key in obj) {\n if (this._isPlainObject(obj[key])) {\n retObj[key] = this.cloneObject(obj[key]);\n }\n else if (this._isArray(obj[key])) {\n retObj[key] = this.cloneArray(obj[key]);\n }\n else {\n retObj[key] = obj[key];\n }\n }\n return retObj;\n },\n cloneArray(arr) {\n return arr.slice(0);\n },\n degToRad(deg) {\n return deg * PI_OVER_DEG180;\n },\n radToDeg(rad) {\n return rad * DEG180_OVER_PI;\n },\n _degToRad(deg) {\n Util.warn('Util._degToRad is removed. Please use public Util.degToRad instead.');\n return Util.degToRad(deg);\n },\n _radToDeg(rad) {\n Util.warn('Util._radToDeg is removed. Please use public Util.radToDeg instead.');\n return Util.radToDeg(rad);\n },\n _getRotation(radians) {\n return Konva.angleDeg ? Util.radToDeg(radians) : radians;\n },\n _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n },\n throw(str) {\n throw new Error(KONVA_ERROR + str);\n },\n error(str) {\n console.error(KONVA_ERROR + str);\n },\n warn(str) {\n if (!Konva.showWarnings) {\n return;\n }\n console.warn(KONVA_WARNING + str);\n },\n each(obj, func) {\n for (var key in obj) {\n func(key, obj[key]);\n }\n },\n _inRange(val, left, right) {\n return left <= val && val < right;\n },\n _getProjectionToSegment(x1, y1, x2, y2, x3, y3) {\n var x, y, dist;\n var pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n if (pd2 == 0) {\n x = x1;\n y = y1;\n dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);\n }\n else {\n var u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;\n if (u < 0) {\n x = x1;\n y = y1;\n dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);\n }\n else if (u > 1.0) {\n x = x2;\n y = y2;\n dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);\n }\n else {\n x = x1 + u * (x2 - x1);\n y = y1 + u * (y2 - y1);\n dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);\n }\n }\n return [x, y, dist];\n },\n _getProjectionToLine(pt, line, isClosed) {\n var pc = Util.cloneObject(pt);\n var dist = Number.MAX_VALUE;\n line.forEach(function (p1, i) {\n if (!isClosed && i === line.length - 1) {\n return;\n }\n var p2 = line[(i + 1) % line.length];\n var proj = Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);\n var px = proj[0], py = proj[1], pdist = proj[2];\n if (pdist < dist) {\n pc.x = px;\n pc.y = py;\n dist = pdist;\n }\n });\n return pc;\n },\n _prepareArrayForTween(startArray, endArray, isClosed) {\n var n, start = [], end = [];\n if (startArray.length > endArray.length) {\n var temp = endArray;\n endArray = startArray;\n startArray = temp;\n }\n for (n = 0; n < startArray.length; n += 2) {\n start.push({\n x: startArray[n],\n y: startArray[n + 1],\n });\n }\n for (n = 0; n < endArray.length; n += 2) {\n end.push({\n x: endArray[n],\n y: endArray[n + 1],\n });\n }\n var newStart = [];\n end.forEach(function (point) {\n var pr = Util._getProjectionToLine(point, start, isClosed);\n newStart.push(pr.x);\n newStart.push(pr.y);\n });\n return newStart;\n },\n _prepareToStringify(obj) {\n var desc;\n obj.visitedByCircularReferenceRemoval = true;\n for (var key in obj) {\n if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {\n continue;\n }\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (obj[key].visitedByCircularReferenceRemoval ||\n Util._isElement(obj[key])) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n else if (Util._prepareToStringify(obj[key]) === null) {\n if (desc.configurable) {\n delete obj[key];\n }\n else {\n return null;\n }\n }\n }\n delete obj.visitedByCircularReferenceRemoval;\n return obj;\n },\n _assign(target, source) {\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n },\n _getFirstPointerId(evt) {\n if (!evt.touches) {\n return evt.pointerId || 999;\n }\n else {\n return evt.changedTouches[0].identifier;\n }\n },\n releaseCanvas(...canvases) {\n if (!Konva.releaseCanvasOnDestroy)\n return;\n canvases.forEach(c => {\n c.width = 0;\n c.height = 0;\n });\n }\n};\n","import { Konva } from './Global.js';\nimport { Util } from './Util.js';\nfunction _formatValue(val) {\n if (Util._isString(val)) {\n return '\"' + val + '\"';\n }\n if (Object.prototype.toString.call(val) === '[object Number]') {\n return val;\n }\n if (Util._isBoolean(val)) {\n return val;\n }\n return Object.prototype.toString.call(val);\n}\nexport function RGBComponent(val) {\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n return Math.round(val);\n}\nexport function alphaComponent(val) {\n if (val > 1) {\n return 1;\n }\n else if (val < 0.0001) {\n return 0.0001;\n }\n return val;\n}\nexport function getNumberValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isNumber(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number.');\n }\n return val;\n };\n }\n}\nexport function getNumberOrArrayOfNumbersValidator(noOfElements) {\n if (Konva.isUnminified) {\n return function (val, attr) {\n let isNumber = Util._isNumber(val);\n let isValidArray = Util._isArray(val) && val.length == noOfElements;\n if (!isNumber && !isValidArray) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or Array(' +\n noOfElements +\n ')');\n }\n return val;\n };\n }\n}\nexport function getNumberOrAutoValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n var isNumber = Util._isNumber(val);\n var isAuto = val === 'auto';\n if (!(isNumber || isAuto)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a number or \"auto\".');\n }\n return val;\n };\n }\n}\nexport function getStringValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isString(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string.');\n }\n return val;\n };\n }\n}\nexport function getStringOrGradientValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const isString = Util._isString(val);\n const isGradient = Object.prototype.toString.call(val) === '[object CanvasGradient]' ||\n (val && val.addColorStop);\n if (!(isString || isGradient)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a string or a native gradient.');\n }\n return val;\n };\n }\n}\nexport function getFunctionValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (!Util._isFunction(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a function.');\n }\n return val;\n };\n }\n}\nexport function getNumberArrayValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n const TypedArray = Int8Array ? Object.getPrototypeOf(Int8Array) : null;\n if (TypedArray && val instanceof TypedArray) {\n return val;\n }\n if (!Util._isArray(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a array of numbers.');\n }\n else {\n val.forEach(function (item) {\n if (!Util._isNumber(item)) {\n Util.warn('\"' +\n attr +\n '\" attribute has non numeric element ' +\n item +\n '. Make sure that all elements are numbers.');\n }\n });\n }\n return val;\n };\n }\n}\nexport function getBooleanValidator() {\n if (Konva.isUnminified) {\n return function (val, attr) {\n var isBool = val === true || val === false;\n if (!isBool) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be a boolean.');\n }\n return val;\n };\n }\n}\nexport function getComponentValidator(components) {\n if (Konva.isUnminified) {\n return function (val, attr) {\n if (val === undefined || val === null) {\n return val;\n }\n if (!Util.isObject(val)) {\n Util.warn(_formatValue(val) +\n ' is a not valid value for \"' +\n attr +\n '\" attribute. The value should be an object with properties ' +\n components);\n }\n return val;\n };\n }\n}\n","import { Util } from './Util.js';\nimport { getComponentValidator } from './Validators.js';\nvar GET = 'get', SET = 'set';\nexport const Factory = {\n addGetterSetter(constructor, attr, def, validator, after) {\n Factory.addGetter(constructor, attr, def);\n Factory.addSetter(constructor, attr, validator, after);\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addGetter(constructor, attr, def) {\n var method = GET + Util._capitalize(attr);\n constructor.prototype[method] =\n constructor.prototype[method] ||\n function () {\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n },\n addSetter(constructor, attr, validator, after) {\n var method = SET + Util._capitalize(attr);\n if (!constructor.prototype[method]) {\n Factory.overWriteSetter(constructor, attr, validator, after);\n }\n },\n overWriteSetter(constructor, attr, validator, after) {\n var method = SET + Util._capitalize(attr);\n constructor.prototype[method] = function (val) {\n if (validator && val !== undefined && val !== null) {\n val = validator.call(this, val, attr);\n }\n this._setAttr(attr, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n },\n addComponentsGetterSetter(constructor, attr, components, validator, after) {\n var len = components.length, capitalize = Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr), n, component;\n constructor.prototype[getter] = function () {\n var ret = {};\n for (n = 0; n < len; n++) {\n component = components[n];\n ret[component] = this.getAttr(attr + capitalize(component));\n }\n return ret;\n };\n var basicValidator = getComponentValidator(components);\n constructor.prototype[setter] = function (val) {\n var oldVal = this.attrs[attr], key;\n if (validator) {\n val = validator.call(this, val);\n }\n if (basicValidator) {\n basicValidator.call(this, val, attr);\n }\n for (key in val) {\n if (!val.hasOwnProperty(key)) {\n continue;\n }\n this._setAttr(attr + capitalize(key), val[key]);\n }\n if (!val) {\n components.forEach((component) => {\n this._setAttr(attr + capitalize(component), undefined);\n });\n }\n this._fireChangeEvent(attr, oldVal, val);\n if (after) {\n after.call(this);\n }\n return this;\n };\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n addOverloadedGetterSetter(constructor, attr) {\n var capitalizedAttr = Util._capitalize(attr), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;\n constructor.prototype[attr] = function () {\n if (arguments.length) {\n this[setter](arguments[0]);\n return this;\n }\n return this[getter]();\n };\n },\n addDeprecatedGetterSetter(constructor, attr, def, validator) {\n Util.error('Adding deprecated ' + attr);\n var method = GET + Util._capitalize(attr);\n var message = attr +\n ' property is deprecated and will be removed soon. Look at Konva change log for more information.';\n constructor.prototype[method] = function () {\n Util.error(message);\n var val = this.attrs[attr];\n return val === undefined ? def : val;\n };\n Factory.addSetter(constructor, attr, validator, function () {\n Util.error(message);\n });\n Factory.addOverloadedGetterSetter(constructor, attr);\n },\n backCompat(constructor, methods) {\n Util.each(methods, function (oldMethodName, newMethodName) {\n var method = constructor.prototype[newMethodName];\n var oldGetter = GET + Util._capitalize(oldMethodName);\n var oldSetter = SET + Util._capitalize(oldMethodName);\n function deprecated() {\n method.apply(this, arguments);\n Util.error('\"' +\n oldMethodName +\n '\" method is deprecated and will be removed soon. Use \"\"' +\n newMethodName +\n '\" instead.');\n }\n constructor.prototype[oldMethodName] = deprecated;\n constructor.prototype[oldGetter] = deprecated;\n constructor.prototype[oldSetter] = deprecated;\n });\n },\n afterSetFilter() {\n this._filterUpToDate = false;\n },\n};\n","import { Util } from './Util.js';\nimport { Konva } from './Global.js';\nfunction simplifyArray(arr) {\n var retArr = [], len = arr.length, util = Util, n, val;\n for (n = 0; n < len; n++) {\n val = arr[n];\n if (util._isNumber(val)) {\n val = Math.round(val * 1000) / 1000;\n }\n else if (!util._isString(val)) {\n val = val + '';\n }\n retArr.push(val);\n }\n return retArr;\n}\nvar COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()', EQUALS = '=', CONTEXT_METHODS = [\n 'arc',\n 'arcTo',\n 'beginPath',\n 'bezierCurveTo',\n 'clearRect',\n 'clip',\n 'closePath',\n 'createLinearGradient',\n 'createPattern',\n 'createRadialGradient',\n 'drawImage',\n 'ellipse',\n 'fill',\n 'fillText',\n 'getImageData',\n 'createImageData',\n 'lineTo',\n 'moveTo',\n 'putImageData',\n 'quadraticCurveTo',\n 'rect',\n 'restore',\n 'rotate',\n 'save',\n 'scale',\n 'setLineDash',\n 'setTransform',\n 'stroke',\n 'strokeText',\n 'transform',\n 'translate',\n];\nvar CONTEXT_PROPERTIES = [\n 'fillStyle',\n 'strokeStyle',\n 'shadowColor',\n 'shadowBlur',\n 'shadowOffsetX',\n 'shadowOffsetY',\n 'lineCap',\n 'lineDashOffset',\n 'lineJoin',\n 'lineWidth',\n 'miterLimit',\n 'font',\n 'textAlign',\n 'textBaseline',\n 'globalAlpha',\n 'globalCompositeOperation',\n 'imageSmoothingEnabled',\n];\nconst traceArrMax = 100;\nexport class Context {\n constructor(canvas) {\n this.canvas = canvas;\n if (Konva.enableTrace) {\n this.traceArr = [];\n this._enableTrace();\n }\n }\n fillShape(shape) {\n if (shape.fillEnabled()) {\n this._fill(shape);\n }\n }\n _fill(shape) {\n }\n strokeShape(shape) {\n if (shape.hasStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n }\n fillStrokeShape(shape) {\n if (shape.attrs.fillAfterStrokeEnabled) {\n this.strokeShape(shape);\n this.fillShape(shape);\n }\n else {\n this.fillShape(shape);\n this.strokeShape(shape);\n }\n }\n getTrace(relaxed, rounded) {\n var traceArr = this.traceArr, len = traceArr.length, str = '', n, trace, method, args;\n for (n = 0; n < len; n++) {\n trace = traceArr[n];\n method = trace.method;\n if (method) {\n args = trace.args;\n str += method;\n if (relaxed) {\n str += DOUBLE_PAREN;\n }\n else {\n if (Util._isArray(args[0])) {\n str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;\n }\n else {\n if (rounded) {\n args = args.map((a) => typeof a === 'number' ? Math.floor(a) : a);\n }\n str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;\n }\n }\n }\n else {\n str += trace.property;\n if (!relaxed) {\n str += EQUALS + trace.val;\n }\n }\n str += SEMICOLON;\n }\n return str;\n }\n clearTrace() {\n this.traceArr = [];\n }\n _trace(str) {\n var traceArr = this.traceArr, len;\n traceArr.push(str);\n len = traceArr.length;\n if (len >= traceArrMax) {\n traceArr.shift();\n }\n }\n reset() {\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);\n }\n getCanvas() {\n return this.canvas;\n }\n clear(bounds) {\n var canvas = this.getCanvas();\n if (bounds) {\n this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);\n }\n else {\n this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);\n }\n }\n _applyLineCap(shape) {\n var lineCap = shape.getLineCap();\n if (lineCap) {\n this.setAttr('lineCap', lineCap);\n }\n }\n _applyOpacity(shape) {\n var absOpacity = shape.getAbsoluteOpacity();\n if (absOpacity !== 1) {\n this.setAttr('globalAlpha', absOpacity);\n }\n }\n _applyLineJoin(shape) {\n var lineJoin = shape.attrs.lineJoin;\n if (lineJoin) {\n this.setAttr('lineJoin', lineJoin);\n }\n }\n setAttr(attr, val) {\n this._context[attr] = val;\n }\n arc(a0, a1, a2, a3, a4, a5) {\n this._context.arc(a0, a1, a2, a3, a4, a5);\n }\n arcTo(a0, a1, a2, a3, a4) {\n this._context.arcTo(a0, a1, a2, a3, a4);\n }\n beginPath() {\n this._context.beginPath();\n }\n bezierCurveTo(a0, a1, a2, a3, a4, a5) {\n this._context.bezierCurveTo(a0, a1, a2, a3, a4, a5);\n }\n clearRect(a0, a1, a2, a3) {\n this._context.clearRect(a0, a1, a2, a3);\n }\n clip() {\n this._context.clip();\n }\n closePath() {\n this._context.closePath();\n }\n createImageData(a0, a1) {\n var a = arguments;\n if (a.length === 2) {\n return this._context.createImageData(a0, a1);\n }\n else if (a.length === 1) {\n return this._context.createImageData(a0);\n }\n }\n createLinearGradient(a0, a1, a2, a3) {\n return this._context.createLinearGradient(a0, a1, a2, a3);\n }\n createPattern(a0, a1) {\n return this._context.createPattern(a0, a1);\n }\n createRadialGradient(a0, a1, a2, a3, a4, a5) {\n return this._context.createRadialGradient(a0, a1, a2, a3, a4, a5);\n }\n drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n var a = arguments, _context = this._context;\n if (a.length === 3) {\n _context.drawImage(a0, a1, a2);\n }\n else if (a.length === 5) {\n _context.drawImage(a0, a1, a2, a3, a4);\n }\n else if (a.length === 9) {\n _context.drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8);\n }\n }\n ellipse(a0, a1, a2, a3, a4, a5, a6, a7) {\n this._context.ellipse(a0, a1, a2, a3, a4, a5, a6, a7);\n }\n isPointInPath(x, y) {\n return this._context.isPointInPath(x, y);\n }\n fill(path2d) {\n if (path2d) {\n this._context.fill(path2d);\n }\n else {\n this._context.fill();\n }\n }\n fillRect(x, y, width, height) {\n this._context.fillRect(x, y, width, height);\n }\n strokeRect(x, y, width, height) {\n this._context.strokeRect(x, y, width, height);\n }\n fillText(text, x, y, maxWidth) {\n if (maxWidth) {\n this._context.fillText(text, x, y, maxWidth);\n }\n else {\n this._context.fillText(text, x, y);\n }\n }\n measureText(text) {\n return this._context.measureText(text);\n }\n getImageData(a0, a1, a2, a3) {\n return this._context.getImageData(a0, a1, a2, a3);\n }\n lineTo(a0, a1) {\n this._context.lineTo(a0, a1);\n }\n moveTo(a0, a1) {\n this._context.moveTo(a0, a1);\n }\n rect(a0, a1, a2, a3) {\n this._context.rect(a0, a1, a2, a3);\n }\n putImageData(a0, a1, a2) {\n this._context.putImageData(a0, a1, a2);\n }\n quadraticCurveTo(a0, a1, a2, a3) {\n this._context.quadraticCurveTo(a0, a1, a2, a3);\n }\n restore() {\n this._context.restore();\n }\n rotate(a0) {\n this._context.rotate(a0);\n }\n save() {\n this._context.save();\n }\n scale(a0, a1) {\n this._context.scale(a0, a1);\n }\n setLineDash(a0) {\n if (this._context.setLineDash) {\n this._context.setLineDash(a0);\n }\n else if ('mozDash' in this._context) {\n this._context['mozDash'] = a0;\n }\n else if ('webkitLineDash' in this._context) {\n this._context['webkitLineDash'] = a0;\n }\n }\n getLineDash() {\n return this._context.getLineDash();\n }\n setTransform(a0, a1, a2, a3, a4, a5) {\n this._context.setTransform(a0, a1, a2, a3, a4, a5);\n }\n stroke(path2d) {\n if (path2d) {\n this._context.stroke(path2d);\n }\n else {\n this._context.stroke();\n }\n }\n strokeText(a0, a1, a2, a3) {\n this._context.strokeText(a0, a1, a2, a3);\n }\n transform(a0, a1, a2, a3, a4, a5) {\n this._context.transform(a0, a1, a2, a3, a4, a5);\n }\n translate(a0, a1) {\n this._context.translate(a0, a1);\n }\n _enableTrace() {\n var that = this, len = CONTEXT_METHODS.length, origSetter = this.setAttr, n, args;\n var func = function (methodName) {\n var origMethod = that[methodName], ret;\n that[methodName] = function () {\n args = simplifyArray(Array.prototype.slice.call(arguments, 0));\n ret = origMethod.apply(that, arguments);\n that._trace({\n method: methodName,\n args: args,\n });\n return ret;\n };\n };\n for (n = 0; n < len; n++) {\n func(CONTEXT_METHODS[n]);\n }\n that.setAttr = function () {\n origSetter.apply(that, arguments);\n var prop = arguments[0];\n var val = arguments[1];\n if (prop === 'shadowOffsetX' ||\n prop === 'shadowOffsetY' ||\n prop === 'shadowBlur') {\n val = val / this.canvas.getPixelRatio();\n }\n that._trace({\n property: prop,\n val: val,\n });\n };\n }\n _applyGlobalCompositeOperation(node) {\n const op = node.attrs.globalCompositeOperation;\n var def = !op || op === 'source-over';\n if (!def) {\n this.setAttr('globalCompositeOperation', op);\n }\n }\n}\n;\nCONTEXT_PROPERTIES.forEach(function (prop) {\n Object.defineProperty(Context.prototype, prop, {\n get() {\n return this._context[prop];\n },\n set(val) {\n this._context[prop] = val;\n },\n });\n});\nexport class SceneContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d');\n }\n _fillColor(shape) {\n var fill = shape.fill();\n this.setAttr('fillStyle', fill);\n shape._fillFunc(this);\n }\n _fillPattern(shape) {\n this.setAttr('fillStyle', shape._getFillPattern());\n shape._fillFunc(this);\n }\n _fillLinearGradient(shape) {\n var grd = shape._getLinearGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fillRadialGradient(shape) {\n var grd = shape._getRadialGradient();\n if (grd) {\n this.setAttr('fillStyle', grd);\n shape._fillFunc(this);\n }\n }\n _fill(shape) {\n var hasColor = shape.fill(), fillPriority = shape.getFillPriority();\n if (hasColor && fillPriority === 'color') {\n this._fillColor(shape);\n return;\n }\n var hasPattern = shape.getFillPatternImage();\n if (hasPattern && fillPriority === 'pattern') {\n this._fillPattern(shape);\n return;\n }\n var hasLinearGradient = shape.getFillLinearGradientColorStops();\n if (hasLinearGradient && fillPriority === 'linear-gradient') {\n this._fillLinearGradient(shape);\n return;\n }\n var hasRadialGradient = shape.getFillRadialGradientColorStops();\n if (hasRadialGradient && fillPriority === 'radial-gradient') {\n this._fillRadialGradient(shape);\n return;\n }\n if (hasColor) {\n this._fillColor(shape);\n }\n else if (hasPattern) {\n this._fillPattern(shape);\n }\n else if (hasLinearGradient) {\n this._fillLinearGradient(shape);\n }\n else if (hasRadialGradient) {\n this._fillRadialGradient(shape);\n }\n }\n _strokeLinearGradient(shape) {\n var start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), grd = this.createLinearGradient(start.x, start.y, end.x, end.y);\n if (colorStops) {\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n this.setAttr('strokeStyle', grd);\n }\n }\n _stroke(shape) {\n var dash = shape.dash(), strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (shape.hasStroke()) {\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n if (dash && shape.dashEnabled()) {\n this.setLineDash(dash);\n this.setAttr('lineDashOffset', shape.dashOffset());\n }\n this.setAttr('lineWidth', shape.strokeWidth());\n if (!shape.getShadowForStrokeEnabled()) {\n this.setAttr('shadowColor', 'rgba(0,0,0,0)');\n }\n var hasLinearGradient = shape.getStrokeLinearGradientColorStops();\n if (hasLinearGradient) {\n this._strokeLinearGradient(shape);\n }\n else {\n this.setAttr('strokeStyle', shape.stroke());\n }\n shape._strokeFunc(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n _applyShadow(shape) {\n var _a, _b, _c;\n var color = (_a = shape.getShadowRGBA()) !== null && _a !== void 0 ? _a : 'black', blur = (_b = shape.getShadowBlur()) !== null && _b !== void 0 ? _b : 5, offset = (_c = shape.getShadowOffset()) !== null && _c !== void 0 ? _c : {\n x: 0,\n y: 0,\n }, scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, scaleY = scale.y * ratio;\n this.setAttr('shadowColor', color);\n this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));\n this.setAttr('shadowOffsetX', offset.x * scaleX);\n this.setAttr('shadowOffsetY', offset.y * scaleY);\n }\n}\nexport class HitContext extends Context {\n constructor(canvas) {\n super(canvas);\n this._context = canvas._canvas.getContext('2d', {\n willReadFrequently: true,\n });\n }\n _fill(shape) {\n this.save();\n this.setAttr('fillStyle', shape.colorKey);\n shape._fillFuncHit(this);\n this.restore();\n }\n strokeShape(shape) {\n if (shape.hasHitStroke()) {\n this._stroke(shape);\n }\n }\n _stroke(shape) {\n if (shape.hasHitStroke()) {\n var strokeScaleEnabled = shape.getStrokeScaleEnabled();\n if (!strokeScaleEnabled) {\n this.save();\n var pixelRatio = this.getCanvas().getPixelRatio();\n this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n }\n this._applyLineCap(shape);\n var hitStrokeWidth = shape.hitStrokeWidth();\n var strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;\n this.setAttr('lineWidth', strokeWidth);\n this.setAttr('strokeStyle', shape.colorKey);\n shape._strokeFuncHit(this);\n if (!strokeScaleEnabled) {\n this.restore();\n }\n }\n }\n}\n","import { Util } from './Util.js';\nimport { SceneContext, HitContext } from './Context.js';\nimport { Konva } from './Global.js';\nimport { Factory } from './Factory.js';\nimport { getNumberValidator } from './Validators.js';\nvar _pixelRatio;\nfunction getDevicePixelRatio() {\n if (_pixelRatio) {\n return _pixelRatio;\n }\n var canvas = Util.createCanvasElement();\n var context = canvas.getContext('2d');\n _pixelRatio = (function () {\n var devicePixelRatio = Konva._global.devicePixelRatio || 1, backingStoreRatio = context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n context.backingStorePixelRatio ||\n 1;\n return devicePixelRatio / backingStoreRatio;\n })();\n Util.releaseCanvas(canvas);\n return _pixelRatio;\n}\nexport class Canvas {\n constructor(config) {\n this.pixelRatio = 1;\n this.width = 0;\n this.height = 0;\n this.isCache = false;\n var conf = config || {};\n var pixelRatio = conf.pixelRatio || Konva.pixelRatio || getDevicePixelRatio();\n this.pixelRatio = pixelRatio;\n this._canvas = Util.createCanvasElement();\n this._canvas.style.padding = '0';\n this._canvas.style.margin = '0';\n this._canvas.style.border = '0';\n this._canvas.style.background = 'transparent';\n this._canvas.style.position = 'absolute';\n this._canvas.style.top = '0';\n this._canvas.style.left = '0';\n }\n getContext() {\n return this.context;\n }\n getPixelRatio() {\n return this.pixelRatio;\n }\n setPixelRatio(pixelRatio) {\n var previousRatio = this.pixelRatio;\n this.pixelRatio = pixelRatio;\n this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);\n }\n setWidth(width) {\n this.width = this._canvas.width = width * this.pixelRatio;\n this._canvas.style.width = width + 'px';\n var pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n setHeight(height) {\n this.height = this._canvas.height = height * this.pixelRatio;\n this._canvas.style.height = height + 'px';\n var pixelRatio = this.pixelRatio, _context = this.getContext()._context;\n _context.scale(pixelRatio, pixelRatio);\n }\n getWidth() {\n return this.width;\n }\n getHeight() {\n return this.height;\n }\n setSize(width, height) {\n this.setWidth(width || 0);\n this.setHeight(height || 0);\n }\n toDataURL(mimeType, quality) {\n try {\n return this._canvas.toDataURL(mimeType, quality);\n }\n catch (e) {\n try {\n return this._canvas.toDataURL();\n }\n catch (err) {\n Util.error('Unable to get data URL. ' +\n err.message +\n ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n return '';\n }\n }\n }\n}\nFactory.addGetterSetter(Canvas, 'pixelRatio', undefined, getNumberValidator());\nexport class SceneCanvas extends Canvas {\n constructor(config = { width: 0, height: 0 }) {\n super(config);\n this.context = new SceneContext(this);\n this.setSize(config.width, config.height);\n }\n}\nexport class HitCanvas extends Canvas {\n constructor(config = { width: 0, height: 0 }) {\n super(config);\n this.hitCanvas = true;\n this.context = new HitContext(this);\n this.setSize(config.width, config.height);\n }\n}\n","import { Konva } from './Global.js';\nimport { Util } from './Util.js';\nexport const DD = {\n get isDragging() {\n var flag = false;\n DD._dragElements.forEach((elem) => {\n if (elem.dragStatus === 'dragging') {\n flag = true;\n }\n });\n return flag;\n },\n justDragged: false,\n get node() {\n var node;\n DD._dragElements.forEach((elem) => {\n node = elem.node;\n });\n return node;\n },\n _dragElements: new Map(),\n _drag(evt) {\n const nodesToFireEvents = [];\n DD._dragElements.forEach((elem, key) => {\n const { node } = elem;\n const stage = node.getStage();\n stage.setPointersPositions(evt);\n if (elem.pointerId === undefined) {\n elem.pointerId = Util._getFirstPointerId(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus !== 'dragging') {\n var dragDistance = node.dragDistance();\n var distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));\n if (distance < dragDistance) {\n return;\n }\n node.startDrag({ evt });\n if (!node.isDragging()) {\n return;\n }\n }\n node._setDragPosition(evt, elem);\n nodesToFireEvents.push(node);\n });\n nodesToFireEvents.forEach((node) => {\n node.fire('dragmove', {\n type: 'dragmove',\n target: node,\n evt: evt,\n }, true);\n });\n },\n _endDragBefore(evt) {\n const drawNodes = [];\n DD._dragElements.forEach((elem) => {\n const { node } = elem;\n const stage = node.getStage();\n if (evt) {\n stage.setPointersPositions(evt);\n }\n const pos = stage._changedPointerPositions.find((pos) => pos.id === elem.pointerId);\n if (!pos) {\n return;\n }\n if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {\n DD.justDragged = true;\n Konva._mouseListenClick = false;\n Konva._touchListenClick = false;\n Konva._pointerListenClick = false;\n elem.dragStatus = 'stopped';\n }\n const drawNode = elem.node.getLayer() ||\n (elem.node instanceof Konva['Stage'] && elem.node);\n if (drawNode && drawNodes.indexOf(drawNode) === -1) {\n drawNodes.push(drawNode);\n }\n });\n drawNodes.forEach((drawNode) => {\n drawNode.draw();\n });\n },\n _endDragAfter(evt) {\n DD._dragElements.forEach((elem, key) => {\n if (elem.dragStatus === 'stopped') {\n elem.node.fire('dragend', {\n type: 'dragend',\n target: elem.node,\n evt: evt,\n }, true);\n }\n if (elem.dragStatus !== 'dragging') {\n DD._dragElements.delete(key);\n }\n });\n },\n};\nif (Konva.isBrowser) {\n window.addEventListener('mouseup', DD._endDragBefore, true);\n window.addEventListener('touchend', DD._endDragBefore, true);\n window.addEventListener('mousemove', DD._drag);\n window.addEventListener('touchmove', DD._drag);\n window.addEventListener('mouseup', DD._endDragAfter, false);\n window.addEventListener('touchend', DD._endDragAfter, false);\n}\n","import { Util, Transform } from './Util.js';\nimport { Factory } from './Factory.js';\nimport { SceneCanvas, HitCanvas } from './Canvas.js';\nimport { Konva } from './Global.js';\nimport { DD } from './DragAndDrop.js';\nimport { getNumberValidator, getStringValidator, getBooleanValidator, } from './Validators.js';\nvar ABSOLUTE_OPACITY = 'absoluteOpacity', ALL_LISTENERS = 'allEventListeners', ABSOLUTE_TRANSFORM = 'absoluteTransform', ABSOLUTE_SCALE = 'absoluteScale', CANVAS = 'canvas', CHANGE = 'Change', CHILDREN = 'children', KONVA = 'konva', LISTENING = 'listening', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', SET = 'set', SHAPE = 'Shape', SPACE = ' ', STAGE = 'stage', TRANSFORM = 'transform', UPPER_STAGE = 'Stage', VISIBLE = 'visible', TRANSFORM_CHANGE_STR = [\n 'xChange.konva',\n 'yChange.konva',\n 'scaleXChange.konva',\n 'scaleYChange.konva',\n 'skewXChange.konva',\n 'skewYChange.konva',\n 'rotationChange.konva',\n 'offsetXChange.konva',\n 'offsetYChange.konva',\n 'transformsEnabledChange.konva',\n].join(SPACE);\nlet idCounter = 1;\nexport class Node {\n constructor(config) {\n this._id = idCounter++;\n this.eventListeners = {};\n this.attrs = {};\n this.index = 0;\n this._allEventListeners = null;\n this.parent = null;\n this._cache = new Map();\n this._attachedDepsListeners = new Map();\n this._lastPos = null;\n this._batchingTransformChange = false;\n this._needClearTransformCache = false;\n this._filterUpToDate = false;\n this._isUnderCache = false;\n this._dragEventId = null;\n this._shouldFireChangeEvents = false;\n this.setAttrs(config);\n this._shouldFireChangeEvents = true;\n }\n hasChildren() {\n return false;\n }\n _clearCache(attr) {\n if ((attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM) &&\n this._cache.get(attr)) {\n this._cache.get(attr).dirty = true;\n }\n else if (attr) {\n this._cache.delete(attr);\n }\n else {\n this._cache.clear();\n }\n }\n _getCache(attr, privateGetter) {\n var cache = this._cache.get(attr);\n var isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;\n var invalid = cache === undefined || (isTransform && cache.dirty === true);\n if (invalid) {\n cache = privateGetter.call(this);\n this._cache.set(attr, cache);\n }\n return cache;\n }\n _calculate(name, deps, getter) {\n if (!this._attachedDepsListeners.get(name)) {\n const depsString = deps.map((dep) => dep + 'Change.konva').join(SPACE);\n this.on(depsString, () => {\n this._clearCache(name);\n });\n this._attachedDepsListeners.set(name, true);\n }\n return this._getCache(name, getter);\n }\n _getCanvasCache() {\n return this._cache.get(CANVAS);\n }\n _clearSelfAndDescendantCache(attr) {\n this._clearCache(attr);\n if (attr === ABSOLUTE_TRANSFORM) {\n this.fire('absoluteTransformChange');\n }\n }\n clearCache() {\n if (this._cache.has(CANVAS)) {\n const { scene, filter, hit } = this._cache.get(CANVAS);\n Util.releaseCanvas(scene, filter, hit);\n this._cache.delete(CANVAS);\n }\n this._clearSelfAndDescendantCache();\n this._requestDraw();\n return this;\n }\n cache(config) {\n var conf = config || {};\n var rect = {};\n if (conf.x === undefined ||\n conf.y === undefined ||\n conf.width === undefined ||\n conf.height === undefined) {\n rect = this.getClientRect({\n skipTransform: true,\n relativeTo: this.getParent(),\n });\n }\n var width = Math.ceil(conf.width || rect.width), height = Math.ceil(conf.height || rect.height), pixelRatio = conf.pixelRatio, x = conf.x === undefined ? Math.floor(rect.x) : conf.x, y = conf.y === undefined ? Math.floor(rect.y) : conf.y, offset = conf.offset || 0, drawBorder = conf.drawBorder || false, hitCanvasPixelRatio = conf.hitCanvasPixelRatio || 1;\n if (!width || !height) {\n Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');\n return;\n }\n width += offset * 2 + 1;\n height += offset * 2 + 1;\n x -= offset;\n y -= offset;\n var cachedSceneCanvas = new SceneCanvas({\n pixelRatio: pixelRatio,\n width: width,\n height: height,\n }), cachedFilterCanvas = new SceneCanvas({\n pixelRatio: pixelRatio,\n width: 0,\n height: 0,\n }), cachedHitCanvas = new HitCanvas({\n pixelRatio: hitCanvasPixelRatio,\n width: width,\n height: height,\n }), sceneContext = cachedSceneCanvas.getContext(), hitContext = cachedHitCanvas.getContext();\n cachedHitCanvas.isCache = true;\n cachedSceneCanvas.isCache = true;\n this._cache.delete(CANVAS);\n this._filterUpToDate = false;\n if (conf.imageSmoothingEnabled === false) {\n cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;\n cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;\n }\n sceneContext.save();\n hitContext.save();\n sceneContext.translate(-x, -y);\n hitContext.translate(-x, -y);\n this._isUnderCache = true;\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this.drawScene(cachedSceneCanvas, this);\n this.drawHit(cachedHitCanvas, this);\n this._isUnderCache = false;\n sceneContext.restore();\n hitContext.restore();\n if (drawBorder) {\n sceneContext.save();\n sceneContext.beginPath();\n sceneContext.rect(0, 0, width, height);\n sceneContext.closePath();\n sceneContext.setAttr('strokeStyle', 'red');\n sceneContext.setAttr('lineWidth', 5);\n sceneContext.stroke();\n sceneContext.restore();\n }\n this._cache.set(CANVAS, {\n scene: cachedSceneCanvas,\n filter: cachedFilterCanvas,\n hit: cachedHitCanvas,\n x: x,\n y: y,\n });\n this._requestDraw();\n return this;\n }\n isCached() {\n return this._cache.has(CANVAS);\n }\n getClientRect(config) {\n throw new Error('abstract \"getClientRect\" method call');\n }\n _transformedRect(rect, top) {\n var points = [\n { x: rect.x, y: rect.y },\n { x: rect.x + rect.width, y: rect.y },\n { x: rect.x + rect.width, y: rect.y + rect.height },\n { x: rect.x, y: rect.y + rect.height },\n ];\n var minX, minY, maxX, maxY;\n var trans = this.getAbsoluteTransform(top);\n points.forEach(function (point) {\n var transformed = trans.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n _drawCachedSceneCanvas(context) {\n context.save();\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n const canvasCache = this._getCanvasCache();\n context.translate(canvasCache.x, canvasCache.y);\n var cacheCanvas = this._getCachedSceneCanvas();\n var ratio = cacheCanvas.pixelRatio;\n context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);\n context.restore();\n }\n _drawCachedHitCanvas(context) {\n var canvasCache = this._getCanvasCache(), hitCanvas = canvasCache.hit;\n context.save();\n context.translate(canvasCache.x, canvasCache.y);\n context.drawImage(hitCanvas._canvas, 0, 0, hitCanvas.width / hitCanvas.pixelRatio, hitCanvas.height / hitCanvas.pixelRatio);\n context.restore();\n }\n _getCachedSceneCanvas() {\n var filters = this.filters(), cachedCanvas = this._getCanvasCache(), sceneCanvas = cachedCanvas.scene, filterCanvas = cachedCanvas.filter, filterContext = filterCanvas.getContext(), len, imageData, n, filter;\n if (filters) {\n if (!this._filterUpToDate) {\n var ratio = sceneCanvas.pixelRatio;\n filterCanvas.setSize(sceneCanvas.width / sceneCanvas.pixelRatio, sceneCanvas.height / sceneCanvas.pixelRatio);\n try {\n len = filters.length;\n filterContext.clear();\n filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);\n imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());\n for (n = 0; n < len; n++) {\n filter = filters[n];\n if (typeof filter !== 'function') {\n Util.error('Filter should be type of function, but got ' +\n typeof filter +\n ' instead. Please check correct filters');\n continue;\n }\n filter.call(this, imageData);\n filterContext.putImageData(imageData, 0, 0);\n }\n }\n catch (e) {\n Util.error('Unable to apply filter. ' +\n e.message +\n ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');\n }\n this._filterUpToDate = true;\n }\n return filterCanvas;\n }\n return sceneCanvas;\n }\n on(evtStr, handler) {\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (arguments.length === 3) {\n return this._delegate.apply(this, arguments);\n }\n var events = evtStr.split(SPACE), len = events.length, n, event, parts, baseEvent, name;\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1] || '';\n if (!this.eventListeners[baseEvent]) {\n this.eventListeners[baseEvent] = [];\n }\n this.eventListeners[baseEvent].push({\n name: name,\n handler: handler,\n });\n }\n return this;\n }\n off(evtStr, callback) {\n var events = (evtStr || '').split(SPACE), len = events.length, n, t, event, parts, baseEvent, name;\n this._cache && this._cache.delete(ALL_LISTENERS);\n if (!evtStr) {\n for (t in this.eventListeners) {\n this._off(t);\n }\n }\n for (n = 0; n < len; n++) {\n event = events[n];\n parts = event.split('.');\n baseEvent = parts[0];\n name = parts[1];\n if (baseEvent) {\n if (this.eventListeners[baseEvent]) {\n this._off(baseEvent, name, callback);\n }\n }\n else {\n for (t in this.eventListeners) {\n this._off(t, name, callback);\n }\n }\n }\n return this;\n }\n dispatchEvent(evt) {\n var e = {\n target: this,\n type: evt.type,\n evt: evt,\n };\n this.fire(evt.type, e);\n return this;\n }\n addEventListener(type, handler) {\n this.on(type, function (evt) {\n handler.call(this, evt.evt);\n });\n return this;\n }\n removeEventListener(type) {\n this.off(type);\n return this;\n }\n _delegate(event, selector, handler) {\n var stopNode = this;\n this.on(event, function (evt) {\n var targets = evt.target.findAncestors(selector, true, stopNode);\n for (var i = 0; i < targets.length; i++) {\n evt = Util.cloneObject(evt);\n evt.currentTarget = targets[i];\n handler.call(targets[i], evt);\n }\n });\n }\n remove() {\n if (this.isDragging()) {\n this.stopDrag();\n }\n DD._dragElements.delete(this._id);\n this._remove();\n return this;\n }\n _clearCaches() {\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);\n this._clearSelfAndDescendantCache(STAGE);\n this._clearSelfAndDescendantCache(VISIBLE);\n this._clearSelfAndDescendantCache(LISTENING);\n }\n _remove() {\n this._clearCaches();\n var parent = this.getParent();\n if (parent && parent.children) {\n parent.children.splice(this.index, 1);\n parent._setChildrenIndices();\n this.parent = null;\n }\n }\n destroy() {\n this.remove();\n this.clearCache();\n return this;\n }\n getAttr(attr) {\n var method = 'get' + Util._capitalize(attr);\n if (Util._isFunction(this[method])) {\n return this[method]();\n }\n return this.attrs[attr];\n }\n getAncestors() {\n var parent = this.getParent(), ancestors = [];\n while (parent) {\n ancestors.push(parent);\n parent = parent.getParent();\n }\n return ancestors;\n }\n getAttrs() {\n return this.attrs || {};\n }\n setAttrs(config) {\n this._batchTransformChanges(() => {\n var key, method;\n if (!config) {\n return this;\n }\n for (key in config) {\n if (key === CHILDREN) {\n continue;\n }\n method = SET + Util._capitalize(key);\n if (Util._isFunction(this[method])) {\n this[method](config[key]);\n }\n else {\n this._setAttr(key, config[key]);\n }\n }\n });\n return this;\n }\n isListening() {\n return this._getCache(LISTENING, this._isListening);\n }\n _isListening(relativeTo) {\n const listening = this.listening();\n if (!listening) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isListening(relativeTo);\n }\n else {\n return true;\n }\n }\n isVisible() {\n return this._getCache(VISIBLE, this._isVisible);\n }\n _isVisible(relativeTo) {\n const visible = this.visible();\n if (!visible) {\n return false;\n }\n const parent = this.getParent();\n if (parent && parent !== relativeTo && this !== relativeTo) {\n return parent._isVisible(relativeTo);\n }\n else {\n return true;\n }\n }\n shouldDrawHit(top, skipDragCheck = false) {\n if (top) {\n return this._isVisible(top) && this._isListening(top);\n }\n var layer = this.getLayer();\n var layerUnderDrag = false;\n DD._dragElements.forEach((elem) => {\n if (elem.dragStatus !== 'dragging') {\n return;\n }\n else if (elem.node.nodeType === 'Stage') {\n layerUnderDrag = true;\n }\n else if (elem.node.getLayer() === layer) {\n layerUnderDrag = true;\n }\n });\n var dragSkip = !skipDragCheck && !Konva.hitOnDragEnabled && layerUnderDrag;\n return this.isListening() && this.isVisible() && !dragSkip;\n }\n show() {\n this.visible(true);\n return this;\n }\n hide() {\n this.visible(false);\n return this;\n }\n getZIndex() {\n return this.index || 0;\n }\n getAbsoluteZIndex() {\n var depth = this.getDepth(), that = this, index = 0, nodes, len, n, child;\n function addChildren(children) {\n nodes = [];\n len = children.length;\n for (n = 0; n < len; n++) {\n child = children[n];\n index++;\n if (child.nodeType !== SHAPE) {\n nodes = nodes.concat(child.getChildren().slice());\n }\n if (child._id === that._id) {\n n = len;\n }\n }\n if (nodes.length > 0 && nodes[0].getDepth() <= depth) {\n addChildren(nodes);\n }\n }\n if (that.nodeType !== UPPER_STAGE) {\n addChildren(that.getStage().getChildren());\n }\n return index;\n }\n getDepth() {\n var depth = 0, parent = this.parent;\n while (parent) {\n depth++;\n parent = parent.parent;\n }\n return depth;\n }\n _batchTransformChanges(func) {\n this._batchingTransformChange = true;\n func();\n this._batchingTransformChange = false;\n if (this._needClearTransformCache) {\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n }\n this._needClearTransformCache = false;\n }\n setPosition(pos) {\n this._batchTransformChanges(() => {\n this.x(pos.x);\n this.y(pos.y);\n });\n return this;\n }\n getPosition() {\n return {\n x: this.x(),\n y: this.y(),\n };\n }\n getRelativePointerPosition() {\n if (!this.getStage()) {\n return null;\n }\n var pos = this.getStage().getPointerPosition();\n if (!pos) {\n return null;\n }\n var transform = this.getAbsoluteTransform().copy();\n transform.invert();\n return transform.point(pos);\n }\n getAbsolutePosition(top) {\n let haveCachedParent = false;\n let parent = this.parent;\n while (parent) {\n if (parent.isCached()) {\n haveCachedParent = true;\n break;\n }\n parent = parent.parent;\n }\n if (haveCachedParent && !top) {\n top = true;\n }\n var absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(), absoluteTransform = new Transform(), offset = this.offset();\n absoluteTransform.m = absoluteMatrix.slice();\n absoluteTransform.translate(offset.x, offset.y);\n return absoluteTransform.getTranslation();\n }\n setAbsolutePosition(pos) {\n var origTrans = this._clearTransform();\n this.attrs.x = origTrans.x;\n this.attrs.y = origTrans.y;\n delete origTrans.x;\n delete origTrans.y;\n this._clearCache(TRANSFORM);\n var it = this._getAbsoluteTransform().copy();\n it.invert();\n it.translate(pos.x, pos.y);\n pos = {\n x: this.attrs.x + it.getTranslation().x,\n y: this.attrs.y + it.getTranslation().y,\n };\n this._setTransform(origTrans);\n this.setPosition({ x: pos.x, y: pos.y });\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n return this;\n }\n _setTransform(trans) {\n var key;\n for (key in trans) {\n this.attrs[key] = trans[key];\n }\n }\n _clearTransform() {\n var trans = {\n x: this.x(),\n y: this.y(),\n rotation: this.rotation(),\n scaleX: this.scaleX(),\n scaleY: this.scaleY(),\n offsetX: this.offsetX(),\n offsetY: this.offsetY(),\n skewX: this.skewX(),\n skewY: this.skewY(),\n };\n this.attrs.x = 0;\n this.attrs.y = 0;\n this.attrs.rotation = 0;\n this.attrs.scaleX = 1;\n this.attrs.scaleY = 1;\n this.attrs.offsetX = 0;\n this.attrs.offsetY = 0;\n this.attrs.skewX = 0;\n this.attrs.skewY = 0;\n return trans;\n }\n move(change) {\n var changeX = change.x, changeY = change.y, x = this.x(), y = this.y();\n if (changeX !== undefined) {\n x += changeX;\n }\n if (changeY !== undefined) {\n y += changeY;\n }\n this.setPosition({ x: x, y: y });\n return this;\n }\n _eachAncestorReverse(func, top) {\n var family = [], parent = this.getParent(), len, n;\n if (top && top._id === this._id) {\n return;\n }\n family.unshift(this);\n while (parent && (!top || parent._id !== top._id)) {\n family.unshift(parent);\n parent = parent.parent;\n }\n len = family.length;\n for (n = 0; n < len; n++) {\n func(family[n]);\n }\n }\n rotate(theta) {\n this.rotation(this.rotation() + theta);\n return this;\n }\n moveToTop() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveToTop function is ignored.');\n return false;\n }\n var index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.push(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveUp() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveUp function is ignored.');\n return false;\n }\n var index = this.index, len = this.parent.getChildren().length;\n if (index < len - 1) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index + 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveDown() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveDown function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.splice(index - 1, 0, this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (!this.parent) {\n Util.warn('Node has no parent. moveToBottom function is ignored.');\n return false;\n }\n var index = this.index;\n if (index > 0) {\n this.parent.children.splice(index, 1);\n this.parent.children.unshift(this);\n this.parent._setChildrenIndices();\n return true;\n }\n return false;\n }\n setZIndex(zIndex) {\n if (!this.parent) {\n Util.warn('Node has no parent. zIndex parameter is ignored.');\n return this;\n }\n if (zIndex < 0 || zIndex >= this.parent.children.length) {\n Util.warn('Unexpected value ' +\n zIndex +\n ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +\n (this.parent.children.length - 1) +\n '.');\n }\n var index = this.index;\n this.parent.children.splice(index, 1);\n this.parent.children.splice(zIndex, 0, this);\n this.parent._setChildrenIndices();\n return this;\n }\n getAbsoluteOpacity() {\n return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);\n }\n _getAbsoluteOpacity() {\n var absOpacity = this.opacity();\n var parent = this.getParent();\n if (parent && !parent._isUnderCache) {\n absOpacity *= parent.getAbsoluteOpacity();\n }\n return absOpacity;\n }\n moveTo(newContainer) {\n if (this.getParent() !== newContainer) {\n this._remove();\n newContainer.add(this);\n }\n return this;\n }\n toObject() {\n var obj = {}, attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;\n obj.attrs = {};\n for (key in attrs) {\n val = attrs[key];\n nonPlainObject =\n Util.isObject(val) && !Util._isPlainObject(val) && !Util._isArray(val);\n if (nonPlainObject) {\n continue;\n }\n getter = typeof this[key] === 'function' && this[key];\n delete attrs[key];\n defaultValue = getter ? getter.call(this) : null;\n attrs[key] = val;\n if (defaultValue !== val) {\n obj.attrs[key] = val;\n }\n }\n obj.className = this.getClassName();\n return Util._prepareToStringify(obj);\n }\n toJSON() {\n return JSON.stringify(this.toObject());\n }\n getParent() {\n return this.parent;\n }\n findAncestors(selector, includeSelf, stopNode) {\n var res = [];\n if (includeSelf && this._isMatch(selector)) {\n res.push(this);\n }\n var ancestor = this.parent;\n while (ancestor) {\n if (ancestor === stopNode) {\n return res;\n }\n if (ancestor._isMatch(selector)) {\n res.push(ancestor);\n }\n ancestor = ancestor.parent;\n }\n return res;\n }\n isAncestorOf(node) {\n return false;\n }\n findAncestor(selector, includeSelf, stopNode) {\n return this.findAncestors(selector, includeSelf, stopNode)[0];\n }\n _isMatch(selector) {\n if (!selector) {\n return false;\n }\n if (typeof selector === 'function') {\n return selector(this);\n }\n var selectorArr = selector.replace(/ /g, '').split(','), len = selectorArr.length, n, sel;\n for (n = 0; n < len; n++) {\n sel = selectorArr[n];\n if (!Util.isValidSelector(sel)) {\n Util.warn('Selector \"' +\n sel +\n '\" is invalid. Allowed selectors examples are \"#foo\", \".bar\" or \"Group\".');\n Util.warn('If you have a custom shape with such className, please change it to start with upper letter like \"Triangle\".');\n Util.warn('Konva is awesome, right?');\n }\n if (sel.charAt(0) === '#') {\n if (this.id() === sel.slice(1)) {\n return true;\n }\n }\n else if (sel.charAt(0) === '.') {\n if (this.hasName(sel.slice(1))) {\n return true;\n }\n }\n else if (this.className === sel || this.nodeType === sel) {\n return true;\n }\n }\n return false;\n }\n getLayer() {\n var parent = this.getParent();\n return parent ? parent.getLayer() : null;\n }\n getStage() {\n return this._getCache(STAGE, this._getStage);\n }\n _getStage() {\n var parent = this.getParent();\n if (parent) {\n return parent.getStage();\n }\n else {\n return undefined;\n }\n }\n fire(eventType, evt = {}, bubble) {\n evt.target = evt.target || this;\n if (bubble) {\n this._fireAndBubble(eventType, evt);\n }\n else {\n this._fire(eventType, evt);\n }\n return this;\n }\n getAbsoluteTransform(top) {\n if (top) {\n return this._getAbsoluteTransform(top);\n }\n else {\n return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);\n }\n }\n _getAbsoluteTransform(top) {\n var at;\n if (top) {\n at = new Transform();\n this._eachAncestorReverse(function (node) {\n var transformsEnabled = node.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(node.getTransform());\n }\n else if (transformsEnabled === 'position') {\n at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());\n }\n }, top);\n return at;\n }\n else {\n at = this._cache.get(ABSOLUTE_TRANSFORM) || new Transform();\n if (this.parent) {\n this.parent.getAbsoluteTransform().copyInto(at);\n }\n else {\n at.reset();\n }\n var transformsEnabled = this.transformsEnabled();\n if (transformsEnabled === 'all') {\n at.multiply(this.getTransform());\n }\n else if (transformsEnabled === 'position') {\n const x = this.attrs.x || 0;\n const y = this.attrs.y || 0;\n const offsetX = this.attrs.offsetX || 0;\n const offsetY = this.attrs.offsetY || 0;\n at.translate(x - offsetX, y - offsetY);\n }\n at.dirty = false;\n return at;\n }\n }\n getAbsoluteScale(top) {\n var parent = this;\n while (parent) {\n if (parent._isUnderCache) {\n top = parent;\n }\n parent = parent.getParent();\n }\n const transform = this.getAbsoluteTransform(top);\n const attrs = transform.decompose();\n return {\n x: attrs.scaleX,\n y: attrs.scaleY,\n };\n }\n getAbsoluteRotation() {\n return this.getAbsoluteTransform().decompose().rotation;\n }\n getTransform() {\n return this._getCache(TRANSFORM, this._getTransform);\n }\n _getTransform() {\n var _a, _b;\n var m = this._cache.get(TRANSFORM) || new Transform();\n m.reset();\n var x = this.x(), y = this.y(), rotation = Konva.getAngle(this.rotation()), scaleX = (_a = this.attrs.scaleX) !== null && _a !== void 0 ? _a : 1, scaleY = (_b = this.attrs.scaleY) !== null && _b !== void 0 ? _b : 1, skewX = this.attrs.skewX || 0, skewY = this.attrs.skewY || 0, offsetX = this.attrs.offsetX || 0, offsetY = this.attrs.offsetY || 0;\n if (x !== 0 || y !== 0) {\n m.translate(x, y);\n }\n if (rotation !== 0) {\n m.rotate(rotation);\n }\n if (skewX !== 0 || skewY !== 0) {\n m.skew(skewX, skewY);\n }\n if (scaleX !== 1 || scaleY !== 1) {\n m.scale(scaleX, scaleY);\n }\n if (offsetX !== 0 || offsetY !== 0) {\n m.translate(-1 * offsetX, -1 * offsetY);\n }\n m.dirty = false;\n return m;\n }\n clone(obj) {\n var attrs = Util.cloneObject(this.attrs), key, allListeners, len, n, listener;\n for (key in obj) {\n attrs[key] = obj[key];\n }\n var node = new this.constructor(attrs);\n for (key in this.eventListeners) {\n allListeners = this.eventListeners[key];\n len = allListeners.length;\n for (n = 0; n < len; n++) {\n listener = allListeners[n];\n if (listener.name.indexOf(KONVA) < 0) {\n if (!node.eventListeners[key]) {\n node.eventListeners[key] = [];\n }\n node.eventListeners[key].push(listener);\n }\n }\n }\n return node;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n var box = this.getClientRect();\n var stage = this.getStage(), x = config.x !== undefined ? config.x : Math.floor(box.x), y = config.y !== undefined ? config.y : Math.floor(box.y), pixelRatio = config.pixelRatio || 1, canvas = new SceneCanvas({\n width: config.width || Math.ceil(box.width) || (stage ? stage.width() : 0),\n height: config.height ||\n Math.ceil(box.height) ||\n (stage ? stage.height() : 0),\n pixelRatio: pixelRatio,\n }), context = canvas.getContext();\n if (config.imageSmoothingEnabled === false) {\n context._context.imageSmoothingEnabled = false;\n }\n context.save();\n if (x || y) {\n context.translate(-1 * x, -1 * y);\n }\n this.drawScene(canvas);\n context.restore();\n return canvas;\n }\n toCanvas(config) {\n return this._toKonvaCanvas(config)._canvas;\n }\n toDataURL(config) {\n config = config || {};\n var mimeType = config.mimeType || null, quality = config.quality || null;\n var url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);\n if (config.callback) {\n config.callback(url);\n }\n return url;\n }\n toImage(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n Util._urlToImage(this.toDataURL(config), function (img) {\n resolve(img);\n callback === null || callback === void 0 ? void 0 : callback(img);\n });\n }\n catch (err) {\n reject(err);\n }\n });\n }\n toBlob(config) {\n return new Promise((resolve, reject) => {\n try {\n const callback = config === null || config === void 0 ? void 0 : config.callback;\n if (callback)\n delete config.callback;\n this.toCanvas(config).toBlob((blob) => {\n resolve(blob);\n callback === null || callback === void 0 ? void 0 : callback(blob);\n });\n }\n catch (err) {\n reject(err);\n }\n });\n }\n setSize(size) {\n this.width(size.width);\n this.height(size.height);\n return this;\n }\n getSize() {\n return {\n width: this.width(),\n height: this.height(),\n };\n }\n getClassName() {\n return this.className || this.nodeType;\n }\n getType() {\n return this.nodeType;\n }\n getDragDistance() {\n if (this.attrs.dragDistance !== undefined) {\n return this.attrs.dragDistance;\n }\n else if (this.parent) {\n return this.parent.getDragDistance();\n }\n else {\n return Konva.dragDistance;\n }\n }\n _off(type, name, callback) {\n var evtListeners = this.eventListeners[type], i, evtName, handler;\n for (i = 0; i < evtListeners.length; i++) {\n evtName = evtListeners[i].name;\n handler = evtListeners[i].handler;\n if ((evtName !== 'konva' || name === 'konva') &&\n (!name || evtName === name) &&\n (!callback || callback === handler)) {\n evtListeners.splice(i, 1);\n if (evtListeners.length === 0) {\n delete this.eventListeners[type];\n break;\n }\n i--;\n }\n }\n }\n _fireChangeEvent(attr, oldVal, newVal) {\n this._fire(attr + CHANGE, {\n oldVal: oldVal,\n newVal: newVal,\n });\n }\n addName(name) {\n if (!this.hasName(name)) {\n var oldName = this.name();\n var newName = oldName ? oldName + ' ' + name : name;\n this.name(newName);\n }\n return this;\n }\n hasName(name) {\n if (!name) {\n return false;\n }\n const fullName = this.name();\n if (!fullName) {\n return false;\n }\n var names = (fullName || '').split(/\\s/g);\n return names.indexOf(name) !== -1;\n }\n removeName(name) {\n var names = (this.name() || '').split(/\\s/g);\n var index = names.indexOf(name);\n if (index !== -1) {\n names.splice(index, 1);\n this.name(names.join(' '));\n }\n return this;\n }\n setAttr(attr, val) {\n var func = this[SET + Util._capitalize(attr)];\n if (Util._isFunction(func)) {\n func.call(this, val);\n }\n else {\n this._setAttr(attr, val);\n }\n return this;\n }\n _requestDraw() {\n if (Konva.autoDrawEnabled) {\n const drawNode = this.getLayer() || this.getStage();\n drawNode === null || drawNode === void 0 ? void 0 : drawNode.batchDraw();\n }\n }\n _setAttr(key, val) {\n var oldVal = this.attrs[key];\n if (oldVal === val && !Util.isObject(val)) {\n return;\n }\n if (val === undefined || val === null) {\n delete this.attrs[key];\n }\n else {\n this.attrs[key] = val;\n }\n if (this._shouldFireChangeEvents) {\n this._fireChangeEvent(key, oldVal, val);\n }\n this._requestDraw();\n }\n _setComponentAttr(key, component, val) {\n var oldVal;\n if (val !== undefined) {\n oldVal = this.attrs[key];\n if (!oldVal) {\n this.attrs[key] = this.getAttr(key);\n }\n this.attrs[key][component] = val;\n this._fireChangeEvent(key, oldVal, val);\n }\n }\n _fireAndBubble(eventType, evt, compareShape) {\n if (evt && this.nodeType === SHAPE) {\n evt.target = this;\n }\n var shouldStop = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n ((compareShape &&\n (this === compareShape ||\n (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||\n (this.nodeType === 'Stage' && !compareShape));\n if (!shouldStop) {\n this._fire(eventType, evt);\n var stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&\n compareShape &&\n compareShape.isAncestorOf &&\n compareShape.isAncestorOf(this) &&\n !compareShape.isAncestorOf(this.parent);\n if (((evt && !evt.cancelBubble) || !evt) &&\n this.parent &&\n this.parent.isListening() &&\n !stopBubble) {\n if (compareShape && compareShape.parent) {\n this._fireAndBubble.call(this.parent, eventType, evt, compareShape);\n }\n else {\n this._fireAndBubble.call(this.parent, eventType, evt);\n }\n }\n }\n }\n _getProtoListeners(eventType) {\n let listeners = this._cache.get(ALL_LISTENERS);\n if (!listeners) {\n listeners = {};\n let obj = Object.getPrototypeOf(this);\n while (obj) {\n if (!obj.eventListeners) {\n obj = Object.getPrototypeOf(obj);\n continue;\n }\n for (var event in obj.eventListeners) {\n const newEvents = obj.eventListeners[event];\n const oldEvents = listeners[event] || [];\n listeners[event] = newEvents.concat(oldEvents);\n }\n obj = Object.getPrototypeOf(obj);\n }\n this._cache.set(ALL_LISTENERS, listeners);\n }\n return listeners[eventType];\n }\n _fire(eventType, evt) {\n evt = evt || {};\n evt.currentTarget = this;\n evt.type = eventType;\n const topListeners = this._getProtoListeners(eventType);\n if (topListeners) {\n for (var i = 0; i < topListeners.length; i++) {\n topListeners[i].handler.call(this, evt);\n }\n }\n const selfListeners = this.eventListeners[eventType];\n if (selfListeners) {\n for (var i = 0; i < selfListeners.length; i++) {\n selfListeners[i].handler.call(this, evt);\n }\n }\n }\n draw() {\n this.drawScene();\n this.drawHit();\n return this;\n }\n _createDragElement(evt) {\n var pointerId = evt ? evt.pointerId : undefined;\n var stage = this.getStage();\n var ap = this.getAbsolutePosition();\n var pos = stage._getPointerById(pointerId) ||\n stage._changedPointerPositions[0] ||\n ap;\n DD._dragElements.set(this._id, {\n node: this,\n startPointerPos: pos,\n offset: {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n },\n dragStatus: 'ready',\n pointerId,\n });\n }\n startDrag(evt, bubbleEvent = true) {\n if (!DD._dragElements.has(this._id)) {\n this._createDragElement(evt);\n }\n const elem = DD._dragElements.get(this._id);\n elem.dragStatus = 'dragging';\n this.fire('dragstart', {\n type: 'dragstart',\n target: this,\n evt: evt && evt.evt,\n }, bubbleEvent);\n }\n _setDragPosition(evt, elem) {\n const pos = this.getStage()._getPointerById(elem.pointerId);\n if (!pos) {\n return;\n }\n var newNodePos = {\n x: pos.x - elem.offset.x,\n y: pos.y - elem.offset.y,\n };\n var dbf = this.dragBoundFunc();\n if (dbf !== undefined) {\n const bounded = dbf.call(this, newNodePos, evt);\n if (!bounded) {\n Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');\n }\n else {\n newNodePos = bounded;\n }\n }\n if (!this._lastPos ||\n this._lastPos.x !== newNodePos.x ||\n this._lastPos.y !== newNodePos.y) {\n this.setAbsolutePosition(newNodePos);\n this._requestDraw();\n }\n this._lastPos = newNodePos;\n }\n stopDrag(evt) {\n const elem = DD._dragElements.get(this._id);\n if (elem) {\n elem.dragStatus = 'stopped';\n }\n DD._endDragBefore(evt);\n DD._endDragAfter(evt);\n }\n setDraggable(draggable) {\n this._setAttr('draggable', draggable);\n this._dragChange();\n }\n isDragging() {\n const elem = DD._dragElements.get(this._id);\n return elem ? elem.dragStatus === 'dragging' : false;\n }\n _listenDrag() {\n this._dragCleanup();\n this.on('mousedown.konva touchstart.konva', function (evt) {\n var shouldCheckButton = evt.evt['button'] !== undefined;\n var canDrag = !shouldCheckButton || Konva.dragButtons.indexOf(evt.evt['button']) >= 0;\n if (!canDrag) {\n return;\n }\n if (this.isDragging()) {\n return;\n }\n var hasDraggingChild = false;\n DD._dragElements.forEach((elem) => {\n if (this.isAncestorOf(elem.node)) {\n hasDraggingChild = true;\n }\n });\n if (!hasDraggingChild) {\n this._createDragElement(evt);\n }\n });\n }\n _dragChange() {\n if (this.attrs.draggable) {\n this._listenDrag();\n }\n else {\n this._dragCleanup();\n var stage = this.getStage();\n if (!stage) {\n return;\n }\n const dragElement = DD._dragElements.get(this._id);\n const isDragging = dragElement && dragElement.dragStatus === 'dragging';\n const isReady = dragElement && dragElement.dragStatus === 'ready';\n if (isDragging) {\n this.stopDrag();\n }\n else if (isReady) {\n DD._dragElements.delete(this._id);\n }\n }\n }\n _dragCleanup() {\n this.off('mousedown.konva');\n this.off('touchstart.konva');\n }\n isClientRectOnScreen(margin = { x: 0, y: 0 }) {\n const stage = this.getStage();\n if (!stage) {\n return false;\n }\n const screenRect = {\n x: -margin.x,\n y: -margin.y,\n width: stage.width() + 2 * margin.x,\n height: stage.height() + 2 * margin.y,\n };\n return Util.haveIntersection(screenRect, this.getClientRect());\n }\n static create(data, container) {\n if (Util._isString(data)) {\n data = JSON.parse(data);\n }\n return this._createNode(data, container);\n }\n static _createNode(obj, container) {\n var className = Node.prototype.getClassName.call(obj), children = obj.children, no, len, n;\n if (container) {\n obj.attrs.container = container;\n }\n if (!Konva[className]) {\n Util.warn('Can not find a node with class name \"' +\n className +\n '\". Fallback to \"Shape\".');\n className = 'Shape';\n }\n const Class = Konva[className];\n no = new Class(obj.attrs);\n if (children) {\n len = children.length;\n for (n = 0; n < len; n++) {\n no.add(Node._createNode(children[n]));\n }\n }\n return no;\n }\n}\nNode.prototype.nodeType = 'Node';\nNode.prototype._attrsAffectingSize = [];\nNode.prototype.eventListeners = {};\nNode.prototype.on.call(Node.prototype, TRANSFORM_CHANGE_STR, function () {\n if (this._batchingTransformChange) {\n this._needClearTransformCache = true;\n return;\n }\n this._clearCache(TRANSFORM);\n this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);\n});\nNode.prototype.on.call(Node.prototype, 'visibleChange.konva', function () {\n this._clearSelfAndDescendantCache(VISIBLE);\n});\nNode.prototype.on.call(Node.prototype, 'listeningChange.konva', function () {\n this._clearSelfAndDescendantCache(LISTENING);\n});\nNode.prototype.on.call(Node.prototype, 'opacityChange.konva', function () {\n this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);\n});\nconst addGetterSetter = Factory.addGetterSetter;\naddGetterSetter(Node, 'zIndex');\naddGetterSetter(Node, 'absolutePosition');\naddGetterSetter(Node, 'position');\naddGetterSetter(Node, 'x', 0, getNumberValidator());\naddGetterSetter(Node, 'y', 0, getNumberValidator());\naddGetterSetter(Node, 'globalCompositeOperation', 'source-over', getStringValidator());\naddGetterSetter(Node, 'opacity', 1, getNumberValidator());\naddGetterSetter(Node, 'name', '', getStringValidator());\naddGetterSetter(Node, 'id', '', getStringValidator());\naddGetterSetter(Node, 'rotation', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);\naddGetterSetter(Node, 'scaleX', 1, getNumberValidator());\naddGetterSetter(Node, 'scaleY', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);\naddGetterSetter(Node, 'skewX', 0, getNumberValidator());\naddGetterSetter(Node, 'skewY', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);\naddGetterSetter(Node, 'offsetX', 0, getNumberValidator());\naddGetterSetter(Node, 'offsetY', 0, getNumberValidator());\naddGetterSetter(Node, 'dragDistance', null, getNumberValidator());\naddGetterSetter(Node, 'width', 0, getNumberValidator());\naddGetterSetter(Node, 'height', 0, getNumberValidator());\naddGetterSetter(Node, 'listening', true, getBooleanValidator());\naddGetterSetter(Node, 'preventDefault', true, getBooleanValidator());\naddGetterSetter(Node, 'filters', null, function (val) {\n this._filterUpToDate = false;\n return val;\n});\naddGetterSetter(Node, 'visible', true, getBooleanValidator());\naddGetterSetter(Node, 'transformsEnabled', 'all', getStringValidator());\naddGetterSetter(Node, 'size');\naddGetterSetter(Node, 'dragBoundFunc');\naddGetterSetter(Node, 'draggable', false, getBooleanValidator());\nFactory.backCompat(Node, {\n rotateDeg: 'rotate',\n setRotationDeg: 'setRotation',\n getRotationDeg: 'getRotation',\n});\n","import { Factory } from './Factory.js';\nimport { Node } from './Node.js';\nimport { getNumberValidator } from './Validators.js';\nexport class Container extends Node {\n constructor() {\n super(...arguments);\n this.children = [];\n }\n getChildren(filterFunc) {\n if (!filterFunc) {\n return this.children || [];\n }\n const children = this.children || [];\n var results = [];\n children.forEach(function (child) {\n if (filterFunc(child)) {\n results.push(child);\n }\n });\n return results;\n }\n hasChildren() {\n return this.getChildren().length > 0;\n }\n removeChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.remove();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n destroyChildren() {\n this.getChildren().forEach((child) => {\n child.parent = null;\n child.index = 0;\n child.destroy();\n });\n this.children = [];\n this._requestDraw();\n return this;\n }\n add(...children) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n var child = children[0];\n if (child.getParent()) {\n child.moveTo(this);\n return this;\n }\n this._validateAdd(child);\n child.index = this.getChildren().length;\n child.parent = this;\n child._clearCaches();\n this.getChildren().push(child);\n this._fire('add', {\n child: child,\n });\n this._requestDraw();\n return this;\n }\n destroy() {\n if (this.hasChildren()) {\n this.destroyChildren();\n }\n super.destroy();\n return this;\n }\n find(selector) {\n return this._generalFind(selector, false);\n }\n findOne(selector) {\n var result = this._generalFind(selector, true);\n return result.length > 0 ? result[0] : undefined;\n }\n _generalFind(selector, findOne) {\n var retArr = [];\n this._descendants((node) => {\n const valid = node._isMatch(selector);\n if (valid) {\n retArr.push(node);\n }\n if (valid && findOne) {\n return true;\n }\n return false;\n });\n return retArr;\n }\n _descendants(fn) {\n let shouldStop = false;\n const children = this.getChildren();\n for (const child of children) {\n shouldStop = fn(child);\n if (shouldStop) {\n return true;\n }\n if (!child.hasChildren()) {\n continue;\n }\n shouldStop = child._descendants(fn);\n if (shouldStop) {\n return true;\n }\n }\n return false;\n }\n toObject() {\n var obj = Node.prototype.toObject.call(this);\n obj.children = [];\n this.getChildren().forEach((child) => {\n obj.children.push(child.toObject());\n });\n return obj;\n }\n isAncestorOf(node) {\n var parent = node.getParent();\n while (parent) {\n if (parent._id === this._id) {\n return true;\n }\n parent = parent.getParent();\n }\n return false;\n }\n clone(obj) {\n var node = Node.prototype.clone.call(this, obj);\n this.getChildren().forEach(function (no) {\n node.add(no.clone());\n });\n return node;\n }\n getAllIntersections(pos) {\n var arr = [];\n this.find('Shape').forEach(function (shape) {\n if (shape.isVisible() && shape.intersects(pos)) {\n arr.push(shape);\n }\n });\n return arr;\n }\n _clearSelfAndDescendantCache(attr) {\n var _a;\n super._clearSelfAndDescendantCache(attr);\n if (this.isCached()) {\n return;\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (node) {\n node._clearSelfAndDescendantCache(attr);\n });\n }\n _setChildrenIndices() {\n var _a;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child, n) {\n child.index = n;\n });\n this._requestDraw();\n }\n drawScene(can, top) {\n var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;\n var caching = canvas && canvas.isCache;\n if (!this.isVisible() && !caching) {\n return this;\n }\n if (cachedSceneCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawScene', canvas, top);\n }\n return this;\n }\n drawHit(can, top) {\n if (!this.shouldDrawHit(top)) {\n return this;\n }\n var layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (cachedHitCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n }\n else {\n this._drawChildren('drawHit', canvas, top);\n }\n return this;\n }\n _drawChildren(drawMethod, canvas, top) {\n var _a;\n var context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (clipWidth && clipHeight) || clipFunc;\n const selfCache = top === this;\n if (hasClip) {\n context.save();\n var transform = this.getAbsoluteTransform(top);\n var m = transform.getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n context.beginPath();\n if (clipFunc) {\n clipFunc.call(this, context, this);\n }\n else {\n var clipX = this.clipX();\n var clipY = this.clipY();\n context.rect(clipX, clipY, clipWidth, clipHeight);\n }\n context.clip();\n m = transform.copy().invert().getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n var hasComposition = !selfCache &&\n this.globalCompositeOperation() !== 'source-over' &&\n drawMethod === 'drawScene';\n if (hasComposition) {\n context.save();\n context._applyGlobalCompositeOperation(this);\n }\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n child[drawMethod](canvas, top);\n });\n if (hasComposition) {\n context.restore();\n }\n if (hasClip) {\n context.restore();\n }\n }\n getClientRect(config) {\n var _a;\n config = config || {};\n var skipTransform = config.skipTransform;\n var relativeTo = config.relativeTo;\n var minX, minY, maxX, maxY;\n var selfRect = {\n x: Infinity,\n y: Infinity,\n width: 0,\n height: 0,\n };\n var that = this;\n (_a = this.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n if (!child.visible()) {\n return;\n }\n var rect = child.getClientRect({\n relativeTo: that,\n skipShadow: config.skipShadow,\n skipStroke: config.skipStroke,\n });\n if (rect.width === 0 && rect.height === 0) {\n return;\n }\n if (minX === undefined) {\n minX = rect.x;\n minY = rect.y;\n maxX = rect.x + rect.width;\n maxY = rect.y + rect.height;\n }\n else {\n minX = Math.min(minX, rect.x);\n minY = Math.min(minY, rect.y);\n maxX = Math.max(maxX, rect.x + rect.width);\n maxY = Math.max(maxY, rect.y + rect.height);\n }\n });\n var shapes = this.find('Shape');\n var hasVisible = false;\n for (var i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (shape._isVisible(this)) {\n hasVisible = true;\n break;\n }\n }\n if (hasVisible && minX !== undefined) {\n selfRect = {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n else {\n selfRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n if (!skipTransform) {\n return this._transformedRect(selfRect, relativeTo);\n }\n return selfRect;\n }\n}\nFactory.addComponentsGetterSetter(Container, 'clip', [\n 'x',\n 'y',\n 'width',\n 'height',\n]);\nFactory.addGetterSetter(Container, 'clipX', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipY', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipWidth', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipHeight', undefined, getNumberValidator());\nFactory.addGetterSetter(Container, 'clipFunc');\n","import { Konva } from './Global.js';\nconst Captures = new Map();\nconst SUPPORT_POINTER_EVENTS = Konva._global['PointerEvent'] !== undefined;\nexport function getCapturedShape(pointerId) {\n return Captures.get(pointerId);\n}\nexport function createEvent(evt) {\n return {\n evt,\n pointerId: evt.pointerId,\n };\n}\nexport function hasPointerCapture(pointerId, shape) {\n return Captures.get(pointerId) === shape;\n}\nexport function setPointerCapture(pointerId, shape) {\n releaseCapture(pointerId);\n const stage = shape.getStage();\n if (!stage)\n return;\n Captures.set(pointerId, shape);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));\n }\n}\nexport function releaseCapture(pointerId, target) {\n const shape = Captures.get(pointerId);\n if (!shape)\n return;\n const stage = shape.getStage();\n if (stage && stage.content) {\n }\n Captures.delete(pointerId);\n if (SUPPORT_POINTER_EVENTS) {\n shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));\n }\n}\n","import { Util } from './Util.js';\nimport { Factory } from './Factory.js';\nimport { Container } from './Container.js';\nimport { Konva } from './Global.js';\nimport { SceneCanvas, HitCanvas } from './Canvas.js';\nimport { DD } from './DragAndDrop.js';\nimport { _registerNode } from './Global.js';\nimport * as PointerEvents from './PointerEvents.js';\nvar STAGE = 'Stage', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup', POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', POINTEROUT = 'pointerout', POINTERLEAVE = 'pointerleave', POINTEROVER = 'pointerover', POINTERENTER = 'pointerenter', CONTEXTMENU = 'contextmenu', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TOUCHMOVE = 'touchmove', TOUCHCANCEL = 'touchcancel', WHEEL = 'wheel', MAX_LAYERS_NUMBER = 5, EVENTS = [\n [MOUSEENTER, '_pointerenter'],\n [MOUSEDOWN, '_pointerdown'],\n [MOUSEMOVE, '_pointermove'],\n [MOUSEUP, '_pointerup'],\n [MOUSELEAVE, '_pointerleave'],\n [TOUCHSTART, '_pointerdown'],\n [TOUCHMOVE, '_pointermove'],\n [TOUCHEND, '_pointerup'],\n [TOUCHCANCEL, '_pointercancel'],\n [MOUSEOVER, '_pointerover'],\n [WHEEL, '_wheel'],\n [CONTEXTMENU, '_contextmenu'],\n [POINTERDOWN, '_pointerdown'],\n [POINTERMOVE, '_pointermove'],\n [POINTERUP, '_pointerup'],\n [POINTERCANCEL, '_pointercancel'],\n [LOSTPOINTERCAPTURE, '_lostpointercapture'],\n];\nconst EVENTS_MAP = {\n mouse: {\n [POINTEROUT]: MOUSEOUT,\n [POINTERLEAVE]: MOUSELEAVE,\n [POINTEROVER]: MOUSEOVER,\n [POINTERENTER]: MOUSEENTER,\n [POINTERMOVE]: MOUSEMOVE,\n [POINTERDOWN]: MOUSEDOWN,\n [POINTERUP]: MOUSEUP,\n [POINTERCANCEL]: 'mousecancel',\n pointerclick: 'click',\n pointerdblclick: 'dblclick',\n },\n touch: {\n [POINTEROUT]: 'touchout',\n [POINTERLEAVE]: 'touchleave',\n [POINTEROVER]: 'touchover',\n [POINTERENTER]: 'touchenter',\n [POINTERMOVE]: TOUCHMOVE,\n [POINTERDOWN]: TOUCHSTART,\n [POINTERUP]: TOUCHEND,\n [POINTERCANCEL]: TOUCHCANCEL,\n pointerclick: 'tap',\n pointerdblclick: 'dbltap',\n },\n pointer: {\n [POINTEROUT]: POINTEROUT,\n [POINTERLEAVE]: POINTERLEAVE,\n [POINTEROVER]: POINTEROVER,\n [POINTERENTER]: POINTERENTER,\n [POINTERMOVE]: POINTERMOVE,\n [POINTERDOWN]: POINTERDOWN,\n [POINTERUP]: POINTERUP,\n [POINTERCANCEL]: POINTERCANCEL,\n pointerclick: 'pointerclick',\n pointerdblclick: 'pointerdblclick',\n },\n};\nconst getEventType = (type) => {\n if (type.indexOf('pointer') >= 0) {\n return 'pointer';\n }\n if (type.indexOf('touch') >= 0) {\n return 'touch';\n }\n return 'mouse';\n};\nconst getEventsMap = (eventType) => {\n const type = getEventType(eventType);\n if (type === 'pointer') {\n return Konva.pointerEventsEnabled && EVENTS_MAP.pointer;\n }\n if (type === 'touch') {\n return EVENTS_MAP.touch;\n }\n if (type === 'mouse') {\n return EVENTS_MAP.mouse;\n }\n};\nfunction checkNoClip(attrs = {}) {\n if (attrs.clipFunc || attrs.clipWidth || attrs.clipHeight) {\n Util.warn('Stage does not support clipping. Please use clip for Layers or Groups.');\n }\n return attrs;\n}\nconst NO_POINTERS_MESSAGE = `Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);`;\nexport const stages = [];\nexport class Stage extends Container {\n constructor(config) {\n super(checkNoClip(config));\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n this._buildDOM();\n this._bindContentEvents();\n stages.push(this);\n this.on('widthChange.konva heightChange.konva', this._resizeDOM);\n this.on('visibleChange.konva', this._checkVisibility);\n this.on('clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva', () => {\n checkNoClip(this.attrs);\n });\n this._checkVisibility();\n }\n _validateAdd(child) {\n const isLayer = child.getType() === 'Layer';\n const isFastLayer = child.getType() === 'FastLayer';\n const valid = isLayer || isFastLayer;\n if (!valid) {\n Util.throw('You may only add layers to the stage.');\n }\n }\n _checkVisibility() {\n if (!this.content) {\n return;\n }\n const style = this.visible() ? '' : 'none';\n this.content.style.display = style;\n }\n setContainer(container) {\n if (typeof container === STRING) {\n if (container.charAt(0) === '.') {\n var className = container.slice(1);\n container = document.getElementsByClassName(className)[0];\n }\n else {\n var id;\n if (container.charAt(0) !== '#') {\n id = container;\n }\n else {\n id = container.slice(1);\n }\n container = document.getElementById(id);\n }\n if (!container) {\n throw 'Can not find container in document with id ' + id;\n }\n }\n this._setAttr('container', container);\n if (this.content) {\n if (this.content.parentElement) {\n this.content.parentElement.removeChild(this.content);\n }\n container.appendChild(this.content);\n }\n return this;\n }\n shouldDrawHit() {\n return true;\n }\n clear() {\n var layers = this.children, len = layers.length, n;\n for (n = 0; n < len; n++) {\n layers[n].clear();\n }\n return this;\n }\n clone(obj) {\n if (!obj) {\n obj = {};\n }\n obj.container =\n typeof document !== 'undefined' && document.createElement('div');\n return Container.prototype.clone.call(this, obj);\n }\n destroy() {\n super.destroy();\n var content = this.content;\n if (content && Util._isInDocument(content)) {\n this.container().removeChild(content);\n }\n var index = stages.indexOf(this);\n if (index > -1) {\n stages.splice(index, 1);\n }\n Util.releaseCanvas(this.bufferCanvas._canvas, this.bufferHitCanvas._canvas);\n return this;\n }\n getPointerPosition() {\n const pos = this._pointerPositions[0] || this._changedPointerPositions[0];\n if (!pos) {\n Util.warn(NO_POINTERS_MESSAGE);\n return null;\n }\n return {\n x: pos.x,\n y: pos.y,\n };\n }\n _getPointerById(id) {\n return this._pointerPositions.find((p) => p.id === id);\n }\n getPointersPositions() {\n return this._pointerPositions;\n }\n getStage() {\n return this;\n }\n getContent() {\n return this.content;\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.x = config.x || 0;\n config.y = config.y || 0;\n config.width = config.width || this.width();\n config.height = config.height || this.height();\n var canvas = new SceneCanvas({\n width: config.width,\n height: config.height,\n pixelRatio: config.pixelRatio || 1,\n });\n var _context = canvas.getContext()._context;\n var layers = this.children;\n if (config.x || config.y) {\n _context.translate(-1 * config.x, -1 * config.y);\n }\n layers.forEach(function (layer) {\n if (!layer.isVisible()) {\n return;\n }\n var layerCanvas = layer._toKonvaCanvas(config);\n _context.drawImage(layerCanvas._canvas, config.x, config.y, layerCanvas.getWidth() / layerCanvas.getPixelRatio(), layerCanvas.getHeight() / layerCanvas.getPixelRatio());\n });\n return canvas;\n }\n getIntersection(pos) {\n if (!pos) {\n return null;\n }\n var layers = this.children, len = layers.length, end = len - 1, n;\n for (n = end; n >= 0; n--) {\n const shape = layers[n].getIntersection(pos);\n if (shape) {\n return shape;\n }\n }\n return null;\n }\n _resizeDOM() {\n var width = this.width();\n var height = this.height();\n if (this.content) {\n this.content.style.width = width + PX;\n this.content.style.height = height + PX;\n }\n this.bufferCanvas.setSize(width, height);\n this.bufferHitCanvas.setSize(width, height);\n this.children.forEach((layer) => {\n layer.setSize({ width, height });\n layer.draw();\n });\n }\n add(layer, ...rest) {\n if (arguments.length > 1) {\n for (var i = 0; i < arguments.length; i++) {\n this.add(arguments[i]);\n }\n return this;\n }\n super.add(layer);\n var length = this.children.length;\n if (length > MAX_LAYERS_NUMBER) {\n Util.warn('The stage has ' +\n length +\n ' layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.');\n }\n layer.setSize({ width: this.width(), height: this.height() });\n layer.draw();\n if (Konva.isBrowser) {\n this.content.appendChild(layer.canvas._canvas);\n }\n return this;\n }\n getParent() {\n return null;\n }\n getLayer() {\n return null;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n getLayers() {\n return this.children;\n }\n _bindContentEvents() {\n if (!Konva.isBrowser) {\n return;\n }\n EVENTS.forEach(([event, methodName]) => {\n this.content.addEventListener(event, (evt) => {\n this[methodName](evt);\n }, { passive: false });\n });\n }\n _pointerenter(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n this._fire(events.pointerenter, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n _pointerover(evt) {\n this.setPointersPositions(evt);\n const events = getEventsMap(evt.type);\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n _getTargetShape(evenType) {\n let shape = this[evenType + 'targetShape'];\n if (shape && !shape.getStage()) {\n shape = null;\n }\n return shape;\n }\n _pointerleave(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n var targetShape = this._getTargetShape(eventType);\n var eventsEnabled = !DD.isDragging || Konva.hitOnDragEnabled;\n if (targetShape && eventsEnabled) {\n targetShape._fireAndBubble(events.pointerout, { evt: evt });\n targetShape._fireAndBubble(events.pointerleave, { evt: evt });\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this[eventType + 'targetShape'] = null;\n }\n else if (eventsEnabled) {\n this._fire(events.pointerleave, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n this._fire(events.pointerout, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n this.pointerPos = undefined;\n this._pointerPositions = [];\n }\n _pointerdown(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n var triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n var shape = this.getIntersection(pos);\n DD.justDragged = false;\n Konva['_' + eventType + 'ListenClick'] = true;\n const hasShape = shape && shape.isListening();\n if (!hasShape) {\n return;\n }\n if (Konva.capturePointerEventsEnabled) {\n shape.setPointerCapture(pos.id);\n }\n this[eventType + 'ClickStartShape'] = shape;\n shape._fireAndBubble(events.pointerdown, {\n evt: evt,\n pointerId: pos.id,\n });\n triggeredOnShape = true;\n const isTouch = evt.type.indexOf('touch') >= 0;\n if (shape.preventDefault() && evt.cancelable && isTouch) {\n evt.preventDefault();\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerdown, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._pointerPositions[0].id,\n });\n }\n }\n _pointermove(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n if (DD.isDragging && DD.node.preventDefault() && evt.cancelable) {\n evt.preventDefault();\n }\n this.setPointersPositions(evt);\n var eventsEnabled = !DD.isDragging || Konva.hitOnDragEnabled;\n if (!eventsEnabled) {\n return;\n }\n var processedShapesIds = {};\n let triggeredOnShape = false;\n var targetShape = this._getTargetShape(eventType);\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n var differentTarget = targetShape !== shape;\n if (differentTarget && targetShape) {\n targetShape._fireAndBubble(events.pointerout, Object.assign({}, event), shape);\n targetShape._fireAndBubble(events.pointerleave, Object.assign({}, event), shape);\n }\n if (shape) {\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n if (differentTarget) {\n shape._fireAndBubble(events.pointerover, Object.assign({}, event), targetShape);\n shape._fireAndBubble(events.pointerenter, Object.assign({}, event), targetShape);\n this[eventType + 'targetShape'] = shape;\n }\n shape._fireAndBubble(events.pointermove, Object.assign({}, event));\n }\n else {\n if (targetShape) {\n this._fire(events.pointerover, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n this[eventType + 'targetShape'] = null;\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointermove, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n }\n _pointerup(evt) {\n const events = getEventsMap(evt.type);\n const eventType = getEventType(evt.type);\n if (!events) {\n return;\n }\n this.setPointersPositions(evt);\n const clickStartShape = this[eventType + 'ClickStartShape'];\n const clickEndShape = this[eventType + 'ClickEndShape'];\n var processedShapesIds = {};\n let triggeredOnShape = false;\n this._changedPointerPositions.forEach((pos) => {\n const shape = (PointerEvents.getCapturedShape(pos.id) ||\n this.getIntersection(pos));\n if (shape) {\n shape.releaseCapture(pos.id);\n if (processedShapesIds[shape._id]) {\n return;\n }\n processedShapesIds[shape._id] = true;\n }\n const pointerId = pos.id;\n const event = { evt: evt, pointerId };\n let fireDblClick = false;\n if (Konva['_' + eventType + 'InDblClickWindow']) {\n fireDblClick = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n else if (!DD.justDragged) {\n Konva['_' + eventType + 'InDblClickWindow'] = true;\n clearTimeout(this[eventType + 'DblTimeout']);\n }\n this[eventType + 'DblTimeout'] = setTimeout(function () {\n Konva['_' + eventType + 'InDblClickWindow'] = false;\n }, Konva.dblClickWindow);\n if (shape && shape.isListening()) {\n triggeredOnShape = true;\n this[eventType + 'ClickEndShape'] = shape;\n shape._fireAndBubble(events.pointerup, Object.assign({}, event));\n if (Konva['_' + eventType + 'ListenClick'] &&\n clickStartShape &&\n clickStartShape === shape) {\n shape._fireAndBubble(events.pointerclick, Object.assign({}, event));\n if (fireDblClick && clickEndShape && clickEndShape === shape) {\n shape._fireAndBubble(events.pointerdblclick, Object.assign({}, event));\n }\n }\n }\n else {\n this[eventType + 'ClickEndShape'] = null;\n if (Konva['_' + eventType + 'ListenClick']) {\n this._fire(events.pointerclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n if (fireDblClick) {\n this._fire(events.pointerdblclick, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId,\n });\n }\n }\n });\n if (!triggeredOnShape) {\n this._fire(events.pointerup, {\n evt: evt,\n target: this,\n currentTarget: this,\n pointerId: this._changedPointerPositions[0].id,\n });\n }\n Konva['_' + eventType + 'ListenClick'] = false;\n if (evt.cancelable && eventType !== 'touch') {\n evt.preventDefault();\n }\n }\n _contextmenu(evt) {\n this.setPointersPositions(evt);\n var shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(CONTEXTMENU, { evt: evt });\n }\n else {\n this._fire(CONTEXTMENU, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _wheel(evt) {\n this.setPointersPositions(evt);\n var shape = this.getIntersection(this.getPointerPosition());\n if (shape && shape.isListening()) {\n shape._fireAndBubble(WHEEL, { evt: evt });\n }\n else {\n this._fire(WHEEL, {\n evt: evt,\n target: this,\n currentTarget: this,\n });\n }\n }\n _pointercancel(evt) {\n this.setPointersPositions(evt);\n const shape = PointerEvents.getCapturedShape(evt.pointerId) ||\n this.getIntersection(this.getPointerPosition());\n if (shape) {\n shape._fireAndBubble(POINTERUP, PointerEvents.createEvent(evt));\n }\n PointerEvents.releaseCapture(evt.pointerId);\n }\n _lostpointercapture(evt) {\n PointerEvents.releaseCapture(evt.pointerId);\n }\n setPointersPositions(evt) {\n var contentPosition = this._getContentPosition(), x = null, y = null;\n evt = evt ? evt : window.event;\n if (evt.touches !== undefined) {\n this._pointerPositions = [];\n this._changedPointerPositions = [];\n Array.prototype.forEach.call(evt.touches, (touch) => {\n this._pointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n Array.prototype.forEach.call(evt.changedTouches || evt.touches, (touch) => {\n this._changedPointerPositions.push({\n id: touch.identifier,\n x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,\n y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,\n });\n });\n }\n else {\n x = (evt.clientX - contentPosition.left) / contentPosition.scaleX;\n y = (evt.clientY - contentPosition.top) / contentPosition.scaleY;\n this.pointerPos = {\n x: x,\n y: y,\n };\n this._pointerPositions = [{ x, y, id: Util._getFirstPointerId(evt) }];\n this._changedPointerPositions = [\n { x, y, id: Util._getFirstPointerId(evt) },\n ];\n }\n }\n _setPointerPosition(evt) {\n Util.warn('Method _setPointerPosition is deprecated. Use \"stage.setPointersPositions(event)\" instead.');\n this.setPointersPositions(evt);\n }\n _getContentPosition() {\n if (!this.content || !this.content.getBoundingClientRect) {\n return {\n top: 0,\n left: 0,\n scaleX: 1,\n scaleY: 1,\n };\n }\n var rect = this.content.getBoundingClientRect();\n return {\n top: rect.top,\n left: rect.left,\n scaleX: rect.width / this.content.clientWidth || 1,\n scaleY: rect.height / this.content.clientHeight || 1,\n };\n }\n _buildDOM() {\n this.bufferCanvas = new SceneCanvas({\n width: this.width(),\n height: this.height(),\n });\n this.bufferHitCanvas = new HitCanvas({\n pixelRatio: 1,\n width: this.width(),\n height: this.height(),\n });\n if (!Konva.isBrowser) {\n return;\n }\n var container = this.container();\n if (!container) {\n throw 'Stage has no container. A container is required.';\n }\n container.innerHTML = '';\n this.content = document.createElement('div');\n this.content.style.position = 'relative';\n this.content.style.userSelect = 'none';\n this.content.className = 'konvajs-content';\n this.content.setAttribute('role', 'presentation');\n container.appendChild(this.content);\n this._resizeDOM();\n }\n cache() {\n Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.');\n return this;\n }\n clearCache() {\n return this;\n }\n batchDraw() {\n this.getChildren().forEach(function (layer) {\n layer.batchDraw();\n });\n return this;\n }\n}\nStage.prototype.nodeType = STAGE;\n_registerNode(Stage);\nFactory.addGetterSetter(Stage, 'container');\n","import { Konva } from './Global.js';\nimport { Transform, Util } from './Util.js';\nimport { Factory } from './Factory.js';\nimport { Node } from './Node.js';\nimport { getNumberValidator, getNumberOrAutoValidator, getStringValidator, getBooleanValidator, getStringOrGradientValidator, } from './Validators.js';\nimport { _registerNode } from './Global.js';\nimport * as PointerEvents from './PointerEvents.js';\nvar HAS_SHADOW = 'hasShadow';\nvar SHADOW_RGBA = 'shadowRGBA';\nvar patternImage = 'patternImage';\nvar linearGradient = 'linearGradient';\nvar radialGradient = 'radialGradient';\nlet dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util.createCanvasElement().getContext('2d');\n return dummyContext;\n}\nexport const shapes = {};\nfunction _fillFunc(context) {\n context.fill();\n}\nfunction _strokeFunc(context) {\n context.stroke();\n}\nfunction _fillFuncHit(context) {\n context.fill();\n}\nfunction _strokeFuncHit(context) {\n context.stroke();\n}\nfunction _clearHasShadowCache() {\n this._clearCache(HAS_SHADOW);\n}\nfunction _clearGetShadowRGBACache() {\n this._clearCache(SHADOW_RGBA);\n}\nfunction _clearFillPatternCache() {\n this._clearCache(patternImage);\n}\nfunction _clearLinearGradientCache() {\n this._clearCache(linearGradient);\n}\nfunction _clearRadialGradientCache() {\n this._clearCache(radialGradient);\n}\nexport class Shape extends Node {\n constructor(config) {\n super(config);\n let key;\n while (true) {\n key = Util.getRandomColor();\n if (key && !(key in shapes)) {\n break;\n }\n }\n this.colorKey = key;\n shapes[key] = this;\n }\n getContext() {\n Util.warn('shape.getContext() method is deprecated. Please do not use it.');\n return this.getLayer().getContext();\n }\n getCanvas() {\n Util.warn('shape.getCanvas() method is deprecated. Please do not use it.');\n return this.getLayer().getCanvas();\n }\n getSceneFunc() {\n return this.attrs.sceneFunc || this['_sceneFunc'];\n }\n getHitFunc() {\n return this.attrs.hitFunc || this['_hitFunc'];\n }\n hasShadow() {\n return this._getCache(HAS_SHADOW, this._hasShadow);\n }\n _hasShadow() {\n return (this.shadowEnabled() &&\n this.shadowOpacity() !== 0 &&\n !!(this.shadowColor() ||\n this.shadowBlur() ||\n this.shadowOffsetX() ||\n this.shadowOffsetY()));\n }\n _getFillPattern() {\n return this._getCache(patternImage, this.__getFillPattern);\n }\n __getFillPattern() {\n if (this.fillPatternImage()) {\n var ctx = getDummyContext();\n const pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');\n if (pattern && pattern.setTransform) {\n const tr = new Transform();\n tr.translate(this.fillPatternX(), this.fillPatternY());\n tr.rotate(Konva.getAngle(this.fillPatternRotation()));\n tr.scale(this.fillPatternScaleX(), this.fillPatternScaleY());\n tr.translate(-1 * this.fillPatternOffsetX(), -1 * this.fillPatternOffsetY());\n const m = tr.getMatrix();\n const matrix = typeof DOMMatrix === 'undefined'\n ? {\n a: m[0],\n b: m[1],\n c: m[2],\n d: m[3],\n e: m[4],\n f: m[5],\n }\n : new DOMMatrix(m);\n pattern.setTransform(matrix);\n }\n return pattern;\n }\n }\n _getLinearGradient() {\n return this._getCache(linearGradient, this.__getLinearGradient);\n }\n __getLinearGradient() {\n var colorStops = this.fillLinearGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillLinearGradientStartPoint();\n var end = this.fillLinearGradientEndPoint();\n var grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n _getRadialGradient() {\n return this._getCache(radialGradient, this.__getRadialGradient);\n }\n __getRadialGradient() {\n var colorStops = this.fillRadialGradientColorStops();\n if (colorStops) {\n var ctx = getDummyContext();\n var start = this.fillRadialGradientStartPoint();\n var end = this.fillRadialGradientEndPoint();\n var grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());\n for (var n = 0; n < colorStops.length; n += 2) {\n grd.addColorStop(colorStops[n], colorStops[n + 1]);\n }\n return grd;\n }\n }\n getShadowRGBA() {\n return this._getCache(SHADOW_RGBA, this._getShadowRGBA);\n }\n _getShadowRGBA() {\n if (!this.hasShadow()) {\n return;\n }\n var rgba = Util.colorToRGBA(this.shadowColor());\n if (rgba) {\n return ('rgba(' +\n rgba.r +\n ',' +\n rgba.g +\n ',' +\n rgba.b +\n ',' +\n rgba.a * (this.shadowOpacity() || 1) +\n ')');\n }\n }\n hasFill() {\n return this._calculate('hasFill', [\n 'fillEnabled',\n 'fill',\n 'fillPatternImage',\n 'fillLinearGradientColorStops',\n 'fillRadialGradientColorStops',\n ], () => {\n return (this.fillEnabled() &&\n !!(this.fill() ||\n this.fillPatternImage() ||\n this.fillLinearGradientColorStops() ||\n this.fillRadialGradientColorStops()));\n });\n }\n hasStroke() {\n return this._calculate('hasStroke', [\n 'strokeEnabled',\n 'strokeWidth',\n 'stroke',\n 'strokeLinearGradientColorStops',\n ], () => {\n return (this.strokeEnabled() &&\n this.strokeWidth() &&\n !!(this.stroke() || this.strokeLinearGradientColorStops()));\n });\n }\n hasHitStroke() {\n const width = this.hitStrokeWidth();\n if (width === 'auto') {\n return this.hasStroke();\n }\n return this.strokeEnabled() && !!width;\n }\n intersects(point) {\n var stage = this.getStage(), bufferHitCanvas = stage.bufferHitCanvas, p;\n bufferHitCanvas.getContext().clear();\n this.drawHit(bufferHitCanvas, null, true);\n p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;\n return p[3] > 0;\n }\n destroy() {\n Node.prototype.destroy.call(this);\n delete shapes[this.colorKey];\n delete this.colorKey;\n return this;\n }\n _useBufferCanvas(forceFill) {\n var _a;\n if (!this.getStage()) {\n return false;\n }\n const perfectDrawEnabled = (_a = this.attrs.perfectDrawEnabled) !== null && _a !== void 0 ? _a : true;\n if (!perfectDrawEnabled) {\n return false;\n }\n const hasFill = forceFill || this.hasFill();\n const hasStroke = this.hasStroke();\n const isTransparent = this.getAbsoluteOpacity() !== 1;\n if (hasFill && hasStroke && isTransparent) {\n return true;\n }\n const hasShadow = this.hasShadow();\n const strokeForShadow = this.shadowForStrokeEnabled();\n if (hasFill && hasStroke && hasShadow && strokeForShadow) {\n return true;\n }\n return false;\n }\n setStrokeHitEnabled(val) {\n Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');\n if (val) {\n this.hitStrokeWidth('auto');\n }\n else {\n this.hitStrokeWidth(0);\n }\n }\n getStrokeHitEnabled() {\n if (this.hitStrokeWidth() === 0) {\n return false;\n }\n else {\n return true;\n }\n }\n getSelfRect() {\n var size = this.size();\n return {\n x: this._centroid ? -size.width / 2 : 0,\n y: this._centroid ? -size.height / 2 : 0,\n width: size.width,\n height: size.height,\n };\n }\n getClientRect(config = {}) {\n const skipTransform = config.skipTransform;\n const relativeTo = config.relativeTo;\n const fillRect = this.getSelfRect();\n const applyStroke = !config.skipStroke && this.hasStroke();\n const strokeWidth = (applyStroke && this.strokeWidth()) || 0;\n const fillAndStrokeWidth = fillRect.width + strokeWidth;\n const fillAndStrokeHeight = fillRect.height + strokeWidth;\n const applyShadow = !config.skipShadow && this.hasShadow();\n const shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;\n const shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;\n const preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);\n const preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);\n const blurRadius = (applyShadow && this.shadowBlur()) || 0;\n const width = preWidth + blurRadius * 2;\n const height = preHeight + blurRadius * 2;\n const rect = {\n width: width,\n height: height,\n x: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetX, 0) +\n fillRect.x,\n y: -(strokeWidth / 2 + blurRadius) +\n Math.min(shadowOffsetY, 0) +\n fillRect.y,\n };\n if (!skipTransform) {\n return this._transformedRect(rect, relativeTo);\n }\n return rect;\n }\n drawScene(can, top) {\n var layer = this.getLayer(), canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow(), stage, bufferCanvas, bufferContext;\n var skipBuffer = canvas.isCache;\n var cachingSelf = top === this;\n if (!this.isVisible() && !cachingSelf) {\n return this;\n }\n if (cachedCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedSceneCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n if (this._useBufferCanvas() && !skipBuffer) {\n stage = this.getStage();\n bufferCanvas = stage.bufferCanvas;\n bufferContext = bufferCanvas.getContext();\n bufferContext.clear();\n bufferContext.save();\n bufferContext._applyLineJoin(this);\n var o = this.getAbsoluteTransform(top).getMatrix();\n bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n drawFunc.call(this, bufferContext, this);\n bufferContext.restore();\n var ratio = bufferCanvas.pixelRatio;\n if (hasShadow) {\n context._applyShadow(this);\n }\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.height / ratio);\n }\n else {\n context._applyLineJoin(this);\n if (!cachingSelf) {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n context._applyOpacity(this);\n context._applyGlobalCompositeOperation(this);\n }\n if (hasShadow) {\n context._applyShadow(this);\n }\n drawFunc.call(this, context, this);\n }\n context.restore();\n return this;\n }\n drawHit(can, top, skipDragCheck = false) {\n if (!this.shouldDrawHit(top, skipDragCheck)) {\n return this;\n }\n var layer = this.getLayer(), canvas = can || layer.hitCanvas, context = canvas && canvas.getContext(), drawFunc = this.hitFunc() || this.sceneFunc(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;\n if (!this.colorKey) {\n Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()');\n }\n if (cachedHitCanvas) {\n context.save();\n var m = this.getAbsoluteTransform(top).getMatrix();\n context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n this._drawCachedHitCanvas(context);\n context.restore();\n return this;\n }\n if (!drawFunc) {\n return this;\n }\n context.save();\n context._applyLineJoin(this);\n const selfCache = this === top;\n if (!selfCache) {\n var o = this.getAbsoluteTransform(top).getMatrix();\n context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);\n }\n drawFunc.call(this, context, this);\n context.restore();\n return this;\n }\n drawHitFromCache(alphaThreshold = 0) {\n var cachedCanvas = this._getCanvasCache(), sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = cachedCanvas.hit, hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight(), hitImageData, hitData, len, rgbColorKey, i, alpha;\n hitContext.clear();\n hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);\n try {\n hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);\n hitData = hitImageData.data;\n len = hitData.length;\n rgbColorKey = Util._hexToRgb(this.colorKey);\n for (i = 0; i < len; i += 4) {\n alpha = hitData[i + 3];\n if (alpha > alphaThreshold) {\n hitData[i] = rgbColorKey.r;\n hitData[i + 1] = rgbColorKey.g;\n hitData[i + 2] = rgbColorKey.b;\n hitData[i + 3] = 255;\n }\n else {\n hitData[i + 3] = 0;\n }\n }\n hitContext.putImageData(hitImageData, 0, 0);\n }\n catch (e) {\n Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);\n }\n return this;\n }\n hasPointerCapture(pointerId) {\n return PointerEvents.hasPointerCapture(pointerId, this);\n }\n setPointerCapture(pointerId) {\n PointerEvents.setPointerCapture(pointerId, this);\n }\n releaseCapture(pointerId) {\n PointerEvents.releaseCapture(pointerId, this);\n }\n}\nShape.prototype._fillFunc = _fillFunc;\nShape.prototype._strokeFunc = _strokeFunc;\nShape.prototype._fillFuncHit = _fillFuncHit;\nShape.prototype._strokeFuncHit = _strokeFuncHit;\nShape.prototype._centroid = false;\nShape.prototype.nodeType = 'Shape';\n_registerNode(Shape);\nShape.prototype.eventListeners = {};\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);\nShape.prototype.on.call(Shape.prototype, 'shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva', _clearFillPatternCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);\nShape.prototype.on.call(Shape.prototype, 'fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);\nFactory.addGetterSetter(Shape, 'stroke', undefined, getStringOrGradientValidator());\nFactory.addGetterSetter(Shape, 'strokeWidth', 2, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillAfterStrokeEnabled', false);\nFactory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', getNumberOrAutoValidator());\nFactory.addGetterSetter(Shape, 'strokeHitEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'perfectDrawEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Shape, 'lineJoin');\nFactory.addGetterSetter(Shape, 'lineCap');\nFactory.addGetterSetter(Shape, 'sceneFunc');\nFactory.addGetterSetter(Shape, 'hitFunc');\nFactory.addGetterSetter(Shape, 'dash');\nFactory.addGetterSetter(Shape, 'dashOffset', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowColor', undefined, getStringValidator());\nFactory.addGetterSetter(Shape, 'shadowBlur', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowOpacity', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'shadowOffsetX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'shadowOffsetY', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternImage');\nFactory.addGetterSetter(Shape, 'fill', undefined, getStringOrGradientValidator());\nFactory.addGetterSetter(Shape, 'fillPatternX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternY', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillLinearGradientColorStops');\nFactory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientColorStops');\nFactory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');\nFactory.addGetterSetter(Shape, 'fillEnabled', true);\nFactory.addGetterSetter(Shape, 'strokeEnabled', true);\nFactory.addGetterSetter(Shape, 'shadowEnabled', true);\nFactory.addGetterSetter(Shape, 'dashEnabled', true);\nFactory.addGetterSetter(Shape, 'strokeScaleEnabled', true);\nFactory.addGetterSetter(Shape, 'fillPriority', 'color');\nFactory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);\nFactory.addGetterSetter(Shape, 'fillPatternScaleX', 1, getNumberValidator());\nFactory.addGetterSetter(Shape, 'fillPatternScaleY', 1, getNumberValidator());\nFactory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);\nFactory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);\nFactory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', [\n 'x',\n 'y',\n]);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);\nFactory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);\nFactory.addGetterSetter(Shape, 'fillPatternRotation', 0);\nFactory.backCompat(Shape, {\n dashArray: 'dash',\n getDashArray: 'getDash',\n setDashArray: 'getDash',\n drawFunc: 'sceneFunc',\n getDrawFunc: 'getSceneFunc',\n setDrawFunc: 'setSceneFunc',\n drawHitFunc: 'hitFunc',\n getDrawHitFunc: 'getHitFunc',\n setDrawHitFunc: 'setHitFunc',\n});\n","import { Util } from './Util.js';\nimport { Container } from './Container.js';\nimport { Node } from './Node.js';\nimport { Factory } from './Factory.js';\nimport { SceneCanvas, HitCanvas } from './Canvas.js';\nimport { getBooleanValidator } from './Validators.js';\nimport { shapes } from './Shape.js';\nimport { _registerNode } from './Global.js';\nvar HASH = '#', BEFORE_DRAW = 'beforeDraw', DRAW = 'draw', INTERSECTION_OFFSETS = [\n { x: 0, y: 0 },\n { x: -1, y: -1 },\n { x: 1, y: -1 },\n { x: 1, y: 1 },\n { x: -1, y: 1 },\n], INTERSECTION_OFFSETS_LEN = INTERSECTION_OFFSETS.length;\nexport class Layer extends Container {\n constructor(config) {\n super(config);\n this.canvas = new SceneCanvas();\n this.hitCanvas = new HitCanvas({\n pixelRatio: 1,\n });\n this._waitingForDraw = false;\n this.on('visibleChange.konva', this._checkVisibility);\n this._checkVisibility();\n this.on('imageSmoothingEnabledChange.konva', this._setSmoothEnabled);\n this._setSmoothEnabled();\n }\n createPNGStream() {\n const c = this.canvas._canvas;\n return c.createPNGStream();\n }\n getCanvas() {\n return this.canvas;\n }\n getNativeCanvasElement() {\n return this.canvas._canvas;\n }\n getHitCanvas() {\n return this.hitCanvas;\n }\n getContext() {\n return this.getCanvas().getContext();\n }\n clear(bounds) {\n this.getContext().clear(bounds);\n this.getHitCanvas().getContext().clear(bounds);\n return this;\n }\n setZIndex(index) {\n super.setZIndex(index);\n var stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n if (index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n }\n return this;\n }\n moveToTop() {\n Node.prototype.moveToTop.call(this);\n var stage = this.getStage();\n if (stage && stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveUp() {\n var moved = Node.prototype.moveUp.call(this);\n if (!moved) {\n return false;\n }\n var stage = this.getStage();\n if (!stage || !stage.content) {\n return false;\n }\n stage.content.removeChild(this.getNativeCanvasElement());\n if (this.index < stage.children.length - 1) {\n stage.content.insertBefore(this.getNativeCanvasElement(), stage.children[this.index + 1].getCanvas()._canvas);\n }\n else {\n stage.content.appendChild(this.getNativeCanvasElement());\n }\n return true;\n }\n moveDown() {\n if (Node.prototype.moveDown.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[this.index + 1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n moveToBottom() {\n if (Node.prototype.moveToBottom.call(this)) {\n var stage = this.getStage();\n if (stage) {\n var children = stage.children;\n if (stage.content) {\n stage.content.removeChild(this.getNativeCanvasElement());\n stage.content.insertBefore(this.getNativeCanvasElement(), children[1].getCanvas()._canvas);\n }\n }\n return true;\n }\n return false;\n }\n getLayer() {\n return this;\n }\n remove() {\n var _canvas = this.getNativeCanvasElement();\n Node.prototype.remove.call(this);\n if (_canvas && _canvas.parentNode && Util._isInDocument(_canvas)) {\n _canvas.parentNode.removeChild(_canvas);\n }\n return this;\n }\n getStage() {\n return this.parent;\n }\n setSize({ width, height }) {\n this.canvas.setSize(width, height);\n this.hitCanvas.setSize(width, height);\n this._setSmoothEnabled();\n return this;\n }\n _validateAdd(child) {\n var type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util.throw('You may only add groups and shapes to a layer.');\n }\n }\n _toKonvaCanvas(config) {\n config = config || {};\n config.width = config.width || this.getWidth();\n config.height = config.height || this.getHeight();\n config.x = config.x !== undefined ? config.x : this.x();\n config.y = config.y !== undefined ? config.y : this.y();\n return Node.prototype._toKonvaCanvas.call(this, config);\n }\n _checkVisibility() {\n const visible = this.visible();\n if (visible) {\n this.canvas._canvas.style.display = 'block';\n }\n else {\n this.canvas._canvas.style.display = 'none';\n }\n }\n _setSmoothEnabled() {\n this.getContext()._context.imageSmoothingEnabled =\n this.imageSmoothingEnabled();\n }\n getWidth() {\n if (this.parent) {\n return this.parent.width();\n }\n }\n setWidth() {\n Util.warn('Can not change width of layer. Use \"stage.width(value)\" function instead.');\n }\n getHeight() {\n if (this.parent) {\n return this.parent.height();\n }\n }\n setHeight() {\n Util.warn('Can not change height of layer. Use \"stage.height(value)\" function instead.');\n }\n batchDraw() {\n if (!this._waitingForDraw) {\n this._waitingForDraw = true;\n Util.requestAnimFrame(() => {\n this.draw();\n this._waitingForDraw = false;\n });\n }\n return this;\n }\n getIntersection(pos) {\n if (!this.isListening() || !this.isVisible()) {\n return null;\n }\n var spiralSearchDistance = 1;\n var continueSearch = false;\n while (true) {\n for (let i = 0; i < INTERSECTION_OFFSETS_LEN; i++) {\n const intersectionOffset = INTERSECTION_OFFSETS[i];\n const obj = this._getIntersection({\n x: pos.x + intersectionOffset.x * spiralSearchDistance,\n y: pos.y + intersectionOffset.y * spiralSearchDistance,\n });\n const shape = obj.shape;\n if (shape) {\n return shape;\n }\n continueSearch = !!obj.antialiased;\n if (!obj.antialiased) {\n break;\n }\n }\n if (continueSearch) {\n spiralSearchDistance += 1;\n }\n else {\n return null;\n }\n }\n }\n _getIntersection(pos) {\n const ratio = this.hitCanvas.pixelRatio;\n const p = this.hitCanvas.context.getImageData(Math.round(pos.x * ratio), Math.round(pos.y * ratio), 1, 1).data;\n const p3 = p[3];\n if (p3 === 255) {\n const colorKey = Util._rgbToHex(p[0], p[1], p[2]);\n const shape = shapes[HASH + colorKey];\n if (shape) {\n return {\n shape: shape,\n };\n }\n return {\n antialiased: true,\n };\n }\n else if (p3 > 0) {\n return {\n antialiased: true,\n };\n }\n return {};\n }\n drawScene(can, top) {\n var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas());\n this._fire(BEFORE_DRAW, {\n node: this,\n });\n if (this.clearBeforeDraw()) {\n canvas.getContext().clear();\n }\n Container.prototype.drawScene.call(this, canvas, top);\n this._fire(DRAW, {\n node: this,\n });\n return this;\n }\n drawHit(can, top) {\n var layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas);\n if (layer && layer.clearBeforeDraw()) {\n layer.getHitCanvas().getContext().clear();\n }\n Container.prototype.drawHit.call(this, canvas, top);\n return this;\n }\n enableHitGraph() {\n this.hitGraphEnabled(true);\n return this;\n }\n disableHitGraph() {\n this.hitGraphEnabled(false);\n return this;\n }\n setHitGraphEnabled(val) {\n Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n this.listening(val);\n }\n getHitGraphEnabled(val) {\n Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');\n return this.listening();\n }\n toggleHitCanvas() {\n if (!this.parent || !this.parent['content']) {\n return;\n }\n var parent = this.parent;\n var added = !!this.hitCanvas._canvas.parentNode;\n if (added) {\n parent.content.removeChild(this.hitCanvas._canvas);\n }\n else {\n parent.content.appendChild(this.hitCanvas._canvas);\n }\n }\n destroy() {\n Util.releaseCanvas(this.getNativeCanvasElement(), this.getHitCanvas()._canvas);\n return super.destroy();\n }\n}\nLayer.prototype.nodeType = 'Layer';\n_registerNode(Layer);\nFactory.addGetterSetter(Layer, 'imageSmoothingEnabled', true);\nFactory.addGetterSetter(Layer, 'clearBeforeDraw', true);\nFactory.addGetterSetter(Layer, 'hitGraphEnabled', true, getBooleanValidator());\n","import { Util } from './Util.js';\nimport { Layer } from './Layer.js';\nimport { _registerNode } from './Global.js';\nexport class FastLayer extends Layer {\n constructor(attrs) {\n super(attrs);\n this.listening(false);\n Util.warn('Konva.Fast layer is deprecated. Please use \"new Konva.Layer({ listening: false })\" instead.');\n }\n}\nFastLayer.prototype.nodeType = 'FastLayer';\n_registerNode(FastLayer);\n","import { Util } from './Util.js';\nimport { Container } from './Container.js';\nimport { _registerNode } from './Global.js';\nexport class Group extends Container {\n _validateAdd(child) {\n var type = child.getType();\n if (type !== 'Group' && type !== 'Shape') {\n Util.throw('You may only add groups and shapes to groups.');\n }\n }\n}\nGroup.prototype.nodeType = 'Group';\n_registerNode(Group);\n","import { glob } from './Global.js';\nimport { Util } from './Util.js';\nvar now = (function () {\n if (glob.performance && glob.performance.now) {\n return function () {\n return glob.performance.now();\n };\n }\n return function () {\n return new Date().getTime();\n };\n})();\nexport class Animation {\n constructor(func, layers) {\n this.id = Animation.animIdCounter++;\n this.frame = {\n time: 0,\n timeDiff: 0,\n lastTime: now(),\n frameRate: 0,\n };\n this.func = func;\n this.setLayers(layers);\n }\n setLayers(layers) {\n var lays = [];\n if (!layers) {\n lays = [];\n }\n else if (layers.length > 0) {\n lays = layers;\n }\n else {\n lays = [layers];\n }\n this.layers = lays;\n return this;\n }\n getLayers() {\n return this.layers;\n }\n addLayer(layer) {\n var layers = this.layers, len = layers.length, n;\n for (n = 0; n < len; n++) {\n if (layers[n]._id === layer._id) {\n return false;\n }\n }\n this.layers.push(layer);\n return true;\n }\n isRunning() {\n var a = Animation, animations = a.animations, len = animations.length, n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === this.id) {\n return true;\n }\n }\n return false;\n }\n start() {\n this.stop();\n this.frame.timeDiff = 0;\n this.frame.lastTime = now();\n Animation._addAnimation(this);\n return this;\n }\n stop() {\n Animation._removeAnimation(this);\n return this;\n }\n _updateFrameObject(time) {\n this.frame.timeDiff = time - this.frame.lastTime;\n this.frame.lastTime = time;\n this.frame.time += this.frame.timeDiff;\n this.frame.frameRate = 1000 / this.frame.timeDiff;\n }\n static _addAnimation(anim) {\n this.animations.push(anim);\n this._handleAnimation();\n }\n static _removeAnimation(anim) {\n var id = anim.id, animations = this.animations, len = animations.length, n;\n for (n = 0; n < len; n++) {\n if (animations[n].id === id) {\n this.animations.splice(n, 1);\n break;\n }\n }\n }\n static _runFrames() {\n var layerHash = {}, animations = this.animations, anim, layers, func, n, i, layersLen, layer, key, needRedraw;\n for (n = 0; n < animations.length; n++) {\n anim = animations[n];\n layers = anim.layers;\n func = anim.func;\n anim._updateFrameObject(now());\n layersLen = layers.length;\n if (func) {\n needRedraw = func.call(anim, anim.frame) !== false;\n }\n else {\n needRedraw = true;\n }\n if (!needRedraw) {\n continue;\n }\n for (i = 0; i < layersLen; i++) {\n layer = layers[i];\n if (layer._id !== undefined) {\n layerHash[layer._id] = layer;\n }\n }\n }\n for (key in layerHash) {\n if (!layerHash.hasOwnProperty(key)) {\n continue;\n }\n layerHash[key].batchDraw();\n }\n }\n static _animationLoop() {\n var Anim = Animation;\n if (Anim.animations.length) {\n Anim._runFrames();\n Util.requestAnimFrame(Anim._animationLoop);\n }\n else {\n Anim.animRunning = false;\n }\n }\n static _handleAnimation() {\n if (!this.animRunning) {\n this.animRunning = true;\n Util.requestAnimFrame(this._animationLoop);\n }\n }\n}\nAnimation.animations = [];\nAnimation.animIdCounter = 0;\nAnimation.animRunning = false;\n","import { Util } from './Util.js';\nimport { Animation } from './Animation.js';\nimport { Node } from './Node.js';\nimport { Konva } from './Global.js';\nvar blacklist = {\n node: 1,\n duration: 1,\n easing: 1,\n onFinish: 1,\n yoyo: 1,\n}, PAUSED = 1, PLAYING = 2, REVERSING = 3, idCounter = 0, colorAttrs = ['fill', 'stroke', 'shadowColor'];\nclass TweenEngine {\n constructor(prop, propFunc, func, begin, finish, duration, yoyo) {\n this.prop = prop;\n this.propFunc = propFunc;\n this.begin = begin;\n this._pos = begin;\n this.duration = duration;\n this._change = 0;\n this.prevPos = 0;\n this.yoyo = yoyo;\n this._time = 0;\n this._position = 0;\n this._startTime = 0;\n this._finish = 0;\n this.func = func;\n this._change = finish - this.begin;\n this.pause();\n }\n fire(str) {\n var handler = this[str];\n if (handler) {\n handler();\n }\n }\n setTime(t) {\n if (t > this.duration) {\n if (this.yoyo) {\n this._time = this.duration;\n this.reverse();\n }\n else {\n this.finish();\n }\n }\n else if (t < 0) {\n if (this.yoyo) {\n this._time = 0;\n this.play();\n }\n else {\n this.reset();\n }\n }\n else {\n this._time = t;\n this.update();\n }\n }\n getTime() {\n return this._time;\n }\n setPosition(p) {\n this.prevPos = this._pos;\n this.propFunc(p);\n this._pos = p;\n }\n getPosition(t) {\n if (t === undefined) {\n t = this._time;\n }\n return this.func(t, this.begin, this._change, this.duration);\n }\n play() {\n this.state = PLAYING;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onPlay');\n }\n reverse() {\n this.state = REVERSING;\n this._time = this.duration - this._time;\n this._startTime = this.getTimer() - this._time;\n this.onEnterFrame();\n this.fire('onReverse');\n }\n seek(t) {\n this.pause();\n this._time = t;\n this.update();\n this.fire('onSeek');\n }\n reset() {\n this.pause();\n this._time = 0;\n this.update();\n this.fire('onReset');\n }\n finish() {\n this.pause();\n this._time = this.duration;\n this.update();\n this.fire('onFinish');\n }\n update() {\n this.setPosition(this.getPosition(this._time));\n this.fire('onUpdate');\n }\n onEnterFrame() {\n var t = this.getTimer() - this._startTime;\n if (this.state === PLAYING) {\n this.setTime(t);\n }\n else if (this.state === REVERSING) {\n this.setTime(this.duration - t);\n }\n }\n pause() {\n this.state = PAUSED;\n this.fire('onPause');\n }\n getTimer() {\n return new Date().getTime();\n }\n}\nexport class Tween {\n constructor(config) {\n var that = this, node = config.node, nodeId = node._id, duration, easing = config.easing || Easings.Linear, yoyo = !!config.yoyo, key;\n if (typeof config.duration === 'undefined') {\n duration = 0.3;\n }\n else if (config.duration === 0) {\n duration = 0.001;\n }\n else {\n duration = config.duration;\n }\n this.node = node;\n this._id = idCounter++;\n var layers = node.getLayer() ||\n (node instanceof Konva['Stage'] ? node.getLayers() : null);\n if (!layers) {\n Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');\n }\n this.anim = new Animation(function () {\n that.tween.onEnterFrame();\n }, layers);\n this.tween = new TweenEngine(key, function (i) {\n that._tweenFunc(i);\n }, easing, 0, 1, duration * 1000, yoyo);\n this._addListeners();\n if (!Tween.attrs[nodeId]) {\n Tween.attrs[nodeId] = {};\n }\n if (!Tween.attrs[nodeId][this._id]) {\n Tween.attrs[nodeId][this._id] = {};\n }\n if (!Tween.tweens[nodeId]) {\n Tween.tweens[nodeId] = {};\n }\n for (key in config) {\n if (blacklist[key] === undefined) {\n this._addAttr(key, config[key]);\n }\n }\n this.reset();\n this.onFinish = config.onFinish;\n this.onReset = config.onReset;\n this.onUpdate = config.onUpdate;\n }\n _addAttr(key, end) {\n var node = this.node, nodeId = node._id, start, diff, tweenId, n, len, trueEnd, trueStart, endRGBA;\n tweenId = Tween.tweens[nodeId][key];\n if (tweenId) {\n delete Tween.attrs[nodeId][tweenId][key];\n }\n start = node.getAttr(key);\n if (Util._isArray(end)) {\n diff = [];\n len = Math.max(end.length, start.length);\n if (key === 'points' && end.length !== start.length) {\n if (end.length > start.length) {\n trueStart = start;\n start = Util._prepareArrayForTween(start, end, node.closed());\n }\n else {\n trueEnd = end;\n end = Util._prepareArrayForTween(end, start, node.closed());\n }\n }\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n diff.push(end[n] - start[n]);\n }\n else {\n var startRGBA = Util.colorToRGBA(start[n]);\n endRGBA = Util.colorToRGBA(end[n]);\n start[n] = startRGBA;\n diff.push({\n r: endRGBA.r - startRGBA.r,\n g: endRGBA.g - startRGBA.g,\n b: endRGBA.b - startRGBA.b,\n a: endRGBA.a - startRGBA.a,\n });\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n diff.push(end[n] - start[n]);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n start = Util.colorToRGBA(start);\n endRGBA = Util.colorToRGBA(end);\n diff = {\n r: endRGBA.r - start.r,\n g: endRGBA.g - start.g,\n b: endRGBA.b - start.b,\n a: endRGBA.a - start.a,\n };\n }\n else {\n diff = end - start;\n }\n Tween.attrs[nodeId][this._id][key] = {\n start: start,\n diff: diff,\n end: end,\n trueEnd: trueEnd,\n trueStart: trueStart,\n };\n Tween.tweens[nodeId][key] = this._id;\n }\n _tweenFunc(i) {\n var node = this.node, attrs = Tween.attrs[node._id][this._id], key, attr, start, diff, newVal, n, len, end;\n for (key in attrs) {\n attr = attrs[key];\n start = attr.start;\n diff = attr.diff;\n end = attr.end;\n if (Util._isArray(start)) {\n newVal = [];\n len = Math.max(start.length, end.length);\n if (key.indexOf('fill') === 0) {\n for (n = 0; n < len; n++) {\n if (n % 2 === 0) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n else {\n newVal.push('rgba(' +\n Math.round(start[n].r + diff[n].r * i) +\n ',' +\n Math.round(start[n].g + diff[n].g * i) +\n ',' +\n Math.round(start[n].b + diff[n].b * i) +\n ',' +\n (start[n].a + diff[n].a * i) +\n ')');\n }\n }\n }\n else {\n for (n = 0; n < len; n++) {\n newVal.push((start[n] || 0) + diff[n] * i);\n }\n }\n }\n else if (colorAttrs.indexOf(key) !== -1) {\n newVal =\n 'rgba(' +\n Math.round(start.r + diff.r * i) +\n ',' +\n Math.round(start.g + diff.g * i) +\n ',' +\n Math.round(start.b + diff.b * i) +\n ',' +\n (start.a + diff.a * i) +\n ')';\n }\n else {\n newVal = start + diff * i;\n }\n node.setAttr(key, newVal);\n }\n }\n _addListeners() {\n this.tween.onPlay = () => {\n this.anim.start();\n };\n this.tween.onReverse = () => {\n this.anim.start();\n };\n this.tween.onPause = () => {\n this.anim.stop();\n };\n this.tween.onFinish = () => {\n var node = this.node;\n var attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueEnd) {\n node.setAttr('points', attrs.points.trueEnd);\n }\n if (this.onFinish) {\n this.onFinish.call(this);\n }\n };\n this.tween.onReset = () => {\n var node = this.node;\n var attrs = Tween.attrs[node._id][this._id];\n if (attrs.points && attrs.points.trueStart) {\n node.points(attrs.points.trueStart);\n }\n if (this.onReset) {\n this.onReset();\n }\n };\n this.tween.onUpdate = () => {\n if (this.onUpdate) {\n this.onUpdate.call(this);\n }\n };\n }\n play() {\n this.tween.play();\n return this;\n }\n reverse() {\n this.tween.reverse();\n return this;\n }\n reset() {\n this.tween.reset();\n return this;\n }\n seek(t) {\n this.tween.seek(t * 1000);\n return this;\n }\n pause() {\n this.tween.pause();\n return this;\n }\n finish() {\n this.tween.finish();\n return this;\n }\n destroy() {\n var nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId], key;\n this.pause();\n for (key in attrs) {\n delete Tween.tweens[nodeId][key];\n }\n delete Tween.attrs[nodeId][thisId];\n }\n}\nTween.attrs = {};\nTween.tweens = {};\nNode.prototype.to = function (params) {\n var onFinish = params.onFinish;\n params.node = this;\n params.onFinish = function () {\n this.destroy();\n if (onFinish) {\n onFinish();\n }\n };\n var tween = new Tween(params);\n tween.play();\n};\nexport const Easings = {\n BackEaseIn(t, b, c, d) {\n var s = 1.70158;\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n },\n BackEaseOut(t, b, c, d) {\n var s = 1.70158;\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n },\n BackEaseInOut(t, b, c, d) {\n var s = 1.70158;\n if ((t /= d / 2) < 1) {\n return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n },\n ElasticEaseIn(t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (-(a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b);\n },\n ElasticEaseOut(t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d) === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n return (a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +\n c +\n b);\n },\n ElasticEaseInOut(t, b, c, d, a, p) {\n var s = 0;\n if (t === 0) {\n return b;\n }\n if ((t /= d / 2) === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n if (!a || a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n s = (p / (2 * Math.PI)) * Math.asin(c / a);\n }\n if (t < 1) {\n return (-0.5 *\n (a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +\n b);\n }\n return (a *\n Math.pow(2, -10 * (t -= 1)) *\n Math.sin(((t * d - s) * (2 * Math.PI)) / p) *\n 0.5 +\n c +\n b);\n },\n BounceEaseOut(t, b, c, d) {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n }\n else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n },\n BounceEaseIn(t, b, c, d) {\n return c - Easings.BounceEaseOut(d - t, 0, c, d) + b;\n },\n BounceEaseInOut(t, b, c, d) {\n if (t < d / 2) {\n return Easings.BounceEaseIn(t * 2, 0, c, d) * 0.5 + b;\n }\n else {\n return Easings.BounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n },\n EaseIn(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n EaseOut(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n EaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t + b;\n }\n return (-c / 2) * (--t * (t - 2) - 1) + b;\n },\n StrongEaseIn(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n },\n StrongEaseOut(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n },\n StrongEaseInOut(t, b, c, d) {\n if ((t /= d / 2) < 1) {\n return (c / 2) * t * t * t * t * t + b;\n }\n return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;\n },\n Linear(t, b, c, d) {\n return (c * t) / d + b;\n },\n};\n","import { Konva as Global } from './Global.js';\nimport { Util, Transform } from './Util.js';\nimport { Node } from './Node.js';\nimport { Container } from './Container.js';\nimport { Stage, stages } from './Stage.js';\nimport { Layer } from './Layer.js';\nimport { FastLayer } from './FastLayer.js';\nimport { Group } from './Group.js';\nimport { DD } from './DragAndDrop.js';\nimport { Shape, shapes } from './Shape.js';\nimport { Animation } from './Animation.js';\nimport { Tween, Easings } from './Tween.js';\nimport { Context } from './Context.js';\nimport { Canvas } from './Canvas.js';\nexport const Konva = Util._assign(Global, {\n Util,\n Transform,\n Node,\n Container,\n Stage,\n stages,\n Layer,\n FastLayer,\n Group,\n DD,\n Shape,\n shapes,\n Animation,\n Tween,\n Easings,\n Context,\n Canvas,\n});\nexport default Konva;\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Konva } from '../Global.js';\nimport { getNumberValidator, getBooleanValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Arc extends Shape {\n _sceneFunc(context) {\n var angle = Konva.getAngle(this.angle()), clockwise = this.clockwise();\n context.beginPath();\n context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);\n context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n getSelfRect() {\n const innerRadius = this.innerRadius();\n const outerRadius = this.outerRadius();\n const clockwise = this.clockwise();\n const angle = Konva.getAngle(clockwise ? 360 - this.angle() : this.angle());\n const boundLeftRatio = Math.cos(Math.min(angle, Math.PI));\n const boundRightRatio = 1;\n const boundTopRatio = Math.sin(Math.min(Math.max(Math.PI, angle), (3 * Math.PI) / 2));\n const boundBottomRatio = Math.sin(Math.min(angle, Math.PI / 2));\n const boundLeft = boundLeftRatio * (boundLeftRatio > 0 ? innerRadius : outerRadius);\n const boundRight = boundRightRatio * (boundRightRatio > 0 ? outerRadius : innerRadius);\n const boundTop = boundTopRatio * (boundTopRatio > 0 ? innerRadius : outerRadius);\n const boundBottom = boundBottomRatio * (boundBottomRatio > 0 ? outerRadius : innerRadius);\n return {\n x: boundLeft,\n y: clockwise ? -1 * boundBottom : boundTop,\n width: boundRight - boundLeft,\n height: boundBottom - boundTop,\n };\n }\n}\nArc.prototype._centroid = true;\nArc.prototype.className = 'Arc';\nArc.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Arc);\nFactory.addGetterSetter(Arc, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'outerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'angle', 0, getNumberValidator());\nFactory.addGetterSetter(Arc, 'clockwise', false, getBooleanValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator, getNumberArrayValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nfunction getControlPoints(x0, y0, x1, y1, x2, y2, t) {\n var d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)), d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), fa = (t * d01) / (d01 + d12), fb = (t * d12) / (d01 + d12), p1x = x1 - fa * (x2 - x0), p1y = y1 - fa * (y2 - y0), p2x = x1 + fb * (x2 - x0), p2y = y1 + fb * (y2 - y0);\n return [p1x, p1y, p2x, p2y];\n}\nfunction expandPoints(p, tension) {\n var len = p.length, allPoints = [], n, cp;\n for (n = 2; n < len - 2; n += 2) {\n cp = getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);\n if (isNaN(cp[0])) {\n continue;\n }\n allPoints.push(cp[0]);\n allPoints.push(cp[1]);\n allPoints.push(p[n]);\n allPoints.push(p[n + 1]);\n allPoints.push(cp[2]);\n allPoints.push(cp[3]);\n }\n return allPoints;\n}\nexport class Line extends Shape {\n constructor(config) {\n super(config);\n this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {\n this._clearCache('tensionPoints');\n });\n }\n _sceneFunc(context) {\n var points = this.points(), length = points.length, tension = this.tension(), closed = this.closed(), bezier = this.bezier(), tp, len, n;\n if (!length) {\n return;\n }\n context.beginPath();\n context.moveTo(points[0], points[1]);\n if (tension !== 0 && length > 4) {\n tp = this.getTensionPoints();\n len = tp.length;\n n = closed ? 0 : 4;\n if (!closed) {\n context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);\n }\n while (n < len - 2) {\n context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);\n }\n if (!closed) {\n context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);\n }\n }\n else if (bezier) {\n n = 2;\n while (n < length) {\n context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);\n }\n }\n else {\n for (n = 2; n < length; n += 2) {\n context.lineTo(points[n], points[n + 1]);\n }\n }\n if (closed) {\n context.closePath();\n context.fillStrokeShape(this);\n }\n else {\n context.strokeShape(this);\n }\n }\n getTensionPoints() {\n return this._getCache('tensionPoints', this._getTensionPoints);\n }\n _getTensionPoints() {\n if (this.closed()) {\n return this._getTensionPointsClosed();\n }\n else {\n return expandPoints(this.points(), this.tension());\n }\n }\n _getTensionPointsClosed() {\n var p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension), lastControlPoints = getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension), middle = expandPoints(p, tension), tp = [firstControlPoints[2], firstControlPoints[3]]\n .concat(middle)\n .concat([\n lastControlPoints[0],\n lastControlPoints[1],\n p[len - 2],\n p[len - 1],\n lastControlPoints[2],\n lastControlPoints[3],\n firstControlPoints[0],\n firstControlPoints[1],\n p[0],\n p[1],\n ]);\n return tp;\n }\n getWidth() {\n return this.getSelfRect().width;\n }\n getHeight() {\n return this.getSelfRect().height;\n }\n getSelfRect() {\n var points = this.points();\n if (points.length < 4) {\n return {\n x: points[0] || 0,\n y: points[1] || 0,\n width: 0,\n height: 0,\n };\n }\n if (this.tension() !== 0) {\n points = [\n points[0],\n points[1],\n ...this._getTensionPoints(),\n points[points.length - 2],\n points[points.length - 1],\n ];\n }\n else {\n points = this.points();\n }\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n}\nLine.prototype.className = 'Line';\nLine.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];\n_registerNode(Line);\nFactory.addGetterSetter(Line, 'closed', false);\nFactory.addGetterSetter(Line, 'bezier', false);\nFactory.addGetterSetter(Line, 'tension', 0, getNumberValidator());\nFactory.addGetterSetter(Line, 'points', [], getNumberArrayValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { _registerNode } from '../Global.js';\nexport class Path extends Shape {\n constructor(config) {\n super(config);\n this.dataArray = [];\n this.pathLength = 0;\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = 0;\n for (var i = 0; i < this.dataArray.length; ++i) {\n this.pathLength += this.dataArray[i].pathLength;\n }\n this.on('dataChange.konva', function () {\n this.dataArray = Path.parsePathData(this.data());\n this.pathLength = 0;\n for (var i = 0; i < this.dataArray.length; ++i) {\n this.pathLength += this.dataArray[i].pathLength;\n }\n });\n }\n _sceneFunc(context) {\n var ca = this.dataArray;\n context.beginPath();\n var isClosed = false;\n for (var n = 0; n < ca.length; n++) {\n var c = ca[n].command;\n var p = ca[n].points;\n switch (c) {\n case 'L':\n context.lineTo(p[0], p[1]);\n break;\n case 'M':\n context.moveTo(p[0], p[1]);\n break;\n case 'C':\n context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);\n break;\n case 'Q':\n context.quadraticCurveTo(p[0], p[1], p[2], p[3]);\n break;\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6], fs = p[7];\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n context.translate(cx, cy);\n context.rotate(psi);\n context.scale(scaleX, scaleY);\n context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);\n context.scale(1 / scaleX, 1 / scaleY);\n context.rotate(-psi);\n context.translate(-cx, -cy);\n break;\n case 'z':\n isClosed = true;\n context.closePath();\n break;\n }\n }\n if (!isClosed && !this.hasFill()) {\n context.strokeShape(this);\n }\n else {\n context.fillStrokeShape(this);\n }\n }\n getSelfRect() {\n var points = [];\n this.dataArray.forEach(function (data) {\n if (data.command === 'A') {\n var start = data.points[4];\n var dTheta = data.points[5];\n var end = data.points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n if (dTheta < 0) {\n for (let t = start - inc; t > end; t -= inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n else {\n for (let t = start + inc; t < end; t += inc) {\n const point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);\n points.push(point.x, point.y);\n }\n }\n }\n else if (data.command === 'C') {\n for (let t = 0.0; t <= 1; t += 0.01) {\n const point = Path.getPointOnCubicBezier(t, data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]);\n points.push(point.x, point.y);\n }\n }\n else {\n points = points.concat(data.points);\n }\n });\n var minX = points[0];\n var maxX = points[0];\n var minY = points[1];\n var maxY = points[1];\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n if (!isNaN(x)) {\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n }\n if (!isNaN(y)) {\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n }\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getLength() {\n return this.pathLength;\n }\n getPointAtLength(length) {\n var point, i = 0, ii = this.dataArray.length;\n if (!ii) {\n return null;\n }\n while (i < ii && length > this.dataArray[i].pathLength) {\n length -= this.dataArray[i].pathLength;\n ++i;\n }\n if (i === ii) {\n point = this.dataArray[i - 1].points.slice(-2);\n return {\n x: point[0],\n y: point[1],\n };\n }\n if (length < 0.01) {\n point = this.dataArray[i].points.slice(0, 2);\n return {\n x: point[0],\n y: point[1],\n };\n }\n var cp = this.dataArray[i];\n var p = cp.points;\n switch (cp.command) {\n case 'L':\n return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);\n case 'C':\n return Path.getPointOnCubicBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);\n case 'Q':\n return Path.getPointOnQuadraticBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);\n case 'A':\n var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6];\n theta += (dTheta * length) / cp.pathLength;\n return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);\n }\n return null;\n }\n static getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n static getPointOnLine(dist, P1x, P1y, P2x, P2y, fromX, fromY) {\n if (fromX === undefined) {\n fromX = P1x;\n }\n if (fromY === undefined) {\n fromY = P1y;\n }\n var m = (P2y - P1y) / (P2x - P1x + 0.00000001);\n var run = Math.sqrt((dist * dist) / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n var rise = m * run;\n var pt;\n if (P2x === P1x) {\n pt = {\n x: fromX,\n y: fromY + rise,\n };\n }\n else if ((fromY - P1y) / (fromX - P1x + 0.00000001) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise,\n };\n }\n else {\n var ix, iy;\n var len = this.getLineLength(P1x, P1y, P2x, P2y);\n var u = (fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y);\n u = u / (len * len);\n ix = P1x + u * (P2x - P1x);\n iy = P1y + u * (P2y - P1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt((pRun * pRun) / (1 + m * m));\n if (P2x < P1x) {\n run *= -1;\n }\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise,\n };\n }\n return pt;\n }\n static getPointOnCubicBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {\n function CB1(t) {\n return t * t * t;\n }\n function CB2(t) {\n return 3 * t * t * (1 - t);\n }\n function CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n }\n function CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n }\n var x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);\n var y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnQuadraticBezier(pct, P1x, P1y, P2x, P2y, P3x, P3y) {\n function QB1(t) {\n return t * t;\n }\n function QB2(t) {\n return 2 * t * (1 - t);\n }\n function QB3(t) {\n return (1 - t) * (1 - t);\n }\n var x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);\n var y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);\n return {\n x: x,\n y: y,\n };\n }\n static getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi), sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta),\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi),\n };\n }\n static parsePathData(data) {\n if (!data) {\n return [];\n }\n var cs = data;\n var cc = [\n 'm',\n 'M',\n 'l',\n 'L',\n 'v',\n 'V',\n 'h',\n 'H',\n 'z',\n 'Z',\n 'c',\n 'C',\n 'q',\n 'Q',\n 't',\n 'T',\n 's',\n 'S',\n 'a',\n 'A',\n ];\n cs = cs.replace(new RegExp(' ', 'g'), ',');\n for (var n = 0; n < cc.length; n++) {\n cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n }\n var arr = cs.split('|');\n var ca = [];\n var coords = [];\n var cpx = 0;\n var cpy = 0;\n var re = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:e[-+]?\\d+)?)/gi;\n var match;\n for (n = 1; n < arr.length; n++) {\n var str = arr[n];\n var c = str.charAt(0);\n str = str.slice(1);\n coords.length = 0;\n while ((match = re.exec(str))) {\n coords.push(match[0]);\n }\n var p = [];\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n if (coords[j] === '00') {\n p.push(0, 0);\n continue;\n }\n var parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n p.push(parsed);\n }\n else {\n p.push(0);\n }\n }\n while (p.length > 0) {\n if (isNaN(p[0])) {\n break;\n }\n var cmd = null;\n var points = [];\n var startX = cpx, startY = cpy;\n var prevCmd, ctlPtx, ctlPty;\n var rx, ry, psi, fa, fs, x1, y1;\n switch (c) {\n case 'l':\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'L':\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'm':\n var dx = p.shift();\n var dy = p.shift();\n cpx += dx;\n cpy += dy;\n cmd = 'M';\n if (ca.length > 2 && ca[ca.length - 1].command === 'z') {\n for (var idx = ca.length - 2; idx >= 0; idx--) {\n if (ca[idx].command === 'M') {\n cpx = ca[idx].points[0] + dx;\n cpy = ca[idx].points[1] + dy;\n break;\n }\n }\n }\n points.push(cpx, cpy);\n c = 'l';\n break;\n case 'M':\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'M';\n points.push(cpx, cpy);\n c = 'L';\n break;\n case 'h':\n cpx += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'H':\n cpx = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'v':\n cpy += p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'V':\n cpy = p.shift();\n cmd = 'L';\n points.push(cpx, cpy);\n break;\n case 'C':\n points.push(p.shift(), p.shift(), p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'c':\n points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'C') {\n ctlPtx = cpx + (cpx - prevCmd.points[2]);\n ctlPty = cpy + (cpy - prevCmd.points[3]);\n }\n points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'C';\n points.push(cpx, cpy);\n break;\n case 'Q':\n points.push(p.shift(), p.shift());\n cpx = p.shift();\n cpy = p.shift();\n points.push(cpx, cpy);\n break;\n case 'q':\n points.push(cpx + p.shift(), cpy + p.shift());\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n prevCmd = ca[ca.length - 1];\n if (prevCmd.command === 'Q') {\n ctlPtx = cpx + (cpx - prevCmd.points[0]);\n ctlPty = cpy + (cpy - prevCmd.points[1]);\n }\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'Q';\n points.push(ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx = p.shift();\n cpy = p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n case 'a':\n rx = p.shift();\n ry = p.shift();\n psi = p.shift();\n fa = p.shift();\n fs = p.shift();\n x1 = cpx;\n y1 = cpy;\n cpx += p.shift();\n cpy += p.shift();\n cmd = 'A';\n points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);\n break;\n }\n ca.push({\n command: cmd || c,\n points: points,\n start: {\n x: startX,\n y: startY,\n },\n pathLength: this.calcLength(startX, startY, cmd || c, points),\n });\n }\n if (c === 'z' || c === 'Z') {\n ca.push({\n command: 'z',\n points: [],\n start: undefined,\n pathLength: 0,\n });\n }\n }\n return ca;\n }\n static calcLength(x, y, cmd, points) {\n var len, p1, p2, t;\n var path = Path;\n switch (cmd) {\n case 'L':\n return path.getLineLength(x, y, points[0], points[1]);\n case 'C':\n len = 0.0;\n p1 = path.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'Q':\n len = 0.0;\n p1 = path.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = path.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n return len;\n case 'A':\n len = 0.0;\n var start = points[4];\n var dTheta = points[5];\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0;\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n }\n p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n if (dTheta < 0) {\n for (t = start - inc; t > end; t -= inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n else {\n for (t = start + inc; t < end; t += inc) {\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n return 0;\n }\n static convertEndpointToCenterParameterization(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {\n var psi = psiDeg * (Math.PI / 180.0);\n var xp = (Math.cos(psi) * (x1 - x2)) / 2.0 + (Math.sin(psi) * (y1 - y2)) / 2.0;\n var yp = (-1 * Math.sin(psi) * (x1 - x2)) / 2.0 +\n (Math.cos(psi) * (y1 - y2)) / 2.0;\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) /\n (rx * rx * (yp * yp) + ry * ry * (xp * xp)));\n if (fa === fs) {\n f *= -1;\n }\n if (isNaN(f)) {\n f = 0;\n }\n var cxp = (f * rx * yp) / ry;\n var cyp = (f * -ry * xp) / rx;\n var cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;\n var vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n };\n var vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n };\n var vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n };\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = Math.PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * Math.PI;\n }\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * Math.PI;\n }\n return [cx, cy, rx, ry, theta, dTheta, psi, fs];\n }\n}\nPath.prototype.className = 'Path';\nPath.prototype._attrsAffectingSize = ['data'];\n_registerNode(Path);\nFactory.addGetterSetter(Path, 'data');\n","import { Factory } from '../Factory.js';\nimport { Line } from './Line.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nimport { Path } from './Path.js';\nexport class Arrow extends Line {\n _sceneFunc(ctx) {\n super._sceneFunc(ctx);\n var PI2 = Math.PI * 2;\n var points = this.points();\n var tp = points;\n var fromTension = this.tension() !== 0 && points.length > 4;\n if (fromTension) {\n tp = this.getTensionPoints();\n }\n var length = this.pointerLength();\n var n = points.length;\n var dx, dy;\n if (fromTension) {\n const lp = [\n tp[tp.length - 4],\n tp[tp.length - 3],\n tp[tp.length - 2],\n tp[tp.length - 1],\n points[n - 2],\n points[n - 1],\n ];\n const lastLength = Path.calcLength(tp[tp.length - 4], tp[tp.length - 3], 'C', lp);\n const previous = Path.getPointOnQuadraticBezier(Math.min(1, 1 - length / lastLength), lp[0], lp[1], lp[2], lp[3], lp[4], lp[5]);\n dx = points[n - 2] - previous.x;\n dy = points[n - 1] - previous.y;\n }\n else {\n dx = points[n - 2] - points[n - 4];\n dy = points[n - 1] - points[n - 3];\n }\n var radians = (Math.atan2(dy, dx) + PI2) % PI2;\n var width = this.pointerWidth();\n if (this.pointerAtEnding()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[n - 2], points[n - 1]);\n ctx.rotate(radians);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n if (this.pointerAtBeginning()) {\n ctx.save();\n ctx.beginPath();\n ctx.translate(points[0], points[1]);\n if (fromTension) {\n dx = (tp[0] + tp[2]) / 2 - points[0];\n dy = (tp[1] + tp[3]) / 2 - points[1];\n }\n else {\n dx = points[2] - points[0];\n dy = points[3] - points[1];\n }\n ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);\n ctx.moveTo(0, 0);\n ctx.lineTo(-length, width / 2);\n ctx.lineTo(-length, -width / 2);\n ctx.closePath();\n ctx.restore();\n this.__fillStroke(ctx);\n }\n }\n __fillStroke(ctx) {\n var isDashEnabled = this.dashEnabled();\n if (isDashEnabled) {\n this.attrs.dashEnabled = false;\n ctx.setLineDash([]);\n }\n ctx.fillStrokeShape(this);\n if (isDashEnabled) {\n this.attrs.dashEnabled = true;\n }\n }\n getSelfRect() {\n const lineRect = super.getSelfRect();\n const offset = this.pointerWidth() / 2;\n return {\n x: lineRect.x - offset,\n y: lineRect.y - offset,\n width: lineRect.width + offset * 2,\n height: lineRect.height + offset * 2,\n };\n }\n}\nArrow.prototype.className = 'Arrow';\n_registerNode(Arrow);\nFactory.addGetterSetter(Arrow, 'pointerLength', 10, getNumberValidator());\nFactory.addGetterSetter(Arrow, 'pointerWidth', 10, getNumberValidator());\nFactory.addGetterSetter(Arrow, 'pointerAtBeginning', false);\nFactory.addGetterSetter(Arrow, 'pointerAtEnding', true);\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Circle extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.attrs.radius || 0, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n if (this.radius() !== width / 2) {\n this.radius(width / 2);\n }\n }\n setHeight(height) {\n if (this.radius() !== height / 2) {\n this.radius(height / 2);\n }\n }\n}\nCircle.prototype._centroid = true;\nCircle.prototype.className = 'Circle';\nCircle.prototype._attrsAffectingSize = ['radius'];\n_registerNode(Circle);\nFactory.addGetterSetter(Circle, 'radius', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Ellipse extends Shape {\n _sceneFunc(context) {\n var rx = this.radiusX(), ry = this.radiusY();\n context.beginPath();\n context.save();\n if (rx !== ry) {\n context.scale(1, ry / rx);\n }\n context.arc(0, 0, rx, 0, Math.PI * 2, false);\n context.restore();\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radiusX() * 2;\n }\n getHeight() {\n return this.radiusY() * 2;\n }\n setWidth(width) {\n this.radiusX(width / 2);\n }\n setHeight(height) {\n this.radiusY(height / 2);\n }\n}\nEllipse.prototype.className = 'Ellipse';\nEllipse.prototype._centroid = true;\nEllipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];\n_registerNode(Ellipse);\nFactory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);\nFactory.addGetterSetter(Ellipse, 'radiusX', 0, getNumberValidator());\nFactory.addGetterSetter(Ellipse, 'radiusY', 0, getNumberValidator());\n","import { Util } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Image extends Shape {\n constructor(attrs) {\n super(attrs);\n this.on('imageChange.konva', () => {\n this._setImageLoad();\n });\n this._setImageLoad();\n }\n _setImageLoad() {\n const image = this.image();\n if (image && image.complete) {\n return;\n }\n if (image && image.readyState === 4) {\n return;\n }\n if (image && image['addEventListener']) {\n image['addEventListener']('load', () => {\n this._requestDraw();\n });\n }\n }\n _useBufferCanvas() {\n return super._useBufferCanvas(true);\n }\n _sceneFunc(context) {\n const width = this.getWidth();\n const height = this.getHeight();\n const image = this.attrs.image;\n let params;\n if (image) {\n const cropWidth = this.attrs.cropWidth;\n const cropHeight = this.attrs.cropHeight;\n if (cropWidth && cropHeight) {\n params = [\n image,\n this.cropX(),\n this.cropY(),\n cropWidth,\n cropHeight,\n 0,\n 0,\n width,\n height,\n ];\n }\n else {\n params = [image, 0, 0, width, height];\n }\n }\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n context.drawImage.apply(context, params);\n }\n }\n _hitFunc(context) {\n var width = this.width(), height = this.height();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n var _a, _b;\n return (_a = this.attrs.width) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.width;\n }\n getHeight() {\n var _a, _b;\n return (_a = this.attrs.height) !== null && _a !== void 0 ? _a : (_b = this.image()) === null || _b === void 0 ? void 0 : _b.height;\n }\n static fromURL(url, callback, onError = null) {\n var img = Util.createImageElement();\n img.onload = function () {\n var image = new Image({\n image: img,\n });\n callback(image);\n };\n img.onerror = onError;\n img.crossOrigin = 'Anonymous';\n img.src = url;\n }\n}\nImage.prototype.className = 'Image';\n_registerNode(Image);\nFactory.addGetterSetter(Image, 'image');\nFactory.addComponentsGetterSetter(Image, 'crop', ['x', 'y', 'width', 'height']);\nFactory.addGetterSetter(Image, 'cropX', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropY', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropWidth', 0, getNumberValidator());\nFactory.addGetterSetter(Image, 'cropHeight', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Group } from '../Group.js';\nimport { getNumberOrArrayOfNumbersValidator, getNumberValidator, } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar ATTR_CHANGE_LIST = [\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'padding',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'pointerDirection',\n 'pointerWidth',\n 'pointerHeight',\n], CHANGE_KONVA = 'Change.konva', NONE = 'none', UP = 'up', RIGHT = 'right', DOWN = 'down', LEFT = 'left', attrChangeListLen = ATTR_CHANGE_LIST.length;\nexport class Label extends Group {\n constructor(config) {\n super(config);\n this.on('add.konva', function (evt) {\n this._addListeners(evt.child);\n this._sync();\n });\n }\n getText() {\n return this.find('Text')[0];\n }\n getTag() {\n return this.find('Tag')[0];\n }\n _addListeners(text) {\n var that = this, n;\n var func = function () {\n that._sync();\n };\n for (n = 0; n < attrChangeListLen; n++) {\n text.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, func);\n }\n }\n getWidth() {\n return this.getText().width();\n }\n getHeight() {\n return this.getText().height();\n }\n _sync() {\n var text = this.getText(), tag = this.getTag(), width, height, pointerDirection, pointerWidth, x, y, pointerHeight;\n if (text && tag) {\n width = text.width();\n height = text.height();\n pointerDirection = tag.pointerDirection();\n pointerWidth = tag.pointerWidth();\n pointerHeight = tag.pointerHeight();\n x = 0;\n y = 0;\n switch (pointerDirection) {\n case UP:\n x = width / 2;\n y = -1 * pointerHeight;\n break;\n case RIGHT:\n x = width + pointerWidth;\n y = height / 2;\n break;\n case DOWN:\n x = width / 2;\n y = height + pointerHeight;\n break;\n case LEFT:\n x = -1 * pointerWidth;\n y = height / 2;\n break;\n }\n tag.setAttrs({\n x: -1 * x,\n y: -1 * y,\n width: width,\n height: height,\n });\n text.setAttrs({\n x: -1 * x,\n y: -1 * y,\n });\n }\n }\n}\nLabel.prototype.className = 'Label';\n_registerNode(Label);\nexport class Tag extends Shape {\n _sceneFunc(context) {\n var width = this.width(), height = this.height(), pointerDirection = this.pointerDirection(), pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), cornerRadius = this.cornerRadius();\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft =\n topRight =\n bottomLeft =\n bottomRight =\n Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.beginPath();\n context.moveTo(topLeft, 0);\n if (pointerDirection === UP) {\n context.lineTo((width - pointerWidth) / 2, 0);\n context.lineTo(width / 2, -1 * pointerHeight);\n context.lineTo((width + pointerWidth) / 2, 0);\n }\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n if (pointerDirection === RIGHT) {\n context.lineTo(width, (height - pointerHeight) / 2);\n context.lineTo(width + pointerWidth, height / 2);\n context.lineTo(width, (height + pointerHeight) / 2);\n }\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n if (pointerDirection === DOWN) {\n context.lineTo((width + pointerWidth) / 2, height);\n context.lineTo(width / 2, height + pointerHeight);\n context.lineTo((width - pointerWidth) / 2, height);\n }\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n if (pointerDirection === LEFT) {\n context.lineTo(0, (height + pointerHeight) / 2);\n context.lineTo(-1 * pointerWidth, height / 2);\n context.lineTo(0, (height - pointerHeight) / 2);\n }\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getSelfRect() {\n var x = 0, y = 0, pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), direction = this.pointerDirection(), width = this.width(), height = this.height();\n if (direction === UP) {\n y -= pointerHeight;\n height += pointerHeight;\n }\n else if (direction === DOWN) {\n height += pointerHeight;\n }\n else if (direction === LEFT) {\n x -= pointerWidth * 1.5;\n width += pointerWidth;\n }\n else if (direction === RIGHT) {\n width += pointerWidth * 1.5;\n }\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n };\n }\n}\nTag.prototype.className = 'Tag';\n_registerNode(Tag);\nFactory.addGetterSetter(Tag, 'pointerDirection', NONE);\nFactory.addGetterSetter(Tag, 'pointerWidth', 0, getNumberValidator());\nFactory.addGetterSetter(Tag, 'pointerHeight', 0, getNumberValidator());\nFactory.addGetterSetter(Tag, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { _registerNode } from '../Global.js';\nimport { getNumberOrArrayOfNumbersValidator } from '../Validators.js';\nexport class Rect extends Shape {\n _sceneFunc(context) {\n var cornerRadius = this.cornerRadius(), width = this.width(), height = this.height();\n context.beginPath();\n if (!cornerRadius) {\n context.rect(0, 0, width, height);\n }\n else {\n let topLeft = 0;\n let topRight = 0;\n let bottomLeft = 0;\n let bottomRight = 0;\n if (typeof cornerRadius === 'number') {\n topLeft = topRight = bottomLeft = bottomRight = Math.min(cornerRadius, width / 2, height / 2);\n }\n else {\n topLeft = Math.min(cornerRadius[0] || 0, width / 2, height / 2);\n topRight = Math.min(cornerRadius[1] || 0, width / 2, height / 2);\n bottomRight = Math.min(cornerRadius[2] || 0, width / 2, height / 2);\n bottomLeft = Math.min(cornerRadius[3] || 0, width / 2, height / 2);\n }\n context.moveTo(topLeft, 0);\n context.lineTo(width - topRight, 0);\n context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);\n context.lineTo(width, height - bottomRight);\n context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);\n context.lineTo(bottomLeft, height);\n context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);\n context.lineTo(0, topLeft);\n context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n}\nRect.prototype.className = 'Rect';\n_registerNode(Rect);\nFactory.addGetterSetter(Rect, 'cornerRadius', 0, getNumberOrArrayOfNumbersValidator(4));\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class RegularPolygon extends Shape {\n _sceneFunc(context) {\n const points = this._getPoints();\n context.beginPath();\n context.moveTo(points[0].x, points[0].y);\n for (var n = 1; n < points.length; n++) {\n context.lineTo(points[n].x, points[n].y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n _getPoints() {\n const sides = this.attrs.sides;\n const radius = this.attrs.radius || 0;\n const points = [];\n for (var n = 0; n < sides; n++) {\n points.push({\n x: radius * Math.sin((n * 2 * Math.PI) / sides),\n y: -1 * radius * Math.cos((n * 2 * Math.PI) / sides),\n });\n }\n return points;\n }\n getSelfRect() {\n const points = this._getPoints();\n var minX = points[0].x;\n var maxX = points[0].y;\n var minY = points[0].x;\n var maxY = points[0].y;\n points.forEach((point) => {\n minX = Math.min(minX, point.x);\n maxX = Math.max(maxX, point.x);\n minY = Math.min(minY, point.y);\n maxY = Math.max(maxY, point.y);\n });\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nRegularPolygon.prototype.className = 'RegularPolygon';\nRegularPolygon.prototype._centroid = true;\nRegularPolygon.prototype._attrsAffectingSize = ['radius'];\n_registerNode(RegularPolygon);\nFactory.addGetterSetter(RegularPolygon, 'radius', 0, getNumberValidator());\nFactory.addGetterSetter(RegularPolygon, 'sides', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar PIx2 = Math.PI * 2;\nexport class Ring extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.innerRadius(), 0, PIx2, false);\n context.moveTo(this.outerRadius(), 0);\n context.arc(0, 0, this.outerRadius(), PIx2, 0, true);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nRing.prototype.className = 'Ring';\nRing.prototype._centroid = true;\nRing.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Ring);\nFactory.addGetterSetter(Ring, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Ring, 'outerRadius', 0, getNumberValidator());\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Animation } from '../Animation.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Sprite extends Shape {\n constructor(config) {\n super(config);\n this._updated = true;\n this.anim = new Animation(() => {\n var updated = this._updated;\n this._updated = false;\n return updated;\n });\n this.on('animationChange.konva', function () {\n this.frameIndex(0);\n });\n this.on('frameIndexChange.konva', function () {\n this._updated = true;\n });\n this.on('frameRateChange.konva', function () {\n if (!this.anim.isRunning()) {\n return;\n }\n clearInterval(this.interval);\n this._setInterval();\n });\n }\n _sceneFunc(context) {\n var anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), x = set[ix4 + 0], y = set[ix4 + 1], width = set[ix4 + 2], height = set[ix4 + 3], image = this.image();\n if (this.hasFill() || this.hasStroke()) {\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n if (image) {\n if (offsets) {\n var offset = offsets[anim], ix2 = index * 2;\n context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.drawImage(image, x, y, width, height, 0, 0, width, height);\n }\n }\n }\n _hitFunc(context) {\n var anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), width = set[ix4 + 2], height = set[ix4 + 3];\n context.beginPath();\n if (offsets) {\n var offset = offsets[anim];\n var ix2 = index * 2;\n context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);\n }\n else {\n context.rect(0, 0, width, height);\n }\n context.closePath();\n context.fillShape(this);\n }\n _useBufferCanvas() {\n return super._useBufferCanvas(true);\n }\n _setInterval() {\n var that = this;\n this.interval = setInterval(function () {\n that._updateIndex();\n }, 1000 / this.frameRate());\n }\n start() {\n if (this.isRunning()) {\n return;\n }\n var layer = this.getLayer();\n this.anim.setLayers(layer);\n this._setInterval();\n this.anim.start();\n }\n stop() {\n this.anim.stop();\n clearInterval(this.interval);\n }\n isRunning() {\n return this.anim.isRunning();\n }\n _updateIndex() {\n var index = this.frameIndex(), animation = this.animation(), animations = this.animations(), anim = animations[animation], len = anim.length / 4;\n if (index < len - 1) {\n this.frameIndex(index + 1);\n }\n else {\n this.frameIndex(0);\n }\n }\n}\nSprite.prototype.className = 'Sprite';\n_registerNode(Sprite);\nFactory.addGetterSetter(Sprite, 'animation');\nFactory.addGetterSetter(Sprite, 'animations');\nFactory.addGetterSetter(Sprite, 'frameOffsets');\nFactory.addGetterSetter(Sprite, 'image');\nFactory.addGetterSetter(Sprite, 'frameIndex', 0, getNumberValidator());\nFactory.addGetterSetter(Sprite, 'frameRate', 17, getNumberValidator());\nFactory.backCompat(Sprite, {\n index: 'frameIndex',\n getIndex: 'getFrameIndex',\n setIndex: 'setFrameIndex',\n});\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Star extends Shape {\n _sceneFunc(context) {\n var innerRadius = this.innerRadius(), outerRadius = this.outerRadius(), numPoints = this.numPoints();\n context.beginPath();\n context.moveTo(0, 0 - outerRadius);\n for (var n = 1; n < numPoints * 2; n++) {\n var radius = n % 2 === 0 ? outerRadius : innerRadius;\n var x = radius * Math.sin((n * Math.PI) / numPoints);\n var y = -1 * radius * Math.cos((n * Math.PI) / numPoints);\n context.lineTo(x, y);\n }\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.outerRadius() * 2;\n }\n getHeight() {\n return this.outerRadius() * 2;\n }\n setWidth(width) {\n this.outerRadius(width / 2);\n }\n setHeight(height) {\n this.outerRadius(height / 2);\n }\n}\nStar.prototype.className = 'Star';\nStar.prototype._centroid = true;\nStar.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];\n_registerNode(Star);\nFactory.addGetterSetter(Star, 'numPoints', 5, getNumberValidator());\nFactory.addGetterSetter(Star, 'innerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Star, 'outerRadius', 0, getNumberValidator());\n","import { Util } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { getNumberValidator, getStringValidator, getNumberOrAutoValidator, getBooleanValidator, } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport function stringToArray(string) {\n return Array.from(string);\n}\nvar AUTO = 'auto', CENTER = 'center', JUSTIFY = 'justify', CHANGE_KONVA = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE = ' ', RIGHT = 'right', WORD = 'word', CHAR = 'char', NONE = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST = [\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontVariant',\n 'padding',\n 'align',\n 'verticalAlign',\n 'lineHeight',\n 'text',\n 'width',\n 'height',\n 'wrap',\n 'ellipsis',\n 'letterSpacing',\n], attrChangeListLen = ATTR_CHANGE_LIST.length;\nfunction normalizeFontFamily(fontFamily) {\n return fontFamily\n .split(',')\n .map((family) => {\n family = family.trim();\n const hasSpace = family.indexOf(' ') >= 0;\n const hasQuotes = family.indexOf('\"') >= 0 || family.indexOf(\"'\") >= 0;\n if (hasSpace && !hasQuotes) {\n family = `\"${family}\"`;\n }\n return family;\n })\n .join(', ');\n}\nvar dummyContext;\nfunction getDummyContext() {\n if (dummyContext) {\n return dummyContext;\n }\n dummyContext = Util.createCanvasElement().getContext(CONTEXT_2D);\n return dummyContext;\n}\nfunction _fillFunc(context) {\n context.fillText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this._partialText, this._partialTextX, this._partialTextY);\n}\nfunction checkDefaultFill(config) {\n config = config || {};\n if (!config.fillLinearGradientColorStops &&\n !config.fillRadialGradientColorStops &&\n !config.fillPatternImage) {\n config.fill = config.fill || 'black';\n }\n return config;\n}\nexport class Text extends Shape {\n constructor(config) {\n super(checkDefaultFill(config));\n this._partialTextX = 0;\n this._partialTextY = 0;\n for (var n = 0; n < attrChangeListLen; n++) {\n this.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, this._setTextData);\n }\n this._setTextData();\n }\n _sceneFunc(context) {\n var textArr = this.textArr, textArrLen = textArr.length;\n if (!this.text()) {\n return;\n }\n var padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, verticalAlign = this.verticalAlign(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;\n var translateY = 0;\n var translateY = lineHeightPx / 2;\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', MIDDLE);\n context.setAttr('textAlign', LEFT);\n if (verticalAlign === MIDDLE) {\n alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;\n }\n else if (verticalAlign === BOTTOM) {\n alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;\n }\n context.translate(padding, alignY + padding);\n for (n = 0; n < textArrLen; n++) {\n var lineTranslateX = 0;\n var lineTranslateY = 0;\n var obj = textArr[n], text = obj.text, width = obj.width, lastLine = obj.lastInParagraph, spacesNumber, oneWord, lineWidth;\n context.save();\n if (align === RIGHT) {\n lineTranslateX += totalWidth - width - padding * 2;\n }\n else if (align === CENTER) {\n lineTranslateX += (totalWidth - width - padding * 2) / 2;\n }\n if (shouldUnderline) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY + Math.round(fontSize / 2));\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && lastLine && !oneWord\n ? totalWidth - padding * 2\n : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY + Math.round(fontSize / 2));\n context.lineWidth = fontSize / 15;\n context.strokeStyle = fill;\n context.stroke();\n context.restore();\n }\n if (shouldLineThrough) {\n context.save();\n context.beginPath();\n context.moveTo(lineTranslateX, translateY + lineTranslateY);\n spacesNumber = text.split(' ').length - 1;\n oneWord = spacesNumber === 0;\n lineWidth =\n align === JUSTIFY && lastLine && !oneWord\n ? totalWidth - padding * 2\n : width;\n context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY);\n context.lineWidth = fontSize / 15;\n context.strokeStyle = fill;\n context.stroke();\n context.restore();\n }\n if (letterSpacing !== 0 || align === JUSTIFY) {\n spacesNumber = text.split(' ').length - 1;\n var array = stringToArray(text);\n for (var li = 0; li < array.length; li++) {\n var letter = array[li];\n if (letter === ' ' && !lastLine && align === JUSTIFY) {\n lineTranslateX += (totalWidth - padding * 2 - width) / spacesNumber;\n }\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = letter;\n context.fillStrokeShape(this);\n lineTranslateX += this.measureSize(letter).width + letterSpacing;\n }\n }\n else {\n this._partialTextX = lineTranslateX;\n this._partialTextY = translateY + lineTranslateY;\n this._partialText = text;\n context.fillStrokeShape(this);\n }\n context.restore();\n if (textArrLen > 1) {\n translateY += lineHeightPx;\n }\n }\n }\n _hitFunc(context) {\n var width = this.getWidth(), height = this.getHeight();\n context.beginPath();\n context.rect(0, 0, width, height);\n context.closePath();\n context.fillStrokeShape(this);\n }\n setText(text) {\n var str = Util._isString(text)\n ? text\n : text === null || text === undefined\n ? ''\n : text + '';\n this._setAttr(TEXT, str);\n return this;\n }\n getWidth() {\n var isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;\n return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;\n }\n getHeight() {\n var isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;\n return isAuto\n ? this.fontSize() * this.textArr.length * this.lineHeight() +\n this.padding() * 2\n : this.attrs.height;\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n measureSize(text) {\n var _context = getDummyContext(), fontSize = this.fontSize(), metrics;\n _context.save();\n _context.font = this._getContextFont();\n metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: fontSize,\n };\n }\n _getContextFont() {\n return (this.fontStyle() +\n SPACE +\n this.fontVariant() +\n SPACE +\n (this.fontSize() + PX_SPACE) +\n normalizeFontFamily(this.fontFamily()));\n }\n _addTextLine(line) {\n if (this.align() === JUSTIFY) {\n line = line.trim();\n }\n var width = this._getTextWidth(line);\n return this.textArr.push({\n text: line,\n width: width,\n lastInParagraph: false,\n });\n }\n _getTextWidth(text) {\n var letterSpacing = this.letterSpacing();\n var length = text.length;\n return (getDummyContext().measureText(text).width +\n (length ? letterSpacing * (length - 1) : 0));\n }\n _setTextData() {\n var lines = this.text().split('\\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(), shouldWrap = wrap !== NONE, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis();\n this.textArr = [];\n getDummyContext().font = this._getContextFont();\n var additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;\n for (var i = 0, max = lines.length; i < max; ++i) {\n var line = lines[i];\n var lineWidth = this._getTextWidth(line);\n if (fixedWidth && lineWidth > maxWidth) {\n while (line.length > 0) {\n var low = 0, high = line.length, match = '', matchWidth = 0;\n while (low < high) {\n var mid = (low + high) >>> 1, substr = line.slice(0, mid + 1), substrWidth = this._getTextWidth(substr) + additionalWidth;\n if (substrWidth <= maxWidth) {\n low = mid + 1;\n match = substr;\n matchWidth = substrWidth;\n }\n else {\n high = mid;\n }\n }\n if (match) {\n if (wrapAtWord) {\n var wrapIndex;\n var nextChar = line[match.length];\n var nextIsSpaceOrDash = nextChar === SPACE || nextChar === DASH;\n if (nextIsSpaceOrDash && matchWidth <= maxWidth) {\n wrapIndex = match.length;\n }\n else {\n wrapIndex =\n Math.max(match.lastIndexOf(SPACE), match.lastIndexOf(DASH)) +\n 1;\n }\n if (wrapIndex > 0) {\n low = wrapIndex;\n match = match.slice(0, low);\n matchWidth = this._getTextWidth(match);\n }\n }\n match = match.trimRight();\n this._addTextLine(match);\n textWidth = Math.max(textWidth, matchWidth);\n currentHeightPx += lineHeightPx;\n var shouldHandleEllipsis = this._shouldHandleEllipsis(currentHeightPx);\n if (shouldHandleEllipsis) {\n this._tryToAddEllipsisToLastLine();\n break;\n }\n line = line.slice(low);\n line = line.trimLeft();\n if (line.length > 0) {\n lineWidth = this._getTextWidth(line);\n if (lineWidth <= maxWidth) {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n break;\n }\n }\n }\n else {\n break;\n }\n }\n }\n else {\n this._addTextLine(line);\n currentHeightPx += lineHeightPx;\n textWidth = Math.max(textWidth, lineWidth);\n if (this._shouldHandleEllipsis(currentHeightPx) && i < max - 1) {\n this._tryToAddEllipsisToLastLine();\n }\n }\n if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {\n break;\n }\n if (this.textArr[this.textArr.length - 1]) {\n this.textArr[this.textArr.length - 1].lastInParagraph = true;\n }\n }\n this.textHeight = fontSize;\n this.textWidth = textWidth;\n }\n _shouldHandleEllipsis(currentHeightPx) {\n var fontSize = +this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, height = this.attrs.height, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxHeightPx = height - padding * 2, wrap = this.wrap(), shouldWrap = wrap !== NONE;\n return (!shouldWrap ||\n (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx));\n }\n _tryToAddEllipsisToLastLine() {\n var width = this.attrs.width, fixedWidth = width !== AUTO && width !== undefined, padding = this.padding(), maxWidth = width - padding * 2, shouldAddEllipsis = this.ellipsis();\n var lastLine = this.textArr[this.textArr.length - 1];\n if (!lastLine || !shouldAddEllipsis) {\n return;\n }\n if (fixedWidth) {\n var haveSpace = this._getTextWidth(lastLine.text + ELLIPSIS) < maxWidth;\n if (!haveSpace) {\n lastLine.text = lastLine.text.slice(0, lastLine.text.length - 3);\n }\n }\n this.textArr.splice(this.textArr.length - 1, 1);\n this._addTextLine(lastLine.text + ELLIPSIS);\n }\n getStrokeScaleEnabled() {\n return true;\n }\n}\nText.prototype._fillFunc = _fillFunc;\nText.prototype._strokeFunc = _strokeFunc;\nText.prototype.className = TEXT_UPPER;\nText.prototype._attrsAffectingSize = [\n 'text',\n 'fontSize',\n 'padding',\n 'wrap',\n 'lineHeight',\n 'letterSpacing',\n];\n_registerNode(Text);\nFactory.overWriteSetter(Text, 'width', getNumberOrAutoValidator());\nFactory.overWriteSetter(Text, 'height', getNumberOrAutoValidator());\nFactory.addGetterSetter(Text, 'fontFamily', 'Arial');\nFactory.addGetterSetter(Text, 'fontSize', 12, getNumberValidator());\nFactory.addGetterSetter(Text, 'fontStyle', NORMAL);\nFactory.addGetterSetter(Text, 'fontVariant', NORMAL);\nFactory.addGetterSetter(Text, 'padding', 0, getNumberValidator());\nFactory.addGetterSetter(Text, 'align', LEFT);\nFactory.addGetterSetter(Text, 'verticalAlign', TOP);\nFactory.addGetterSetter(Text, 'lineHeight', 1, getNumberValidator());\nFactory.addGetterSetter(Text, 'wrap', WORD);\nFactory.addGetterSetter(Text, 'ellipsis', false, getBooleanValidator());\nFactory.addGetterSetter(Text, 'letterSpacing', 0, getNumberValidator());\nFactory.addGetterSetter(Text, 'text', '', getStringValidator());\nFactory.addGetterSetter(Text, 'textDecoration', '');\n","import { Util } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Path } from './Path.js';\nimport { Text, stringToArray } from './Text.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar EMPTY_STRING = '', NORMAL = 'normal';\nfunction _fillFunc(context) {\n context.fillText(this.partialText, 0, 0);\n}\nfunction _strokeFunc(context) {\n context.strokeText(this.partialText, 0, 0);\n}\nexport class TextPath extends Shape {\n constructor(config) {\n super(config);\n this.dummyCanvas = Util.createCanvasElement();\n this.dataArray = [];\n this.dataArray = Path.parsePathData(this.attrs.data);\n this.on('dataChange.konva', function () {\n this.dataArray = Path.parsePathData(this.attrs.data);\n this._setTextData();\n });\n this.on('textChange.konva alignChange.konva letterSpacingChange.konva kerningFuncChange.konva fontSizeChange.konva fontFamilyChange.konva', this._setTextData);\n this._setTextData();\n }\n _sceneFunc(context) {\n context.setAttr('font', this._getContextFont());\n context.setAttr('textBaseline', this.textBaseline());\n context.setAttr('textAlign', 'left');\n context.save();\n var textDecoration = this.textDecoration();\n var fill = this.fill();\n var fontSize = this.fontSize();\n var glyphInfo = this.glyphInfo;\n if (textDecoration === 'underline') {\n context.beginPath();\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n context.save();\n var p0 = glyphInfo[i].p0;\n context.translate(p0.x, p0.y);\n context.rotate(glyphInfo[i].rotation);\n this.partialText = glyphInfo[i].text;\n context.fillStrokeShape(this);\n if (textDecoration === 'underline') {\n if (i === 0) {\n context.moveTo(0, fontSize / 2 + 1);\n }\n context.lineTo(fontSize, fontSize / 2 + 1);\n }\n context.restore();\n }\n if (textDecoration === 'underline') {\n context.strokeStyle = fill;\n context.lineWidth = fontSize / 20;\n context.stroke();\n }\n context.restore();\n }\n _hitFunc(context) {\n context.beginPath();\n var glyphInfo = this.glyphInfo;\n if (glyphInfo.length >= 1) {\n var p0 = glyphInfo[0].p0;\n context.moveTo(p0.x, p0.y);\n }\n for (var i = 0; i < glyphInfo.length; i++) {\n var p1 = glyphInfo[i].p1;\n context.lineTo(p1.x, p1.y);\n }\n context.setAttr('lineWidth', this.fontSize());\n context.setAttr('strokeStyle', this.colorKey);\n context.stroke();\n }\n getTextWidth() {\n return this.textWidth;\n }\n getTextHeight() {\n Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');\n return this.textHeight;\n }\n setText(text) {\n return Text.prototype.setText.call(this, text);\n }\n _getContextFont() {\n return Text.prototype._getContextFont.call(this);\n }\n _getTextSize(text) {\n var dummyCanvas = this.dummyCanvas;\n var _context = dummyCanvas.getContext('2d');\n _context.save();\n _context.font = this._getContextFont();\n var metrics = _context.measureText(text);\n _context.restore();\n return {\n width: metrics.width,\n height: parseInt(this.attrs.fontSize, 10),\n };\n }\n _setTextData() {\n var that = this;\n var size = this._getTextSize(this.attrs.text);\n var letterSpacing = this.letterSpacing();\n var align = this.align();\n var kerningFunc = this.kerningFunc();\n this.textWidth = size.width;\n this.textHeight = size.height;\n var textFullWidth = Math.max(this.textWidth + ((this.attrs.text || '').length - 1) * letterSpacing, 0);\n this.glyphInfo = [];\n var fullPathWidth = 0;\n for (var l = 0; l < that.dataArray.length; l++) {\n if (that.dataArray[l].pathLength > 0) {\n fullPathWidth += that.dataArray[l].pathLength;\n }\n }\n var offset = 0;\n if (align === 'center') {\n offset = Math.max(0, fullPathWidth / 2 - textFullWidth / 2);\n }\n if (align === 'right') {\n offset = Math.max(0, fullPathWidth - textFullWidth);\n }\n var charArr = stringToArray(this.text());\n var spacesNumber = this.text().split(' ').length - 1;\n var p0, p1, pathCmd;\n var pIndex = -1;\n var currentT = 0;\n var getNextPathSegment = function () {\n currentT = 0;\n var pathData = that.dataArray;\n for (var j = pIndex + 1; j < pathData.length; j++) {\n if (pathData[j].pathLength > 0) {\n pIndex = j;\n return pathData[j];\n }\n else if (pathData[j].command === 'M') {\n p0 = {\n x: pathData[j].points[0],\n y: pathData[j].points[1],\n };\n }\n }\n return {};\n };\n var findSegmentToFitCharacter = function (c) {\n var glyphWidth = that._getTextSize(c).width + letterSpacing;\n if (c === ' ' && align === 'justify') {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n var currLen = 0;\n var attempts = 0;\n p1 = undefined;\n while (Math.abs(glyphWidth - currLen) / glyphWidth > 0.01 &&\n attempts < 20) {\n attempts++;\n var cumulativePathLength = currLen;\n while (pathCmd === undefined) {\n pathCmd = getNextPathSegment();\n if (pathCmd &&\n cumulativePathLength + pathCmd.pathLength < glyphWidth) {\n cumulativePathLength += pathCmd.pathLength;\n pathCmd = undefined;\n }\n }\n if (Object.keys(pathCmd).length === 0 || p0 === undefined) {\n return undefined;\n }\n var needNewSegment = false;\n switch (pathCmd.command) {\n case 'L':\n if (Path.getLineLength(p0.x, p0.y, pathCmd.points[0], pathCmd.points[1]) > glyphWidth) {\n p1 = Path.getPointOnLine(glyphWidth, p0.x, p0.y, pathCmd.points[0], pathCmd.points[1], p0.x, p0.y);\n }\n else {\n pathCmd = undefined;\n }\n break;\n case 'A':\n var start = pathCmd.points[4];\n var dTheta = pathCmd.points[5];\n var end = pathCmd.points[4] + dTheta;\n if (currentT === 0) {\n currentT = start + 0.00000001;\n }\n else if (glyphWidth > currLen) {\n currentT += ((Math.PI / 180.0) * dTheta) / Math.abs(dTheta);\n }\n else {\n currentT -= ((Math.PI / 360.0) * dTheta) / Math.abs(dTheta);\n }\n if ((dTheta < 0 && currentT < end) ||\n (dTheta >= 0 && currentT > end)) {\n currentT = end;\n needNewSegment = true;\n }\n p1 = Path.getPointOnEllipticalArc(pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], currentT, pathCmd.points[6]);\n break;\n case 'C':\n if (currentT === 0) {\n if (glyphWidth > pathCmd.pathLength) {\n currentT = 0.00000001;\n }\n else {\n currentT = glyphWidth / pathCmd.pathLength;\n }\n }\n else if (glyphWidth > currLen) {\n currentT += (glyphWidth - currLen) / pathCmd.pathLength / 2;\n }\n else {\n currentT = Math.max(currentT - (currLen - glyphWidth) / pathCmd.pathLength / 2, 0);\n }\n if (currentT > 1.0) {\n currentT = 1.0;\n needNewSegment = true;\n }\n p1 = Path.getPointOnCubicBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], pathCmd.points[4], pathCmd.points[5]);\n break;\n case 'Q':\n if (currentT === 0) {\n currentT = glyphWidth / pathCmd.pathLength;\n }\n else if (glyphWidth > currLen) {\n currentT += (glyphWidth - currLen) / pathCmd.pathLength;\n }\n else {\n currentT -= (currLen - glyphWidth) / pathCmd.pathLength;\n }\n if (currentT > 1.0) {\n currentT = 1.0;\n needNewSegment = true;\n }\n p1 = Path.getPointOnQuadraticBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3]);\n break;\n }\n if (p1 !== undefined) {\n currLen = Path.getLineLength(p0.x, p0.y, p1.x, p1.y);\n }\n if (needNewSegment) {\n needNewSegment = false;\n pathCmd = undefined;\n }\n }\n };\n var testChar = 'C';\n var glyphWidth = that._getTextSize(testChar).width + letterSpacing;\n var lettersInOffset = offset / glyphWidth - 1;\n for (var k = 0; k < lettersInOffset; k++) {\n findSegmentToFitCharacter(testChar);\n if (p0 === undefined || p1 === undefined) {\n break;\n }\n p0 = p1;\n }\n for (var i = 0; i < charArr.length; i++) {\n findSegmentToFitCharacter(charArr[i]);\n if (p0 === undefined || p1 === undefined) {\n break;\n }\n var width = Path.getLineLength(p0.x, p0.y, p1.x, p1.y);\n var kern = 0;\n if (kerningFunc) {\n try {\n kern = kerningFunc(charArr[i - 1], charArr[i]) * this.fontSize();\n }\n catch (e) {\n kern = 0;\n }\n }\n p0.x += kern;\n p1.x += kern;\n this.textWidth += kern;\n var midpoint = Path.getPointOnLine(kern + width / 2.0, p0.x, p0.y, p1.x, p1.y);\n var rotation = Math.atan2(p1.y - p0.y, p1.x - p0.x);\n this.glyphInfo.push({\n transposeX: midpoint.x,\n transposeY: midpoint.y,\n text: charArr[i],\n rotation: rotation,\n p0: p0,\n p1: p1,\n });\n p0 = p1;\n }\n }\n getSelfRect() {\n if (!this.glyphInfo.length) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n var points = [];\n this.glyphInfo.forEach(function (info) {\n points.push(info.p0.x);\n points.push(info.p0.y);\n points.push(info.p1.x);\n points.push(info.p1.y);\n });\n var minX = points[0] || 0;\n var maxX = points[0] || 0;\n var minY = points[1] || 0;\n var maxY = points[1] || 0;\n var x, y;\n for (var i = 0; i < points.length / 2; i++) {\n x = points[i * 2];\n y = points[i * 2 + 1];\n minX = Math.min(minX, x);\n maxX = Math.max(maxX, x);\n minY = Math.min(minY, y);\n maxY = Math.max(maxY, y);\n }\n var fontSize = this.fontSize();\n return {\n x: minX - fontSize / 2,\n y: minY - fontSize / 2,\n width: maxX - minX + fontSize,\n height: maxY - minY + fontSize,\n };\n }\n destroy() {\n Util.releaseCanvas(this.dummyCanvas);\n return super.destroy();\n }\n}\nTextPath.prototype._fillFunc = _fillFunc;\nTextPath.prototype._strokeFunc = _strokeFunc;\nTextPath.prototype._fillFuncHit = _fillFunc;\nTextPath.prototype._strokeFuncHit = _strokeFunc;\nTextPath.prototype.className = 'TextPath';\nTextPath.prototype._attrsAffectingSize = ['text', 'fontSize', 'data'];\n_registerNode(TextPath);\nFactory.addGetterSetter(TextPath, 'data');\nFactory.addGetterSetter(TextPath, 'fontFamily', 'Arial');\nFactory.addGetterSetter(TextPath, 'fontSize', 12, getNumberValidator());\nFactory.addGetterSetter(TextPath, 'fontStyle', NORMAL);\nFactory.addGetterSetter(TextPath, 'align', 'left');\nFactory.addGetterSetter(TextPath, 'letterSpacing', 0, getNumberValidator());\nFactory.addGetterSetter(TextPath, 'textBaseline', 'middle');\nFactory.addGetterSetter(TextPath, 'fontVariant', NORMAL);\nFactory.addGetterSetter(TextPath, 'text', EMPTY_STRING);\nFactory.addGetterSetter(TextPath, 'textDecoration', null);\nFactory.addGetterSetter(TextPath, 'kerningFunc', null);\n","import { Util, Transform } from '../Util.js';\nimport { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { Shape } from '../Shape.js';\nimport { Rect } from './Rect.js';\nimport { Group } from '../Group.js';\nimport { Konva } from '../Global.js';\nimport { getBooleanValidator, getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nvar EVENTS_NAME = 'tr-konva';\nvar ATTR_CHANGE_LIST = [\n 'resizeEnabledChange',\n 'rotateAnchorOffsetChange',\n 'rotateEnabledChange',\n 'enabledAnchorsChange',\n 'anchorSizeChange',\n 'borderEnabledChange',\n 'borderStrokeChange',\n 'borderStrokeWidthChange',\n 'borderDashChange',\n 'anchorStrokeChange',\n 'anchorStrokeWidthChange',\n 'anchorFillChange',\n 'anchorCornerRadiusChange',\n 'ignoreStrokeChange',\n]\n .map((e) => e + `.${EVENTS_NAME}`)\n .join(' ');\nvar NODES_RECT = 'nodesRect';\nvar TRANSFORM_CHANGE_STR = [\n 'widthChange',\n 'heightChange',\n 'scaleXChange',\n 'scaleYChange',\n 'skewXChange',\n 'skewYChange',\n 'rotationChange',\n 'offsetXChange',\n 'offsetYChange',\n 'transformsEnabledChange',\n 'strokeWidthChange',\n];\nvar ANGLES = {\n 'top-left': -45,\n 'top-center': 0,\n 'top-right': 45,\n 'middle-right': -90,\n 'middle-left': 90,\n 'bottom-left': -135,\n 'bottom-center': 180,\n 'bottom-right': 135,\n};\nconst TOUCH_DEVICE = 'ontouchstart' in Konva._global;\nfunction getCursor(anchorName, rad) {\n if (anchorName === 'rotater') {\n return 'crosshair';\n }\n rad += Util.degToRad(ANGLES[anchorName] || 0);\n var angle = ((Util.radToDeg(rad) % 360) + 360) % 360;\n if (Util._inRange(angle, 315 + 22.5, 360) || Util._inRange(angle, 0, 22.5)) {\n return 'ns-resize';\n }\n else if (Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {\n return 'nwse-resize';\n }\n else if (Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {\n return 'ns-resize';\n }\n else if (Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {\n return 'nesw-resize';\n }\n else if (Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {\n return 'ew-resize';\n }\n else if (Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {\n return 'nwse-resize';\n }\n else {\n Util.error('Transformer has unknown angle for cursor detection: ' + angle);\n return 'pointer';\n }\n}\nvar ANCHORS_NAMES = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'middle-right',\n 'middle-left',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n];\nvar MAX_SAFE_INTEGER = 100000000;\nfunction getCenter(shape) {\n return {\n x: shape.x +\n (shape.width / 2) * Math.cos(shape.rotation) +\n (shape.height / 2) * Math.sin(-shape.rotation),\n y: shape.y +\n (shape.height / 2) * Math.cos(shape.rotation) +\n (shape.width / 2) * Math.sin(shape.rotation),\n };\n}\nfunction rotateAroundPoint(shape, angleRad, point) {\n const x = point.x +\n (shape.x - point.x) * Math.cos(angleRad) -\n (shape.y - point.y) * Math.sin(angleRad);\n const y = point.y +\n (shape.x - point.x) * Math.sin(angleRad) +\n (shape.y - point.y) * Math.cos(angleRad);\n return Object.assign(Object.assign({}, shape), { rotation: shape.rotation + angleRad, x,\n y });\n}\nfunction rotateAroundCenter(shape, deltaRad) {\n const center = getCenter(shape);\n return rotateAroundPoint(shape, deltaRad, center);\n}\nfunction getSnap(snaps, newRotationRad, tol) {\n let snapped = newRotationRad;\n for (let i = 0; i < snaps.length; i++) {\n const angle = Konva.getAngle(snaps[i]);\n const absDiff = Math.abs(angle - newRotationRad) % (Math.PI * 2);\n const dif = Math.min(absDiff, Math.PI * 2 - absDiff);\n if (dif < tol) {\n snapped = angle;\n }\n }\n return snapped;\n}\nexport class Transformer extends Group {\n constructor(config) {\n super(config);\n this._transforming = false;\n this._createElements();\n this._handleMouseMove = this._handleMouseMove.bind(this);\n this._handleMouseUp = this._handleMouseUp.bind(this);\n this.update = this.update.bind(this);\n this.on(ATTR_CHANGE_LIST, this.update);\n if (this.getNode()) {\n this.update();\n }\n }\n attachTo(node) {\n this.setNode(node);\n return this;\n }\n setNode(node) {\n Util.warn('tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.');\n return this.setNodes([node]);\n }\n getNode() {\n return this._nodes && this._nodes[0];\n }\n _getEventNamespace() {\n return EVENTS_NAME + this._id;\n }\n setNodes(nodes = []) {\n if (this._nodes && this._nodes.length) {\n this.detach();\n }\n this._nodes = nodes;\n if (nodes.length === 1 && this.useSingleNodeRotation()) {\n this.rotation(nodes[0].getAbsoluteRotation());\n }\n else {\n this.rotation(0);\n }\n this._nodes.forEach((node) => {\n const onChange = () => {\n if (this.nodes().length === 1 && this.useSingleNodeRotation()) {\n this.rotation(this.nodes()[0].getAbsoluteRotation());\n }\n this._resetTransformCache();\n if (!this._transforming && !this.isDragging()) {\n this.update();\n }\n };\n const additionalEvents = node._attrsAffectingSize\n .map((prop) => prop + 'Change.' + this._getEventNamespace())\n .join(' ');\n node.on(additionalEvents, onChange);\n node.on(TRANSFORM_CHANGE_STR.map((e) => e + `.${this._getEventNamespace()}`).join(' '), onChange);\n node.on(`absoluteTransformChange.${this._getEventNamespace()}`, onChange);\n this._proxyDrag(node);\n });\n this._resetTransformCache();\n var elementsCreated = !!this.findOne('.top-left');\n if (elementsCreated) {\n this.update();\n }\n return this;\n }\n _proxyDrag(node) {\n let lastPos;\n node.on(`dragstart.${this._getEventNamespace()}`, (e) => {\n lastPos = node.getAbsolutePosition();\n if (!this.isDragging() && node !== this.findOne('.back')) {\n this.startDrag(e, false);\n }\n });\n node.on(`dragmove.${this._getEventNamespace()}`, (e) => {\n if (!lastPos) {\n return;\n }\n const abs = node.getAbsolutePosition();\n const dx = abs.x - lastPos.x;\n const dy = abs.y - lastPos.y;\n this.nodes().forEach((otherNode) => {\n if (otherNode === node) {\n return;\n }\n if (otherNode.isDragging()) {\n return;\n }\n const otherAbs = otherNode.getAbsolutePosition();\n otherNode.setAbsolutePosition({\n x: otherAbs.x + dx,\n y: otherAbs.y + dy,\n });\n otherNode.startDrag(e);\n });\n lastPos = null;\n });\n }\n getNodes() {\n return this._nodes || [];\n }\n getActiveAnchor() {\n return this._movingAnchorName;\n }\n detach() {\n if (this._nodes) {\n this._nodes.forEach((node) => {\n node.off('.' + this._getEventNamespace());\n });\n }\n this._nodes = [];\n this._resetTransformCache();\n }\n _resetTransformCache() {\n this._clearCache(NODES_RECT);\n this._clearCache('transform');\n this._clearSelfAndDescendantCache('absoluteTransform');\n }\n _getNodeRect() {\n return this._getCache(NODES_RECT, this.__getNodeRect);\n }\n __getNodeShape(node, rot = this.rotation(), relative) {\n var rect = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n var absScale = node.getAbsoluteScale(relative);\n var absPos = node.getAbsolutePosition(relative);\n var dx = rect.x * absScale.x - node.offsetX() * absScale.x;\n var dy = rect.y * absScale.y - node.offsetY() * absScale.y;\n const rotation = (Konva.getAngle(node.getAbsoluteRotation()) + Math.PI * 2) %\n (Math.PI * 2);\n const box = {\n x: absPos.x + dx * Math.cos(rotation) + dy * Math.sin(-rotation),\n y: absPos.y + dy * Math.cos(rotation) + dx * Math.sin(rotation),\n width: rect.width * absScale.x,\n height: rect.height * absScale.y,\n rotation: rotation,\n };\n return rotateAroundPoint(box, -Konva.getAngle(rot), {\n x: 0,\n y: 0,\n });\n }\n __getNodeRect() {\n var node = this.getNode();\n if (!node) {\n return {\n x: -MAX_SAFE_INTEGER,\n y: -MAX_SAFE_INTEGER,\n width: 0,\n height: 0,\n rotation: 0,\n };\n }\n const totalPoints = [];\n this.nodes().map((node) => {\n const box = node.getClientRect({\n skipTransform: true,\n skipShadow: true,\n skipStroke: this.ignoreStroke(),\n });\n var points = [\n { x: box.x, y: box.y },\n { x: box.x + box.width, y: box.y },\n { x: box.x + box.width, y: box.y + box.height },\n { x: box.x, y: box.y + box.height },\n ];\n var trans = node.getAbsoluteTransform();\n points.forEach(function (point) {\n var transformed = trans.point(point);\n totalPoints.push(transformed);\n });\n });\n const tr = new Transform();\n tr.rotate(-Konva.getAngle(this.rotation()));\n var minX, minY, maxX, maxY;\n totalPoints.forEach(function (point) {\n var transformed = tr.point(point);\n if (minX === undefined) {\n minX = maxX = transformed.x;\n minY = maxY = transformed.y;\n }\n minX = Math.min(minX, transformed.x);\n minY = Math.min(minY, transformed.y);\n maxX = Math.max(maxX, transformed.x);\n maxY = Math.max(maxY, transformed.y);\n });\n tr.invert();\n const p = tr.point({ x: minX, y: minY });\n return {\n x: p.x,\n y: p.y,\n width: maxX - minX,\n height: maxY - minY,\n rotation: Konva.getAngle(this.rotation()),\n };\n }\n getX() {\n return this._getNodeRect().x;\n }\n getY() {\n return this._getNodeRect().y;\n }\n getWidth() {\n return this._getNodeRect().width;\n }\n getHeight() {\n return this._getNodeRect().height;\n }\n _createElements() {\n this._createBack();\n ANCHORS_NAMES.forEach(function (name) {\n this._createAnchor(name);\n }.bind(this));\n this._createAnchor('rotater');\n }\n _createAnchor(name) {\n var anchor = new Rect({\n stroke: 'rgb(0, 161, 255)',\n fill: 'white',\n strokeWidth: 1,\n name: name + ' _anchor',\n dragDistance: 0,\n draggable: true,\n hitStrokeWidth: TOUCH_DEVICE ? 10 : 'auto',\n });\n var self = this;\n anchor.on('mousedown touchstart', function (e) {\n self._handleMouseDown(e);\n });\n anchor.on('dragstart', (e) => {\n anchor.stopDrag();\n e.cancelBubble = true;\n });\n anchor.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n anchor.on('mouseenter', () => {\n var rad = Konva.getAngle(this.rotation());\n var cursor = getCursor(name, rad);\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = cursor);\n this._cursorChange = true;\n });\n anchor.on('mouseout', () => {\n anchor.getStage().content &&\n (anchor.getStage().content.style.cursor = '');\n this._cursorChange = false;\n });\n this.add(anchor);\n }\n _createBack() {\n var back = new Shape({\n name: 'back',\n width: 0,\n height: 0,\n draggable: true,\n sceneFunc(ctx) {\n var tr = this.getParent();\n var padding = tr.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, this.width() + padding * 2, this.height() + padding * 2);\n ctx.moveTo(this.width() / 2, -padding);\n if (tr.rotateEnabled()) {\n ctx.lineTo(this.width() / 2, -tr.rotateAnchorOffset() * Util._sign(this.height()) - padding);\n }\n ctx.fillStrokeShape(this);\n },\n hitFunc: (ctx, shape) => {\n if (!this.shouldOverdrawWholeArea()) {\n return;\n }\n var padding = this.padding();\n ctx.beginPath();\n ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);\n ctx.fillStrokeShape(shape);\n },\n });\n this.add(back);\n this._proxyDrag(back);\n back.on('dragstart', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragmove', (e) => {\n e.cancelBubble = true;\n });\n back.on('dragend', (e) => {\n e.cancelBubble = true;\n });\n this.on('dragmove', (e) => {\n this.update();\n });\n }\n _handleMouseDown(e) {\n this._movingAnchorName = e.target.name().split(' ')[0];\n var attrs = this._getNodeRect();\n var width = attrs.width;\n var height = attrs.height;\n var hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\n this.sin = Math.abs(height / hypotenuse);\n this.cos = Math.abs(width / hypotenuse);\n if (typeof window !== 'undefined') {\n window.addEventListener('mousemove', this._handleMouseMove);\n window.addEventListener('touchmove', this._handleMouseMove);\n window.addEventListener('mouseup', this._handleMouseUp, true);\n window.addEventListener('touchend', this._handleMouseUp, true);\n }\n this._transforming = true;\n var ap = e.target.getAbsolutePosition();\n var pos = e.target.getStage().getPointerPosition();\n this._anchorDragOffset = {\n x: pos.x - ap.x,\n y: pos.y - ap.y,\n };\n this._fire('transformstart', { evt: e.evt, target: this.getNode() });\n this._nodes.forEach((target) => {\n target._fire('transformstart', { evt: e.evt, target });\n });\n }\n _handleMouseMove(e) {\n var x, y, newHypotenuse;\n var anchorNode = this.findOne('.' + this._movingAnchorName);\n var stage = anchorNode.getStage();\n stage.setPointersPositions(e);\n const pp = stage.getPointerPosition();\n let newNodePos = {\n x: pp.x - this._anchorDragOffset.x,\n y: pp.y - this._anchorDragOffset.y,\n };\n const oldAbs = anchorNode.getAbsolutePosition();\n if (this.anchorDragBoundFunc()) {\n newNodePos = this.anchorDragBoundFunc()(oldAbs, newNodePos, e);\n }\n anchorNode.setAbsolutePosition(newNodePos);\n const newAbs = anchorNode.getAbsolutePosition();\n if (oldAbs.x === newAbs.x && oldAbs.y === newAbs.y) {\n return;\n }\n if (this._movingAnchorName === 'rotater') {\n var attrs = this._getNodeRect();\n x = anchorNode.x() - attrs.width / 2;\n y = -anchorNode.y() + attrs.height / 2;\n let delta = Math.atan2(-y, x) + Math.PI / 2;\n if (attrs.height < 0) {\n delta -= Math.PI;\n }\n var oldRotation = Konva.getAngle(this.rotation());\n const newRotation = oldRotation + delta;\n const tol = Konva.getAngle(this.rotationSnapTolerance());\n const snappedRot = getSnap(this.rotationSnaps(), newRotation, tol);\n const diff = snappedRot - attrs.rotation;\n const shape = rotateAroundCenter(attrs, diff);\n this._fitNodesInto(shape, e);\n return;\n }\n var keepProportion = this.keepRatio() || e.shiftKey;\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (this._movingAnchorName === 'top-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-right').x(),\n y: this.findOne('.bottom-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-left').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-left').x(comparePoint.x - x);\n this.findOne('.top-left').y(comparePoint.y - y);\n }\n }\n else if (this._movingAnchorName === 'top-center') {\n this.findOne('.top-left').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'top-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.bottom-left').x(),\n y: this.findOne('.bottom-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(comparePoint.y - anchorNode.y(), 2));\n var reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.top-right').y() > comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.top-right').x(comparePoint.x + x);\n this.findOne('.top-right').y(comparePoint.y - y);\n }\n var pos = anchorNode.position();\n this.findOne('.top-left').y(pos.y);\n this.findOne('.bottom-right').x(pos.x);\n }\n else if (this._movingAnchorName === 'middle-left') {\n this.findOne('.top-left').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'middle-right') {\n this.findOne('.bottom-right').x(anchorNode.x());\n }\n else if (this._movingAnchorName === 'bottom-left') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-right').x(),\n y: this.findOne('.top-right').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;\n var reverseY = anchorNode.y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n anchorNode.x(comparePoint.x - x);\n anchorNode.y(comparePoint.y + y);\n }\n pos = anchorNode.position();\n this.findOne('.top-left').x(pos.x);\n this.findOne('.bottom-right').y(pos.y);\n }\n else if (this._movingAnchorName === 'bottom-center') {\n this.findOne('.bottom-right').y(anchorNode.y());\n }\n else if (this._movingAnchorName === 'bottom-right') {\n if (keepProportion) {\n var comparePoint = centeredScaling\n ? {\n x: this.width() / 2,\n y: this.height() / 2,\n }\n : {\n x: this.findOne('.top-left').x(),\n y: this.findOne('.top-left').y(),\n };\n newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +\n Math.pow(anchorNode.y() - comparePoint.y, 2));\n var reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;\n var reverseY = this.findOne('.bottom-right').y() < comparePoint.y ? -1 : 1;\n x = newHypotenuse * this.cos * reverseX;\n y = newHypotenuse * this.sin * reverseY;\n this.findOne('.bottom-right').x(comparePoint.x + x);\n this.findOne('.bottom-right').y(comparePoint.y + y);\n }\n }\n else {\n console.error(new Error('Wrong position argument of selection resizer: ' +\n this._movingAnchorName));\n }\n var centeredScaling = this.centeredScaling() || e.altKey;\n if (centeredScaling) {\n var topLeft = this.findOne('.top-left');\n var bottomRight = this.findOne('.bottom-right');\n var topOffsetX = topLeft.x();\n var topOffsetY = topLeft.y();\n var bottomOffsetX = this.getWidth() - bottomRight.x();\n var bottomOffsetY = this.getHeight() - bottomRight.y();\n bottomRight.move({\n x: -topOffsetX,\n y: -topOffsetY,\n });\n topLeft.move({\n x: bottomOffsetX,\n y: bottomOffsetY,\n });\n }\n var absPos = this.findOne('.top-left').getAbsolutePosition();\n x = absPos.x;\n y = absPos.y;\n var width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();\n var height = this.findOne('.bottom-right').y() - this.findOne('.top-left').y();\n this._fitNodesInto({\n x: x,\n y: y,\n width: width,\n height: height,\n rotation: Konva.getAngle(this.rotation()),\n }, e);\n }\n _handleMouseUp(e) {\n this._removeEvents(e);\n }\n getAbsoluteTransform() {\n return this.getTransform();\n }\n _removeEvents(e) {\n if (this._transforming) {\n this._transforming = false;\n if (typeof window !== 'undefined') {\n window.removeEventListener('mousemove', this._handleMouseMove);\n window.removeEventListener('touchmove', this._handleMouseMove);\n window.removeEventListener('mouseup', this._handleMouseUp, true);\n window.removeEventListener('touchend', this._handleMouseUp, true);\n }\n var node = this.getNode();\n this._fire('transformend', { evt: e, target: node });\n if (node) {\n this._nodes.forEach((target) => {\n target._fire('transformend', { evt: e, target });\n });\n }\n this._movingAnchorName = null;\n }\n }\n _fitNodesInto(newAttrs, evt) {\n var oldAttrs = this._getNodeRect();\n const minSize = 1;\n if (Util._inRange(newAttrs.width, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n if (Util._inRange(newAttrs.height, -this.padding() * 2 - minSize, minSize)) {\n this.update();\n return;\n }\n const allowNegativeScale = this.flipEnabled();\n var t = new Transform();\n t.rotate(Konva.getAngle(this.rotation()));\n if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('left') >= 0) {\n const offset = t.point({\n x: -this.padding() * 2,\n y: 0,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n newAttrs.width += this.padding() * 2;\n this._movingAnchorName = this._movingAnchorName.replace('left', 'right');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n else if (this._movingAnchorName &&\n newAttrs.width < 0 &&\n this._movingAnchorName.indexOf('right') >= 0) {\n const offset = t.point({\n x: this.padding() * 2,\n y: 0,\n });\n this._movingAnchorName = this._movingAnchorName.replace('right', 'left');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.width += this.padding() * 2;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('top') >= 0) {\n const offset = t.point({\n x: 0,\n y: -this.padding() * 2,\n });\n newAttrs.x += offset.x;\n newAttrs.y += offset.y;\n this._movingAnchorName = this._movingAnchorName.replace('top', 'bottom');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n else if (this._movingAnchorName &&\n newAttrs.height < 0 &&\n this._movingAnchorName.indexOf('bottom') >= 0) {\n const offset = t.point({\n x: 0,\n y: this.padding() * 2,\n });\n this._movingAnchorName = this._movingAnchorName.replace('bottom', 'top');\n this._anchorDragOffset.x -= offset.x;\n this._anchorDragOffset.y -= offset.y;\n newAttrs.height += this.padding() * 2;\n if (!allowNegativeScale) {\n this.update();\n return;\n }\n }\n if (this.boundBoxFunc()) {\n const bounded = this.boundBoxFunc()(oldAttrs, newAttrs);\n if (bounded) {\n newAttrs = bounded;\n }\n else {\n Util.warn('boundBoxFunc returned falsy. You should return new bound rect from it!');\n }\n }\n const baseSize = 10000000;\n const oldTr = new Transform();\n oldTr.translate(oldAttrs.x, oldAttrs.y);\n oldTr.rotate(oldAttrs.rotation);\n oldTr.scale(oldAttrs.width / baseSize, oldAttrs.height / baseSize);\n const newTr = new Transform();\n newTr.translate(newAttrs.x, newAttrs.y);\n newTr.rotate(newAttrs.rotation);\n newTr.scale(newAttrs.width / baseSize, newAttrs.height / baseSize);\n const delta = newTr.multiply(oldTr.invert());\n this._nodes.forEach((node) => {\n var _a;\n const parentTransform = node.getParent().getAbsoluteTransform();\n const localTransform = node.getTransform().copy();\n localTransform.translate(node.offsetX(), node.offsetY());\n const newLocalTransform = new Transform();\n newLocalTransform\n .multiply(parentTransform.copy().invert())\n .multiply(delta)\n .multiply(parentTransform)\n .multiply(localTransform);\n const attrs = newLocalTransform.decompose();\n node.setAttrs(attrs);\n this._fire('transform', { evt: evt, target: node });\n node._fire('transform', { evt: evt, target: node });\n (_a = node.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n });\n this.rotation(Util._getRotation(newAttrs.rotation));\n this._resetTransformCache();\n this.update();\n this.getLayer().batchDraw();\n }\n forceUpdate() {\n this._resetTransformCache();\n this.update();\n }\n _batchChangeChild(selector, attrs) {\n const anchor = this.findOne(selector);\n anchor.setAttrs(attrs);\n }\n update() {\n var _a;\n var attrs = this._getNodeRect();\n this.rotation(Util._getRotation(attrs.rotation));\n var width = attrs.width;\n var height = attrs.height;\n var enabledAnchors = this.enabledAnchors();\n var resizeEnabled = this.resizeEnabled();\n var padding = this.padding();\n var anchorSize = this.anchorSize();\n this.find('._anchor').forEach((node) => {\n node.setAttrs({\n width: anchorSize,\n height: anchorSize,\n offsetX: anchorSize / 2,\n offsetY: anchorSize / 2,\n stroke: this.anchorStroke(),\n strokeWidth: this.anchorStrokeWidth(),\n fill: this.anchorFill(),\n cornerRadius: this.anchorCornerRadius(),\n });\n });\n this._batchChangeChild('.top-left', {\n x: 0,\n y: 0,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0,\n });\n this._batchChangeChild('.top-center', {\n x: width / 2,\n y: 0,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0,\n });\n this._batchChangeChild('.top-right', {\n x: width,\n y: 0,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0,\n });\n this._batchChangeChild('.middle-left', {\n x: 0,\n y: height / 2,\n offsetX: anchorSize / 2 + padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0,\n });\n this._batchChangeChild('.middle-right', {\n x: width,\n y: height / 2,\n offsetX: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0,\n });\n this._batchChangeChild('.bottom-left', {\n x: 0,\n y: height,\n offsetX: anchorSize / 2 + padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0,\n });\n this._batchChangeChild('.bottom-center', {\n x: width / 2,\n y: height,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0,\n });\n this._batchChangeChild('.bottom-right', {\n x: width,\n y: height,\n offsetX: anchorSize / 2 - padding,\n offsetY: anchorSize / 2 - padding,\n visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0,\n });\n this._batchChangeChild('.rotater', {\n x: width / 2,\n y: -this.rotateAnchorOffset() * Util._sign(height) - padding,\n visible: this.rotateEnabled(),\n });\n this._batchChangeChild('.back', {\n width: width,\n height: height,\n visible: this.borderEnabled(),\n stroke: this.borderStroke(),\n strokeWidth: this.borderStrokeWidth(),\n dash: this.borderDash(),\n x: 0,\n y: 0,\n });\n (_a = this.getLayer()) === null || _a === void 0 ? void 0 : _a.batchDraw();\n }\n isTransforming() {\n return this._transforming;\n }\n stopTransform() {\n if (this._transforming) {\n this._removeEvents();\n var anchorNode = this.findOne('.' + this._movingAnchorName);\n if (anchorNode) {\n anchorNode.stopDrag();\n }\n }\n }\n destroy() {\n if (this.getStage() && this._cursorChange) {\n this.getStage().content && (this.getStage().content.style.cursor = '');\n }\n Group.prototype.destroy.call(this);\n this.detach();\n this._removeEvents();\n return this;\n }\n toObject() {\n return Node.prototype.toObject.call(this);\n }\n getClientRect() {\n if (this.nodes().length > 0) {\n return super.getClientRect();\n }\n else {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n }\n}\nfunction validateAnchors(val) {\n if (!(val instanceof Array)) {\n Util.warn('enabledAnchors value should be an array');\n }\n if (val instanceof Array) {\n val.forEach(function (name) {\n if (ANCHORS_NAMES.indexOf(name) === -1) {\n Util.warn('Unknown anchor name: ' +\n name +\n '. Available names are: ' +\n ANCHORS_NAMES.join(', '));\n }\n });\n }\n return val || [];\n}\nTransformer.prototype.className = 'Transformer';\n_registerNode(Transformer);\nFactory.addGetterSetter(Transformer, 'enabledAnchors', ANCHORS_NAMES, validateAnchors);\nFactory.addGetterSetter(Transformer, 'flipEnabled', true, getBooleanValidator());\nFactory.addGetterSetter(Transformer, 'resizeEnabled', true);\nFactory.addGetterSetter(Transformer, 'anchorSize', 10, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'rotateEnabled', true);\nFactory.addGetterSetter(Transformer, 'rotationSnaps', []);\nFactory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'rotationSnapTolerance', 5, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderEnabled', true);\nFactory.addGetterSetter(Transformer, 'anchorStroke', 'rgb(0, 161, 255)');\nFactory.addGetterSetter(Transformer, 'anchorStrokeWidth', 1, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'anchorFill', 'white');\nFactory.addGetterSetter(Transformer, 'anchorCornerRadius', 0, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderStroke', 'rgb(0, 161, 255)');\nFactory.addGetterSetter(Transformer, 'borderStrokeWidth', 1, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'borderDash');\nFactory.addGetterSetter(Transformer, 'keepRatio', true);\nFactory.addGetterSetter(Transformer, 'centeredScaling', false);\nFactory.addGetterSetter(Transformer, 'ignoreStroke', false);\nFactory.addGetterSetter(Transformer, 'padding', 0, getNumberValidator());\nFactory.addGetterSetter(Transformer, 'node');\nFactory.addGetterSetter(Transformer, 'nodes');\nFactory.addGetterSetter(Transformer, 'boundBoxFunc');\nFactory.addGetterSetter(Transformer, 'anchorDragBoundFunc');\nFactory.addGetterSetter(Transformer, 'shouldOverdrawWholeArea', false);\nFactory.addGetterSetter(Transformer, 'useSingleNodeRotation', true);\nFactory.backCompat(Transformer, {\n lineEnabled: 'borderEnabled',\n rotateHandlerOffset: 'rotateAnchorOffset',\n enabledHandlers: 'enabledAnchors',\n});\n","import { Factory } from '../Factory.js';\nimport { Shape } from '../Shape.js';\nimport { Konva } from '../Global.js';\nimport { getNumberValidator } from '../Validators.js';\nimport { _registerNode } from '../Global.js';\nexport class Wedge extends Shape {\n _sceneFunc(context) {\n context.beginPath();\n context.arc(0, 0, this.radius(), 0, Konva.getAngle(this.angle()), this.clockwise());\n context.lineTo(0, 0);\n context.closePath();\n context.fillStrokeShape(this);\n }\n getWidth() {\n return this.radius() * 2;\n }\n getHeight() {\n return this.radius() * 2;\n }\n setWidth(width) {\n this.radius(width / 2);\n }\n setHeight(height) {\n this.radius(height / 2);\n }\n}\nWedge.prototype.className = 'Wedge';\nWedge.prototype._centroid = true;\nWedge.prototype._attrsAffectingSize = ['radius'];\n_registerNode(Wedge);\nFactory.addGetterSetter(Wedge, 'radius', 0, getNumberValidator());\nFactory.addGetterSetter(Wedge, 'angle', 0, getNumberValidator());\nFactory.addGetterSetter(Wedge, 'clockwise', false);\nFactory.backCompat(Wedge, {\n angleDeg: 'angle',\n getAngleDeg: 'getAngle',\n setAngleDeg: 'setAngle',\n});\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nfunction BlurStack() {\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n}\nvar mul_table = [\n 512,\n 512,\n 456,\n 512,\n 328,\n 456,\n 335,\n 512,\n 405,\n 328,\n 271,\n 456,\n 388,\n 335,\n 292,\n 512,\n 454,\n 405,\n 364,\n 328,\n 298,\n 271,\n 496,\n 456,\n 420,\n 388,\n 360,\n 335,\n 312,\n 292,\n 273,\n 512,\n 482,\n 454,\n 428,\n 405,\n 383,\n 364,\n 345,\n 328,\n 312,\n 298,\n 284,\n 271,\n 259,\n 496,\n 475,\n 456,\n 437,\n 420,\n 404,\n 388,\n 374,\n 360,\n 347,\n 335,\n 323,\n 312,\n 302,\n 292,\n 282,\n 273,\n 265,\n 512,\n 497,\n 482,\n 468,\n 454,\n 441,\n 428,\n 417,\n 405,\n 394,\n 383,\n 373,\n 364,\n 354,\n 345,\n 337,\n 328,\n 320,\n 312,\n 305,\n 298,\n 291,\n 284,\n 278,\n 271,\n 265,\n 259,\n 507,\n 496,\n 485,\n 475,\n 465,\n 456,\n 446,\n 437,\n 428,\n 420,\n 412,\n 404,\n 396,\n 388,\n 381,\n 374,\n 367,\n 360,\n 354,\n 347,\n 341,\n 335,\n 329,\n 323,\n 318,\n 312,\n 307,\n 302,\n 297,\n 292,\n 287,\n 282,\n 278,\n 273,\n 269,\n 265,\n 261,\n 512,\n 505,\n 497,\n 489,\n 482,\n 475,\n 468,\n 461,\n 454,\n 447,\n 441,\n 435,\n 428,\n 422,\n 417,\n 411,\n 405,\n 399,\n 394,\n 389,\n 383,\n 378,\n 373,\n 368,\n 364,\n 359,\n 354,\n 350,\n 345,\n 341,\n 337,\n 332,\n 328,\n 324,\n 320,\n 316,\n 312,\n 309,\n 305,\n 301,\n 298,\n 294,\n 291,\n 287,\n 284,\n 281,\n 278,\n 274,\n 271,\n 268,\n 265,\n 262,\n 259,\n 257,\n 507,\n 501,\n 496,\n 491,\n 485,\n 480,\n 475,\n 470,\n 465,\n 460,\n 456,\n 451,\n 446,\n 442,\n 437,\n 433,\n 428,\n 424,\n 420,\n 416,\n 412,\n 408,\n 404,\n 400,\n 396,\n 392,\n 388,\n 385,\n 381,\n 377,\n 374,\n 370,\n 367,\n 363,\n 360,\n 357,\n 354,\n 350,\n 347,\n 344,\n 341,\n 338,\n 335,\n 332,\n 329,\n 326,\n 323,\n 320,\n 318,\n 315,\n 312,\n 310,\n 307,\n 304,\n 302,\n 299,\n 297,\n 294,\n 292,\n 289,\n 287,\n 285,\n 282,\n 280,\n 278,\n 275,\n 273,\n 271,\n 269,\n 267,\n 265,\n 263,\n 261,\n 259,\n];\nvar shg_table = [\n 9,\n 11,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 16,\n 17,\n 17,\n 17,\n 17,\n 17,\n 17,\n 17,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 18,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 19,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 20,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 21,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 22,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 23,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n 24,\n];\nfunction filterGaussBlurRGBA(imageData, radius) {\n var pixels = imageData.data, width = imageData.width, height = imageData.height;\n var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, r_out_sum, g_out_sum, b_out_sum, a_out_sum, r_in_sum, g_in_sum, b_in_sum, a_in_sum, pr, pg, pb, pa, rbs;\n var div = radius + radius + 1, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), stackEnd = null, stack = stackStart, stackIn = null, stackOut = null, mul_sum = mul_table[radius], shg_sum = shg_table[radius];\n for (i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n stack.next = stackStart;\n yw = yi = 0;\n for (y = 0; y < height; y++) {\n r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n for (i = 1; i < radiusPlus1; i++) {\n p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);\n r_sum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[p + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[p + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[p + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n }\n stackIn = stackStart;\n stackOut = stackEnd;\n for (x = 0; x < width; x++) {\n pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa !== 0) {\n pa = 255 / pa;\n pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;\n r_in_sum += stackIn.r = pixels[p];\n g_in_sum += stackIn.g = pixels[p + 1];\n b_in_sum += stackIn.b = pixels[p + 2];\n a_in_sum += stackIn.a = pixels[p + 3];\n r_sum += r_in_sum;\n g_sum += g_in_sum;\n b_sum += b_in_sum;\n a_sum += a_in_sum;\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += 4;\n }\n yw += width;\n }\n for (x = 0; x < width; x++) {\n g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;\n yi = x << 2;\n r_out_sum = radiusPlus1 * (pr = pixels[yi]);\n g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);\n b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);\n a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);\n r_sum += sumFactor * pr;\n g_sum += sumFactor * pg;\n b_sum += sumFactor * pb;\n a_sum += sumFactor * pa;\n stack = stackStart;\n for (i = 0; i < radiusPlus1; i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n yp = width;\n for (i = 1; i <= radius; i++) {\n yi = (yp + x) << 2;\n r_sum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);\n g_sum += (stack.g = pg = pixels[yi + 1]) * rbs;\n b_sum += (stack.b = pb = pixels[yi + 2]) * rbs;\n a_sum += (stack.a = pa = pixels[yi + 3]) * rbs;\n r_in_sum += pr;\n g_in_sum += pg;\n b_in_sum += pb;\n a_in_sum += pa;\n stack = stack.next;\n if (i < heightMinus1) {\n yp += width;\n }\n }\n yi = x;\n stackIn = stackStart;\n stackOut = stackEnd;\n for (y = 0; y < height; y++) {\n p = yi << 2;\n pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;\n if (pa > 0) {\n pa = 255 / pa;\n pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;\n pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;\n }\n else {\n pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;\n }\n r_sum -= r_out_sum;\n g_sum -= g_out_sum;\n b_sum -= b_out_sum;\n a_sum -= a_out_sum;\n r_out_sum -= stackIn.r;\n g_out_sum -= stackIn.g;\n b_out_sum -= stackIn.b;\n a_out_sum -= stackIn.a;\n p =\n (x +\n ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width) <<\n 2;\n r_sum += r_in_sum += stackIn.r = pixels[p];\n g_sum += g_in_sum += stackIn.g = pixels[p + 1];\n b_sum += b_in_sum += stackIn.b = pixels[p + 2];\n a_sum += a_in_sum += stackIn.a = pixels[p + 3];\n stackIn = stackIn.next;\n r_out_sum += pr = stackOut.r;\n g_out_sum += pg = stackOut.g;\n b_out_sum += pb = stackOut.b;\n a_out_sum += pa = stackOut.a;\n r_in_sum -= pr;\n g_in_sum -= pg;\n b_in_sum -= pb;\n a_in_sum -= pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n}\nexport const Blur = function Blur(imageData) {\n var radius = Math.round(this.blurRadius());\n if (radius > 0) {\n filterGaussBlurRGBA(imageData, radius);\n }\n};\nFactory.addGetterSetter(Node, 'blurRadius', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Brighten = function (imageData) {\n var brightness = this.brightness() * 255, data = imageData.data, len = data.length, i;\n for (i = 0; i < len; i += 4) {\n data[i] += brightness;\n data[i + 1] += brightness;\n data[i + 2] += brightness;\n }\n};\nFactory.addGetterSetter(Node, 'brightness', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Contrast = function (imageData) {\n var adjust = Math.pow((this.contrast() + 100) / 100, 2);\n var data = imageData.data, nPixels = data.length, red = 150, green = 150, blue = 150, i;\n for (i = 0; i < nPixels; i += 4) {\n red = data[i];\n green = data[i + 1];\n blue = data[i + 2];\n red /= 255;\n red -= 0.5;\n red *= adjust;\n red += 0.5;\n red *= 255;\n green /= 255;\n green -= 0.5;\n green *= adjust;\n green += 0.5;\n green *= 255;\n blue /= 255;\n blue -= 0.5;\n blue *= adjust;\n blue += 0.5;\n blue *= 255;\n red = red < 0 ? 0 : red > 255 ? 255 : red;\n green = green < 0 ? 0 : green > 255 ? 255 : green;\n blue = blue < 0 ? 0 : blue > 255 ? 255 : blue;\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n }\n};\nFactory.addGetterSetter(Node, 'contrast', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { Util } from '../Util.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Emboss = function (imageData) {\n var strength = this.embossStrength() * 10, greyLevel = this.embossWhiteLevel() * 255, direction = this.embossDirection(), blend = this.embossBlend(), dirY = 0, dirX = 0, data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, y = h;\n switch (direction) {\n case 'top-left':\n dirY = -1;\n dirX = -1;\n break;\n case 'top':\n dirY = -1;\n dirX = 0;\n break;\n case 'top-right':\n dirY = -1;\n dirX = 1;\n break;\n case 'right':\n dirY = 0;\n dirX = 1;\n break;\n case 'bottom-right':\n dirY = 1;\n dirX = 1;\n break;\n case 'bottom':\n dirY = 1;\n dirX = 0;\n break;\n case 'bottom-left':\n dirY = 1;\n dirX = -1;\n break;\n case 'left':\n dirY = 0;\n dirX = -1;\n break;\n default:\n Util.error('Unknown emboss direction: ' + direction);\n }\n do {\n var offsetY = (y - 1) * w4;\n var otherY = dirY;\n if (y + otherY < 1) {\n otherY = 0;\n }\n if (y + otherY > h) {\n otherY = 0;\n }\n var offsetYOther = (y - 1 + otherY) * w * 4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var otherX = dirX;\n if (x + otherX < 1) {\n otherX = 0;\n }\n if (x + otherX > w) {\n otherX = 0;\n }\n var offsetOther = offsetYOther + (x - 1 + otherX) * 4;\n var dR = data[offset] - data[offsetOther];\n var dG = data[offset + 1] - data[offsetOther + 1];\n var dB = data[offset + 2] - data[offsetOther + 2];\n var dif = dR;\n var absDif = dif > 0 ? dif : -dif;\n var absG = dG > 0 ? dG : -dG;\n var absB = dB > 0 ? dB : -dB;\n if (absG > absDif) {\n dif = dG;\n }\n if (absB > absDif) {\n dif = dB;\n }\n dif *= strength;\n if (blend) {\n var r = data[offset] + dif;\n var g = data[offset + 1] + dif;\n var b = data[offset + 2] + dif;\n data[offset] = r > 255 ? 255 : r < 0 ? 0 : r;\n data[offset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;\n data[offset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;\n }\n else {\n var grey = greyLevel - dif;\n if (grey < 0) {\n grey = 0;\n }\n else if (grey > 255) {\n grey = 255;\n }\n data[offset] = data[offset + 1] = data[offset + 2] = grey;\n }\n } while (--x);\n } while (--y);\n};\nFactory.addGetterSetter(Node, 'embossStrength', 0.5, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossWhiteLevel', 0.5, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossDirection', 'top-left', null, Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'embossBlend', false, null, Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nfunction remap(fromValue, fromMin, fromMax, toMin, toMax) {\n var fromRange = fromMax - fromMin, toRange = toMax - toMin, toValue;\n if (fromRange === 0) {\n return toMin + toRange / 2;\n }\n if (toRange === 0) {\n return toMin;\n }\n toValue = (fromValue - fromMin) / fromRange;\n toValue = toRange * toValue + toMin;\n return toValue;\n}\nexport const Enhance = function (imageData) {\n var data = imageData.data, nSubPixels = data.length, rMin = data[0], rMax = rMin, r, gMin = data[1], gMax = gMin, g, bMin = data[2], bMax = bMin, b, i;\n var enhanceAmount = this.enhance();\n if (enhanceAmount === 0) {\n return;\n }\n for (i = 0; i < nSubPixels; i += 4) {\n r = data[i + 0];\n if (r < rMin) {\n rMin = r;\n }\n else if (r > rMax) {\n rMax = r;\n }\n g = data[i + 1];\n if (g < gMin) {\n gMin = g;\n }\n else if (g > gMax) {\n gMax = g;\n }\n b = data[i + 2];\n if (b < bMin) {\n bMin = b;\n }\n else if (b > bMax) {\n bMax = b;\n }\n }\n if (rMax === rMin) {\n rMax = 255;\n rMin = 0;\n }\n if (gMax === gMin) {\n gMax = 255;\n gMin = 0;\n }\n if (bMax === bMin) {\n bMax = 255;\n bMin = 0;\n }\n var rMid, rGoalMax, rGoalMin, gMid, gGoalMax, gGoalMin, bMid, bGoalMax, bGoalMin;\n if (enhanceAmount > 0) {\n rGoalMax = rMax + enhanceAmount * (255 - rMax);\n rGoalMin = rMin - enhanceAmount * (rMin - 0);\n gGoalMax = gMax + enhanceAmount * (255 - gMax);\n gGoalMin = gMin - enhanceAmount * (gMin - 0);\n bGoalMax = bMax + enhanceAmount * (255 - bMax);\n bGoalMin = bMin - enhanceAmount * (bMin - 0);\n }\n else {\n rMid = (rMax + rMin) * 0.5;\n rGoalMax = rMax + enhanceAmount * (rMax - rMid);\n rGoalMin = rMin + enhanceAmount * (rMin - rMid);\n gMid = (gMax + gMin) * 0.5;\n gGoalMax = gMax + enhanceAmount * (gMax - gMid);\n gGoalMin = gMin + enhanceAmount * (gMin - gMid);\n bMid = (bMax + bMin) * 0.5;\n bGoalMax = bMax + enhanceAmount * (bMax - bMid);\n bGoalMin = bMin + enhanceAmount * (bMin - bMid);\n }\n for (i = 0; i < nSubPixels; i += 4) {\n data[i + 0] = remap(data[i + 0], rMin, rMax, rGoalMin, rGoalMax);\n data[i + 1] = remap(data[i + 1], gMin, gMax, gGoalMin, gGoalMax);\n data[i + 2] = remap(data[i + 2], bMin, bMax, bGoalMin, bGoalMax);\n }\n};\nFactory.addGetterSetter(Node, 'enhance', 0, getNumberValidator(), Factory.afterSetFilter);\n","export const Grayscale = function (imageData) {\n var data = imageData.data, len = data.length, i, brightness;\n for (i = 0; i < len; i += 4) {\n brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];\n data[i] = brightness;\n data[i + 1] = brightness;\n data[i + 2] = brightness;\n }\n};\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nFactory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'luminance', 0, getNumberValidator(), Factory.afterSetFilter);\nexport const HSL = function (imageData) {\n var data = imageData.data, nPixels = data.length, v = 1, s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, l = this.luminance() * 127, i;\n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n var r, g, b, a;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b + l;\n data[i + 1] = gr * r + gg * g + gb * b + l;\n data[i + 2] = br * r + bg * g + bb * b + l;\n data[i + 3] = a;\n }\n};\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const HSV = function (imageData) {\n var data = imageData.data, nPixels = data.length, v = Math.pow(2, this.value()), s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, i;\n var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);\n var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;\n var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;\n var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;\n var r, g, b, a;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i + 0] = rr * r + rg * g + rb * b;\n data[i + 1] = gr * r + gg * g + gb * b;\n data[i + 2] = br * r + bg * g + bb * b;\n data[i + 3] = a;\n }\n};\nFactory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'value', 0, getNumberValidator(), Factory.afterSetFilter);\n","export const Invert = function (imageData) {\n var data = imageData.data, len = data.length, i;\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","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { Util } from '../Util.js';\nimport { getNumberValidator } from '../Validators.js';\nvar ToPolar = function (src, dst, opt) {\n var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, r = 0, g = 0, b = 0, a = 0;\n var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize, tSize = xSize, radius, theta;\n var conversion = ((360 / tSize) * Math.PI) / 180, sin, cos;\n for (theta = 0; theta < tSize; theta += 1) {\n sin = Math.sin(theta * conversion);\n cos = Math.cos(theta * conversion);\n for (radius = 0; radius < rSize; radius += 1) {\n x = Math.floor(xMid + ((rMax * radius) / rSize) * cos);\n y = Math.floor(yMid + ((rMax * radius) / rSize) * sin);\n i = (y * xSize + x) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n a = srcPixels[i + 3];\n i = (theta + radius * xSize) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nvar FromPolar = function (src, dst, opt) {\n var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, dx, dy, r = 0, g = 0, b = 0, a = 0;\n var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);\n x = xSize - xMid;\n y = ySize - yMid;\n rad = Math.sqrt(x * x + y * y);\n rMax = rad > rMax ? rad : rMax;\n var rSize = ySize, tSize = xSize, radius, theta, phaseShift = opt.polarRotation || 0;\n var x1, y1;\n for (x = 0; x < xSize; x += 1) {\n for (y = 0; y < ySize; y += 1) {\n dx = x - xMid;\n dy = y - yMid;\n radius = (Math.sqrt(dx * dx + dy * dy) * rSize) / rMax;\n theta = ((Math.atan2(dy, dx) * 180) / Math.PI + 360 + phaseShift) % 360;\n theta = (theta * tSize) / 360;\n x1 = Math.floor(theta);\n y1 = Math.floor(radius);\n i = (y1 * xSize + x1) * 4;\n r = srcPixels[i + 0];\n g = srcPixels[i + 1];\n b = srcPixels[i + 2];\n a = srcPixels[i + 3];\n i = (y * xSize + x) * 4;\n dstPixels[i + 0] = r;\n dstPixels[i + 1] = g;\n dstPixels[i + 2] = b;\n dstPixels[i + 3] = a;\n }\n }\n};\nexport const Kaleidoscope = function (imageData) {\n var xSize = imageData.width, ySize = imageData.height;\n var x, y, xoff, i, r, g, b, a, srcPos, dstPos;\n var power = Math.round(this.kaleidoscopePower());\n var angle = Math.round(this.kaleidoscopeAngle());\n var offset = Math.floor((xSize * (angle % 360)) / 360);\n if (power < 1) {\n return;\n }\n var tempCanvas = Util.createCanvasElement();\n tempCanvas.width = xSize;\n tempCanvas.height = ySize;\n var scratchData = tempCanvas\n .getContext('2d')\n .getImageData(0, 0, xSize, ySize);\n Util.releaseCanvas(tempCanvas);\n ToPolar(imageData, scratchData, {\n polarCenterX: xSize / 2,\n polarCenterY: ySize / 2,\n });\n var minSectionSize = xSize / Math.pow(2, power);\n while (minSectionSize <= 8) {\n minSectionSize = minSectionSize * 2;\n power -= 1;\n }\n minSectionSize = Math.ceil(minSectionSize);\n var sectionSize = minSectionSize;\n var xStart = 0, xEnd = sectionSize, xDelta = 1;\n if (offset + minSectionSize > xSize) {\n xStart = sectionSize;\n xEnd = 0;\n xDelta = -1;\n }\n for (y = 0; y < ySize; y += 1) {\n for (x = xStart; x !== xEnd; x += xDelta) {\n xoff = Math.round(x + offset) % xSize;\n srcPos = (xSize * y + xoff) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + x) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n }\n for (y = 0; y < ySize; y += 1) {\n sectionSize = Math.floor(minSectionSize);\n for (i = 0; i < power; i += 1) {\n for (x = 0; x < sectionSize + 1; x += 1) {\n srcPos = (xSize * y + x) * 4;\n r = scratchData.data[srcPos + 0];\n g = scratchData.data[srcPos + 1];\n b = scratchData.data[srcPos + 2];\n a = scratchData.data[srcPos + 3];\n dstPos = (xSize * y + sectionSize * 2 - x - 1) * 4;\n scratchData.data[dstPos + 0] = r;\n scratchData.data[dstPos + 1] = g;\n scratchData.data[dstPos + 2] = b;\n scratchData.data[dstPos + 3] = a;\n }\n sectionSize *= 2;\n }\n }\n FromPolar(scratchData, imageData, { polarRotation: 0 });\n};\nFactory.addGetterSetter(Node, 'kaleidoscopePower', 2, getNumberValidator(), Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'kaleidoscopeAngle', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nfunction pixelAt(idata, x, y) {\n var idx = (y * idata.width + x) * 4;\n var d = [];\n d.push(idata.data[idx++], idata.data[idx++], idata.data[idx++], idata.data[idx++]);\n return d;\n}\nfunction rgbDistance(p1, p2) {\n return Math.sqrt(Math.pow(p1[0] - p2[0], 2) +\n Math.pow(p1[1] - p2[1], 2) +\n Math.pow(p1[2] - p2[2], 2));\n}\nfunction rgbMean(pTab) {\n var m = [0, 0, 0];\n for (var i = 0; i < pTab.length; i++) {\n m[0] += pTab[i][0];\n m[1] += pTab[i][1];\n m[2] += pTab[i][2];\n }\n m[0] /= pTab.length;\n m[1] /= pTab.length;\n m[2] /= pTab.length;\n return m;\n}\nfunction backgroundMask(idata, threshold) {\n var rgbv_no = pixelAt(idata, 0, 0);\n var rgbv_ne = pixelAt(idata, idata.width - 1, 0);\n var rgbv_so = pixelAt(idata, 0, idata.height - 1);\n var rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);\n var thres = threshold || 10;\n if (rgbDistance(rgbv_no, rgbv_ne) < thres &&\n rgbDistance(rgbv_ne, rgbv_se) < thres &&\n rgbDistance(rgbv_se, rgbv_so) < thres &&\n rgbDistance(rgbv_so, rgbv_no) < thres) {\n var mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);\n var mask = [];\n for (var i = 0; i < idata.width * idata.height; i++) {\n var d = rgbDistance(mean, [\n idata.data[i * 4],\n idata.data[i * 4 + 1],\n idata.data[i * 4 + 2],\n ]);\n mask[i] = d < thres ? 0 : 255;\n }\n return mask;\n }\n}\nfunction applyMask(idata, mask) {\n for (var i = 0; i < idata.width * idata.height; i++) {\n idata.data[4 * i + 3] = mask[i];\n }\n}\nfunction erodeMask(mask, sw, sh) {\n var weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a === 255 * 8 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction dilateMask(mask, sw, sh) {\n var weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a >= 255 * 4 ? 255 : 0;\n }\n }\n return maskResult;\n}\nfunction smoothEdgeMask(mask, sw, sh) {\n var weights = [1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9];\n var side = Math.round(Math.sqrt(weights.length));\n var halfSide = Math.floor(side / 2);\n var maskResult = [];\n for (var y = 0; y < sh; y++) {\n for (var x = 0; x < sw; x++) {\n var so = y * sw + x;\n var a = 0;\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scy = y + cy - halfSide;\n var scx = x + cx - halfSide;\n if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {\n var srcOff = scy * sw + scx;\n var wt = weights[cy * side + cx];\n a += mask[srcOff] * wt;\n }\n }\n }\n maskResult[so] = a;\n }\n }\n return maskResult;\n}\nexport const Mask = function (imageData) {\n var threshold = this.threshold(), mask = backgroundMask(imageData, threshold);\n if (mask) {\n mask = erodeMask(mask, imageData.width, imageData.height);\n mask = dilateMask(mask, imageData.width, imageData.height);\n mask = smoothEdgeMask(mask, imageData.width, imageData.height);\n applyMask(imageData, mask);\n }\n return imageData;\n};\nFactory.addGetterSetter(Node, 'threshold', 0, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Noise = function (imageData) {\n var amount = this.noise() * 255, data = imageData.data, nPixels = data.length, half = amount / 2, i;\n for (i = 0; i < nPixels; i += 4) {\n data[i + 0] += half - 2 * half * Math.random();\n data[i + 1] += half - 2 * half * Math.random();\n data[i + 2] += half - 2 * half * Math.random();\n }\n};\nFactory.addGetterSetter(Node, 'noise', 0.2, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Util } from '../Util.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Pixelate = function (imageData) {\n var pixelSize = Math.ceil(this.pixelSize()), width = imageData.width, height = imageData.height, x, y, i, red, green, blue, alpha, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), xBinStart, xBinEnd, yBinStart, yBinEnd, xBin, yBin, pixelsInBin, data = imageData.data;\n if (pixelSize <= 0) {\n Util.error('pixelSize value can not be <= 0');\n return;\n }\n for (xBin = 0; xBin < nBinsX; xBin += 1) {\n for (yBin = 0; yBin < nBinsY; yBin += 1) {\n red = 0;\n green = 0;\n blue = 0;\n alpha = 0;\n xBinStart = xBin * pixelSize;\n xBinEnd = xBinStart + pixelSize;\n yBinStart = yBin * pixelSize;\n yBinEnd = yBinStart + pixelSize;\n pixelsInBin = 0;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n red += data[i + 0];\n green += data[i + 1];\n blue += data[i + 2];\n alpha += data[i + 3];\n pixelsInBin += 1;\n }\n }\n red = red / pixelsInBin;\n green = green / pixelsInBin;\n blue = blue / pixelsInBin;\n alpha = alpha / pixelsInBin;\n for (x = xBinStart; x < xBinEnd; x += 1) {\n if (x >= width) {\n continue;\n }\n for (y = yBinStart; y < yBinEnd; y += 1) {\n if (y >= height) {\n continue;\n }\n i = (width * y + x) * 4;\n data[i + 0] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = alpha;\n }\n }\n }\n }\n};\nFactory.addGetterSetter(Node, 'pixelSize', 8, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Posterize = function (imageData) {\n var levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels, i;\n for (i = 0; i < len; i += 1) {\n data[i] = Math.floor(data[i] / scale) * scale;\n }\n};\nFactory.addGetterSetter(Node, 'levels', 0.5, getNumberValidator(), Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { RGBComponent } from '../Validators.js';\nexport const RGB = function (imageData) {\n var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), i, brightness;\n for (i = 0; i < nPixels; i += 4) {\n brightness =\n (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;\n data[i] = brightness * red;\n data[i + 1] = brightness * green;\n data[i + 2] = brightness * blue;\n data[i + 3] = data[i + 3];\n }\n};\nFactory.addGetterSetter(Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { RGBComponent } from '../Validators.js';\nexport const RGBA = function (imageData) {\n var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha(), i, ia;\n for (i = 0; i < nPixels; i += 4) {\n ia = 1 - alpha;\n data[i] = red * alpha + data[i] * ia;\n data[i + 1] = green * alpha + data[i + 1] * ia;\n data[i + 2] = blue * alpha + data[i + 2] * ia;\n }\n};\nFactory.addGetterSetter(Node, 'red', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'green', 0, function (val) {\n this._filterUpToDate = false;\n if (val > 255) {\n return 255;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return Math.round(val);\n }\n});\nFactory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);\nFactory.addGetterSetter(Node, 'alpha', 1, function (val) {\n this._filterUpToDate = false;\n if (val > 1) {\n return 1;\n }\n else if (val < 0) {\n return 0;\n }\n else {\n return val;\n }\n});\n","export const Sepia = function (imageData) {\n var data = imageData.data, nPixels = data.length, i, r, g, b;\n for (i = 0; i < nPixels; i += 4) {\n r = data[i + 0];\n g = data[i + 1];\n b = data[i + 2];\n data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);\n data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);\n data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);\n }\n};\n","export const Solarize = function (imageData) {\n var data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, y = h;\n do {\n var offsetY = (y - 1) * w4;\n var x = w;\n do {\n var offset = offsetY + (x - 1) * 4;\n var r = data[offset];\n var g = data[offset + 1];\n var b = data[offset + 2];\n if (r > 127) {\n r = 255 - r;\n }\n if (g > 127) {\n g = 255 - g;\n }\n if (b > 127) {\n b = 255 - b;\n }\n data[offset] = r;\n data[offset + 1] = g;\n data[offset + 2] = b;\n } while (--x);\n } while (--y);\n};\n","import { Factory } from '../Factory.js';\nimport { Node } from '../Node.js';\nimport { getNumberValidator } from '../Validators.js';\nexport const Threshold = function (imageData) {\n var level = this.threshold() * 255, data = imageData.data, len = data.length, i;\n for (i = 0; i < len; i += 1) {\n data[i] = data[i] < level ? 0 : 255;\n }\n};\nFactory.addGetterSetter(Node, 'threshold', 0.5, getNumberValidator(), Factory.afterSetFilter);\n","import { Konva as Core } from './_CoreInternals.js';\nimport { Arc } from './shapes/Arc.js';\nimport { Arrow } from './shapes/Arrow.js';\nimport { Circle } from './shapes/Circle.js';\nimport { Ellipse } from './shapes/Ellipse.js';\nimport { Image } from './shapes/Image.js';\nimport { Label, Tag } from './shapes/Label.js';\nimport { Line } from './shapes/Line.js';\nimport { Path } from './shapes/Path.js';\nimport { Rect } from './shapes/Rect.js';\nimport { RegularPolygon } from './shapes/RegularPolygon.js';\nimport { Ring } from './shapes/Ring.js';\nimport { Sprite } from './shapes/Sprite.js';\nimport { Star } from './shapes/Star.js';\nimport { Text } from './shapes/Text.js';\nimport { TextPath } from './shapes/TextPath.js';\nimport { Transformer } from './shapes/Transformer.js';\nimport { Wedge } from './shapes/Wedge.js';\nimport { Blur } from './filters/Blur.js';\nimport { Brighten } from './filters/Brighten.js';\nimport { Contrast } from './filters/Contrast.js';\nimport { Emboss } from './filters/Emboss.js';\nimport { Enhance } from './filters/Enhance.js';\nimport { Grayscale } from './filters/Grayscale.js';\nimport { HSL } from './filters/HSL.js';\nimport { HSV } from './filters/HSV.js';\nimport { Invert } from './filters/Invert.js';\nimport { Kaleidoscope } from './filters/Kaleidoscope.js';\nimport { Mask } from './filters/Mask.js';\nimport { Noise } from './filters/Noise.js';\nimport { Pixelate } from './filters/Pixelate.js';\nimport { Posterize } from './filters/Posterize.js';\nimport { RGB } from './filters/RGB.js';\nimport { RGBA } from './filters/RGBA.js';\nimport { Sepia } from './filters/Sepia.js';\nimport { Solarize } from './filters/Solarize.js';\nimport { Threshold } from './filters/Threshold.js';\nexport const Konva = Core.Util._assign(Core, {\n Arc,\n Arrow,\n Circle,\n Ellipse,\n Image,\n Label,\n Tag,\n Line,\n Path,\n Rect,\n RegularPolygon,\n Ring,\n Sprite,\n Star,\n Text,\n TextPath,\n Transformer,\n Wedge,\n Filters: {\n Blur,\n Brighten,\n Contrast,\n Emboss,\n Enhance,\n Grayscale,\n HSL,\n HSV,\n Invert,\n Kaleidoscope,\n Mask,\n Noise,\n Pixelate,\n Posterize,\n RGB,\n RGBA,\n Sepia,\n Solarize,\n Threshold,\n },\n});\n","import { Konva } from './_FullInternals.js';\nexport default Konva;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","import './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Menuable).extend({\n name: 'v-tooltip',\n\n props: {\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n disabled: Boolean,\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n openOnHover: {\n type: Boolean,\n default: true,\n },\n openOnFocus: {\n type: Boolean,\n default: true,\n },\n tag: {\n type: String,\n default: 'span',\n },\n transition: String,\n },\n\n data: () => ({\n calculatedMinWidth: 0,\n closeDependents: false,\n }),\n\n computed: {\n calculatedLeft (): string {\n const { activator, content } = this.dimensions\n const unknown = !this.bottom && !this.left && !this.top && !this.right\n const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n let left = 0\n\n if (this.top || this.bottom || unknown) {\n left = (\n activatorLeft +\n (activator.width / 2) -\n (content.width / 2)\n )\n } else if (this.left || this.right) {\n left = (\n activatorLeft +\n (this.right ? activator.width : -content.width) +\n (this.right ? 10 : -10)\n )\n }\n\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n },\n calculatedTop (): string {\n const { activator, content } = this.dimensions\n const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n let top = 0\n\n if (this.top || this.bottom) {\n top = (\n activatorTop +\n (this.bottom ? activator.height : -content.height) +\n (this.bottom ? 10 : -10)\n )\n } else if (this.left || this.right) {\n top = (\n activatorTop +\n (activator.height / 2) -\n (content.height / 2)\n )\n }\n\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n if (this.attach === false) top += this.pageYOffset\n\n return `${this.calcYOverflow(top)}px`\n },\n classes (): object {\n return {\n 'v-tooltip--top': this.top,\n 'v-tooltip--right': this.right,\n 'v-tooltip--bottom': this.bottom,\n 'v-tooltip--left': this.left,\n 'v-tooltip--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }\n },\n computedTransition (): string {\n if (this.transition) return this.transition\n\n return this.isActive ? 'scale-transition' : 'fade-transition'\n },\n offsetY (): boolean {\n return this.top || this.bottom\n },\n offsetX (): boolean {\n return this.left || this.right\n },\n styles (): object {\n return {\n left: this.calculatedLeft,\n maxWidth: convertToUnit(this.maxWidth),\n minWidth: convertToUnit(this.minWidth),\n top: this.calculatedTop,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.value && this.callActivate()\n })\n },\n\n mounted () {\n if (getSlotType(this, 'activator', true) === 'v-slot') {\n consoleError(`v-tooltip's activator slot must be bound, try '