{"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/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","backtopHelper_1","overlayHelper_1","uploadHelper_1","mentionsHelper_1","modalHelper_1","inputHelper_1","tableHelper_1","iconHelper_1","iconHelper","createIconFromfontCN","scriptUrl","script","document","querySelector","createElement","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","getCursorXY","mentionsOnWindowClick","offset","getOffset","elem","InputCaret","mentionsObj","inputor","getPos","domInputor","getPosition","pos","format","replace","test","navigator","userAgent","inputorValue","start_range","slice","end_range","html","Mirror","rect","getBoundingClientRect","scrollLeft","$mirror","AntDesign","interop","styleHelper","css","mirrorCss","innerHTML","parentElement","append","_this","zIndex","css_attr","flag","oRect","offsetLeft","offsetTop","removeChild","modalHelper","focusDialog","selector","count","htmlElement","ele","hasAttribute","activeElement","blur","setTimeout","focus","getActiveElement","destroyAllDialog","querySelectorAll","parentNode","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","className","indexOf","start","lastIndexOf","substr","classList","remove","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","getMaxZIndex","selectedHorizontalPosition","getAdjustedRight","containerBoundarySize","getContainerBoundarySize","directionsToCalculate","Set","boundyAdjustMode","None","horizontalPosition","getHorizontalPosition","verticalPosition","getVerticalPosition","initialPlacement","appliedStylePositionMap","horizontal","vertical","verticalCalculation","horizontalCalculation","logToConsole","extraMessage","info","parentInfo","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","click","clearFile","getFileInfo","files","fileInfo","file","objectUrl","getObjectURL","fileName","name","objectURL","url","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","_container","bindDrag","_trigger","_options","onMousedown","onMouseup","onMousemove","onResize","unbindDrag","resetContainerStyle","_style","_isFirst","dragInViewport","_state","_a","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","preventDefault","callback","k","obj","json","v","Node","Window","debounce","addDomEventListenerToFirstChild","firstElementChild","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","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","clipboard","writeText","then","error","fallbackCopyTextToClipboard","textArea","select","msg","noScroll","option","FocusBehavior","FocusAtLast","HTMLElement","preventScroll","HTMLInputElement","HTMLTextAreaElement","FocusAndSelectAll","FocusAtFirst","setSelectionRange","scrollTo","scrollIntoView","behavior","block","inline","smoothScrollTo","duration","to","requestAnimationFrame","animateScroll","tick","targetPageY","timer","setInterval","currentY","speed","ceil","clearInterval","invokeTabKey","currInput","tagName","inputs","getElementsByTagName","next","disableBodyScroll","oldBodyCache","scrollBarSize","oldBodyCacheStack","getScrollBarSize","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","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","toHsvString","toHsl","toHslString","toHexString","toHex8","toHex8String","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} 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 { backtopHelper } from './backtopHelper';\nexport { overlayHelper } from './overlayHelper';\nexport { uploadHelper } from './uploadHelper';\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 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}","import { state } from \"../stateProvider\";\n\nexport class mentionsHelper {\n\n static getCursorXY(element, objReference) {\n state.objReferenceDict[\"mentions\"] = objReference;\n window.addEventListener(\"click\", this.mentionsOnWindowClick);\n\n const offset = this.getOffset(element);\n\n return [offset.left, offset.top + offset.height + 14];\n }\n\n private static getOffset(elem) {\n return (new InputCaret(elem)).getOffset();\n }\n\n private static mentionsOnWindowClick(e) {\n let mentionsObj = state.objReferenceDict[\"mentions\"];\n if (mentionsObj) {\n mentionsObj.invokeMethodAsync(\"CloseMentionsDropDown\");\n } else {\n window.removeEventListener(\"click\", this.mentionsOnWindowClick);\n }\n }\n\n}\n\nclass InputCaret {\n domInputor: any;\n\n constructor(inputor) {\n this.domInputor = inputor;\n }\n\n getPos = function () {\n return this.domInputor.selectionStart;\n };\n\n getPosition = function (pos) {\n var domInputor, end_range, format, html, mirror, start_range;\n domInputor = this.domInputor;\n\n format = function (value) {\n value = value.replace(/<|>|`|\"|&/g, '?').replace(/\\r\\n|\\r|\\n/g, \"
\");\n if (/firefox/i.test(navigator.userAgent)) {\n value = value.replace(/\\s/g, ' ');\n }\n return value;\n };\n if (!pos) {\n pos = this.getPos();\n }\n let inputorValue = domInputor.value;\n start_range = inputorValue.slice(0, pos);\n end_range = inputorValue.slice(pos);\n html = \"\" + format(start_range) + \"\";\n html += \"|\";\n html += \"\" + format(end_range) + \"\";\n mirror = new Mirror(domInputor);\n return mirror.create(html).rect();\n };\n\n getOffset = function (pos = null) {\n var offset, position, domInputor;\n domInputor = this.domInputor;\n\n var rect = domInputor.getBoundingClientRect();\n\n offset = {\n left: rect.left,\n top: rect.top\n };\n\n position = this.getPosition(pos);\n return offset = {\n left: offset.left + position.left - domInputor.scrollLeft,\n top: offset.top + position.top - domInputor.scrollTop,\n height: position.height\n };\n };\n\n}\n\nclass Mirror {\n domInputor: any;\n css_attr: any;\n constructor(inputor) {\n this.domInputor = inputor;\n this.css_attr = [];\n }\n\n create = function (html) {\n this.$mirror = document.createElement(\"div\");\n //TODO: hard coded reference, try to make it more relative\n (window).AntDesign.interop.styleHelper.css(this.$mirror, this.mirrorCss());\n\n this.$mirror.innerHTML = html;\n this.domInputor.parentElement.append(this.$mirror);\n\n return this;\n };\n\n mirrorCss = function () {\n var css, _this = this;\n css = {\n position: 'absolute',\n left: -9999,\n top: 0,\n zIndex: -20000\n };\n\n this.css_attr.push('width');\n\n this.css_attr.forEach((p) => {\n return css[p] = _this.domInputor.style[p]//_this.$inputor.css(p);\n })\n\n return css;\n };\n\n rect = function () {\n var flag, pos, rect;\n flag = this.$mirror.querySelector(\"#caret\");\n var oRect = flag.getBoundingClientRect();\n\n pos = {\n left: flag.offsetLeft,\n top: flag.offsetTop\n }; //$flag.position();\n\n rect = {\n left: pos.left,\n top: pos.top,\n height: oRect.height\n };\n\n this.$mirror.parentElement.removeChild(this.$mirror)\n return rect;\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 instance.invokeMethodAsync(errorMethod, fileId, `{\"status\": ${req.status}}`);\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 setTimeout(function () { invoker.invokeMethodAsync('Invoke', json) }, 0);\n if (preventDefault === true) {\n args.preventDefault();\n }\n };\n\n if (element === 'window') {\n if (eventName === 'resize') {\n window.addEventListener(eventName, this.debounce(() => callback({ innerWidth: window.innerWidth, innerHeight: window.innerHeight }), 200, false));\n } else {\n window.addEventListener(eventName, callback);\n }\n } else {\n const dom = domInfoHelper.get(element);\n if (dom) {\n (dom as HTMLElement).addEventListener(eventName, callback);\n }\n }\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 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 === '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;\n\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 = 100) {\n const element = domInfoHelper.get(selector);\n var to = element.offsetTop;\n\n if (duration <= 0) {\n window.requestAnimationFrame(() => {\n parentElement.scrollTop = to;\n });\n return;\n }\n\n const animateScroll = () => {\n const tick = ((to - parentElement.scrollTop) / duration) * 10;\n window.requestAnimationFrame(() => {\n parentElement.scrollTop += tick;\n if (parentElement.scrollTop === to) return;\n duration -= 10;\n animateScroll();\n });\n };\n setTimeout(() => animateScroll(), 10);\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;\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 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 # appened.\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 # appened.\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 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 return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a,\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// 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"]}