{"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/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/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","target","push","stateProvider_1","exports_1","observable","styleHelper_1","export_1","dragHelper_1","colors_1","log","text","console","backtopHelper","backTop","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","iconHelper","createIconFromfontCN","scriptUrl","script","querySelector","setAttribute","body","appendChild","observableApi_1","inputHelper","getTextAreaInfo","result","scrollHeight","currentStyle","parseFloat","getComputedStyle","defaultView","getPropertyValue","Object","is","NaN","registerResizeTextArea","minRows","maxRows","objReference","state","objReferenceDict","id","eventCallbackRegistry","resizeTextArea","addEventListener","resize","style","disposeResizeTextArea","removeEventListener","dims","rowHeight","offsetHeight","oldHeight","oldRows","rows","Math","trunc","newHeight","max","overflowY","scrollWidth","setSelectionStart","position","value","selectionStart","selectionEnd","mentionsHelper","setPopShowFlag","show","isPopShowFlag","setEditorKeyHandler","Mentions","textArea","_this","onkeydown","ev","__awaiter","preventDefault","_a","sent","getProp","propName","getCursorXY","format","replace","inputorValue","pos","start_range","slice","end_range","substring","html","div_mirror","flag","className","innerHTML","parentNode","append","offsetLeft","scrollLeft","offsetTop","modalHelper","focusDialog","selector","count","htmlElement","ele","hasAttribute","activeElement","blur","setTimeout","focus","getActiveElement","destroyAllDialog","querySelectorAll","removeChild","Placement","TriggerBoundyAdjustMode","Overlay","getFirstValidChild","triggerIsWrappedInDiv","childNodes","childElement","setVerticalCalculation","placement","LeftTop","RightTop","triggerTop","triggerHeight","container","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","documentElement","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","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","bindScroll","SetScrollPositionClassName","unbindTableScroll","pingLeft","pingRight","abs","uploadHelper","addFileClickEventListener","btn","fileClickEvent","removeFileClickEventListener","stopPropagation","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","event","percent","floor","loaded","onerror","open","header","setRequestHeader","send","throttle","fn","threshold","timeout","Date","args","_i","arguments","curTime","clearTimeout","apply","eventMap","defaultOptions","inViewport","Dragger","getContainerPos","rect","_container","getBoundingClientRect","bindDrag","_trigger","_options","onMousedown","onMouseup","onMousemove","onResize","unbindDrag","resetContainerStyle","_style","_isFirst","dragInViewport","_state","isInDrag","mX","clientX","mY","clientY","domMaxY","domMaxX","getAttribute","domStartX","domStartY","newDomX","nowX","nowY","disX","disY","newDomY","margin","paddingBottom","parseInt","assign","enableDraggable","dragger","disableDraggable","resetModalPosition","triggerEvent","eventType","eventName","evt","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","manipulationHelper_1","eventHelper_1","domTypes","absolutePosition","getElementAbsolutePos","round","res","viewportElement","box","getFirstChildDomInfo","hasFocus","getInnerText","innerText","from","reduce","node","nodeName","toLowerCase","zIndexAsString","Number","isNaN","getElementsInfo","elements","infos","el","enums","cachedScrollBarSize","scrollIds","manipulationHelper","addElementToBody","delElementFromBody","addElement","elementSelector","prepend","parent","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","HTMLElement","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","tagName","inputs","getElementsByTagName","next","disableBodyScroll","oldBodyCache","scrollBarSize","oldBodyCacheStack","getScrollBarSize","styleHelper","css","hasScrollbar","overflow","addCls","enableBodyScroll","pop","_b","_c","removeCls","fresh","outer","widthContained","inner","outerStyle","pointerEvents","visibility","widthScroll","__esModule","State","disposeObj","objReferenceName","getInstance","clsName","addClsToFirstChild","removeClsFromFirstChild","matchMedia","query","matches","getStyle","styleProp","cssAttributes","split","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","ratio","newColor","TinyColor","random","format_input_1","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","R","pow","G","B","getAlpha","setAlpha","alpha","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","bound","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 inputHelper,\n mentionsHelper,\n modalHelper,\n overlayHelper,\n tableHelper,\n uploadHelper,\n downloadHelper\n} from './modules/components/export'\nexport { enableDraggable, disableDraggable, resetModalPosition } from \"./modules/dom/dragHelper\";\n\nexport { generate as generateColor } from \"@ant-design/colors\";\n\nexport function log(text) {\n console.log(text); \n}\n","import { domInfoHelper, domManipulationHelper } from '../dom/exports'\n\nexport class backtopHelper {\n static backTop(target: string) {\n 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';","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","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 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, textArea: HTMLTextAreaElement): void {\n\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 return e[propName];\n }\n\n public static getCursorXY = function (textArea: HTMLTextAreaElement) {\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\n}\n","import { domInfoHelper } from '../dom/exports'\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')\n .forEach(e => document.body.removeChild(e.parentNode));\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) {\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\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}","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}","\nconst throttle = (fn, threshold = 160) => {\n let timeout;\n var start = +new Date;\n return function (...args) {\n let context = this, curTime = +new Date() - 0;\n //总是干掉事件回调\n window.clearTimeout(timeout);\n if (curTime - start >= threshold) {\n //只执行一部分方法,这些方法是在某个时间段内执行一次\n fn.apply(context, args);\n start = curTime;\n }\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\nclass Dragger {\n\n private _trigger: HTMLElement = null;\n private _container: HTMLElement = null;\n private _options: any = null;\n private _state: any = null;\n private _isFirst: boolean = true;\n private _style: string = null;\n\n constructor(trigger: HTMLElement, container: HTMLElement, dragInViewport: boolean) {\n this._trigger = trigger;\n this._container = container;\n this._options = Object.assign({}, defaultOptions, {\n inViewport: dragInViewport\n });\n this._state = {\n isInDrag: false,\n mX: 0, // mouse x\n mY: 0, // mouse y\n domStartX: 0, // on mousedown, the mouse x\n domStartY: 0, // on mousedown, the mouse y \n }\n }\n\n getContainerPos() {\n const rect = this._container.getBoundingClientRect();\n return {\n left: rect.left,\n top: rect.top\n }\n }\n\n onMousedown = (e) => {\n const state = this._state;\n state.isInDrag = true;\n state.mX = e.clientX;\n state.mY = e.clientY;\n this._container.style.position = \"absolute\";\n const { left, top } = this.getContainerPos();\n\n if (this._isFirst) {\n\n state.domMaxY = document.documentElement.clientHeight\n - this._container.offsetHeight - 1;\n state.domMaxX = document.documentElement.clientWidth\n - this._container.offsetWidth - 1;\n state.domMaxY = state.domMaxY < 0 ? 0 : state.domMaxY;\n state.domMaxX = state.domMaxX < 0 ? 0 : state.domMaxX;\n\n this._container.style.left = left + 'px';\n this._container.style.top = top + 'px';\n\n if (!this._style) {\n this._style = this._container.getAttribute(\"style\");\n }\n\n this._isFirst = false;\n }\n\n state.domStartX = left;\n state.domStartY = top;\n }\n\n onMouseup = (e) => {\n const state = this._state;\n\n state.isInDrag = false;\n\n const { left, top } = this.getContainerPos();\n state.domStartX = left;\n state.domStartY = top;\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 disX = nowX - state.mX,\n disY = nowY - state.mY;\n\n var newDomX = state.domStartX + disX;\n var newDomY = state.domStartY + disY;\n if (this._options.inViewport) {\n if (newDomX < 0) {\n newDomX = 0;\n }\n else if (newDomX > state.domMaxX) {\n newDomX = state.domMaxX;\n }\n if (newDomY < 0) {\n newDomY = 0;\n }\n else if (newDomY > state.domMaxY) {\n newDomY = state.domMaxY;\n }\n }\n this._container.style.position = \"absolute\";\n this._container.style.margin = \"0\";\n this._container.style.paddingBottom = \"0\";\n this._container.style.left = newDomX + \"px\";\n this._container.style.top = newDomY + \"px\";\n }\n }, 10).bind(this);\n\n onResize = throttle((e) => {\n const state = this._state;\n\n state.domMaxY = document.documentElement.clientHeight\n - this._container.offsetHeight - 1;\n state.domMaxX = document.documentElement.clientWidth\n - this._container.offsetWidth - 1;\n state.domMaxY = state.domMaxY < 0 ? 0 : state.domMaxY;\n state.domMaxX = state.domMaxX < 0 ? 0 : state.domMaxX;\n state.domStartY = parseInt(this._container.style.top);\n state.domStartX = parseInt(this._container.style.left);\n if (state.domStartY > state.domMaxY) {\n if (state.domMaxY > 0) {\n this._container.style.top = state.domMaxY + \"px\";\n }\n }\n if (state.domStartX > state.domMaxX) {\n this._container.style.left = state.domMaxX + \"px\";\n }\n }, 10).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\nfunction enableDraggable(trigger: HTMLElement, container: HTMLElement, dragInViewport: boolean = true) {\n let dragger = eventMap.get(trigger);\n if (!dragger) {\n dragger = new Dragger(trigger, container, dragInViewport);\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 };","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) {\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 };\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() {\n let oldBodyCache = state.oldBodyCacheStack.length > 0 ? state.oldBodyCacheStack.pop() : {};\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"]}