{"version":3,"sources":["node_modules/browser-pack/_prelude.js","components/core/JsInterop/ObservableApi/mutationObserver.ts","components/core/JsInterop/ObservableApi/observableApi.ts","components/core/JsInterop/ObservableApi/resizeObserver.ts","components/core/JsInterop/interop.ts","components/core/JsInterop/modules/components/backtopHelper.ts","components/core/JsInterop/modules/components/downloadHelper.ts","components/core/JsInterop/modules/components/export.ts","components/core/JsInterop/modules/components/iconHelper.ts","components/core/JsInterop/modules/components/imageHelper.ts","components/core/JsInterop/modules/components/inputHelper.ts","components/core/JsInterop/modules/components/mentionsHelper.ts","components/core/JsInterop/modules/components/modalHelper.ts","components/core/JsInterop/modules/components/overlay.ts","components/core/JsInterop/modules/components/overlayHelper.ts","components/core/JsInterop/modules/components/tableHelper.ts","components/core/JsInterop/modules/components/uploadHelper.ts","components/core/JsInterop/modules/components/watermarkHelper.ts","components/core/JsInterop/modules/dom/dragHelper.ts","components/core/JsInterop/modules/dom/eventHelper.ts","components/core/JsInterop/modules/dom/exports.ts","components/core/JsInterop/modules/dom/infoHelper.ts","components/core/JsInterop/modules/dom/manipulationHelper.ts","components/core/JsInterop/modules/dom/types.ts","components/core/JsInterop/modules/enums.ts","components/core/JsInterop/modules/stateProvider.ts","components/core/JsInterop/modules/styleHelper.ts","components/main.ts","node_modules/@ant-design/colors/dist/index.js","node_modules/@ctrl/tinycolor/dist/conversion.js","node_modules/@ctrl/tinycolor/dist/css-color-names.js","node_modules/@ctrl/tinycolor/dist/format-input.js","node_modules/@ctrl/tinycolor/dist/from-ratio.js","node_modules/@ctrl/tinycolor/dist/index.js","node_modules/@ctrl/tinycolor/dist/interfaces.js","node_modules/@ctrl/tinycolor/dist/public_api.js","node_modules/@ctrl/tinycolor/dist/random.js","node_modules/@ctrl/tinycolor/dist/readability.js","node_modules/@ctrl/tinycolor/dist/to-ms-filter.js","node_modules/@ctrl/tinycolor/dist/util.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","infoHelper_1","mutationObserver","create","key","invoker","isDotNetInvoker","observer","MutationObserver","mutations","observerCallback","mutationObservers","set","observe","element","options","get","domElement","infoHelper","disconnect","this","dispose","entriesJson","JSON","stringify","invokeMethodAsync","Map","resizeObserver_1","mutationObserver_1","__createBinding","ResizeObserverEntry","resizeObserver","isResizeObserverSupported","window","ResizeObserver","entries","observerCallBack","resizeObservers","unobserve","mappedEntries_1","Array","forEach","entry","mEntry","borderBoxSize","blockSize","inlineSize","contentBoxSize","contentRect","x","y","width","height","top","right","bottom","left","push","stateProvider_1","exports_1","observable","styleHelper_1","export_1","dragHelper_1","colors_1","log","text","console","backtopHelper","backTop","target","dom","domInfoHelper","domManipulationHelper","slideTo","scrollTop","downloadHelper","triggerFileDownload","fileName","url","anchorElement","document","createElement","href","download","click","remove","backtopHelper_1","overlayHelper_1","uploadHelper_1","downloadHelper_1","mentionsHelper_1","modalHelper_1","inputHelper_1","tableHelper_1","iconHelper_1","imageHelper_1","watermarkHelper_1","iconHelper","createIconFromfontCN","scriptUrl","script","querySelector","setAttribute","body","appendChild","imageHelper","imgDragAndDrop","mouseX","mouseY","imgX","imgY","isDragging","handleMouseMove","event","deltaX","clientX","deltaY","clientY","style","handleMouseUp","cursor","removeEventListener","addEventListener","offsetLeft","offsetTop","preventDefault","documentElement","observableApi_1","inputHelper","getTextAreaInfo","result","scrollHeight","currentStyle","parseFloat","getComputedStyle","defaultView","getPropertyValue","Object","is","NaN","registerResizeTextArea","minRows","maxRows","objReference","state","objReferenceDict","id","eventCallbackRegistry","resizeTextArea","resize","disposeResizeTextArea","rowHeight","oldHeight","rows","newHeight","dims","offsetHeight","oldRows","Math","trunc","max","overflowY","scrollWidth","setSelectionStart","position","value","selectionStart","selectionEnd","mentionsHelper","getTextarea","textAreaTag","textarea","tagName","allTextareas","getElementsByTagName","setPopShowFlag","show","isPopShowFlag","setEditorKeyHandler","Mentions","_this","onkeydown","ev","__awaiter","_a","sent","getProp","propName","getCursorXY","format","replace","textArea","inputorValue","pos","start_range","slice","end_range","substring","html","div_mirror","flag","className","innerHTML","parentNode","append","scrollLeft","manipulationHelper_1","modalHelper","focusDialog","selector","count","htmlElement","ele","hasAttribute","activeElement","blur","setTimeout","focus","getActiveElement","destroyAllDialog","querySelectorAll","container","HTMLElement","manipulationHelper","enableBodyScroll","Placement","TriggerBoundyAdjustMode","Overlay","getFirstValidChild","triggerIsWrappedInDiv","childNodes","childElement","setVerticalCalculation","placement","LeftTop","RightTop","triggerTop","triggerHeight","trigger","overlayHeight","constraints","reversePositionValue","BottomLeft","Bottom","BottomRight","verticalOffset","Left","Right","TopLeft","Top","TopRight","triggerBottom","LeftBottom","RightBottom","setHorizontalCalculation","triggerLeft","triggerWidth","overlayWidth","horizontalOffset","triggerRight","containerDimension","overlayDimension","prototype","removeHiddenClass","end","overlay","indexOf","start","lastIndexOf","substr","classList","calculateScrollBarSizes","isContainerBody","scrollbarSize","horizontalHeight","innerHeight","clientHeight","verticalWidth","innerWidth","clientWidth","offsetWidth","blazorId","resizing","bind","mutating","attributes","characterData","childList","subtree","attributeOldValue","characterDataOldValue","onScroll","diff","isTriggerFixed","lastScrollPosition","pageYOffset","containerInfo","overlayInfo","selectedVerticalPosition","sanitizedPosition","getAdjustedBottom","calculatePosition","overlayPreset","duringInit","lastStyleMutation","cssText","contains","removeChild","applyLocation","firstTime","offsetParent","recentPlacement","getKeyElementDimensions","restoreInitialPlacement","calculationsToPerform","getNominalPositions","size","adjustToContainerBoundaries","sanitizeCalculatedPositions","triggerPrefixCls","add","__assign","zIndex","getMaxZIndex","selectedHorizontalPosition","getAdjustedRight","containerBoundarySize","getContainerBoundarySize","directionsToCalculate","Set","boundyAdjustMode","None","horizontalPosition","getHorizontalPosition","verticalPosition","getVerticalPosition","initialPlacement","appliedStylePositionMap","horizontal","vertical","verticalCalculation","horizontalCalculation","logToConsole","extraMessage","info","parentInfo","parentElement","containerId","absoluteTop","triggerInfo","absoluteLeft","triggerHtml","outerHTML","class","appliedCssPosition","overlay_style_top","overlay_style_bottom","overlay_style_left","overlay_style_right","pageXOffset","containerIsBody","scrollbars","overlayConstraints","placment","applyPlacement","stringMach","currentPlacement","newPlacement","getInfo","triggerPosition","clientTop","clientLeft","has","adjustVerticalToContainerBoundaries","adjustHorizontalToContainerBoundaries","setBodyBoundayrSize","getWindow","scroll","getScroll","bodyBoundarySize","verticalScrollBasedOnParent","horizontalScrollBasedOnParent","InScroll","parentIsInsignificant","getOverlayVisibleHeight","visibleIn","boundary","getOverlayVisibleWidth","positionCache","selectedPositionCache","placementCache","horizontalCalculationCache","visibleWidthBeforeAdjustment","visibleWidthInBodyBeforeAdjustment","visibleWidthAfterAdjustment","visibleWidthInBodyAfterAdjustment","overlayFitsContainer","isContainerOverBody","getHorizontalAdjustment","verticalCalculationCache","visibleHeightBeforeAdjustment","visibleHeightInBodyBeforeAdjustment","visibleHeightAfterAdjustment","visibleHeightInBodyAfterAdjustment","getVerticalAdjustment","type","endExpressedAsLeft","endExpressedAsTop","reverseVerticalPlacementMap","reverseHorizontalPlacementMap","arrowCenterPlacementMatch","triggerBoundyAdjustMode","findAncestorWithZIndex","arrowPointAtCenter","isFixedPosition","overlay_1","overlayHelper","addOverlayToContainer","overlaySelector","triggerSelector","containerSelector","overlayTop","overlayLeft","overlayPresets","overlayElement","containerElement","triggerElement","addElementTo","overlayRegistry","updateOverlayPosition","deleteOverlayFromContainer","addPreventEnterOnOverlayVisible","eventHelper","preventKeyOnCondition","removePreventEnterOnOverlayVisible","tableHelper","bindTableScroll","wrapperRef","bodyRef","tableRef","headerRef","scrollX","scrollY","resizable","bindScroll","SetScrollPositionClassName","enableColumnResizing","unbindTableScroll","pingLeft","pingRight","abs","headerElement","tableElement","cols","ths","tHead","headerCols","th","col","headerCol","handle","handleMouseDown","evt","stopPropagation","startPageX","touches","pageX","originalColumnWidth","rtlMultiplier","updatedColumnWidth","newPageX","nextWidth","TouchEvent","passive","uploadHelper","addFileClickEventListener","btn","fileClickEvent","removeFileClickEventListener","fileId","currentTarget","nodeValue","getElementById","clearFile","getFileInfo","files","fileInfo","file","objectUrl","getObjectURL","name","objectURL","undefined","URL","createObjectURL","webkitURL","uploadFile","index","data","headers","instance","percentMethod","successMethod","errorMethod","method","formData","FormData","req","XMLHttpRequest","onreadystatechange","readyState","status","responseText","upload","onprogress","percent","floor","loaded","onerror","open","header","setRequestHeader","send","watermarkHelper","generateBase64Url","dotnetRef","watermarkContentRef","watermarkRef","onFinish","ratio","markHeight","parent","gapX","gapY","rotate","alpha","watermarkContent","lineSpace","canvas","ctx","getContext","devicePixelRatio","canvasHeight","translate","PI","Number","globalAlpha","markWidth","fillStyle","fillRect","contents","isArray","item","isGrayscale_1","img_1","fontColor","fontFamily","fontWeight","textAlign","fontStyle","markSize","isGrayscale","Image","crossOrigin","referrerPolicy","src","onload","drawImage","imgData","getImageData","pixels","lightness","putImageData","toDataURL","_b","fontSize","_c","_d","_e","_f","_g","font","textBaseline","fillText","mutationsList","mutation","removedNodes","node","warn","throttle","fn","threshold","timeout","Date","args","_i","arguments","curTime","clearTimeout","apply","eventMap","defaultOptions","inViewport","Dragger","getContainerTranslateOffset","_container","xOffset","yOffset","translateInfo","split","parseInt","isNaN","bindDrag","_trigger","_options","onMousedown","onMouseup","onMousemove","onResize","unbindDrag","resetContainerStyle","_style","_isFirst","dragInViewport","draggedIn","_state","isInDrag","mouseDownX","mouseDownY","bound","getBoundPosition","_draggedInContainer","getAttribute","mouseDownXOffset","mouseDownYOffset","offsetX","nowX","nowY","offsetY","assign","childNode","childComputedStyle","parentComputedStyle","marginLeft","paddingLeft","marginTop","paddingTop","computedStyle","paddingRight","borderLeftWidth","borderRightWidth","marginRight","paddingBottom","borderTopWidth","borderBottomWidth","marginBottom","enableDraggable","dragger","disableDraggable","resetModalPosition","triggerEvent","eventType","eventName","createEvent","initEvent","dispatchEvent","addDomEventListener","callback","k","obj","cache","json","v","_typeof","Node","Window","_id","debounce","addDomEventListenerToFirstChild","firstElementChild","removeDomEventListener","addPreventKeys","inputElement","keys","map","toUpperCase","preventKeys","check","removePreventKeys","func","wait","immediate","context","callNow","eventHelper_1","domTypes","absolutePosition","getElementAbsolutePos","round","res","getBoundingClientRect","viewportElement","box","rect","getFirstChildDomInfo","hasFocus","getInnerText","innerText","from","reduce","nodeName","toLowerCase","zIndexAsString","getElementsInfo","elements","infos","el","enums","cachedScrollBarSize","scrollIds","addElementToBody","delElementFromBody","addElement","elementSelector","prepend","insertBefore","firstChild","delElementFrom","delElementSelector","delay","delElement","setDomAttribute","copyElement","copyElementAsRichText","copy","selection","getSelection","range","rangeCount","removeAllRanges","createRange","selectNode","addRange","successful","execCommand","err","navigator","clipboard","writeText","then","error","fallbackCopyTextToClipboard","select","msg","noScroll","option","FocusBehavior","FocusAtLast","preventScroll","HTMLInputElement","HTMLTextAreaElement","FocusAndSelectAll","FocusAtFirst","setSelectionRange","scrollTo","scrollIntoView","behavior","block","inline","smoothScrollTo","duration","perTick","to","cancelAnimationFrame","requestAnimationFrame","targetPageY","timer","setInterval","currentY","speed","ceil","clearInterval","invokeTabKey","currInput","inputs","next","disableBodyScroll","oldBodyCache","scrollBarSize","oldBodyCacheStack","getScrollBarSize","styleHelper","css","hasScrollbar","overflow","addCls","force","pop","removeCls","fresh","outer","widthContained","inner","outerStyle","pointerEvents","visibility","widthScroll","__esModule","State","disposeObj","objReferenceName","getInstance","clsName","addClsToFirstChild","removeClsFromFirstChild","matchMedia","query","matches","getStyle","styleProp","cssAttributes","cssAttribute","attribute","setProperty","hasOwnProperty","interop","AntDesign","defineProperty","tinycolor","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","opacity","toHsv","_ref","g","b","hsv","rgbToHsv","h","s","toHex","_ref2","concat","rgbToHex","getHue","light","hue","getSaturation","saturation","toFixed","getValue","generate","color","opts","patterns","pColor","inputToRGB","colorString","_hsv","_colorString","theme","_ref3","rgb1","backgroundColor","rgb2","amount","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","blue","geekblue","purple","magenta","grey","presetPalettes","presetDarkPalettes","primary","numberInputToObject","parseIntFromHex","convertHexToDecimal","convertDecimalToHex","rgbaToArgbHex","rgbaToHex","hsvToRgb","hslToRgb","rgbToHsl","rgbToRgb","util_1","hue2rgb","q","d","toString","val","bound01","min","l","mod","allow3Char","hex","pad2","startsWith","charAt","join","allow4Char","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","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","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","isValidCSSUnit","stringInputToObject","conversion_1","css_color_names_1","rgb","ok","String","convertToPercentage","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","RegExp","rgba","hsl","hsla","hsva","hex3","hex6","hex4","hex8","trim","named","match","exec","Boolean","legacyRandom","fromRatio","index_1","newColor","TinyColor","random","format_input_1","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","R","pow","G","B","getAlpha","setAlpha","roundA","isMonochrome","toHsl","toHsvString","toHslString","toHexString","toHex8","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","clamp01","brighten","darken","tint","mix","shade","desaturate","saturate","greyscale","spin","analogous","results","slices","part","ret","complement","monochromatic","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","increment","equals","originalInput","gradientType","isValid","m","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","default","bounds","getColorInfo","bounds_1","defineColor","hueRange","randomWithin","seed","sMin","lowerBounds","sMax","bMin","bMax","saturationRange","brightnessRange","totalColors","colors","colorInput","num","namedColor","find","parsed","luminosity","H","S","s1","v1","s2","v2","mostReadable","isReadable","readability","color1","color2","c1","c2","wcag2","level","readabilityLevel","baseColor","colorList","bestColor","bestScore","includeFallbackColors","colorList_1","score","toMsFilter","firstColor","secondColor","hex8String","secondHex8String","isOnePointZero","isPercentage","isPercent"],"mappings":"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","file":"ant-design-blazor.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i = new Map();\n\n static create(key: string, invoker, isDotNetInvoker: boolean = true) {\n let observer;\n\n if (isDotNetInvoker) {\n observer = new MutationObserver(mutations => mutationObserver.observerCallback(mutations, invoker))\n } else {\n observer = new MutationObserver(mutations => invoker(mutations))\n }\n mutationObserver.mutationObservers.set(key, observer)\n }\n\n static observe(key: string, element, options?: MutationObserverInit) {\n const observer = mutationObserver.mutationObservers.get(key);\n if (observer) {\n const domElement = domInfoHelper.get(element);\n observer.observe(domElement, options);\n }\n }\n\n static disconnect(key: string): void {\n const observer = this.mutationObservers.get(key)\n if (observer) {\n observer.disconnect()\n }\n }\n\n static dispose(key: string): void {\n this.disconnect(key)\n this.mutationObservers.delete(key)\n }\n\n private static observerCallback(mutations, invoker) {\n //TODO: serialize a proper object (check resizeObserver.ts for sample)\n const entriesJson = JSON.stringify(mutations)\n invoker.invokeMethodAsync('Invoke', entriesJson)\n }\n}","export { resizeObserver as resize } from './resizeObserver';\nexport { mutationObserver } from './mutationObserver';","import { infoHelper as domInfoHelper} from '../modules/dom/infoHelper';\nimport { boxSize, domRect } from '../modules/dom/types';\n\nclass ResizeObserverEntry {\n borderBoxSize?: boxSize\n contentBoxSize?: boxSize\n contentRect?: domRect\n target?: Element\n}\n\nexport class resizeObserver {\n\n static isResizeObserverSupported(): boolean {\n return \"ResizeObserver\" in window;\n }\n\n private static resizeObservers: Map = new Map();\n\n static create(key, invoker, isDotNetInvoker: boolean = true ) {\n let observer;\n \n if (isDotNetInvoker) {\n observer = new ResizeObserver((entries, observer) => resizeObserver.observerCallBack(entries, observer, invoker));\n } else {\n observer = new ResizeObserver((entries, observer) => invoker(entries, observer));\n }\n resizeObserver.resizeObservers.set(key, observer)\n }\n\n static observe(key: string, element) {\n const observer = resizeObserver.resizeObservers.get(key);\n if (observer) {\n const domElement = domInfoHelper.get(element);\n observer.observe(domElement);\n }\n }\n\n static disconnect(key: string): void {\n const observer = this.resizeObservers.get(key)\n if (observer) {\n observer.disconnect()\n }\n }\n\n static unobserve(key: string, element: Element): void {\n const observer = this.resizeObservers.get(key)\n\n if (observer) {\n const domElement = domInfoHelper.get(element);\n observer.unobserve(domElement)\n }\n }\n\n static dispose(key: string): void {\n this.disconnect(key)\n this.resizeObservers.delete(key)\n }\n\n private static observerCallBack(entries, observer, invoker) {\n if (invoker) {\n const mappedEntries = new Array()\n entries.forEach(entry => { \n if (entry) {\n const mEntry = new ResizeObserverEntry()\n if (entry.borderBoxSize) {\n mEntry.borderBoxSize = {\n blockSize: entry.borderBoxSize.blockSize,\n inlineSize: entry.borderBoxSize.inlineSize\n }\n }\n\n if (entry.contentBoxSize) {\n mEntry.contentBoxSize = {\n blockSize: entry.contentBoxSize.blockSize,\n inlineSize: entry.contentBoxSize.inlineSize\n }\n }\n\n if (entry.contentRect) {\n mEntry.contentRect = {\n x: entry.contentRect.x,\n y: entry.contentRect.y,\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n top: entry.contentRect.top,\n right: entry.contentRect.right,\n bottom: entry.contentRect.bottom,\n left: entry.contentRect.left\n }\n\n }\n\n //mEntry.target = entry.target\n mappedEntries.push(mEntry)\n }\n })\n\n const entriesJson = JSON.stringify(mappedEntries)\n invoker.invokeMethodAsync('Invoke', entriesJson)\n }\n }\n\n}","export { state } from './modules/stateProvider';\nexport * as observable from './ObservableApi/observableApi';\nexport { domInfoHelper, domTypes, domManipulationHelper, eventHelper } from './modules/dom/exports';\nexport { styleHelper } from './modules/styleHelper';\nexport {\n backtopHelper,\n iconHelper,\n imageHelper,\n inputHelper,\n mentionsHelper,\n modalHelper,\n overlayHelper,\n tableHelper,\n uploadHelper,\n downloadHelper,\n watermarkHelper,\n} from './modules/components/export'\n\n\nexport { enableDraggable, disableDraggable, resetModalPosition } from \"./modules/dom/dragHelper\";\n\nexport { generate as generateColor } from \"@ant-design/colors\";\n\nexport function log(text) {\n console.log(text);\n}\n","import { domInfoHelper, domManipulationHelper } from '../dom/exports'\n\nexport class backtopHelper {\n static backTop(target: string) {\n const dom = domInfoHelper.get(target);\n if (dom) {\n domManipulationHelper.slideTo(dom.scrollTop);\n } else {\n domManipulationHelper.slideTo(0);\n }\n }\n}","export class downloadHelper {\n static triggerFileDownload(fileName, url) {\n const anchorElement = document.createElement('a');\n anchorElement.href = url;\n anchorElement.download = fileName ?? '';\n anchorElement.click();\n anchorElement.remove();\n }\n}","export { backtopHelper } from './backtopHelper';\nexport { overlayHelper } from './overlayHelper';\nexport { uploadHelper } from './uploadHelper';\nexport { downloadHelper } from './downloadHelper';\nexport { mentionsHelper } from './mentionsHelper';\nexport { modalHelper } from './modalHelper';\nexport { inputHelper } from './inputHelper';\nexport { tableHelper } from './tableHelper';\nexport { iconHelper } from './iconHelper';\nexport { imageHelper } from './imageHelper';\nexport { watermarkHelper } from './watermarkHelper';","export class iconHelper {\n static createIconFromfontCN(scriptUrl) {\n if (document.querySelector(`[data-namespace=\"${scriptUrl}\"]`)) {\n return;\n }\n const script = document.createElement(\"script\");\n script.setAttribute(\"src\", scriptUrl);\n script.setAttribute(\"data-namespace\", scriptUrl);\n document.body.appendChild(script);\n }\n}\n","export class imageHelper {\n static imgDragAndDrop(element: HTMLImageElement): void {\n if (!element) {\n throw new Error('Element not found.');\n }\n\n let mouseX: number, mouseY: number, imgX: number, imgY: number;\n let isDragging = false;\n\n function handleMouseDown(event: MouseEvent) {\n mouseX = event.clientX;\n mouseY = event.clientY;\n imgX = element.offsetLeft;\n imgY = element.offsetTop;\n isDragging = true;\n\n element.style.cursor = 'grabbing';\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n\n function handleMouseMove(event: MouseEvent) {\n if (isDragging) {\n const deltaX = event.clientX - mouseX;\n const deltaY = event.clientY - mouseY;\n\n element.style.left = imgX + deltaX + 'px';\n element.style.top = imgY + deltaY + 'px';\n }\n }\n\n function handleMouseUp() {\n if (isDragging) {\n isDragging = false;\n element.style.cursor = 'grab';\n\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n }\n }\n\n element.addEventListener('mousedown', handleMouseDown);\n\n element.addEventListener('dragstart', (event: DragEvent) => {\n event.preventDefault();\n });\n\n // Handle mouse leaving window\n window.addEventListener('mouseout', (event: MouseEvent) => {\n if (event.target === document.body || event.target === document.documentElement) {\n handleMouseUp();\n }\n });\n }\n}\n","import { domInfoHelper } from '../dom/exports'\nimport { state } from '../stateProvider';\nimport { resize } from '../../ObservableApi/observableApi';\n\nexport class inputHelper {\n\n static getTextAreaInfo(element) {\n if (!element) return null;\n const result = {};\n const dom = domInfoHelper.get(element);\n if (!dom) return null;\n result[\"scrollHeight\"] = dom.scrollHeight || 0;\n\n if (element.currentStyle) {\n result[\"lineHeight\"] = parseFloat(element.currentStyle[\"line-height\"]);\n result[\"paddingTop\"] = parseFloat(element.currentStyle[\"padding-top\"]);\n result[\"paddingBottom\"] = parseFloat(element.currentStyle[\"padding-bottom\"]);\n result[\"borderBottom\"] = parseFloat(element.currentStyle[\"border-bottom\"]);\n result[\"borderTop\"] = parseFloat(element.currentStyle[\"border-top\"]);\n }\n else if (window.getComputedStyle) {\n result[\"lineHeight\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"line-height\"));\n result[\"paddingTop\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"padding-top\"));\n result[\"paddingBottom\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"padding-bottom\"));\n result[\"borderBottom\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"border-bottom\"));\n result[\"borderTop\"] = parseFloat(document.defaultView.getComputedStyle(element, null).getPropertyValue(\"border-top\"));\n }\n //Firefox can return this as NaN, so it has to be handled here like that.\n if (Object.is(NaN, result[\"borderTop\"]))\n result[\"borderTop\"] = 1;\n if (Object.is(NaN, result[\"borderBottom\"]))\n result[\"borderBottom\"] = 1;\n return result;\n }\n\n static registerResizeTextArea(element: HTMLTextAreaElement, minRows: number, maxRows: number, objReference) {\n if (!objReference) {\n this.disposeResizeTextArea(element);\n }\n else {\n state.objReferenceDict[element.id] = objReference;\n state.eventCallbackRegistry[element.id + \"input\"] = function () { inputHelper.resizeTextArea(element, minRows, maxRows); }\n element.addEventListener(\"input\", state.eventCallbackRegistry[element.id + \"input\"]);\n resize.create(element.id + \"-resize\", () => {\n inputHelper.resizeTextArea(element, minRows, maxRows);\n }, false);\n resize.observe(element.id + \"-resize\", element);\n inputHelper.resizeTextArea(element, minRows, maxRows);\n element.style.resize = 'none';\n return this.getTextAreaInfo(element);\n }\n }\n\n static disposeResizeTextArea(element: HTMLTextAreaElement) {\n element.removeEventListener(\"input\", state.eventCallbackRegistry[element.id + \"input\"]);\n resize.unobserve(element.id + \"-resize\", element);\n state.objReferenceDict[element.id] = null;\n state.eventCallbackRegistry[element.id + \"input\"] = null;\n }\n\n static resizeTextArea(element: HTMLTextAreaElement, minRows: number, maxRows: number) {\n const dims = this.getTextAreaInfo(element);\n if (!dims) return;\n\n const rowHeight = dims[\"lineHeight\"];\n const offsetHeight = dims[\"paddingTop\"] + dims[\"paddingBottom\"] + dims[\"borderTop\"] + dims[\"borderBottom\"];\n const oldHeight = parseFloat(element.style.height);\n //use rows attribute to evaluate real scroll height\n const oldRows = element.rows;\n element.rows = minRows;\n element.style.height = 'auto'; \n \n let rows = Math.trunc(element.scrollHeight / rowHeight);\n element.rows = oldRows;\n rows = Math.max(minRows, rows);\n let newHeight = 0;\n if (rows > maxRows) {\n rows = maxRows;\n\n newHeight = (rows * rowHeight + offsetHeight);\n element.style.height = newHeight + \"px\";\n element.style.overflowY = \"visible\";\n }\n else {\n newHeight = rows * rowHeight + offsetHeight;\n element.style.height = newHeight + \"px\";\n element.style.overflowY = \"hidden\";\n }\n if (oldHeight !== newHeight) {\n const textAreaObj = state.objReferenceDict[element.id];\n textAreaObj.invokeMethodAsync(\"ChangeSizeAsyncJs\", element.scrollWidth, newHeight);\n }\n }\n\n static setSelectionStart(element, position: number) {\n if (position >= 0) {\n const dom: HTMLInputElement = domInfoHelper.get(element);\n if (dom) {\n if (position <= dom.value.length) {\n dom.selectionStart = position;\n dom.selectionEnd = position;\n }\n }\n }\n }\n\n}","export class mentionsHelper {\n\n private static isPopShowFlag: boolean;\n\n public static setPopShowFlag = function (show: boolean): void {\n mentionsHelper.isPopShowFlag = show;\n }\n\n public static setEditorKeyHandler = function (Mentions: any, element: HTMLTextAreaElement): void {\n\n const textArea = mentionsHelper.getTextarea(element);\n textArea.onkeydown = async (ev): Promise => {\n //判断isPopShow不能用异步方法\n if (!mentionsHelper.isPopShowFlag) return;\n if (ev.key == \"ArrowUp\") {\n ev.preventDefault();\n await Mentions.invokeMethodAsync(\"PrevOption\");\n } else if (ev.key == \"ArrowDown\") {\n ev.preventDefault();\n await Mentions.invokeMethodAsync(\"NextOption\");\n }\n else if (ev.key == \"Enter\") {\n ev.preventDefault();\n await Mentions.invokeMethodAsync(\"EnterOption\");\n }\n //其他按键在c#中处理\n }\n }\n\n public static getProp = function (e: HTMLElement, propName: string): any {\n const textArea = mentionsHelper.getTextarea(e);\n\n return textArea[propName];\n }\n\n public static getCursorXY = function (element: HTMLElement) {\n const textArea = mentionsHelper.getTextarea(element);\n const format = function (value) {\n value = value.replace(/<|>|`|\"|&/g, '?');\n return value;\n };\n const inputorValue = textArea.value;\n const pos = textArea.selectionStart;\n let start_range = inputorValue.slice(0, pos);\n if (start_range.length > 0) start_range = start_range.substring(0, start_range.length - 1);\n const end_range = inputorValue.slice(pos);\n let html = format(start_range);\n html += \"@\";\n html += format(end_range);\n\n const div_mirror = document.createElement(\"div\");\n div_mirror.className = \"ant-mentions-measure\"\n div_mirror.innerHTML = html;\n textArea.parentNode.append(div_mirror);\n\n const flag: HTMLSpanElement = div_mirror.querySelector(\"span\");\n // let flagPos = flag.getBoundingClientRect();\n // let textAreaPos = textArea.getBoundingClientRect();\n // let bodyPos = document.body.getBoundingClientRect();\n const left = flag.offsetLeft - textArea.scrollLeft + 16;\n const top = flag.offsetTop - textArea.scrollTop + 16;\n\n div_mirror.remove();\n return [left, top];\n };\n\n private static getTextarea(element: HTMLElement) {\n const textAreaTag = \"TEXTAREA\";\n let textarea = element;\n if (element.tagName != textAreaTag) {\n const allTextareas = element.getElementsByTagName(textAreaTag);\n if (allTextareas.length == 0) {\n throw \"Mentions requires a textarea to be rendered, but none were found.\";\n }\n textarea = allTextareas[0] as HTMLTextAreaElement;\n }\n\n return textarea as HTMLTextAreaElement;\n }\n}\n","import { domInfoHelper } from '../dom/exports'\nimport { manipulationHelper } from '../dom/manipulationHelper'\n\nexport class modalHelper {\n static focusDialog(selector: string, count: number = 0) {\n const ele = document.querySelector(selector);\n if (ele) {\n if (ele.hasAttribute(\"disabled\")) {\n const htmlElement = document.activeElement;\n htmlElement?.blur();\n } else {\n setTimeout(() => {\n ele.focus();\n const curId = \"#\" + domInfoHelper.getActiveElement();\n if (curId !== selector) {\n if (count < 10) {\n this.focusDialog(selector, count + 1);\n }\n }\n }, 10);\n }\n }\n }\n\n static destroyAllDialog() {\n document.querySelectorAll(\".ant-modal-root\").forEach((e) => {\n const container = e.parentNode;\n if (container instanceof HTMLElement) {\n container.remove();\n }\n });\n manipulationHelper.enableBodyScroll(true);\n }\n}","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { domInfoHelper, domTypes } from '../dom/exports'\nimport { resize } from '../../ObservableApi/observableApi';\nimport { mutationObserver as mutation } from '../../ObservableApi/mutationObserver';\n\n//Make sure the enum is identical as C# AntDesign.Placement enum\nexport enum Placement {\n TopLeft = 0,\n Top = 2,\n TopRight = 3,\n Left = 4,\n LeftTop = 5,\n LeftBottom = 6,\n Right = 7,\n RightTop = 8,\n RightBottom = 9,\n BottomLeft = 10,\n Bottom = 12,\n BottomRight = 13\n}\n\n//Make sure the enum is identical as C# AntDesign.TriggerBoundyAdjustMode enum\nexport enum TriggerBoundyAdjustMode {\n None = 0,\n InView = 1,\n InScroll = 2\n}\n\ntype verticalPosition = {\n top?: number,\n bottom?: number\n}\n\ntype horizontalPosition = {\n left?: number,\n right?: number\n}\n\nexport type overlayConstraints = {\n verticalOffset: number,\n horizontalOffset: number,\n arrowPointAtCenter: boolean\n}\nexport type coordinates = {\n top?: number,\n bottom?: number,\n left?: number,\n right?: number\n}\n\n\nexport type overlayPosition = {\n top?: number,\n bottom?: number,\n left?: number,\n right?: number,\n zIndex: number,\n placement?: Placement,\n}\n\nexport class Overlay {\n private static appliedStylePositionMap: Map =\n new Map([\n [Placement.TopLeft, { horizontal: \"left\", vertical: \"bottom\", class: \"topLeft\" }],\n [Placement.Top, { horizontal: \"left\", vertical: \"bottom\", class: \"top\" }],\n [Placement.TopRight, { horizontal: \"right\", vertical: \"bottom\", class: \"topRight\" }],\n [Placement.Left, { horizontal: \"right\", vertical: \"top\", class: \"left\" }],\n [Placement.LeftTop, { horizontal: \"right\", vertical: \"top\", class: \"leftTop\" }],\n [Placement.LeftBottom, { horizontal: \"right\", vertical: \"bottom\", class: \"leftBottom\" }],\n [Placement.Right, { horizontal: \"left\", vertical: \"top\", class: \"right\" }],\n [Placement.RightTop, { horizontal: \"left\", vertical: \"top\", class: \"rightTop\" }],\n [Placement.RightBottom, { horizontal: \"left\", vertical: \"bottom\", class: \"rightBottom\" }],\n [Placement.BottomLeft, { horizontal: \"left\", vertical: \"top\", class: \"bottomLeft\" }],\n [Placement.Bottom, { horizontal: \"left\", vertical: \"top\", class: \"bottom\" }],\n [Placement.BottomRight, { horizontal: \"right\", vertical: \"top\", class: \"bottomRight\" }],\n ]);\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private static reverseVerticalPlacementMap: Map =\n new Map([\n [Placement.TopLeft, (position: string) => Placement.BottomLeft],\n [Placement.Top, (position: string) => Placement.Bottom],\n [Placement.TopRight, (position: string) => Placement.BottomRight],\n [Placement.Left, (position: string) => position === \"top\" ? Placement.LeftBottom : Placement.LeftTop],\n [Placement.LeftTop, (position: string) => Placement.LeftBottom],\n [Placement.LeftBottom, (position: string) => Placement.LeftTop],\n [Placement.Right, (position: string) => position === \"top\" ? Placement.RightBottom : Placement.RightTop],\n [Placement.RightTop, (position: string) => Placement.RightBottom],\n [Placement.RightBottom, (position: string) => Placement.RightTop],\n [Placement.BottomLeft, (position: string) => Placement.TopLeft],\n [Placement.Bottom, (position: string) => Placement.Top],\n [Placement.BottomRight, (position: string) => Placement.TopRight]\n ]);\n \n // eslint-disable-next-line @typescript-eslint/ban-types\n private static reverseHorizontalPlacementMap: Map =\n new Map([\n [Placement.TopLeft, (position: string) => Placement.TopRight],\n [Placement.Top, (position: string) => position === \"left\" ? Placement.TopRight : Placement.TopLeft],\n [Placement.TopRight, (position: string) => Placement.TopLeft],\n [Placement.Left, (position: string) => Placement.Right],\n [Placement.LeftTop, (position: string) => Placement.RightTop],\n [Placement.LeftBottom, (position: string) => Placement.RightBottom],\n [Placement.Right, (position: string) => Placement.Left],\n [Placement.RightTop, (position: string) => Placement.LeftBottom],\n [Placement.RightBottom, (position: string) => Placement.LeftTop],\n [Placement.BottomLeft, (position: string) => Placement.BottomRight],\n [Placement.Bottom, (position: string) => position === \"left\" ? Placement.BottomRight : Placement.BottomLeft],\n [Placement.BottomRight, (position: string) => Placement.BottomLeft]\n ]); \n \n private static arrowCenterPlacementMatch: Map =\n new Map([\n [Placement.TopLeft, Placement.Top],\n [Placement.Top, Placement.Top],\n [Placement.TopRight, Placement.Top],\n [Placement.Left, Placement.Left],\n [Placement.LeftTop, Placement.Left],\n [Placement.LeftBottom, Placement.Left],\n [Placement.Right, Placement.Right],\n [Placement.RightTop, Placement.Right],\n [Placement.RightBottom, Placement.Right],\n [Placement.BottomLeft, Placement.Bottom],\n [Placement.Bottom, Placement.Bottom],\n [Placement.BottomRight, Placement.Bottom]\n ]); \n \n private blazorId: string;\n public overlay: HTMLDivElement;\n private container: HTMLElement;\n private trigger: HTMLElement;\n\n private overlayInfo: domTypes.domInfo;\n private containerInfo: domTypes.domInfo;\n private triggerInfo: domTypes.domInfo;\n \n private containerBoundarySize: coordinates;\n private bodyBoundarySize: coordinates;\n \n private placement: Placement;\n private recentPlacement: Placement;\n private initialPlacement?: Placement;\n\n private triggerPrefixCls: string; \n\n private boundyAdjustMode: TriggerBoundyAdjustMode\n public position: overlayPosition;\n public sanitizedPosition: overlayPosition;\n \n private overlayPreset: domTypes.position;\n\n private verticalCalculation:\n (triggerPosition: number, triggerHeight: number, container: domTypes.domInfo,\n trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints)\n => verticalPosition;\n\n private horizontalCalculation:\n (triggerPosition: number, triggerWidth: number, container: domTypes.domInfo,\n trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints)\n => horizontalPosition;\n\n private overlayConstraints: overlayConstraints; \n private duringInit = true;\n private selectedVerticalPosition: \"top\" | \"bottom\";\n private selectedHorizontalPosition: \"left\" | \"right\";\n private calculationsToPerform: Set<\"horizontal\"|\"vertical\">;\n\n private triggerPosition: coordinates & { absoluteTop?: number, absoluteLeft?: number, height?: number, width?: number } = { }; \n\n private isContainerBody: boolean;\n private isContainerOverBody = false;\n private isTriggerFixed: boolean; //refers to trigger or any of its parent having \"position:fixed\"\n private lastScrollPosition: number; //used only if isTriggerFixed === true\n\n private scrollbarSize: {\n horizontalHeight: number,\n verticalWidth: number\n } \n\n constructor(blazorId: string,\n overlay: HTMLDivElement, container: HTMLElement, trigger: HTMLElement, placement: Placement, \n triggerBoundyAdjustMode: TriggerBoundyAdjustMode, triggerIsWrappedInDiv: boolean, triggerPrefixCls: string,\n overlayConstraints: overlayConstraints) {\n this.blazorId = blazorId;\n this.overlay = overlay; \n //containerInfo & scrollbars have to be obtained here, because after\n //removal of classes, the overlay goes to left: -9999 what causes artificial \n //scrollbars and viewport dimensions are changing\n this.containerInfo = domInfoHelper.getInfo(container);\n this.container = container;\n this.isContainerBody = container === document.body;\n this.calculateScrollBarSizes()\n if (!this.isContainerBody) {\n this.isContainerOverBody = domInfoHelper.findAncestorWithZIndex(this.container) > 0;\n }\n\n this.overlay.style.cssText = this.overlay.style.cssText.replace(\"display: none;\", \"\");\n this.overlay.style.top = \"0px\"; //reset to prevent scrollbars if do not exist\n this.removeHiddenClass()\n\n //The trigger is actually wrapping div, which can have its own dimensions (coming from styles).\n //So, first valid HTML element is picked and if there is none, the wrapping div is set as trigger.\n //Triggers are always wrapped in div if the instead of is used.\n this.trigger = Overlay.getFirstValidChild(trigger, triggerIsWrappedInDiv);\n this.triggerPrefixCls = triggerPrefixCls;\n if (overlayConstraints.arrowPointAtCenter){ \n this.placement = Overlay.arrowCenterPlacementMatch.get(placement);\n } else {\n this.placement = placement;\n }\n this.initialPlacement = this.placement;\n this.boundyAdjustMode = triggerBoundyAdjustMode; \n this.overlayConstraints = overlayConstraints;\n\n this.position = { zIndex: 0 };\n this.selectedHorizontalPosition = Overlay.appliedStylePositionMap.get(this.placement).horizontal;\n this.selectedVerticalPosition = Overlay.appliedStylePositionMap.get(this.placement).vertical;\n\n this.verticalCalculation = Overlay.setVerticalCalculation(this.placement, this.selectedVerticalPosition);\n this.horizontalCalculation = Overlay.setHorizontalCalculation(this.placement, this.selectedHorizontalPosition);\n this.isTriggerFixed = domInfoHelper.isFixedPosition(this.trigger);\n this.observe();\n }\n\n static getFirstValidChild(element: HTMLElement, triggerIsWrappedInDiv: boolean): HTMLElement {\n if (triggerIsWrappedInDiv)\n { \n for(let i = 0; i < element.childNodes.length; i++) {\n const childElement = element.childNodes[i] as HTMLElement;\n if (childElement.innerHTML)\n return childElement;\n }\n }\n return element\n }\n\n static setVerticalCalculation(placement: Placement, position: \"top\" | \"bottom\") {\n if (position === \"top\") {\n switch (placement) {\n case Placement.LeftTop:\n case Placement.RightTop: \n return function(triggerTop: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n return { \n top: triggerTop,\n bottom: Overlay.reversePositionValue(triggerTop, container.scrollHeight, overlayHeight) \n }; \n }; \n case Placement.BottomLeft:\n case Placement.Bottom:\n case Placement.BottomRight:\n return function(triggerTop: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = {\n top: triggerTop + triggerHeight + constraints.verticalOffset,\n };\n position.bottom = Overlay.reversePositionValue(position.top, container.scrollHeight, overlayHeight)\n return position;\n }; \n case Placement.Left:\n case Placement.Right:\n return function(triggerTop: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = { \n top: triggerTop + (triggerHeight / 2) - (overlayHeight / 2)\n };\n position.bottom = Overlay.reversePositionValue(position.top, container.scrollHeight, overlayHeight)\n return position;\n }; \n }\n } \n if (position === \"bottom\") {\n switch (placement) {\n case Placement.TopLeft:\n case Placement.Top:\n case Placement.TopRight:\n return function(triggerBottom: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = { \n bottom: triggerBottom + triggerHeight + constraints.verticalOffset,\n };\n position.top = Overlay.reversePositionValue(position.bottom, container.scrollHeight, overlayHeight);\n return position;\n }; \n case Placement.LeftBottom:\n case Placement.RightBottom:\n return function(triggerBottom: number, triggerHeight: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayHeight: number, constraints: overlayConstraints) { \n const position: verticalPosition = { \n bottom: triggerBottom,\n top: Overlay.reversePositionValue(triggerBottom, container.scrollHeight, overlayHeight)\n }; \n return position; \n }; \n }\n }\n //fallback - should not happen, but to avoid crashing scenarios, revert to BottomLeft\n console.log(\"Error: setVerticalCalculation did not match, nothing selected!!! Fallback.\", placement, position);\n return Overlay.setVerticalCalculation(Placement.BottomLeft, \"top\");\n }\n\n static setHorizontalCalculation(placement: Placement, position: \"left\" | \"right\") {\n if (position === \"left\") {\n switch (placement) {\n case Placement.TopLeft:\n case Placement.BottomLeft:\n return function(triggerLeft: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n return { \n left: triggerLeft,\n right: Overlay.reversePositionValue(triggerLeft, container.scrollWidth, overlayWidth)\n }; \n }; \n case Placement.Right:\n case Placement.RightTop:\n case Placement.RightBottom:\n return function(triggerLeft: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n const position: horizontalPosition = {\n left: triggerLeft + triggerWidth + constraints.horizontalOffset\n };\n position.right = Overlay.reversePositionValue(position.left, container.scrollWidth, overlayWidth)\n return position;\n };\n\n case Placement.Top:\n case Placement.Bottom:\n return function(triggerLeft: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n const position: horizontalPosition = {\n left: triggerLeft + (triggerWidth / 2) - (overlayWidth / 2)\n };\n position.right = Overlay.reversePositionValue(position.left, container.scrollWidth, overlayWidth)\n return position;\n };\n }\n }\n if (position === \"right\") {\n switch (placement) {\n case Placement.TopRight:\n case Placement.BottomRight:\n return function(triggerRight: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) { \n const position: horizontalPosition = {\n right: triggerRight,\n left: Overlay.reversePositionValue(triggerRight, container.scrollWidth, overlayWidth)\n }; \n return position;\n };\n case Placement.Left:\n case Placement.LeftTop:\n case Placement.LeftBottom:\n return function(triggerRight: number, triggerWidth: number, container: domTypes.domInfo, trigger: domTypes.domInfo, overlayWidth: number, constraints: overlayConstraints) {\n const position: horizontalPosition = {\n right: triggerRight + triggerWidth + constraints.horizontalOffset\n };\n position.left = Overlay.reversePositionValue(position.right, container.scrollWidth, overlayWidth)\n return position;\n }; \n } \n }\n //fallback - should not happen, but to avoid crashing scenarios, revert to BottomLeft\n console.log(\"Error: setHorizontalCalculation did not match, nothing selected!!! Fallback.\", placement, position);\n return Overlay.setVerticalCalculation(Placement.BottomLeft, \"top\"); \n }\n\n /**\n * Calculates reversed position. So for given left will return right,\n * for top => bottom, etc.\n * @param the value that needs to be reversed (left in scenario: left => right)\n * @param for horizontal (left, right) container width & for vertical (top, bottom) container height\n * @param for horizontal (left, right) overlay width & for vertical (top, bottom) overlay height\n * @returns number\n */\n static reversePositionValue(position: number, containerDimension: number, overlayDimension: number) { \n return containerDimension - position - overlayDimension;\n }\n\n private removeHiddenClass() { \n const end = this.overlay.className.indexOf(\"-hidden\");\n const start = this.overlay.className.lastIndexOf(\" \", end)\n if (start >= 0) {\n const className = this.overlay.className.substr(start + 1, end);\n if (className !== \"\") {\n this.overlay.classList.remove(className);\n }\n }\n }\n\n private calculateScrollBarSizes() {\n if (this.isContainerBody) {\n this.scrollbarSize = { \n horizontalHeight: window.innerHeight - document.documentElement.clientHeight,\n verticalWidth: window.innerWidth - document.documentElement.clientWidth\n }\n } \n else {\n this.scrollbarSize = { \n horizontalHeight: this.container.offsetHeight - this.container.clientHeight, \n verticalWidth: this.container.offsetWidth - this.container.clientWidth \n }\n }\n }\n\n private observe() {\n resize.create(`container-${this.blazorId}`, this.resizing.bind(this), false);\n resize.observe(`container-${this.blazorId}`, this.container); \n resize.observe(`container-${this.blazorId}`, this.trigger); \n mutation.create(`trigger-${this.blazorId}`, this.mutating.bind(this), false);\n mutation.observe(`trigger-${this.blazorId}`, this.trigger, {\n attributes: true,\n characterData: false,\n childList: false,\n subtree: false,\n attributeOldValue: false,\n characterDataOldValue: false\n });\n \n if (this.isContainerBody) {\n window.addEventListener(\"scroll\", this.onScroll.bind(this));\n }\n else {\n this.container.addEventListener(\"scroll\", this.onScroll.bind(this));\n }\n } \n\n private onScroll() {\n if (this.isTriggerFixed) {\n if (this.lastScrollPosition !== window.pageYOffset) { \n const diff = window.pageYOffset - this.lastScrollPosition; //positive -> down, negative -> up \n this.position.top += diff;\n this.position.bottom = Overlay.reversePositionValue(this.position.top, this.containerInfo.scrollHeight, this.overlayInfo.clientHeight); \n if (this.selectedVerticalPosition === \"top\") { \n this.sanitizedPosition.top = this.position.top;\n this.overlay.style.top = this.sanitizedPosition.top + \"px\"; \n } else {\n this.sanitizedPosition.bottom = this.getAdjustedBottom();\n this.overlay.style.bottom = this.sanitizedPosition.bottom + \"px\";\n }\n this.lastScrollPosition = window.pageYOffset;\n }\n } else {\n //Commented out code is a non-optimized calculation only if overlay stops fitting during scroll\n //It misses active check for initialPlacement being different to current placement\n // this.getKeyElementDimensions(false);\n // this.containerBoundarySize = this.getContainerBoundarySize();\n // if (!this.overlayFitsContainer(\"horizontal\", this.position.left, this.position.right)\n // || !this.overlayFitsContainer(\"vertical\", this.position.top, this.position.bottom)) { \n // this.calculatePosition(true, false, this.overlayPreset)\n // } \n this.calculatePosition(true, false, this.overlayPreset);\n }\n }\n\n private resizing(entries, observer) {\n //prevents from recalculation right on the spot during constructor run\n if (this.duringInit) { \n this.duringInit = false;\n return;\n }\n this.calculatePosition(true, false, this.overlayPreset);\n }\n\n private lastStyleMutation = \"\";\n\n /**\n * Mutation observer will fire whenever trigger style changes. This is first and foremost\n * to monitor position/size changes, so overlay can adjust itself to the new position.\n * @param mutations \n * @returns \n */\n private mutating(mutations) {\n if (this.duringInit) { \n this.duringInit = false;\n return;\n } \n if (this.lastStyleMutation !== this.trigger.style.cssText) {\n this.lastStyleMutation = this.trigger.style.cssText;\n this.calculatePosition(true, false, this.overlayPreset);\n }\n \n }\n\n public dispose(): void { \n resize.dispose(`container-${this.blazorId}`);\n mutation.dispose(`trigger-${this.blazorId}`);\n if (this.container.contains(this.overlay)) {\n this.container.removeChild(this.overlay);\n }\n\n if (this.isContainerBody) { \n window.removeEventListener(\"scroll\", this.onScroll);\n }\n else {\n this.container.removeEventListener(\"scroll\", this.onScroll);\n }\n }\n\n public calculatePosition(applyLocation: boolean, firstTime = false, overlayPreset?: domTypes.position): overlayPosition { \n //check if hidden, if yes, no need to recalculate (only if not first time)\n if (!firstTime && !this.overlay.offsetParent) { \n return;\n }\n //trigger no longer visible, hide\n if (!overlayPreset && !this.trigger.offsetParent) { \n if (!this.overlay.classList.contains(this.triggerPrefixCls + \"-hidden\")) {\n this.overlay.classList.add(this.triggerPrefixCls + \"-hidden\");\n }\n return this.position;\n }\n this.lastScrollPosition = window.pageYOffset;\n this.recentPlacement = this.placement;\n this.overlayPreset = overlayPreset;\n\n this.getKeyElementDimensions(firstTime);\n\n this.restoreInitialPlacement();\n\n //add a very basic check - if overlay width exceeds container width, left defaults to 0 \n this.calculationsToPerform = this.getNominalPositions();\n if (this.calculationsToPerform.size > 0) {\n this.adjustToContainerBoundaries();\n }\n\n this.sanitizeCalculatedPositions(); \n //first positioning is applied by blazor - without it, a flicker is visible\n if (applyLocation) {\n this.applyLocation();\n } \n return this.sanitizedPosition;\n }\n\n /**\n * All variants of positions are stored during calculations, but only key positions are \n * returned (so only left or right and only top or bottom).\n * Also, bottom & right positions need to be recalculated, due to the fact that during \n * calculations:\n * - bottom is represented as a value counting from top \n * - right is represented as a value counting from left\n * Browsers use different reference for bottom & right.\n */\n private sanitizeCalculatedPositions() {\n this.sanitizedPosition = { ...this.position};\n this.sanitizedPosition.zIndex = domInfoHelper.getMaxZIndex();\n this.sanitizedPosition.placement = this.placement; \n if (this.selectedHorizontalPosition === \"left\") {\n this.sanitizedPosition.right = null;\n }\n else {\n this.sanitizedPosition.left = null;\n this.sanitizedPosition.right = this.getAdjustedRight();\n }\n\n if (this.selectedVerticalPosition === \"top\") {\n this.sanitizedPosition.bottom = null;\n }\n else {\n this.sanitizedPosition.top = null;\n this.sanitizedPosition.bottom = this.getAdjustedBottom();\n }\n }\n\n /**\n * Gets first calculations of the overlay. For each direction, there is a single scenario\n * when it is immediately known that no further calculation is needed:\n * - for vertical direction - when overlay's height is larger than container vertical boundaries\n * - for vertical direction - when overlay's width is larger than container horizontal boundaries\n * These scenarios are ignored, when boundyAdjustMode === TriggerBoundyAdjustMode.None\n * @returns collection containing directions that will be calculable (not final)\n */\n private getNominalPositions(): Set<\"horizontal\"|\"vertical\"> {\n this.containerBoundarySize = this.getContainerBoundarySize();\n const height = this.containerBoundarySize.bottom - this.containerBoundarySize.top;\n const width = this.containerBoundarySize.right - this.containerBoundarySize.left;\n const directionsToCalculate = new Set<\"horizontal\"|\"vertical\">();\n\n if (this.boundyAdjustMode != TriggerBoundyAdjustMode.None && width < this.overlayInfo.clientWidth && this.isContainerBody) {\n if (this.selectedHorizontalPosition === \"left\") {\n this.position.left = 0;\n } else {\n this.position.right = 0;\n }\n } else {\n const horizontalPosition = this.getHorizontalPosition();\n this.position.left = horizontalPosition.left;\n this.position.right = horizontalPosition.right;\n directionsToCalculate.add(\"horizontal\");\n }\n //same for height exceeding container height - top defaults to 0 \n if (this.boundyAdjustMode != TriggerBoundyAdjustMode.None && height < this.overlayInfo.clientHeight && this.isContainerBody) { \n if (this.selectedVerticalPosition === \"top\") {\n this.position.top = 0;\n } else {\n this.position.bottom = 0;\n }\n } else {\n \n const verticalPosition = this.getVerticalPosition();\n this.position.top = verticalPosition.top;\n this.position.bottom = verticalPosition.bottom; \n directionsToCalculate.add(\"vertical\");\n }\n return directionsToCalculate;\n }\n\n /**\n * Restore initial placement (and following connected variables & functions) on calculation.\n * This never kicks in on first calculation. This is done because the overlay should always\n * try to position itself to the initial placement. So on every recalculation initial settings\n * (used during object creation) are reloaded.\n */\n private restoreInitialPlacement() {\n if (this.placement !== this.initialPlacement) {\n this.placement = this.initialPlacement;\n this.selectedHorizontalPosition = Overlay.appliedStylePositionMap.get(this.placement).horizontal;\n this.selectedVerticalPosition = Overlay.appliedStylePositionMap.get(this.placement).vertical;\n this.verticalCalculation = Overlay.setVerticalCalculation(this.placement, this.selectedVerticalPosition);\n this.horizontalCalculation = Overlay.setHorizontalCalculation(this.placement, this.selectedHorizontalPosition);\n }\n }\n\n /**\n * Very basic logging, useful during debugging.\n * @param extraMessage \n */\n /* istanbul ignore next */\n private logToConsole(extraMessage = \"\") {\n console.log(extraMessage + \" Overlay position:\", this.position,\n \"Input\",\n { \n blazorId: this.blazorId, \n container: {\n info: this.containerInfo,\n parentInfo: {\n clientHeight: this.container.parentElement.clientHeight,\n clientWidth: this.container.parentElement.clientWidth,\n scrollLeft: this.container.parentElement.scrollLeft,\n scrollTop: this.container.parentElement.scrollTop\n },\n containerId: this.container.id, \n containerBoundarySize: this.containerBoundarySize,\n },\n trigger: { \n absoluteTop: this.triggerInfo.absoluteTop,\n absoluteLeft: this.triggerInfo.absoluteLeft,\n clientHeight: this.triggerInfo.clientHeight,\n clientWidth: this.triggerInfo.clientWidth,\n offsetHeight: this.triggerInfo.offsetHeight,\n offsetWidth: this.triggerInfo.offsetWidth,\n boundyAdjustMode: this.boundyAdjustMode,\n //triggerType: this.triggerType,\n triggerHtml: this.trigger.outerHTML,\n triggerPrefixCls: this.triggerPrefixCls\n },\n overlay: { \n clientHeight: this.overlayInfo.clientHeight,\n clientWidth: this.overlayInfo.clientWidth,\n offsetHeight: this.overlayInfo.offsetHeight,\n offsetWidth: this.overlayInfo.offsetWidth,\n class: this.overlay.className,\n appliedCssPosition: {\n overlay_style_top: this.overlay.style.top,\n overlay_style_bottom: this.overlay.style.bottom,\n overlay_style_left: this.overlay.style.left,\n overlay_style_right: this.overlay.style.right\n }\n },\n window: {\n innerHeight: window.innerHeight,\n innerWidth: window.innerWidth,\n pageXOffset: window.pageXOffset,\n pageYOffset: window.pageYOffset,\n }, \n documentElement: {\n clientHeight: document.documentElement.clientHeight,\n clientWidth: document.documentElement.clientWidth,\n containerIsBody: this.isContainerBody,\n },\n scrollbars: this.scrollbarSize,\n overlayPreset: this.overlayPreset,\n overlayConstraints: this.overlayConstraints,\n position: this.position, \n sanitizedPosition: this.sanitizedPosition,\n placment: {\n initialPlacement: this.initialPlacement,\n recentPlacement: this.recentPlacement,\n placement: this.placement,\n selectedHorizontalPosition: this.selectedHorizontalPosition,\n selectedVerticalPosition: this.selectedVerticalPosition\n }\n }\n ); \n }\n\n /**\n * Right in the class is calculated with assumption that it is just reversed Left. \n * This works well for containers that are not body. When in body, then different Right \n * calculation is executed. Example:\n * In a document of width of 5000px, the first Left = 0 and the first Right = 0 as well \n * (and respectively, max Left = 5000 and max Right = 5000). However, browsers are behaving \n * differently. Left indeed is 0 until the document width (5000). Right however is different. \n * Right = 0 means the point of original viewport most Right. So, if you viewport is 1000px \n * wide, Right = 0 will mean same as Left = 1000. So to reach Left = 5000, Right has to \n * be equal to -4000. \n * @returns number - right position\n */\n private getAdjustedRight(): number { \n if (this.isContainerBody) {\n return this.position.right - (this.containerInfo.scrollWidth - window.innerWidth)\n - this.scrollbarSize.verticalWidth;\n }\n return this.position.right; \n }\n\n /**\n * Bottom in the class is calculated with assumption that it is just reversed Top. \n * This works well for containers that are not body. When in body, then different Bottom\n * calculation is executed. Example:\n * In a document of height of 5000px, the first Top = 0 and the first Bottom = 0 as well \n * (and respectively, max Top = 5000 and max Bottom = 5000). However, browsers are behaving \n * differently. Top indeed is 0 until the document height (5000). Bottom however is different. \n * Bottom = 0 means the point of original viewport most bottom. So, if you viewport is 1000px \n * in height, Bottom = 0 will mean same as Top = 1000. So to reach Top = 5000, Bottom has to \n * be equal to -4000. \n * @returns number - bottom position\n */\n private getAdjustedBottom(): number { \n if (this.isContainerBody) {\n return this.position.bottom - (this.containerInfo.scrollHeight - window.innerHeight)\n - this.scrollbarSize.horizontalHeight;\n }\n return this.position.bottom;\n }\n\n private applyLocation() {\n if (this.selectedHorizontalPosition === \"left\") {\n this.overlay.style.left = this.sanitizedPosition.left + \"px\";\n this.overlay.style.right = \"unset\";\n } else {\n this.overlay.style.right = this.sanitizedPosition.right + \"px\";\n this.overlay.style.left = \"unset\";\n }\n\n if (this.selectedVerticalPosition === \"top\") {\n this.overlay.style.top = this.sanitizedPosition.top + \"px\";\n this.overlay.style.bottom = \"unset\";\n } else {\n this.overlay.style.bottom = this.sanitizedPosition.bottom + \"px\";\n this.overlay.style.top = \"unset\";\n }\n\n this.applyPlacement();\n }\n\n private applyPlacement() {\n if (this.recentPlacement !== this.placement) {\n let currentPlacement: string;\n const stringMach = `${this.triggerPrefixCls}-placement-`;\n const start = this.overlay.className.indexOf(stringMach);\n const end = this.overlay.className.indexOf(\" \", start + stringMach.length);\n if (start >= 0) {\n currentPlacement = this.overlay.className.substr(start, end-start);\n } else {\n currentPlacement = Overlay.appliedStylePositionMap.get(this.initialPlacement).class;\n }\n const newPlacement = stringMach + Overlay.appliedStylePositionMap.get(this.placement).class;\n this.overlay.classList.replace(currentPlacement, newPlacement);\n }\n }\n\n /**\n * Loads all important dimensions of the key elements (container of the trigger, trigger & overlay)\n * into domType.domInfo structures. This could be accessed directly, except absolute positions.\n * Also simplifies mocking.\n * @param firstTime - if this method is called first time, then no need to load information on\n * container, as it was already loaded in the constructor. This is due to the fact that first time,\n * when overlay is added it has default left set to -9999 which causes the scrollbars to \n * appear (which will be gone by the time overlay becomes visible). Scrollbars change\n * dimensions, so often calculations were incorrect.\n */\n private getKeyElementDimensions(firstTime: boolean) {\n if (!firstTime) {\n this.containerInfo = domInfoHelper.getInfo(this.container);\n this.calculateScrollBarSizes()\n } \n this.triggerInfo = domInfoHelper.getInfo(this.trigger);\n this.overlayInfo = domInfoHelper.getInfo(this.overlay); \n }\n\n /**\n * Calculates trigger top & bottom positions and trigger height and\n * uses these to return nominal position values depending on placement and\n * expected attachment point (top/bottom)\n * @returns verticalPosition\n */\n private getVerticalPosition(): verticalPosition {\n let position: verticalPosition;\n //usually first offsetHeight is taken, as the measurement contains the borders\n this.triggerPosition.height = this.triggerInfo.offsetHeight != 0 ? this.triggerInfo.offsetHeight \n : this.triggerInfo.clientHeight; \n if (this.overlayPreset) {\n this.triggerPosition.top = this.triggerInfo.absoluteTop + this.overlayPreset.y;\n this.triggerPosition.height = 0;\n } else {\n this.triggerPosition.top = this.containerInfo.scrollTop + this.triggerInfo.absoluteTop\n - this.containerInfo.absoluteTop - this.containerInfo.clientTop;\n }\n this.triggerPosition.absoluteTop = this.triggerInfo.absoluteTop;\n\n if (this.selectedVerticalPosition === \"top\"){\n position = this.verticalCalculation(this.triggerPosition.top, this.triggerPosition.height, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientHeight, this.overlayConstraints);\n }\n else { //bottom\n this.triggerPosition.bottom = this.containerInfo.scrollHeight - this.triggerPosition.top - this.triggerPosition.height;\n position = this.verticalCalculation(this.triggerPosition.bottom, this.triggerPosition.height, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientHeight, this.overlayConstraints);\n }\n return position;\n }\n\n /**\n * Calculates trigger left & right positions and trigger width and\n * uses these to return nominal position values depending on placement and\n * expected attachment point (left/right)\n * @returns verticalPosition\n */\n private getHorizontalPosition(): horizontalPosition {\n let position: horizontalPosition;\n //usually first offsetHeight is taken, as the measurement contains the borders \n this.triggerPosition.width = this.triggerInfo.offsetWidth != 0 ? this.triggerInfo.offsetWidth : this.triggerInfo.clientWidth;\n \n //let triggerLeft: number;\n if (this.overlayPreset) {\n this.triggerPosition.left = this.triggerInfo.absoluteLeft + this.overlayPreset.x;\n this.triggerPosition.width = 0;\n } else {\n this.triggerPosition.left = this.containerInfo.scrollLeft + this.triggerInfo.absoluteLeft\n - this.containerInfo.absoluteLeft - this.containerInfo.clientLeft;\n }\n this.triggerPosition.absoluteLeft = this.triggerInfo.absoluteLeft;\n\n if (this.selectedHorizontalPosition === \"left\"){ \n position = this.horizontalCalculation(this.triggerPosition.left, this.triggerPosition.width, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientWidth, this.overlayConstraints);\n }\n else { //right\n this.triggerPosition.right = this.containerInfo.scrollWidth - this.triggerPosition.left - this.triggerPosition.width;\n position = this.horizontalCalculation(this.triggerPosition.right, this.triggerPosition.width, this.containerInfo,\n this.triggerInfo, this.overlayInfo.clientWidth, this.overlayConstraints);\n }\n return position; \n }\n\n /**\n * Responsible for calling logic that handles situation when calculated overlay position\n * is causing overlay to be partially rendered invisible. The goal is to adjust placement \n * in such a way, so the overlay is fully visible.\n * @returns void\n */\n private adjustToContainerBoundaries() {\n if (this.boundyAdjustMode === TriggerBoundyAdjustMode.None) {\n return;\n } \n\n if (this.calculationsToPerform.has(\"vertical\")) {\n this.adjustVerticalToContainerBoundaries();\n }\n\n if (this.calculationsToPerform.has(\"horizontal\")) {\n this.adjustHorizontalToContainerBoundaries();\n }\n }\n\n private setBodyBoundayrSize() {\n const window = domInfoHelper.getWindow(); \n const scroll = domInfoHelper.getScroll();\n this.bodyBoundarySize = {\n top : scroll.y,\n left: scroll.x,\n right: window.innerWidth + scroll.x,\n bottom: window.innerHeight + scroll.y\n }; \n }\n\n /**\n * Retrieves information on current logical viewport (visible area). For \n * InView this means actual viewport area (what you see in the browser - either the \n * body or the scrolled to area in a container) or for InScroll this means total\n * area of the container (or body).\n * @returns coordinates - absolute values measuring from top = 0 and left = 0 (first \n * pixels of the container)\n */\n private getContainerBoundarySize(): coordinates { \n if (this.boundyAdjustMode === TriggerBoundyAdjustMode.InScroll) { \n if (!this.isContainerBody) {\n this.setBodyBoundayrSize();\n }\n return { \n left: 0,\n right: this.containerInfo.scrollWidth,\n top: 0,\n bottom: this.containerInfo.scrollHeight\n };\n } \n this.setBodyBoundayrSize();\n\n if (this.isContainerBody) { \n return this.bodyBoundarySize;\n } else { \n //special care is needed when evaluating viewport of the container\n const parentIsInsignificant = this.container.parentElement.clientHeight === 0\n || this.container.parentElement.clientWidth === 0;\n const verticalScrollBasedOnParent = !parentIsInsignificant\n && this.container.parentElement.clientHeight < this.containerInfo.clientHeight;\n const horizontalScrollBasedOnParent = !parentIsInsignificant\n && this.container.parentElement.clientWidth < this.containerInfo.clientWidth;\n\n let clientHeight: number;\n let clientWidth: number;\n let scrollTop: number;\n let scrollLeft: number;\n\n if (verticalScrollBasedOnParent) {\n clientHeight = this.container.parentElement.clientHeight;\n scrollTop = this.container.parentElement.scrollTop;\n } else {\n clientHeight = this.containerInfo.clientHeight;\n scrollTop = this.containerInfo.scrollTop;\n }\n\n if (horizontalScrollBasedOnParent) {\n clientWidth = this.container.parentElement.clientWidth;clientWidth;\n scrollLeft = this.container.parentElement.scrollLeft;\n } else {\n clientWidth = this.containerInfo.clientWidth;\n scrollLeft = this.containerInfo.scrollLeft;\n }\n \n return { \n top : scrollTop,\n bottom: scrollTop + clientHeight,\n left: scrollLeft,\n right: scrollLeft + clientWidth\n }; \n } \n }\n\n /**\n * Returns how much height of the overlay is visible in current viewport \n */\n private getOverlayVisibleHeight(visibleIn: \"container\" | \"body\"): number {\n let boundary: coordinates;\n let top: number; \n if (visibleIn === \"container\") {\n boundary = this.containerBoundarySize;\n top = this.triggerPosition.top;\n } else {\n boundary = this.bodyBoundarySize;\n top = this.triggerPosition.absoluteTop;\n }\n\n if (this.selectedVerticalPosition === \"top\") {\n return boundary.bottom - (top + this.triggerPosition.height);\n } else {\n return top - boundary.top;\n } \n }\n\n /**\n * Returns how much width of the overlay is visible in current viewport \n */\n private getOverlayVisibleWidth(visibleIn: \"container\" | \"body\"): number { \n let boundary: coordinates;\n let left: number; \n if (visibleIn === \"container\") {\n boundary = this.containerBoundarySize;\n left = this.triggerPosition.left;\n } else {\n boundary = this.bodyBoundarySize;\n left = this.triggerPosition.absoluteLeft;\n }\n\n if (this.selectedHorizontalPosition === \"left\") {\n return boundary.right - (left + this.triggerPosition.width);\n } else {\n return left - boundary.left;\n }\n }\n\n /**\n * Checks if current position actually fits in the container and if not, then reverses\n * the placement. Then calculates which already calculated placements has the largest horizontal \n * area of the overlay visible and picks the calculation with largest area.\n */\n private adjustHorizontalToContainerBoundaries() {\n if (!this.overlayFitsContainer(\"horizontal\", this.position.left, this.position.right)) {\n const positionCache: overlayPosition = { ...this.position };\n const selectedPositionCache = this.selectedHorizontalPosition;\n const placementCache = this.placement;\n const horizontalCalculationCache = this.horizontalCalculation;\n const visibleWidthBeforeAdjustment = this.getOverlayVisibleWidth(\"container\");\n let visibleWidthInBodyBeforeAdjustment: number;\n if (this.isContainerOverBody) {\n visibleWidthInBodyBeforeAdjustment = this.getOverlayVisibleWidth(\"body\");\n } else {\n visibleWidthInBodyBeforeAdjustment = visibleWidthBeforeAdjustment\n } \n\n this.getHorizontalAdjustment();\n\n const visibleWidthAfterAdjustment = this.getOverlayVisibleWidth(\"container\");\n let visibleWidthInBodyAfterAdjustment: number;\n if (this.isContainerOverBody) {\n visibleWidthInBodyAfterAdjustment = this.getOverlayVisibleWidth(\"body\");\n } else {\n visibleWidthInBodyAfterAdjustment = visibleWidthAfterAdjustment\n } \n\n if (\n !(visibleWidthInBodyBeforeAdjustment < visibleWidthInBodyAfterAdjustment \n && visibleWidthInBodyAfterAdjustment > 0\n && visibleWidthInBodyAfterAdjustment - visibleWidthInBodyBeforeAdjustment >= 0) \n ||\n !(visibleWidthBeforeAdjustment < visibleWidthAfterAdjustment && visibleWidthAfterAdjustment > 0)) { \n this.position = positionCache;\n this.selectedHorizontalPosition = selectedPositionCache;\n this.placement = placementCache;\n this.horizontalCalculation = horizontalCalculationCache;\n }\n }\n }\n\n /**\n * Checks if current position actually fits in the container and if not, then reverses\n * the placement. Then calculates which already calculated placements has the largest vertical \n * area of the overlay visible and picks the calculation with largest area.\n */\n private adjustVerticalToContainerBoundaries() {\n if (!this.overlayFitsContainer(\"vertical\", this.position.top, this.position.bottom)) {\n const positionCache: overlayPosition = { ...this.position };\n const selectedPositionCache = this.selectedVerticalPosition;\n const placementCache = this.placement;\n const verticalCalculationCache = this.verticalCalculation;\n const visibleHeightBeforeAdjustment = this.getOverlayVisibleHeight(\"container\");\n let visibleHeightInBodyBeforeAdjustment: number;\n if (this.isContainerOverBody) {\n visibleHeightInBodyBeforeAdjustment = this.getOverlayVisibleHeight(\"body\");\n } else {\n visibleHeightInBodyBeforeAdjustment = visibleHeightBeforeAdjustment\n }\n\n this.getVerticalAdjustment(); \n\n const visibleHeightAfterAdjustment = this.getOverlayVisibleHeight(\"container\");\n let visibleHeightInBodyAfterAdjustment: number;\n if (this.isContainerOverBody) {\n visibleHeightInBodyAfterAdjustment = this.getOverlayVisibleHeight(\"body\");\n } else {\n visibleHeightInBodyAfterAdjustment = visibleHeightAfterAdjustment\n } \n\n if (\n !(visibleHeightInBodyBeforeAdjustment < visibleHeightInBodyAfterAdjustment \n && visibleHeightInBodyAfterAdjustment > 0 \n && visibleHeightInBodyAfterAdjustment - visibleHeightInBodyBeforeAdjustment >= 0)\n ||\n !(visibleHeightBeforeAdjustment < visibleHeightAfterAdjustment && visibleHeightAfterAdjustment > 0)) { \n this.position = positionCache;\n this.selectedVerticalPosition = selectedPositionCache;\n this.placement = placementCache;\n this.verticalCalculation = verticalCalculationCache;\n }\n }\n }\n\n private overlayFitsContainer(type: \"horizontal\" | \"vertical\", start: number, end: number): boolean { \n if (type === \"horizontal\") {\n const endExpressedAsLeft = start + this.overlayInfo.clientWidth;\n return this.containerBoundarySize.left <= start\n && start <= this.containerBoundarySize.right //overlay left is between container left and right\n && this.containerBoundarySize.left <= endExpressedAsLeft\n && endExpressedAsLeft <= this.containerBoundarySize.right //and overlay right is between container left and right\n }\n const endExpressedAsTop = start + this.overlayInfo.clientHeight;\n return this.containerBoundarySize.top <= start\n && start <= this.containerBoundarySize.bottom //overlay top is between container top and bottom\n && this.containerBoundarySize.top <= endExpressedAsTop \n && endExpressedAsTop <= this.containerBoundarySize.bottom //and overlay bottom is between container top and bottom\n }\n\n /**\n * Applies basic adjustment - switches verticaly placement (top -> bottom & bottom -> top) \n * and recalculates based on the newly set placement \n */\n private getVerticalAdjustment() {\n this.placement = Overlay.reverseVerticalPlacementMap.get(this.placement)(this.selectedVerticalPosition);\n this.selectedVerticalPosition = Overlay.appliedStylePositionMap.get(this.placement).vertical;\n this.verticalCalculation = Overlay.setVerticalCalculation(this.placement, this.selectedVerticalPosition);\n const verticalPosition = this.getVerticalPosition();\n this.position.top = verticalPosition.top;\n this.position.bottom = verticalPosition.bottom;\n }\n\n /**\n * Applies basic adjustment - switches horizontal placement (left -> right & right -> left)\n * and recalculates based on the newly set placement\n */\n private getHorizontalAdjustment() {\n this.placement = Overlay.reverseHorizontalPlacementMap.get(this.placement)(this.selectedHorizontalPosition);\n this.selectedHorizontalPosition = Overlay.appliedStylePositionMap.get(this.placement).horizontal;\n this.horizontalCalculation = Overlay.setHorizontalCalculation(this.placement, this.selectedHorizontalPosition);\n const horizontalPosition = this.getHorizontalPosition();\n this.position.left = horizontalPosition.left;\n this.position.right = horizontalPosition.right; \n } \n}","import { domInfoHelper, eventHelper, domManipulationHelper, domTypes } from '../dom/exports'\nimport { Placement, TriggerBoundyAdjustMode, overlayConstraints, overlayPosition, Overlay } from './overlay'\nimport { state } from '../stateProvider';\n\nexport class overlayHelper {\n static overlayRegistry: { [key: string]: Overlay} = {};\n\n static addOverlayToContainer(blazorId: string, \n overlaySelector, triggerSelector, placement: Placement, containerSelector: string,\n triggerBoundyAdjustMode: TriggerBoundyAdjustMode, triggerIsWrappedInDiv: boolean, triggerPrefixCls: string,\n verticalOffset: number, horizontalOffset: number, arrowPointAtCenter: boolean, \n overlayTop?: number, overlayLeft?: number\n ): overlayPosition { \n const overlayElement = domInfoHelper.get(overlaySelector) as HTMLDivElement; \n const containerElement = domInfoHelper.get(containerSelector) as HTMLElement;\n const triggerElement = domInfoHelper.get(triggerSelector) as HTMLElement; \n\n if (!domManipulationHelper.addElementTo(overlaySelector, containerElement)) {\n console.log(\"Failed to add overlay. Details:\", {\n triggerPrefixCls: triggerPrefixCls,\n overlaySelector: overlaySelector,\n containerElement: containerElement\n } );\n return null;\n } \n\n let overlayPresets: domTypes.position;\n if (overlayTop || overlayLeft) {\n overlayPresets = { x: overlayLeft, y: overlayTop };\n }\n\n const overlayConstraints: overlayConstraints = {\n verticalOffset: verticalOffset,\n horizontalOffset: horizontalOffset,\n arrowPointAtCenter: arrowPointAtCenter\n };\n\n const overlay = new Overlay(blazorId, overlayElement, containerElement, triggerElement, placement, triggerBoundyAdjustMode, triggerIsWrappedInDiv, triggerPrefixCls, overlayConstraints); \n //register object in store, so it can be retrieved during update/dispose\n this.overlayRegistry[blazorId] = overlay;\n \n return overlay.calculatePosition(false, true, overlayPresets);\n }\n\n\n static updateOverlayPosition(blazorId: string, overlaySelector, triggerSelector, placement: Placement, containerSelector: string,\n triggerBoundyAdjustMode: TriggerBoundyAdjustMode, triggerIsWrappedInDiv: boolean, triggerPrefixCls: string,\n verticalOffset: number, horizontalOffset: number, arrowPointAtCenter: boolean, \n overlayTop?: number, overlayLeft?: number): overlayPosition {\n const overlay = this.overlayRegistry[blazorId];\n if (overlay){\n let overlayPresets: domTypes.position;\n if (overlayTop || overlayLeft) {\n overlayPresets = { x: overlayLeft, y: overlayTop };\n } \n return overlay.calculatePosition(false, false, overlayPresets); \n } else {\n //When page is slow, it may happen that rendering of an overlay may not happen, even if \n //blazor thinks it did happen. In such a case, when overlay object is not found, just try\n //to render it again.\n return overlayHelper.addOverlayToContainer(blazorId, overlaySelector, triggerSelector, placement, containerSelector,triggerBoundyAdjustMode, triggerIsWrappedInDiv, triggerPrefixCls, \n verticalOffset, horizontalOffset, arrowPointAtCenter, \n overlayTop, overlayLeft); \n } \n }\n\n static deleteOverlayFromContainer(blazorId: string) {\n const overlay = this.overlayRegistry[blazorId];\n if (overlay) { \n overlay.dispose();\n delete this.overlayRegistry[blazorId];\n }\n }\n\n static addPreventEnterOnOverlayVisible(element, overlayElement) {\n if (element && overlayElement) {\n const dom: HTMLElement = domInfoHelper.get(element);\n if (dom) {\n state.eventCallbackRegistry[element.id + \"keydown:Enter\"] = (e) => eventHelper.preventKeyOnCondition(e, \"enter\", () => overlayElement.offsetParent !== null);\n dom.addEventListener(\"keydown\", state.eventCallbackRegistry[element.id + \"keydown:Enter\"], false);\n }\n }\n }\n\n static removePreventEnterOnOverlayVisible(element) {\n if (element) {\n const dom: HTMLElement = domInfoHelper.get(element);\n if (dom) {\n dom.removeEventListener(\"keydown\", state.eventCallbackRegistry[element.id + \"keydown:Enter\"]);\n state.eventCallbackRegistry[element.id + \"keydown:Enter\"] = null; \n }\n }\n }\n}\n\n","export class tableHelper {\n static bindTableScroll(wrapperRef, bodyRef, tableRef, headerRef, scrollX, scrollY, resizable) {\n bodyRef.bindScroll = () => {\n if (scrollX) {\n tableHelper.SetScrollPositionClassName(bodyRef, wrapperRef);\n }\n if (scrollY) {\n headerRef.scrollLeft = bodyRef.scrollLeft;\n }\n }\n\n // direct setting classlist will not work, so delay 500ms for workaround\n setTimeout(() => {\n bodyRef && bodyRef.bindScroll();\n }, 500);\n\n bodyRef.addEventListener && bodyRef.addEventListener('scroll', bodyRef.bindScroll);\n window.addEventListener('resize', bodyRef.bindScroll);\n\n if (resizable) {\n tableHelper.enableColumnResizing(headerRef, tableRef, scrollY);\n }\n }\n\n static unbindTableScroll(bodyRef) {\n if (bodyRef) {\n bodyRef.removeEventListener && bodyRef.removeEventListener('scroll', bodyRef.bindScroll);\n window.removeEventListener('resize', bodyRef.bindScroll);\n }\n }\n\n static SetScrollPositionClassName(bodyRef, wrapperRef) {\n\n const scrollLeft = bodyRef.scrollLeft;\n const scrollWidth = bodyRef.scrollWidth;\n const clientWidth = bodyRef.clientWidth;\n\n let pingLeft = false;\n let pingRight = false;\n\n if ((scrollWidth == clientWidth && scrollWidth != 0)) {\n pingLeft = false;\n pingRight = false;\n }\n else if (scrollLeft == 0) {\n pingLeft = false;\n pingRight = true;\n }\n else if (Math.abs(scrollWidth - (scrollLeft + clientWidth)) <= 1) {\n pingRight = false;\n pingLeft = true;\n }\n else {\n pingLeft = true;\n pingRight = true;\n }\n\n pingLeft ? wrapperRef.classList.add(\"ant-table-ping-left\") : wrapperRef.classList.remove(\"ant-table-ping-left\");\n pingRight ? wrapperRef.classList.add(\"ant-table-ping-right\") : wrapperRef.classList.remove(\"ant-table-ping-right\");\n }\n\n static enableColumnResizing(headerElement, tableElement, scrollY) {\n\n const cols = tableElement.querySelectorAll('col');\n const ths = scrollY ? \n headerElement.querySelectorAll('.ant-table-thead th') :\n tableElement.tHead.querySelectorAll('.ant-table-thead th');\n const headerCols = scrollY ? headerElement.querySelectorAll('col') : null;\n\n ths.forEach((th, i) => {\n\n const col = cols[i];\n const headerCol = headerCols ? headerCols[i] : null;\n const handle = document.createElement('div');\n handle.classList.add('ant-table-resizable-handle');\n handle.style.height = `${tableElement.offsetHeight}px`;\n\n th.appendChild(handle);\n\n\n handle.addEventListener('mousedown', handleMouseDown);\n if ('ontouchstart' in window) {\n handle.addEventListener('touchstart', handleMouseDown);\n }\n\n function handleMouseDown(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n\n //const th = handle.parentElement;\n const startPageX = evt.touches ? evt.touches[0].pageX : evt.pageX;\n const originalColumnWidth = th.offsetWidth;\n const rtlMultiplier = window.getComputedStyle(th, null).getPropertyValue('direction') === 'rtl' ? -1 : 1;\n let updatedColumnWidth = 0;\n handle.classList.add('ant-table-resizing');\n\n function handleMouseMove(evt) {\n evt.stopPropagation();\n const newPageX = evt.touches ? evt.touches[0].pageX : evt.pageX;\n const nextWidth = originalColumnWidth + (newPageX - startPageX) * rtlMultiplier - 5;\n if (Math.abs(nextWidth - updatedColumnWidth) > 0) {\n updatedColumnWidth = nextWidth;\n handle.style.right = '';\n handle.style.left = `${updatedColumnWidth}px`;\n }\n }\n\n function handleMouseUp() {\n if (updatedColumnWidth > 0) {\n th.style.width = `${updatedColumnWidth}px`;\n col.style.width = `${updatedColumnWidth}px`;\n if (headerCol) {\n headerCol.style.width =`${updatedColumnWidth}px`;\n }\n handle.style.right = '0';\n handle.style.left = '';\n handle.classList.remove('ant-table-resizing');\n }\n\n document.body.removeEventListener('mousemove', handleMouseMove);\n document.body.removeEventListener('mouseup', handleMouseUp);\n document.body.removeEventListener('touchmove', handleMouseMove);\n document.body.removeEventListener('touchend', handleMouseUp);\n }\n\n if (evt instanceof TouchEvent) {\n document.body.addEventListener('touchmove', handleMouseMove, { passive: true });\n document.body.addEventListener('touchend', handleMouseUp, { passive: true });\n } else {\n document.body.addEventListener('mousemove', handleMouseMove, { passive: true });\n document.body.addEventListener('mouseup', handleMouseUp, { passive: true });\n }\n }\n });\n }\n}","type fileInfo = {\n fileName: string,\n size: number,\n objectURL: string,\n type: string\n}\n\nexport class uploadHelper {\n static addFileClickEventListener(btn: HTMLElement) {\n if (btn.addEventListener) {\n btn.addEventListener(\"click\", uploadHelper.fileClickEvent);\n }\n }\n\n static removeFileClickEventListener(btn: HTMLElement) {\n btn.removeEventListener(\"click\", uploadHelper.fileClickEvent);\n }\n\n private static fileClickEvent(e: MouseEvent) {\n e.stopPropagation();\n const fileId = (e.currentTarget as HTMLSpanElement).attributes[\"data-fileid\"].nodeValue;\n const element = document.getElementById(fileId) as HTMLInputElement;\n element.click();\n }\n\n static clearFile(element) {\n element.setAttribute(\"type\", \"input\");\n element.value = '';\n element.setAttribute(\"type\", \"file\");\n }\n\n static getFileInfo(element: HTMLInputElement) {\n if (element.files && element.files.length > 0) {\n const fileInfo = Array();\n for (let i = 0; i < element.files.length; i++) {\n const file = element.files[i];\n const objectUrl = this.getObjectURL(file);\n fileInfo.push({\n fileName: file.name,\n size: file.size,\n objectURL: objectUrl,\n type: file.type\n });\n }\n\n return fileInfo;\n }\n }\n\n private static getObjectURL(file: File): string {\n let url = null;\n if (window.URL != undefined) {\n url = window.URL.createObjectURL(file);\n } else if (window.webkitURL != undefined) {\n url = window.webkitURL.createObjectURL(file);\n }\n return url;\n }\n\n static uploadFile(element, index, data, headers, fileId, url, name, instance, percentMethod, successMethod, errorMethod, method: string) {\n const formData = new FormData();\n const file = element.files[index];\n const size = file.size;\n formData.append(name, file);\n if (data != null) {\n for (const key in data) {\n formData.append(key, data[key]);\n }\n }\n const req = new XMLHttpRequest()\n req.onreadystatechange = function () {\n if (req.readyState === 4) {\n // #1655 Any 2xx response code is okay\n if (req.status < 200 || req.status > 299) {\n // #2857 should get error raw response\n instance.invokeMethodAsync(errorMethod, fileId, req.responseText);\n return;\n }\n instance.invokeMethodAsync(successMethod, fileId, req.responseText);\n }\n }\n req.upload.onprogress = function (event) {\n const percent = Math.floor(event.loaded / size * 100);\n instance.invokeMethodAsync(percentMethod, fileId, percent);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n req.onerror = function (e) {\n instance.invokeMethodAsync(errorMethod, fileId, \"error\");\n }\n req.open(method, url, true)\n if (headers != null) {\n for (const header in headers) {\n req.setRequestHeader(header, headers[header]);\n }\n }\n req.send(formData)\n }\n}","export class watermarkHelper {\n static generateBase64Url({\n width,\n height,\n gapX,\n gapY,\n offsetLeft,\n offsetTop,\n rotate,\n alpha,\n watermarkContent,\n lineSpace,\n }: {\n width: number,\n height: number,\n gapX: number,\n gapY: number,\n offsetLeft: number,\n offsetTop: number,\n rotate: number,\n alpha: number,\n watermarkContent: WatermarkText | WatermarkImage | Array,\n lineSpace: number\n }, dotnetRef, watermarkContentRef: HTMLElement, watermarkRef: HTMLElement): string {\n const onFinish = (url: string) => {\n dotnetRef.invokeMethodAsync(\"load\", url);\n }\n\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n // eslint-disable-next-line no-console\n console.warn('Current environment does not support Canvas, cannot draw watermarks.');\n onFinish('');\n return;\n }\n const ratio = window.devicePixelRatio || 1;\n const canvasWidth = (gapX + width) * ratio;\n const canvasHeight = (gapY + height) * ratio;\n\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n canvas.style.width = `${gapX + width}px`;\n canvas.style.height = `${gapY + height}px`;\n\n ctx.translate(offsetLeft * ratio, offsetTop * ratio);\n ctx.rotate((Math.PI / 180) * Number(rotate));\n ctx.globalAlpha = alpha;\n\n const markWidth = width * ratio;\n const markHeight = height * ratio;\n\n ctx.fillStyle = 'transparent';\n ctx.fillRect(0, 0, markWidth, markHeight);\n\n const contents = Array.isArray(watermarkContent) ? watermarkContent : [{ ...watermarkContent }];\n let top = 0;\n contents.forEach((item: WatermarkText & WatermarkImage & { top: number }) => {\n if (item.url) {\n const { url, isGrayscale = false } = item;\n // eslint-disable-next-line no-param-reassign\n item.top = top;\n top += height;\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.referrerPolicy = 'no-referrer';\n img.src = url;\n img.onload = () => {\n // ctx.filter = 'grayscale(1)';\n ctx.drawImage(img, 0, item.top * ratio, width * ratio, height * ratio);\n if (isGrayscale) {\n const imgData = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height);\n const pixels = imgData.data;\n for (let i = 0; i < pixels.length; i += 4) {\n const lightness = (pixels[i] + pixels[i + 1] + pixels[i + 2]) / 3;\n pixels[i] = lightness;\n pixels[i + 1] = lightness;\n pixels[i + 2] = lightness;\n }\n ctx.putImageData(imgData, 0, 0);\n }\n onFinish(canvas.toDataURL());\n };\n } else if (item.text) {\n const {\n text,\n fontColor = 'rgba(0, 0, 0, 0.1)',\n fontSize = 16,\n fontFamily = undefined,\n fontWeight = 'normal',\n textAlign = 'start',\n fontStyle = 'normal'\n } = item;\n // eslint-disable-next-line no-param-reassign\n item.top = top;\n top += lineSpace;\n const markSize = Number(fontSize) * ratio;\n\n ctx.font = `${fontStyle} normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`;\n ctx.textAlign = textAlign;\n ctx.textBaseline = 'top';\n ctx.fillStyle = fontColor;\n ctx.fillText(text, 0, item.top * ratio);\n }\n });\n onFinish(canvas.toDataURL());\n\n const parent = watermarkRef.parentElement;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === 'childList') {\n const removeNodes = mutation.removedNodes;\n removeNodes.forEach((node) => {\n const element = node as HTMLElement;\n if (element === watermarkRef) {\n parent.appendChild(element);\n }\n if (element === watermarkContentRef) {\n watermarkRef.appendChild(element);\n }\n });\n }\n });\n });\n\n observer.observe(parent, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n\n watermarkRef['_observer'] = observer;\n }\n}\n\nexport interface WatermarkText {\n /**\n * 水印文本文字颜色\n * @default rgba(0,0,0,0.1)\n */\n fontColor?: string;\n /**\n * 水印文本文字大小\n * @default 16\n */\n fontSize?: number;\n /**\n * 水印文本文字样式\n * @default undefined\n */\n fontFamily?: string | undefined;\n /**\n * 水印文本文字粗细\n * @default normal\n */\n fontWeight?: 'normal' | 'lighter' | 'bold' | 'bolder';\n /**\n * 水印文本内容\n * @default ''\n */\n text?: string;\n\n textAlign: 'start' | 'end';\n\n fontStyle?: 'normal' | 'italic' | 'oblique';\n}\n\nexport interface WatermarkImage {\n /**\n * 水印图片是否需要灰阶显示\n * @default false\n */\n isGrayscale?: boolean;\n /**\n * 水印图片源地址,为了显示清楚,建议导出 2 倍或 3 倍图\n * @default ''\n */\n url?: string;\n}","const throttle = (fn, threshold = 160) => {\n let timeout;\n let start = +new Date();\n return function (...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this,\n curTime = +new Date() - 0;\n //总是干掉事件回调\n window.clearTimeout(timeout);\n if (curTime - start >= threshold) {\n //只执行一部分方法,这些方法是在某个时间段内执行一次\n fn.apply(context, args);\n start = curTime;\n } else {\n //让方法在脱离事件后也能执行一次\n timeout = window.setTimeout(() => {\n fn.apply(this, args);\n }, threshold);\n }\n };\n};\n\nconst eventMap = new Map();\n\nconst defaultOptions = {\n inViewport: true,\n};\n\ninterface DraggerState {\n isInDrag: boolean;\n // mouse x of once mouseDown event\n mouseDownX: number;\n // mouse y of once mouseDown event\n mouseDownY: number;\n\n // during onec drag event,\n // the offset from the original x during mouseDown\n mouseDownXOffset: number;\n // during onec drag event,\n // the offset from the original x during mouseDown\n mouseDownYOffset: number;\n\n // the gap between dragged element and dragged element's container\n bound: {\n left: number;\n top: number;\n right: number;\n bottom: number;\n };\n}\n\nclass Dragger {\n // Element of drag control\n private _trigger: HTMLElement;\n // dragged element\n private _container: HTMLElement;\n // The container where the dragged element is located\n private _draggedInContainer: HTMLElement;\n\n private _options: any;\n private _state: DraggerState;\n private _isFirst: boolean = true;\n private _style: string | null = null;\n\n constructor(\n trigger: HTMLElement,\n container: HTMLElement,\n dragInViewport: boolean = true,\n draggedIn: HTMLElement = document.documentElement\n ) {\n this._trigger = trigger;\n this._container = container;\n this._draggedInContainer = draggedIn;\n this._options = Object.assign({}, defaultOptions, {\n inViewport: dragInViewport,\n });\n this._state = {\n isInDrag: false,\n mouseDownX: 0,\n mouseDownY: 0,\n mouseDownXOffset: 0,\n mouseDownYOffset: 0,\n bound: {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n },\n };\n }\n\n /**\n * get xOffset and yOffset from container.style.translate\n * @returns [xOffset, yOffset]\n */\n getContainerTranslateOffset() {\n const translate = this._container.style.translate;\n let xOffset = 0;\n let yOffset = 0;\n if (translate) {\n const translateInfo = translate.split(\" \");\n xOffset = parseInt(translateInfo[0]);\n yOffset = parseInt(translateInfo[1]);\n xOffset = Number.isNaN(xOffset) ? 0 : xOffset;\n yOffset = Number.isNaN(yOffset) ? 0 : yOffset;\n }\n return {\n xOffset: xOffset,\n yOffset: yOffset,\n };\n }\n\n onMousedown = (e) => {\n const state = this._state;\n state.isInDrag = true;\n state.mouseDownX = e.clientX;\n state.mouseDownY = e.clientY;\n const { xOffset, yOffset } = this.getContainerTranslateOffset();\n\n if (this._isFirst) {\n state.bound = getBoundPosition(this._container, this._draggedInContainer);\n if (!this._style) {\n this._style = this._container.getAttribute(\"style\");\n }\n\n this._isFirst = false;\n }\n\n state.mouseDownXOffset = xOffset;\n state.mouseDownYOffset = yOffset;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onMouseup = (e) => {\n const state = this._state;\n state.isInDrag = false;\n };\n\n onMousemove = throttle((e) => {\n const state = this._state;\n if (state.isInDrag) {\n const nowX = e.clientX, nowY = e.clientY;\n let offsetX = nowX - state.mouseDownX + state.mouseDownXOffset,\n offsetY = nowY - state.mouseDownY + state.mouseDownYOffset;\n\n if (this._options.inViewport) {\n if (offsetX < state.bound.left) {\n offsetX = state.bound.left;\n } else if (offsetX > state.bound.right) {\n offsetX = state.bound.right;\n }\n if (offsetY < state.bound.top) {\n offsetY = state.bound.top;\n } else if (offsetY > state.bound.bottom) {\n offsetY = state.bound.bottom;\n }\n }\n this._container.style.translate = `${offsetX}px ${offsetY}px`;\n }\n }, 10).bind(this);\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onResize = throttle((e) => {\n this._state.bound = getBoundPosition(\n this._container,\n this._draggedInContainer\n );\n }, 30).bind(this);\n\n bindDrag() {\n const trigger = this._trigger;\n const options = this._options;\n\n trigger.addEventListener(\"mousedown\", this.onMousedown, false);\n window.addEventListener(\"mouseup\", this.onMouseup, false);\n document.addEventListener(\"mousemove\", this.onMousemove);\n if (options.inViewport) {\n window.addEventListener(\"resize\", this.onResize, false);\n }\n }\n\n unbindDrag() {\n const trigger = this._trigger;\n\n trigger.removeEventListener(\"mousedown\", this.onMousedown, false);\n window.removeEventListener(\"mouseup\", this.onMouseup, false);\n document.removeEventListener(\"mousemove\", this.onMousemove);\n if (this._options.inViewport) {\n window.removeEventListener(\"resize\", this.onResize, false);\n }\n }\n\n resetContainerStyle() {\n if (this._style !== null) {\n this._isFirst = true;\n this._container.setAttribute(\"style\", this._style);\n }\n }\n}\n\n/**\n *\n * @param childNode The child of parentNode\n * @param parentNode The container of childNode\n * @returns\n */\nfunction getBoundPosition(childNode: HTMLElement, parentNode: HTMLElement) {\n const childComputedStyle = window.getComputedStyle(parentNode);\n const parentComputedStyle = window.getComputedStyle(parentNode);\n\n const bounds = {\n left:\n -childNode.offsetLeft +\n parseInt(childComputedStyle.marginLeft) +\n parseInt(parentComputedStyle.paddingLeft),\n top:\n -childNode.offsetTop +\n parseInt(childComputedStyle.marginTop) +\n parseInt(parentComputedStyle.paddingTop),\n right:\n innerWidth(parentNode, parentComputedStyle) -\n outerWidth(childNode, childComputedStyle) -\n childNode.offsetLeft +\n parseInt(parentComputedStyle.paddingRight) -\n parseInt(childComputedStyle.marginRight),\n bottom:\n innerHeight(parentNode, parentComputedStyle) -\n outerHeight(childNode, childComputedStyle) -\n childNode.offsetTop +\n parseInt(parentComputedStyle.paddingBottom) -\n parseInt(childComputedStyle.marginBottom),\n };\n\n return bounds;\n}\n\nfunction outerHeight(\n node: HTMLElement,\n computedStyle: CSSStyleDeclaration | null = null\n): number {\n if (!computedStyle) {\n computedStyle = window.getComputedStyle(node);\n }\n let height = node.clientHeight;\n height += parseInt(computedStyle.borderTopWidth);\n height += parseInt(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(\n node: HTMLElement,\n computedStyle: CSSStyleDeclaration | null = null\n): number {\n if (!computedStyle) {\n computedStyle = window.getComputedStyle(node);\n }\n let width = node.clientWidth;\n width += parseInt(computedStyle.borderLeftWidth);\n width += parseInt(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(\n node: HTMLElement,\n computedStyle: CSSStyleDeclaration | null = null\n): number {\n if (!computedStyle) {\n computedStyle = window.getComputedStyle(node);\n }\n let height = node.clientHeight;\n height -= parseInt(computedStyle.paddingTop);\n height -= parseInt(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(\n node: HTMLElement,\n computedStyle: CSSStyleDeclaration | null = null\n): number {\n if (!computedStyle) {\n computedStyle = window.getComputedStyle(node);\n }\n let width = node.clientWidth;\n width -= parseInt(computedStyle.paddingLeft);\n width -= parseInt(computedStyle.paddingRight);\n return width;\n}\n\nfunction enableDraggable(\n trigger: HTMLElement,\n container: HTMLElement,\n dragInViewport: boolean = true,\n draggedIn: HTMLElement = document.documentElement\n) {\n let dragger = eventMap.get(trigger);\n if (!dragger) {\n dragger = new Dragger(trigger, container, dragInViewport, draggedIn);\n eventMap.set(trigger, dragger);\n }\n dragger.bindDrag();\n}\n\nfunction disableDraggable(trigger: HTMLElement) {\n const dragger = eventMap.get(trigger);\n if (dragger) {\n dragger.unbindDrag();\n }\n}\n\nfunction resetModalPosition(trigger: HTMLElement) {\n const dragger = eventMap.get(trigger);\n if (dragger) {\n dragger.resetContainerStyle();\n }\n}\n\nexport { enableDraggable, disableDraggable, resetModalPosition };\n","import { domInfoHelper } from './exports';\nimport { state } from '../stateProvider';\n\nexport class eventHelper {\n static triggerEvent(element: HTMLInputElement, eventType: string, eventName: string) {\n //TODO: replace with event constructors https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent\n //Not used \n const evt = document.createEvent(eventType);\n evt.initEvent(eventName);\n return element.dispatchEvent(evt);\n }\n\n static addDomEventListener(element, eventName: string, preventDefault: boolean, invoker: any, stopPropagation: boolean = false) {\n const callback = args => {\n const obj = {};\n for (const k in args) {\n if (k !== 'originalTarget') { //firefox occasionally raises Permission Denied when this property is being stringified\n obj[k] = args[k];\n }\n }\n const cache = new Set();\n const json = JSON.stringify(obj, (k, v) => {\n if (typeof v === 'object' && v !== null) {\n if (cache.has(v)) {\n return;\n }\n cache.add(v);\n }\n if (v instanceof Node) return 'Node';\n if (v instanceof Window) return 'Window';\n return v;\n }, ' ');\n\n setTimeout(function () { invoker.invokeMethodAsync('Invoke', json) }, 0);\n if (preventDefault === true) {\n args.preventDefault();\n }\n if (stopPropagation) {\n args.stopPropagation();\n }\n };\n\n const dom = domInfoHelper.get(element);\n const key = `${eventName}-${invoker._id}`;\n\n if (eventName === 'resize') {\n dom[`e_${key}`] = this.debounce(() => callback({ innerWidth: window.innerWidth, innerHeight: window.innerHeight }), 200, false);\n } else {\n dom[`e_${key}`] = callback;\n }\n\n dom[`i_${key}`] = invoker;\n (dom as HTMLElement).addEventListener(eventName, dom[`e_${key}`]);\n }\n\n static addDomEventListenerToFirstChild(element, eventName, preventDefault, invoker) {\n const dom = domInfoHelper.get(element);\n\n if (dom && dom.firstElementChild) {\n this.addDomEventListener(dom.firstElementChild, eventName, preventDefault, invoker);\n }\n }\n\n static removeDomEventListener(element, eventName: string, invoker) {\n const dom = domInfoHelper.get(element);\n const key = `${eventName}-${invoker._id}`;\n\n if (dom) {\n dom.removeEventListener(eventName, dom[`e_${key}`]);\n //dom[`i_${key}`].dispose();\n }\n }\n\n static addPreventKeys(inputElement, keys: string[]) {\n if (inputElement) {\n const dom = domInfoHelper.get(inputElement);\n keys = keys.map(function (x) { return x.toUpperCase(); })\n state.eventCallbackRegistry[inputElement.id + \"keydown\"] = (e) => this.preventKeys(e, keys);\n (dom as HTMLElement).addEventListener(\"keydown\", state.eventCallbackRegistry[inputElement.id + \"keydown\"], false);\n }\n }\n\n static preventKeyOnCondition(e: KeyboardEvent, key: string, check: () => boolean) {\n if (e.key.toUpperCase() === key.toUpperCase() && check()) {\n e.preventDefault();\n return false;\n }\n }\n\n static removePreventKeys(inputElement) {\n if (inputElement) {\n const dom = domInfoHelper.get(inputElement);\n if (dom) {\n (dom as HTMLElement).removeEventListener(\"keydown\", state.eventCallbackRegistry[inputElement.id + \"keydown\"]);\n state.eventCallbackRegistry[inputElement.id + \"keydown\"] = null;\n }\n }\n }\n\n private static debounce(func, wait, immediate) {\n let timeout;\n return (...args) => {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(this, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n\n private static preventKeys(e: KeyboardEvent, keys: string[]) {\n if (keys.indexOf(e.key.toUpperCase()) !== -1) {\n e.preventDefault();\n return false;\n }\n }\n}\n","export { infoHelper as domInfoHelper } from './infoHelper';\nexport { manipulationHelper as domManipulationHelper } from './manipulationHelper';\nexport { eventHelper } from './eventHelper';\nexport * as domTypes from './types';","import { domTypes } from './exports'\n\nexport class infoHelper {\n static getWindow() {\n return {\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight\n };\n }\n\n static get(element: any) {\n if (!element) {\n element = document.body;\n } else if (typeof element === 'string') {\n if (element === 'window') {\n return window;\n } else if (element === 'document') {\n return document;\n }\n element = document.querySelector(element!)\n }\n return element;\n }\n\n static getInfo(element: any): domTypes.domInfo {\n let domElement = this.get(element);\n if (!domElement) {\n domElement = {};\n }\n const absolutePosition = this.getElementAbsolutePos(domElement);\n const style = window.getComputedStyle(domElement);\n const result: domTypes.domInfo = {\n offsetTop: domElement.offsetTop || 0,\n offsetLeft: domElement.offsetLeft || 0,\n offsetWidth: domElement.offsetWidth || 0,\n offsetHeight: domElement.offsetHeight || 0,\n scrollHeight: domElement.scrollHeight || 0,\n scrollWidth: domElement.scrollWidth || 0,\n scrollLeft: domElement.scrollLeft || 0,\n scrollTop: domElement.scrollTop || 0,\n clientTop: domElement.clientTop || 0,\n clientLeft: domElement.clientLeft || 0,\n clientHeight: domElement.clientHeight || 0,\n clientWidth: domElement.clientWidth || 0,\n selectionStart: domElement.selectionStart || 0,\n absoluteTop: Math.round(absolutePosition.y),\n absoluteLeft: Math.round(absolutePosition.x),\n marginTop: parseFloat(style.marginTop),\n marginBottom: parseFloat(style.marginBottom),\n marginLeft: parseFloat(style.marginLeft),\n marginRight: parseFloat(style.marginRight)\n };\n return result;\n }\n\n static getElementAbsolutePos(element: any): domTypes.position {\n const res: domTypes.position = {\n x: 0,\n y: 0\n };\n if (element !== null) {\n if (element.getBoundingClientRect) {\n const viewportElement = document.documentElement;\n const box = element.getBoundingClientRect();\n const scrollLeft = viewportElement.scrollLeft;\n const scrollTop = viewportElement.scrollTop;\n\n res.x = box.left + scrollLeft;\n res.y = box.top + scrollTop;\n }\n }\n return res;\n }\n\n static getBoundingClientRect(element: any): domTypes.domRect {\n const domElement = this.get(element);\n if (domElement && domElement.getBoundingClientRect) {\n const rect = domElement.getBoundingClientRect();\n // Fixes #1468. This wrapping is necessary for old browsers. Remove this when one day we no longer support them.\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.x,\n y: rect.y\n };\n }\n return null;\n }\n\n static getFirstChildDomInfo(element: any) {\n const domElement = this.get(element);\n if (domElement) {\n if (domElement.firstElementChild) {\n return this.getInfo(domElement.firstElementChild);\n } else {\n return this.getInfo(domElement);\n }\n }\n return null;\n }\n\n static getActiveElement() {\n const element = document.activeElement;\n const id = element.getAttribute(\"id\") || \"\";\n return id;\n }\n\n static getScroll() {\n return { x: window.pageXOffset, y: window.pageYOffset };\n }\n\n static hasFocus(selector) {\n const dom = this.get(selector);\n return (document.activeElement === dom);\n }\n\n static getInnerText(element) {\n const dom = this.get(element);\n if (dom) return dom.innerText;\n return null;\n }\n\n static getMaxZIndex(): number {\n return Array.from(document.querySelectorAll(\"*\")).reduce((r, e) => Math.max(r, +window.getComputedStyle(e).zIndex || 0), 0)\n }\n\n static isFixedPosition(element) {\n let node = this.get(element);\n while (node && node.nodeName.toLowerCase() !== 'body') {\n if (window.getComputedStyle(node).getPropertyValue('position').toLowerCase() === 'fixed') { return true; }\n node = node.parentNode;\n }\n return false;\n }\n\n static findAncestorWithZIndex(element: HTMLElement): number {\n let node = this.get(element);\n let zIndexAsString: string;\n let zIndex: number;\n while (node && node.nodeName.toLowerCase() !== 'body') {\n zIndexAsString = window.getComputedStyle(node).zIndex;\n zIndex = Number.parseInt(zIndexAsString);\n if (!Number.isNaN(zIndex)) {\n return zIndex;\n }\n node = node.parentNode;\n }\n return null;\n }\n\n static getElementsInfo(elements: any[]): any {\n const infos = {};\n elements.forEach(el => {\n infos[el.id] = this.getInfo(el);\n })\n\n return infos;\n }\n}","import { domInfoHelper } from \"./exports\";\nimport { styleHelper } from \"../styleHelper\";\nimport { state } from \"../stateProvider\";\nimport * as enums from \"../enums\";\n\nlet cachedScrollBarSize: number | undefined = undefined;\nconst scrollIds = new Map();\n\nexport class manipulationHelper {\n static addElementToBody(element) {\n document.body.appendChild(element);\n }\n\n static delElementFromBody(element) {\n document.body.removeChild(element);\n }\n\n static addElementTo(addElement, elementSelector, prepend = false): boolean {\n const parent = domInfoHelper.get(elementSelector);\n if (parent && addElement) {\n if (parent instanceof Node && addElement instanceof Node) {\n if (prepend) parent.insertBefore(addElement, parent.firstChild);\n else parent.appendChild(addElement);\n return true;\n } else {\n console.log(\"does not implement node\", parent, addElement);\n }\n }\n return false;\n }\n\n static delElementFrom(delElementSelector, elementSelector, delay = 0) {\n setTimeout(() => {\n const delElement = domInfoHelper.get(delElementSelector);\n const parent = domInfoHelper.get(elementSelector);\n if (parent && delElement) {\n parent.removeChild(delElement);\n }\n }, delay);\n }\n\n static setDomAttribute(element, attributes) {\n const dom: HTMLElement = domInfoHelper.get(element);\n if (dom) {\n for (const key in attributes) {\n dom.setAttribute(key, attributes[key]);\n }\n }\n }\n\n static copyElement(element) {\n if (!this.copyElementAsRichText(element)) {\n this.copy(element.innerText);\n }\n }\n\n private static copyElementAsRichText(element) {\n const selection = document.getSelection();\n if (selection.rangeCount > 0) {\n selection.removeAllRanges();\n }\n const range = document.createRange();\n range.selectNode(element);\n selection.addRange(range);\n try {\n const successful = document.execCommand('copy');\n selection.removeAllRanges();\n return successful;\n } catch (err) {\n selection.removeAllRanges();\n return false;\n }\n }\n\n static copy(text) {\n if (!navigator.clipboard) {\n this.fallbackCopyTextToClipboard(text);\n return;\n }\n navigator.clipboard.writeText(text).then(\n function () {\n console.log(\"Async: Copying to clipboard was successful!\");\n },\n function (err) {\n console.error(\"Async: Could not copy text: \", err);\n }\n );\n }\n\n private static fallbackCopyTextToClipboard(text) {\n const textArea = document.createElement(\"textarea\");\n textArea.value = text;\n\n // Avoid scrolling to bottom\n textArea.style.top = \"0\";\n textArea.style.left = \"0\";\n textArea.style.position = \"fixed\";\n\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n const successful = document.execCommand('copy');\n const msg = successful ? 'successful' : 'unsuccessful';\n console.log('Fallback: Copying text command was ' + msg);\n } catch (err) {\n console.error(\"Fallback: Oops, unable to copy\", err);\n }\n\n document.body.removeChild(textArea);\n }\n\n static focus(selector, noScroll: boolean = false, option: enums.FocusBehavior = enums.FocusBehavior.FocusAtLast) {\n const dom = domInfoHelper.get(selector);\n\n if (!(dom instanceof HTMLElement))\n throw new Error(\"Unable to focus on invalid element.\");\n\n dom.focus({\n preventScroll: noScroll,\n });\n\n if (dom instanceof HTMLInputElement || dom instanceof HTMLTextAreaElement) {\n switch (option) {\n case enums.FocusBehavior.FocusAndSelectAll:\n dom.select();\n break;\n case enums.FocusBehavior.FocusAtFirst:\n dom.setSelectionRange(0, 0);\n break;\n case enums.FocusBehavior.FocusAtLast:\n dom.setSelectionRange(-1, -1);\n break;\n }\n }\n }\n\n static blur(selector) {\n const dom = domInfoHelper.get(selector);\n if (dom) {\n dom.blur();\n }\n }\n\n static scrollTo(selector: Element | string, parentElement?: HTMLElement) {\n const element = domInfoHelper.get(selector);\n if (parentElement && element && element instanceof HTMLElement) {\n parentElement.scrollTop = element.offsetTop;\n } else if (element && element instanceof HTMLElement) {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });\n }\n }\n\n static smoothScrollTo(\n selector: Element | string,\n parentElement: HTMLElement,\n duration: number\n ) {\n const element = domInfoHelper.get(selector);\n const to = element.offsetTop;\n if (scrollIds.get(parentElement)) {\n cancelAnimationFrame(scrollIds.get(parentElement)!);\n }\n // jump to target if duration zero\n if (duration <= 0) {\n scrollIds.set(\n parentElement,\n requestAnimationFrame(() => {\n parentElement.scrollTop = to;\n }),\n );\n\n return;\n }\n const difference = to - parentElement.scrollTop;\n const perTick = (difference / duration) * 10;\n\n scrollIds.set(\n parentElement,\n requestAnimationFrame(() => {\n parentElement.scrollTop += perTick;\n if (parentElement.scrollTop !== to) {\n manipulationHelper.smoothScrollTo(selector, parentElement, duration - 10);\n }\n }),\n );\n }\n\n static slideTo(targetPageY) {\n const timer = setInterval(function () {\n const currentY =\n document.documentElement.scrollTop || document.body.scrollTop;\n const distance =\n targetPageY > currentY\n ? targetPageY - currentY\n : currentY - targetPageY;\n const speed = Math.ceil(distance / 10);\n if (currentY === targetPageY) {\n clearInterval(timer);\n } else {\n window.scrollTo(\n 0,\n targetPageY > currentY ? currentY + speed : currentY - speed\n );\n }\n }, 10);\n }\n\n //copied from https://www.telerik.com/forums/trigger-tab-key-when-enter-key-is-pressed\n static invokeTabKey() {\n const currInput = document.activeElement;\n if (currInput.tagName.toLowerCase() == \"input\") {\n const inputs = document.getElementsByTagName(\"input\");\n for (let i = 0; i < inputs.length; i++) {\n if (inputs[i] == currInput) {\n const next = inputs[i + 1];\n if (next && next.focus) {\n next.focus();\n }\n break;\n }\n }\n }\n }\n\n static disableBodyScroll() {\n const body = document.body;\n const oldBodyCache = {};\n [\"position\", \"width\", \"overflow\"].forEach((key) => {\n oldBodyCache[key] = body.style[key];\n });\n state.oldBodyCacheStack.push(oldBodyCache);\n const scrollBarSize = this.getScrollBarSize();\n styleHelper.css(body, {\n position: \"relative\",\n width:\n this.hasScrollbar() && scrollBarSize > 0\n ? `calc(100% - ${scrollBarSize}px)`\n : null,\n overflow: \"hidden\",\n });\n styleHelper.addCls(document.body, \"ant-scrolling-effect\");\n }\n\n static enableBodyScroll(force: boolean | undefined) {\n if (force) {\n state.oldBodyCacheStack = [];\n }\n\n const oldBodyCache = state.oldBodyCacheStack.length > 0 ? state.oldBodyCacheStack.pop() : {};\n styleHelper.css(document.body,\n {\n \"position\": oldBodyCache[\"position\"] ?? null,\n \"width\": oldBodyCache[\"width\"] ?? null,\n \"overflow\": oldBodyCache[\"overflow\"] ?? null\n });\n styleHelper.removeCls(document.body, \"ant-scrolling-effect\");\n }\n\n static hasScrollbar = () => {\n const overflow = document.body.style.overflow;\n if (overflow && overflow === \"hidden\") return false;\n return (\n document.body.scrollHeight >\n (window.innerHeight || document.documentElement.clientHeight)\n );\n };\n\n /**\n * getScrollBarSize\n * source https://github.com/react-component/util/blob/master/src/getScrollBarSize.tsx\n *\n * @param fresh force get scrollBar size and don't use cache\n * @returns\n */\n static getScrollBarSize = (fresh: boolean = false) => {\n if (typeof document === \"undefined\") {\n return 0;\n }\n\n if (fresh || cachedScrollBarSize === undefined) {\n const inner = document.createElement(\"div\");\n inner.style.width = \"100%\";\n inner.style.height = \"200px\";\n\n const outer = document.createElement(\"div\");\n const outerStyle = outer.style;\n\n outerStyle.position = \"absolute\";\n outerStyle.top = \"0\";\n outerStyle.left = \"0\";\n outerStyle.pointerEvents = \"none\";\n outerStyle.visibility = \"hidden\";\n outerStyle.width = \"200px\";\n outerStyle.height = \"150px\";\n outerStyle.overflow = \"hidden\";\n\n outer.appendChild(inner);\n\n document.body.appendChild(outer);\n\n const widthContained = inner.offsetWidth;\n outer.style.overflow = \"scroll\";\n let widthScroll = inner.offsetWidth;\n\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n cachedScrollBarSize = widthContained - widthScroll;\n }\n return cachedScrollBarSize;\n };\n}\n","\"use strict\";\n\nexports.__esModule = true;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZVJvb3QiOiIifQ==","export enum FocusBehavior {\n /// \n /// When focuses, cursor will move to the last character. \n /// This is default behavior.\n /// \n FocusAtLast,\n /// \n /// When focuses, cursor will move to the first character\n /// \n FocusAtFirst,\n /// \n /// When focuses, the content will be selected\n /// \n FocusAndSelectAll\n}","import { eventCallback } from './dom/types'\n\n//Singleton\nexport class State {\n private static instance: State;\n\n //Stores references to dot net objects (components wrapped in DotNetObjectReference)\n objReferenceDict: { [key: string]: any } = {};\n\n //All object references must later be disposed by JS code or by .NET code.\n disposeObj(objReferenceName) {\n delete this.objReferenceDict[objReferenceName];\n }\n\n //Stores callback for events based on a key. Needed when\n //Event needs to be removed - the callback can be retrieved and\n //used to remove the event in question\n eventCallbackRegistry: { [key: string]: eventCallback } = {};\n\n oldBodyCacheStack = [];\n\n private constructor() { }\n\n static getInstance() {\n if (!this.instance) {\n this.instance = new State();\n }\n return this.instance;\n }\n}\n\nexport const state = State.getInstance();","import { infoHelper as domInfoHelper } from './dom/infoHelper';\n\nexport class styleHelper {\n static addCls(selector: Element | string, className: string | Array) {\n const element = domInfoHelper.get(selector);\n if (element) {\n if (typeof className === \"string\") {\n element.classList.add(className);\n } else {\n element.classList.add(...className);\n }\n }\n }\n\n static removeCls(selector: Element | string, clsName: string | Array) {\n const element = domInfoHelper.get(selector);\n if (element) {\n if (typeof clsName === \"string\") {\n element.classList.remove(clsName);\n } else {\n element.classList.remove(...clsName);\n }\n }\n }\n\n static addClsToFirstChild(element: Element | string, className: string): void {\n const domElement = domInfoHelper.get(element);\n if (domElement && domElement.firstElementChild) {\n domElement.firstElementChild.classList.add(className);\n }\n }\n\n static removeClsFromFirstChild(element: Element | string, className): void {\n const domElement = domInfoHelper.get(element);\n if (domElement && domElement.firstElementChild) {\n domElement.firstElementChild.classList.remove(className);\n }\n }\n\n static matchMedia(query: string): boolean {\n return window.matchMedia(query).matches;\n }\n\n static getStyle(element, styleProp: string) {\n if (element.currentStyle)\n return element.currentStyle[styleProp];\n else if (window.getComputedStyle)\n return document.defaultView.getComputedStyle(element, null).getPropertyValue(styleProp);\n }\n\n //Referenced in Caret, class Mirror\n static css(element: HTMLElement, name: string | object, value: string | null = null) {\n if (typeof name === 'string') {\n if (value === null) {\n const style = name;\n const cssAttributes = style.split(\";\");\n for (let i = 0; i < cssAttributes.length; i++) {\n const cssAttribute = cssAttributes[i];\n if (!cssAttribute) continue;\n const attribute = cssAttribute.split(\":\");\n element.style.setProperty(attribute[0], attribute[1]);\n }\n return;\n }\n element.style.setProperty(name, value);\n } else {\n for (const key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key)) {\n element.style.setProperty(key, name[key]);\n }\n }\n }\n }\n}","import * as interop from \"./core/JsInterop/interop\";\n\ndeclare global {\n interface Window {\n AntDesign: any;\n }\n}\n\nwindow.AntDesign = {\n interop,\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar tinycolor = require('@ctrl/tinycolor');\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = tinycolor.rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(tinycolor.rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = tinycolor.inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(tinycolor.inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(tinycolor.inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(tinycolor.inputToRGB(opts.backgroundColor || '#141414'), tinycolor.inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexports.blue = blue;\nexports.cyan = cyan;\nexports.geekblue = geekblue;\nexports.generate = generate;\nexports.gold = gold;\nexports.green = green;\nexports.grey = grey;\nexports.lime = lime;\nexports.magenta = magenta;\nexports.orange = orange;\nexports.presetDarkPalettes = presetDarkPalettes;\nexports.presetPalettes = presetPalettes;\nexports.presetPrimaryColors = presetPrimaryColors;\nexports.purple = purple;\nexports.red = red;\nexports.volcano = volcano;\nexports.yellow = yellow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numberInputToObject = exports.parseIntFromHex = exports.convertHexToDecimal = exports.convertDecimalToHex = exports.rgbaToArgbHex = exports.rgbaToHex = exports.rgbToHex = exports.hsvToRgb = exports.rgbToHsv = exports.hslToRgb = exports.rgbToHsl = exports.rgbToRgb = void 0;\nvar util_1 = require(\"./util\");\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nfunction rgbToRgb(r, g, b) {\n return {\n r: (0, util_1.bound01)(r, 255) * 255,\n g: (0, util_1.bound01)(g, 255) * 255,\n b: (0, util_1.bound01)(b, 255) * 255,\n };\n}\nexports.rgbToRgb = rgbToRgb;\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nfunction rgbToHsl(r, g, b) {\n r = (0, util_1.bound01)(r, 255);\n g = (0, util_1.bound01)(g, 255);\n b = (0, util_1.bound01)(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nexports.rgbToHsl = rgbToHsl;\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nfunction hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = (0, util_1.bound01)(h, 360);\n s = (0, util_1.bound01)(s, 100);\n l = (0, util_1.bound01)(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\nexports.hslToRgb = hslToRgb;\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nfunction rgbToHsv(r, g, b) {\n r = (0, util_1.bound01)(r, 255);\n g = (0, util_1.bound01)(g, 255);\n b = (0, util_1.bound01)(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\nexports.rgbToHsv = rgbToHsv;\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nfunction hsvToRgb(h, s, v) {\n h = (0, util_1.bound01)(h, 360) * 6;\n s = (0, util_1.bound01)(s, 100);\n v = (0, util_1.bound01)(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\nexports.hsvToRgb = hsvToRgb;\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [\n (0, util_1.pad2)(Math.round(r).toString(16)),\n (0, util_1.pad2)(Math.round(g).toString(16)),\n (0, util_1.pad2)(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\nexports.rgbToHex = rgbToHex;\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n (0, util_1.pad2)(Math.round(r).toString(16)),\n (0, util_1.pad2)(Math.round(g).toString(16)),\n (0, util_1.pad2)(Math.round(b).toString(16)),\n (0, util_1.pad2)(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\nexports.rgbaToHex = rgbaToHex;\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [\n (0, util_1.pad2)(convertDecimalToHex(a)),\n (0, util_1.pad2)(Math.round(r).toString(16)),\n (0, util_1.pad2)(Math.round(g).toString(16)),\n (0, util_1.pad2)(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\nexports.rgbaToArgbHex = rgbaToArgbHex;\n/** Converts a decimal to a hex value */\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\nexports.convertDecimalToHex = convertDecimalToHex;\n/** Converts a hex value to a decimal */\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nexports.convertHexToDecimal = convertHexToDecimal;\n/** Parse a base-16 hex value into a base-10 integer */\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexports.parseIntFromHex = parseIntFromHex;\nfunction numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\nexports.numberInputToObject = numberInputToObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.names = void 0;\n// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexports.names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidCSSUnit = exports.stringInputToObject = exports.inputToRGB = void 0;\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nvar conversion_1 = require(\"./conversion\");\nvar css_color_names_1 = require(\"./css-color-names\");\nvar util_1 = require(\"./util\");\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nfunction inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = (0, conversion_1.rgbToRgb)(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = (0, util_1.convertToPercentage)(color.s);\n v = (0, util_1.convertToPercentage)(color.v);\n rgb = (0, conversion_1.hsvToRgb)(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = (0, util_1.convertToPercentage)(color.s);\n l = (0, util_1.convertToPercentage)(color.l);\n rgb = (0, conversion_1.hslToRgb)(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = (0, util_1.boundAlpha)(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\nexports.inputToRGB = inputToRGB;\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nfunction stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (css_color_names_1.names[color]) {\n color = css_color_names_1.names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3]),\n a: (0, conversion_1.convertHexToDecimal)(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1] + match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2] + match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3] + match[3]),\n a: (0, conversion_1.convertHexToDecimal)(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: (0, conversion_1.parseIntFromHex)(match[1] + match[1]),\n g: (0, conversion_1.parseIntFromHex)(match[2] + match[2]),\n b: (0, conversion_1.parseIntFromHex)(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\nexports.stringInputToObject = stringInputToObject;\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nfunction isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\nexports.isValidCSSUnit = isValidCSSUnit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.legacyRandom = exports.fromRatio = void 0;\nvar index_1 = require(\"./index\");\nvar util_1 = require(\"./util\");\n/**\n * If input is an object, force 1 into \"1.0\" to handle ratios properly\n * String input requires \"1.0\" as input, so 1 will be treated as 1\n */\nfunction fromRatio(ratio, opts) {\n var newColor = {\n r: (0, util_1.convertToPercentage)(ratio.r),\n g: (0, util_1.convertToPercentage)(ratio.g),\n b: (0, util_1.convertToPercentage)(ratio.b),\n };\n if (ratio.a !== undefined) {\n newColor.a = Number(ratio.a);\n }\n return new index_1.TinyColor(newColor, opts);\n}\nexports.fromRatio = fromRatio;\n/** old random function */\nfunction legacyRandom() {\n return new index_1.TinyColor({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n}\nexports.legacyRandom = legacyRandom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tinycolor = exports.TinyColor = void 0;\nvar conversion_1 = require(\"./conversion\");\nvar css_color_names_1 = require(\"./css-color-names\");\nvar format_input_1 = require(\"./format-input\");\nvar util_1 = require(\"./util\");\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = (0, conversion_1.numberInputToObject)(color);\n }\n this.originalInput = color;\n var rgb = (0, format_input_1.inputToRGB)(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = (0, util_1.boundAlpha)(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = (0, conversion_1.rgbToHsv)(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = (0, conversion_1.rgbToHsv)(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = (0, conversion_1.rgbToHsl)(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = (0, conversion_1.rgbToHsl)(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return (0, conversion_1.rgbToHex)(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return (0, conversion_1.rgbaToHex)(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round((0, util_1.bound01)(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round((0, util_1.bound01)(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + (0, conversion_1.rgbToHex)(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(css_color_names_1.names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = (0, util_1.clamp01)(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = (0, util_1.clamp01)(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = (0, util_1.clamp01)(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = (0, util_1.clamp01)(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexports.TinyColor = TinyColor;\n// kept for backwards compatability with v1\nfunction tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\nexports.tinycolor = tinycolor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar index_1 = require(\"./index\");\n__exportStar(require(\"./index\"), exports);\n__exportStar(require(\"./css-color-names\"), exports);\n__exportStar(require(\"./readability\"), exports);\n__exportStar(require(\"./to-ms-filter\"), exports);\n__exportStar(require(\"./from-ratio\"), exports);\n__exportStar(require(\"./format-input\"), exports);\n__exportStar(require(\"./random\"), exports);\n__exportStar(require(\"./interfaces\"), exports);\n__exportStar(require(\"./conversion\"), exports);\n// kept for backwards compatability with v1\nexports.default = index_1.tinycolor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bounds = exports.random = void 0;\n/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\n// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\nvar index_1 = require(\"./index\");\nfunction random(options) {\n if (options === void 0) { options = {}; }\n // Check if we need to generate multiple colors\n if (options.count !== undefined &&\n options.count !== null) {\n var totalColors = options.count;\n var colors = [];\n options.count = undefined;\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n options.count = null;\n if (options.seed) {\n options.seed += 1;\n }\n colors.push(random(options));\n }\n options.count = totalColors;\n return colors;\n }\n // First we pick a hue (H)\n var h = pickHue(options.hue, options.seed);\n // Then use H to determine saturation (S)\n var s = pickSaturation(h, options);\n // Then use S and H to determine brightness (B).\n var v = pickBrightness(h, s, options);\n var res = { h: h, s: s, v: v };\n if (options.alpha !== undefined) {\n res.a = options.alpha;\n }\n // Then we return the HSB color in the desired format\n return new index_1.TinyColor(res);\n}\nexports.random = random;\nfunction pickHue(hue, seed) {\n var hueRange = getHueRange(hue);\n var res = randomWithin(hueRange, seed);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (res < 0) {\n res = 360 + res;\n }\n return res;\n}\nfunction pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n if (options.luminosity === 'random') {\n return randomWithin([0, 100], options.seed);\n }\n var saturationRange = getColorInfo(hue).saturationRange;\n var sMin = saturationRange[0];\n var sMax = saturationRange[1];\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n case 'dark':\n sMin = sMax - 10;\n break;\n case 'light':\n sMax = 55;\n break;\n default:\n break;\n }\n return randomWithin([sMin, sMax], options.seed);\n}\nfunction pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S);\n var bMax = 100;\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n default:\n break;\n }\n return randomWithin([bMin, bMax], options.seed);\n}\nfunction getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0];\n var v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0];\n var v2 = lowerBounds[i + 1][1];\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1);\n var b = v1 - m * s1;\n return m * S + b;\n }\n }\n return 0;\n}\nfunction getHueRange(colorInput) {\n var num = parseInt(colorInput, 10);\n if (!Number.isNaN(num) && num < 360 && num > 0) {\n return [num, num];\n }\n if (typeof colorInput === 'string') {\n var namedColor = exports.bounds.find(function (n) { return n.name === colorInput; });\n if (namedColor) {\n var color = defineColor(namedColor);\n if (color.hueRange) {\n return color.hueRange;\n }\n }\n var parsed = new index_1.TinyColor(colorInput);\n if (parsed.isValid) {\n var hue = parsed.toHsv().h;\n return [hue, hue];\n }\n }\n return [0, 360];\n}\nfunction getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n for (var _i = 0, bounds_1 = exports.bounds; _i < bounds_1.length; _i++) {\n var bound = bounds_1[_i];\n var color = defineColor(bound);\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return color;\n }\n }\n throw Error('Color not found');\n}\nfunction randomWithin(range, seed) {\n if (seed === undefined) {\n return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));\n }\n // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\nfunction defineColor(bound) {\n var sMin = bound.lowerBounds[0][0];\n var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];\n var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];\n var bMax = bound.lowerBounds[0][1];\n return {\n name: bound.name,\n hueRange: bound.hueRange,\n lowerBounds: bound.lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax],\n };\n}\n/**\n * @hidden\n */\nexports.bounds = [\n {\n name: 'monochrome',\n hueRange: null,\n lowerBounds: [\n [0, 0],\n [100, 0],\n ],\n },\n {\n name: 'red',\n hueRange: [-26, 18],\n lowerBounds: [\n [20, 100],\n [30, 92],\n [40, 89],\n [50, 85],\n [60, 78],\n [70, 70],\n [80, 60],\n [90, 55],\n [100, 50],\n ],\n },\n {\n name: 'orange',\n hueRange: [19, 46],\n lowerBounds: [\n [20, 100],\n [30, 93],\n [40, 88],\n [50, 86],\n [60, 85],\n [70, 70],\n [100, 70],\n ],\n },\n {\n name: 'yellow',\n hueRange: [47, 62],\n lowerBounds: [\n [25, 100],\n [40, 94],\n [50, 89],\n [60, 86],\n [70, 84],\n [80, 82],\n [90, 80],\n [100, 75],\n ],\n },\n {\n name: 'green',\n hueRange: [63, 178],\n lowerBounds: [\n [30, 100],\n [40, 90],\n [50, 85],\n [60, 81],\n [70, 74],\n [80, 64],\n [90, 50],\n [100, 40],\n ],\n },\n {\n name: 'blue',\n hueRange: [179, 257],\n lowerBounds: [\n [20, 100],\n [30, 86],\n [40, 80],\n [50, 74],\n [60, 60],\n [70, 52],\n [80, 44],\n [90, 39],\n [100, 35],\n ],\n },\n {\n name: 'purple',\n hueRange: [258, 282],\n lowerBounds: [\n [20, 100],\n [30, 87],\n [40, 79],\n [50, 70],\n [60, 65],\n [70, 59],\n [80, 52],\n [90, 45],\n [100, 42],\n ],\n },\n {\n name: 'pink',\n hueRange: [283, 334],\n lowerBounds: [\n [20, 100],\n [30, 90],\n [40, 86],\n [60, 84],\n [80, 80],\n [90, 75],\n [100, 73],\n ],\n },\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mostReadable = exports.isReadable = exports.readability = void 0;\nvar index_1 = require(\"./index\");\n// Readability Functions\n// ---------------------\n// false\n * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false\n * ```\n */\nfunction isReadable(color1, color2, wcag2) {\n var _a, _b;\n if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }\n var readabilityLevel = readability(color1, color2);\n switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {\n case 'AAsmall':\n case 'AAAlarge':\n return readabilityLevel >= 4.5;\n case 'AAlarge':\n return readabilityLevel >= 3;\n case 'AAAsmall':\n return readabilityLevel >= 7;\n default:\n return false;\n }\n}\nexports.isReadable = isReadable;\n/**\n * Given a base color and a list of possible foreground or background\n * colors for that base, returns the most readable color.\n * Optionally returns Black or White if the most readable color is unreadable.\n *\n * @param baseColor - the base color.\n * @param colorList - array of colors to pick the most readable one from.\n * @param args - and object with extra arguments\n *\n * Example\n * ```ts\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'], { includeFallbackColors: false }).toHexString(); // \"#112255\"\n * new TinyColor().mostReadable('#123', ['#124\", \"#125'],{ includeFallbackColors: true }).toHexString(); // \"#ffffff\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // \"#faf3f3\"\n * new TinyColor().mostReadable('#a8015a', [\"#faf3f3\"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // \"#ffffff\"\n * ```\n */\nfunction mostReadable(baseColor, colorList, args) {\n if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }\n var bestColor = null;\n var bestScore = 0;\n var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;\n for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {\n var color = colorList_1[_i];\n var score = readability(baseColor, color);\n if (score > bestScore) {\n bestScore = score;\n bestColor = new index_1.TinyColor(color);\n }\n }\n if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {\n return bestColor;\n }\n args.includeFallbackColors = false;\n return mostReadable(baseColor, ['#fff', '#000'], args);\n}\nexports.mostReadable = mostReadable;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toMsFilter = void 0;\nvar conversion_1 = require(\"./conversion\");\nvar index_1 = require(\"./index\");\n/**\n * Returns the color represented as a Microsoft filter for use in old versions of IE.\n */\nfunction toMsFilter(firstColor, secondColor) {\n var color = new index_1.TinyColor(firstColor);\n var hex8String = '#' + (0, conversion_1.rgbaToArgbHex)(color.r, color.g, color.b, color.a);\n var secondHex8String = hex8String;\n var gradientType = color.gradientType ? 'GradientType = 1, ' : '';\n if (secondColor) {\n var s = new index_1.TinyColor(secondColor);\n secondHex8String = '#' + (0, conversion_1.rgbaToArgbHex)(s.r, s.g, s.b, s.a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\".concat(gradientType, \"startColorstr=\").concat(hex8String, \",endColorstr=\").concat(secondHex8String, \")\");\n}\nexports.toMsFilter = toMsFilter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.pad2 = exports.convertToPercentage = exports.boundAlpha = exports.isPercentage = exports.isOnePointZero = exports.clamp01 = exports.bound01 = void 0;\n/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nfunction bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\nexports.bound01 = bound01;\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\nexports.clamp01 = clamp01;\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nfunction isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\nexports.isOnePointZero = isOnePointZero;\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nfunction isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\nexports.isPercentage = isPercentage;\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\nexports.boundAlpha = boundAlpha;\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nfunction convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\nexports.convertToPercentage = convertToPercentage;\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nfunction pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\nexports.pad2 = pad2;\n"]}