{"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","bodyRef","tableRef","headerRef","scrollX","scrollY","resizable","bindScroll","SetScrollPositionClassName","enableColumnResizing","unbindTableScroll","pingLeft","pingRight","abs","tableElement","cols","tHead","th","col","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","json","v","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","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\n static create(key: string, invoker, isDotNetInvoker: boolean = true) {\n // @ts-ignore: TS2304: Cannot find name 'MutationObserver'\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 let 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 // @ts-ignore: TS2304: Cannot find name 'ResizeObserver'\n private static resizeObservers: Map = new Map();\n\n static create(key, invoker, isDotNetInvoker: boolean = true ) {\n // @ts-ignore: TS2304: Cannot find name 'ResizeObserver'\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 let 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 let 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\nimport {modalHelper} from './modules/components/export'\nimport {manipulationHelper}from './modules/dom/manipulationHelper'\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 let 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 var result = {};\n var 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 let dims = this.getTextAreaInfo(element);\n if (!dims) return;\n\n let rowHeight = dims[\"lineHeight\"];\n let offsetHeight = dims[\"paddingTop\"] + dims[\"paddingBottom\"] + dims[\"borderTop\"] + dims[\"borderBottom\"];\n let oldHeight = parseFloat(element.style.height);\n //use rows attribute to evaluate real scroll height\n let oldRows = element.rows;\n element.rows = minRows;\n element.style.height = 'auto'; \n \n var rows = Math.trunc(element.scrollHeight / rowHeight);\n element.rows = oldRows;\n rows = Math.max(minRows, rows);\n var 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 let 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 let 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 var 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 var textArea = mentionsHelper.getTextarea(e);\n\n return textArea[propName];\n }\n\n public static getCursorXY = function (element: HTMLElement) {\n var textArea = mentionsHelper.getTextarea(element);\n let format = function (value) {\n value = value.replace(/<|>|`|\"|&/g, '?');\n return value;\n };\n let inputorValue = textArea.value;\n let 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 let end_range = inputorValue.slice(pos);\n let html = format(start_range);\n html += \"@\";\n html += format(end_range);\n\n let 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 let flag: HTMLSpanElement = div_mirror.querySelector(\"span\");\n // let flagPos = flag.getBoundingClientRect();\n // let textAreaPos = textArea.getBoundingClientRect();\n // let bodyPos = document.body.getBoundingClientRect();\n let left = flag.offsetLeft - textArea.scrollLeft + 16;\n let 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 var textarea = element;\n if (element.tagName != textAreaTag) {\n var 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 let ele = document.querySelector(selector);\n if (ele) {\n if (ele.hasAttribute(\"disabled\")) {\n let htmlElement = document.activeElement;\n htmlElement?.blur();\n } else {\n setTimeout(() => {\n ele.focus();\n let 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 let container = e.parentNode;\n if (container instanceof HTMLElement) {\n container.remove();\n }\n });\n manipulationHelper.enableBodyScroll(true);\n }\n}","import { 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 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 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 let 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 let end = this.overlay.className.indexOf(\"-hidden\");\n let start = this.overlay.className.lastIndexOf(\" \", end)\n if (start >= 0) {\n let 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 let 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(bodyRef, tableRef, headerRef, scrollX, scrollY, resizable) {\n bodyRef.bindScroll = () => {\n if (scrollX) {\n tableHelper.SetScrollPositionClassName(bodyRef, tableRef);\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(tableRef);\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, tableRef) {\n\n let scrollLeft = bodyRef.scrollLeft;\n let scrollWidth = bodyRef.scrollWidth;\n let 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 ? tableRef.classList.add(\"ant-table-ping-left\") : tableRef.classList.remove(\"ant-table-ping-left\");\n pingRight ? tableRef.classList.add(\"ant-table-ping-right\") : tableRef.classList.remove(\"ant-table-ping-right\");\n }\n\n static enableColumnResizing(tableElement) {\n\n const cols = tableElement.querySelectorAll('col');\n\n tableElement.tHead.querySelectorAll('.ant-table-thead th').forEach((th, i) => {\n\n const col = cols[i];\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 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 let fileInfo = Array();\n for (var i = 0; i < element.files.length; i++) {\n let 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 var 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 let formData = new FormData();\n var file = element.files[index];\n var size = file.size;\n formData.append(name, file);\n if (data != null) {\n for (var 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 var percent = Math.floor(event.loaded / size * 100);\n instance.invokeMethodAsync(percentMethod, fileId, percent);\n }\n req.onerror = function (e) {\n instance.invokeMethodAsync(errorMethod, fileId, \"error\");\n }\n req.open(method, url, true)\n if (headers != null) {\n for (var 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 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 var start = +new Date();\n return function (...args) {\n let 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 //@ts-ignore\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 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 var nowX = e.clientX,\n nowY = e.clientY,\n 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 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 let 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 (let 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 json = JSON.stringify(obj, (k, v) => {\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 var timeout;\n return (...args) => {\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}","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 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 };\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 let 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\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 let 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(delElement, elementSelector) {\n let parent = domInfoHelper.get(elementSelector);\n if (parent && delElement) {\n parent.removeChild(delElement);\n }\n }\n\n static setDomAttribute(element, attributes) {\n let dom: HTMLElement = domInfoHelper.get(element);\n if (dom) {\n for (let 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 var selection = document.getSelection();\n if (selection.rangeCount > 0) {\n selection.removeAllRanges();\n }\n var range = document.createRange();\n range.selectNode(element);\n selection.addRange(range);\n try {\n var 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(function () {\n console.log('Async: Copying to clipboard was successful!');\n }, function (err) {\n console.error('Async: Could not copy text: ', err);\n });\n }\n\n private static fallbackCopyTextToClipboard(text) {\n var 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 var successful = document.execCommand('copy');\n var 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 let dom = domInfoHelper.get(selector);\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\n static blur(selector) {\n let 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(selector: Element | string, parentElement: HTMLElement, duration: number) {\n const element = domInfoHelper.get(selector);\n let 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 = document.documentElement.scrollTop || document.body.scrollTop;\n const distance = targetPageY > currentY ? targetPageY - currentY : currentY - targetPageY;\n const speed = Math.ceil(distance / 10);\n if (currentY === targetPageY) {\n clearInterval(timer);\n } else {\n window.scrollTo(0, targetPageY > currentY ? currentY + speed : currentY - speed);\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 var currInput = document.activeElement;\n if (currInput.tagName.toLowerCase() == \"input\") {\n var inputs = document.getElementsByTagName(\"input\");\n var currInput = document.activeElement;\n for (var i = 0; i < inputs.length; i++) {\n if (inputs[i] == currInput) {\n var next = inputs[i + 1];\n if (next && next.focus) {\n next.focus();\n }\n break;\n }\n }\n }\n }\n\n static disableBodyScroll() {\n let 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 {\n \"position\": \"relative\",\n \"width\": this.hasScrollbar() && scrollBarSize > 0 ? `calc(100% - ${scrollBarSize}px)` : 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 let oldBodyCache = state.oldBodyCacheStack.length > 0 ? state.oldBodyCacheStack.pop() : {};\n \n\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 let overflow = document.body.style.overflow;\n if (overflow && overflow === \"hidden\") return false;\n return document.body.scrollHeight > (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}","\"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 let 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 let 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 var 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 var 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 let style = name;\n let cssAttributes = style.split(\";\");\n for (let i = 0; i < cssAttributes.length; i++) {\n let cssAttribute = cssAttributes[i];\n if (!cssAttribute) continue;\n let 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 (let key in name) {\n if (name.hasOwnProperty(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"]}