aiware-js 1.0.0-master.1249 → 1.0.0-master.1250

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/js-core.esm18.js CHANGED
@@ -1 +1 @@
1
- import{ao as unmountPanel$1,a1 as hidePanel$1,eb as unmountAllPanel$1,ec as getUniqueID,ap as mountPanel$1,bO as AvailableWidgets,bM as updatePanelMicroFrontendProps,bN as setData,ed as mountWidget,ee as unmountWidget,ef as updateTokenRequest,b5 as logout,eg as updateActivityStatus,eh as HelpCenter,B as takeEvery$1,ei as mountPanelForResponse$1,ej as DataCenter,C as select}from"./js-core.esm.js";import{setCustomKnowledgeBaseUrl,setCustomDocsUrl,updateSelectedTab}from"./js-core.esm19.js";import"./js-core.esm4.js";import"./js-core.esm6.js";class RateLimiter{constructor(){this.lastCall=null}checkIfCanCall(e=1){return e<1&&(e=1),(!this.lastCall||(new Date).getTime()-this.lastCall>=6e4*e)&&(this.lastCall=(new Date).getTime(),!0)}}const rateLimiter=new RateLimiter,createAuthHelpers=t=>({updateToken(e){e?t.dispatch(updateTokenRequest({token:e})):console.error("[AiWARE JS]: Please provide a valid token!")},logout(e){"function"==typeof e?(e(),setTimeout(()=>{t.dispatch(logout())},1e3)):t.dispatch(logout())},reportAppActivity(e){rateLimiter.checkIfCanCall(e)&&t.dispatch(updateActivityStatus())}}),helpCenter=()=>{var e=new HelpCenter({actions:{setCustomKnowledgeBaseUrlAction:setCustomKnowledgeBaseUrl,setCustomDocsUrlAction:setCustomDocsUrl,updateSelectedTabAction:updateSelectedTab}});return{openKnowledgeBasePanel:e.openKnowledgeBasePanel.bind(e),openDocsPanel:e.openDocsPanel.bind(e)}},dataCenter=()=>{var e=new DataCenter;return{openImporterPanel:e.openImporterPanel.bind(e)}},unmountPanel=t=>e=>(t.dispatch(unmountPanel$1(e)),!0),hidePanel=t=>e=>(t.dispatch(hidePanel$1(e)),!0),unmountAllPanel=e=>()=>{e.dispatch(unmountAllPanel$1(""))},mountPanel=l=>(e,t)=>{const n=e.panelId||getUniqueID();var{microFrontend:e,panelConfig:a}=e;l.dispatch(mountPanel$1({microFrontend:e,panelId:n,panelConfig:a}));const o=[...(null==(e=null==a?void 0:a.header)?void 0:e.actions)||[],...(null==(e=null==a?void 0:a.footer)?void 0:e.actions)||[]].filter(e=>e.submit).map(e=>e.action);a={id:n,sagas:[function*(){yield takeEvery$1(o.map(e=>e.type),function*(){var e=(yield select(e=>e.data.find(e=>e.id===n)))["data"];t&&t(e)})}]};return l.addModule(a),n},mountPanelForResponse=t=>e=>mountPanelForResponse$1(e,t),attachSdkToWindow=e=>{var{init:e,store:t,aiwareEvents:n,bootstrapOptions:a}=e;!window||void 0!==window.aiware&&0!==Object.keys(window.aiware).length||(window.aiware={init:e,store:t,auth:createAuthHelpers(t),helpCenter:helpCenter(),dataCenter:dataCenter(),on:n.on,off:n.off,hidePanel:hidePanel(t),unmountPanel:unmountPanel(t),mountPanel:mountPanel(t),mountPanelForResponse:mountPanelForResponse(t),registry:a.registry,registryLookup:a.registryLookup,AvailableWidgets:AvailableWidgets,mountPanelAction:mountPanel$1,unmountPanelAction:unmountPanel$1,hidePanelAction:hidePanel$1,updatePanelMicroFrontendPropsAction:updatePanelMicroFrontendProps,setData:setData,mountWidget:mountWidget,unmountWidget:unmountWidget,commit:"10332756f1"})};export{attachSdkToWindow,hidePanel,mountPanel,unmountAllPanel,unmountPanel};
1
+ import{ao as unmountPanel$1,a1 as hidePanel$1,eb as unmountAllPanel$1,ec as getUniqueID,ap as mountPanel$1,bO as AvailableWidgets,bM as updatePanelMicroFrontendProps,bN as setData,ed as mountWidget,ee as unmountWidget,ef as updateTokenRequest,b5 as logout,eg as updateActivityStatus,eh as HelpCenter,B as takeEvery$1,ei as mountPanelForResponse$1,ej as DataCenter,C as select}from"./js-core.esm.js";import{setCustomKnowledgeBaseUrl,setCustomDocsUrl,updateSelectedTab}from"./js-core.esm19.js";import"./js-core.esm4.js";import"./js-core.esm6.js";class RateLimiter{constructor(){this.lastCall=null}checkIfCanCall(e=1){return e<1&&(e=1),(!this.lastCall||(new Date).getTime()-this.lastCall>=6e4*e)&&(this.lastCall=(new Date).getTime(),!0)}}const rateLimiter=new RateLimiter,createAuthHelpers=t=>({updateToken(e){e?t.dispatch(updateTokenRequest({token:e})):console.error("[AiWARE JS]: Please provide a valid token!")},logout(e){"function"==typeof e?(e(),setTimeout(()=>{t.dispatch(logout())},1e3)):t.dispatch(logout())},reportAppActivity(e){rateLimiter.checkIfCanCall(e)&&t.dispatch(updateActivityStatus())}}),helpCenter=()=>{var e=new HelpCenter({actions:{setCustomKnowledgeBaseUrlAction:setCustomKnowledgeBaseUrl,setCustomDocsUrlAction:setCustomDocsUrl,updateSelectedTabAction:updateSelectedTab}});return{openKnowledgeBasePanel:e.openKnowledgeBasePanel.bind(e),openDocsPanel:e.openDocsPanel.bind(e)}},dataCenter=()=>{var e=new DataCenter;return{openImporterPanel:e.openImporterPanel.bind(e)}},unmountPanel=t=>e=>(t.dispatch(unmountPanel$1(e)),!0),hidePanel=t=>e=>(t.dispatch(hidePanel$1(e)),!0),unmountAllPanel=e=>()=>{e.dispatch(unmountAllPanel$1(""))},mountPanel=l=>(e,t)=>{const n=e.panelId||getUniqueID();var{microFrontend:e,panelConfig:a}=e;l.dispatch(mountPanel$1({microFrontend:e,panelId:n,panelConfig:a}));const o=[...(null==(e=null==a?void 0:a.header)?void 0:e.actions)||[],...(null==(e=null==a?void 0:a.footer)?void 0:e.actions)||[]].filter(e=>e.submit).map(e=>e.action);a={id:n,sagas:[function*(){yield takeEvery$1(o.map(e=>e.type),function*(){var e=(yield select(e=>e.data.find(e=>e.id===n)))["data"];t&&t(e)})}]};return l.addModule(a),n},mountPanelForResponse=t=>e=>mountPanelForResponse$1(e,t),attachSdkToWindow=e=>{var{init:e,store:t,aiwareEvents:n,bootstrapOptions:a}=e;!window||void 0!==window.aiware&&0!==Object.keys(window.aiware).length||(window.aiware={init:e,store:t,auth:createAuthHelpers(t),helpCenter:helpCenter(),dataCenter:dataCenter(),on:n.on,off:n.off,hidePanel:hidePanel(t),unmountPanel:unmountPanel(t),mountPanel:mountPanel(t),mountPanelForResponse:mountPanelForResponse(t),registry:a.registry,registryLookup:a.registryLookup,AvailableWidgets:AvailableWidgets,mountPanelAction:mountPanel$1,unmountPanelAction:unmountPanel$1,hidePanelAction:hidePanel$1,updatePanelMicroFrontendPropsAction:updatePanelMicroFrontendProps,setData:setData,mountWidget:mountWidget,unmountWidget:unmountWidget,commit:"1e341365bc"})};export{attachSdkToWindow,hidePanel,mountPanel,unmountAllPanel,unmountPanel};
Binary file
package/js-core.esm4.js CHANGED
@@ -1,4 +1,4 @@
1
- import{r as react,o as ownerDocument,cu as react$1,j as jsxRuntime,_ as _extends,cv as formatMuiErrorMessage,cw as useTheme$1,e as _objectWithoutPropertiesLoose,cx as deepmerge,cy as GlobalStyles$2,cz as ThemeProvider,cA as createSpacing,cB as createBreakpoints,bf as createTheme,cC as useTheme$2,cD as THEME_ID,cE as defaultTheme$1,cF as private_safeDarken,cG as private_safeLighten,cH as private_safeEmphasize,cI as private_safeAlpha,cJ as private_safeColorChannel,cK as defaultSxConfig,cL as styleFunctionSx,cM as createTypography,cN as hexToRgb,cO as rgbToHex,cP as hslToRgb,cQ as decomposeColor,cR as recomposeColor,cS as getContrastRatio,cT as getLuminance,cU as emphasize,k as alpha,n as darken,m as lighten,cV as css,bw as keyframes,cW as createMuiTheme,cX as duration,cY as easing,d as useThemeProps,s as styled,bl as ThemeProvider$1,bk as StyledEngineProvider,f as clsx,u as useForkRef,a as useEnhancedEffect,cZ as setRef,bT as reactDom,c as generateUtilityClass,g as generateUtilityClasses,b as useEventCallback,h as composeClasses,l as capitalize$2,c_ as ClassNameGenerator,bR as ReactExports,bU as ReactDOM,c$ as extendSxProp,d0 as GlobalStyles$3,i as rootShouldForwardProp,d1 as resolveProps,d2 as resolveBreakpointValues,d3 as handleBreakpoints,p as slotShouldForwardProp,q as __rest$2,d4 as shallowEqual,w as useIntl,d5 as memoize$2,d6 as commonjsGlobal,d7 as createCache,d8 as emotionReact_browser_esm,d9 as _baseGetTag,da as isObjectLike_1,db as isObject_1,Z as useSelector,a4 as preferredLanguageSelector,dc as IntlProvider,dd as fetchTranslationJson,de as _Symbol,df as isArray_1,dg as _baseKeys,dh as _getTag,di as isArguments_1,dj as isArrayLike_1,dk as isBuffer$1,dl as _isPrototype,dm as isTypedArray_1,dn as _baseTimes,dp as _Stack,dq as _baseIsEqual,dr as keys_1,ds as _MapCache,dt as _isIndex,du as isLength_1,dv as eq_1,U as createSelector,bg as rootApiSelector,D as graphEndpointSelector,E as sessionTokenSelector,X as createSlice,bn as store,dw as getConfigModule,bj as getAuthModule,dx as getSnackbarModule,K as userSelector,am as CircularProgress,V as Box,z as all,dy as img$N,A as takeLatest$1,C as select,G as put,dz as img$n,a2 as lodash,ax as img$1Q,a1 as hidePanel,a3 as baseGraphQLApiWithError,dA as ReactReduxContext,dB as Provider}from"./js-core.esm.js";import{u as useDispatch}from"./js-core.esm6.js";function createChainedFunction(...e){return e.reduce((t,s)=>null==s?t:function(...e){t.apply(this,e),s.apply(this,e)},()=>{})}function debounce(t,s=166){let r;function e(...e){clearTimeout(r),r=setTimeout(()=>{t.apply(this,e)},s)}return e.clear=()=>{clearTimeout(r)},e}function deprecatedPropType(e,t){return()=>null}function isMuiElement(e,t){return react.exports.isValidElement(e)&&-1!==t.indexOf(null!=(t=e.type.muiName)?t:null==(t=e.type)||null==(t=t._payload)||null==(t=t.value)?void 0:t.muiName)}function ownerWindow(e){return ownerDocument(e).defaultView||window}function requirePropFactory(e,t){return()=>null}let globalId=0;function useGlobalId(e){const[t,s]=react.exports.useState(e);e=e||t;return react.exports.useEffect(()=>{null==t&&(globalId+=1,s("mui-"+globalId))},[t]),e}const maybeReactUseId=react$1["useId".toString()];function useId(e){var t;return void 0!==maybeReactUseId?(t=maybeReactUseId(),null!=e?e:t):useGlobalId(e)}function unsupportedProp(e,t,s,r,o){return null}function useControlled({controlled:e,default:t}){const s=react.exports.useRef(void 0!==e)["current"],[r,o]=react.exports.useState(t);return[s?e:r,react.exports.useCallback(e=>{s||o(e)},[])]}class Timeout{constructor(){this.currentId=null,this.clear=()=>{null!==this.currentId&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new Timeout}start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,t()},e)}}let hadKeyboardEvent=!0,hadFocusVisibleRecently=!1;const hadFocusVisibleRecentlyTimeout=new Timeout,inputTypesWhitelist={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function focusTriggersKeyboardModality(e){var{type:t,tagName:s}=e;return!("INPUT"!==s||!inputTypesWhitelist[t]||e.readOnly)||"TEXTAREA"===s&&!e.readOnly||!!e.isContentEditable}function handleKeyDown(e){e.metaKey||e.altKey||e.ctrlKey||(hadKeyboardEvent=!0)}function handlePointerDown(){hadKeyboardEvent=!1}function handleVisibilityChange(){"hidden"===this.visibilityState&&hadFocusVisibleRecently&&(hadKeyboardEvent=!0)}function prepare(e){e.addEventListener("keydown",handleKeyDown,!0),e.addEventListener("mousedown",handlePointerDown,!0),e.addEventListener("pointerdown",handlePointerDown,!0),e.addEventListener("touchstart",handlePointerDown,!0),e.addEventListener("visibilitychange",handleVisibilityChange,!0)}function isFocusVisible(e){e=e.target;try{return e.matches(":focus-visible")}catch(e){}return hadKeyboardEvent||focusTriggersKeyboardModality(e)}function useIsFocusVisible(){var e=react.exports.useCallback(e=>{null!=e&&prepare(e.ownerDocument)},[]);const t=react.exports.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!isFocusVisible(e)&&(t.current=!0)},onBlur:function(){return!(!t.current||(hadFocusVisibleRecently=!0,hadFocusVisibleRecentlyTimeout.start(100,()=>{hadFocusVisibleRecently=!1}),t.current=!1))},ref:e}}function getScrollbarSize(e){e=e.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}let cachedType;function detectScrollType(){var e,t;return cachedType||(e=document.createElement("div"),(t=document.createElement("div")).style.width="10px",t.style.height="1px",e.appendChild(t),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),cachedType="reverse",0<e.scrollLeft?cachedType="default":(e.scrollLeft=1,0===e.scrollLeft&&(cachedType="negative")),document.body.removeChild(e)),cachedType}function getNormalizedScrollLeft(e,t){var s=e.scrollLeft;if("rtl"!==t)return s;switch(detectScrollType()){case"negative":return e.scrollWidth-e.clientWidth+s;case"reverse":return e.scrollWidth-e.clientWidth-s;default:return s}}const DEFAULT_MODE_STORAGE_KEY="mode",DEFAULT_COLOR_SCHEME_STORAGE_KEY="color-scheme",DEFAULT_ATTRIBUTE="data-color-scheme";function getInitColorSchemeScript$1(e){var{defaultMode:e="light",defaultLightColorScheme:t="light",defaultDarkColorScheme:s="dark",modeStorageKey:r=DEFAULT_MODE_STORAGE_KEY,colorSchemeStorageKey:o=DEFAULT_COLOR_SCHEME_STORAGE_KEY,attribute:n=DEFAULT_ATTRIBUTE,colorSchemeNode:i="document.documentElement"}=e||{};return jsxRuntime.exports.jsx("script",{dangerouslySetInnerHTML:{__html:`(function() {
1
+ import{r as react,o as ownerDocument,cu as react$1,j as jsxRuntime,_ as _extends,cv as formatMuiErrorMessage,cw as useTheme$1,e as _objectWithoutPropertiesLoose,cx as deepmerge,cy as GlobalStyles$2,cz as ThemeProvider,cA as createSpacing,cB as createBreakpoints,bf as createTheme,cC as useTheme$2,cD as THEME_ID,cE as defaultTheme$1,cF as private_safeDarken,cG as private_safeLighten,cH as private_safeEmphasize,cI as private_safeAlpha,cJ as private_safeColorChannel,cK as defaultSxConfig,cL as styleFunctionSx,cM as createTypography,cN as hexToRgb,cO as rgbToHex,cP as hslToRgb,cQ as decomposeColor,cR as recomposeColor,cS as getContrastRatio,cT as getLuminance,cU as emphasize,k as alpha,n as darken,m as lighten,cV as css,bw as keyframes,cW as createMuiTheme,cX as duration,cY as easing,d as useThemeProps,s as styled,bl as ThemeProvider$1,bk as StyledEngineProvider,f as clsx,u as useForkRef,a as useEnhancedEffect,cZ as setRef,bT as reactDom,c as generateUtilityClass,g as generateUtilityClasses,b as useEventCallback,h as composeClasses,l as capitalize$2,c_ as ClassNameGenerator,bR as ReactExports,bU as ReactDOM,c$ as extendSxProp,d0 as GlobalStyles$3,i as rootShouldForwardProp,d1 as resolveProps,d2 as resolveBreakpointValues,d3 as handleBreakpoints,p as slotShouldForwardProp,q as __rest$2,d4 as shallowEqual,w as useIntl,d5 as memoize$2,d6 as commonjsGlobal,d7 as createCache,d8 as emotionReact_browser_esm,d9 as _baseGetTag,da as isObjectLike_1,db as isObject_1,Z as useSelector,a4 as preferredLanguageSelector,dc as IntlProvider,dd as fetchTranslationJson,de as _Symbol,df as isArray_1,dg as _baseKeys,dh as _getTag,di as isArguments_1,dj as isArrayLike_1,dk as isBuffer$1,dl as _isPrototype,dm as isTypedArray_1,dn as _baseTimes,dp as _Stack,dq as _baseIsEqual,dr as keys_1,ds as _MapCache,dt as _isIndex,du as isLength_1,dv as eq_1,U as createSelector,bg as rootApiSelector,D as graphEndpointSelector,E as sessionTokenSelector,X as createSlice,bn as store,dw as getConfigModule,bj as getAuthModule,dx as getSnackbarModule,K as userSelector,am as CircularProgress,V as Box,dy as img$N,z as all,A as takeLatest$1,C as select,G as put,dz as img$n,a2 as lodash,ax as img$1Q,a1 as hidePanel,a3 as baseGraphQLApiWithError,dA as ReactReduxContext,dB as Provider}from"./js-core.esm.js";import{u as useDispatch}from"./js-core.esm6.js";function createChainedFunction(...e){return e.reduce((t,s)=>null==s?t:function(...e){t.apply(this,e),s.apply(this,e)},()=>{})}function debounce(t,s=166){let r;function e(...e){clearTimeout(r),r=setTimeout(()=>{t.apply(this,e)},s)}return e.clear=()=>{clearTimeout(r)},e}function deprecatedPropType(e,t){return()=>null}function isMuiElement(e,t){return react.exports.isValidElement(e)&&-1!==t.indexOf(null!=(t=e.type.muiName)?t:null==(t=e.type)||null==(t=t._payload)||null==(t=t.value)?void 0:t.muiName)}function ownerWindow(e){return ownerDocument(e).defaultView||window}function requirePropFactory(e,t){return()=>null}let globalId=0;function useGlobalId(e){const[t,s]=react.exports.useState(e);e=e||t;return react.exports.useEffect(()=>{null==t&&(globalId+=1,s("mui-"+globalId))},[t]),e}const maybeReactUseId=react$1["useId".toString()];function useId(e){var t;return void 0!==maybeReactUseId?(t=maybeReactUseId(),null!=e?e:t):useGlobalId(e)}function unsupportedProp(e,t,s,r,o){return null}function useControlled({controlled:e,default:t}){const s=react.exports.useRef(void 0!==e)["current"],[r,o]=react.exports.useState(t);return[s?e:r,react.exports.useCallback(e=>{s||o(e)},[])]}class Timeout{constructor(){this.currentId=null,this.clear=()=>{null!==this.currentId&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new Timeout}start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,t()},e)}}let hadKeyboardEvent=!0,hadFocusVisibleRecently=!1;const hadFocusVisibleRecentlyTimeout=new Timeout,inputTypesWhitelist={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function focusTriggersKeyboardModality(e){var{type:t,tagName:s}=e;return!("INPUT"!==s||!inputTypesWhitelist[t]||e.readOnly)||"TEXTAREA"===s&&!e.readOnly||!!e.isContentEditable}function handleKeyDown(e){e.metaKey||e.altKey||e.ctrlKey||(hadKeyboardEvent=!0)}function handlePointerDown(){hadKeyboardEvent=!1}function handleVisibilityChange(){"hidden"===this.visibilityState&&hadFocusVisibleRecently&&(hadKeyboardEvent=!0)}function prepare(e){e.addEventListener("keydown",handleKeyDown,!0),e.addEventListener("mousedown",handlePointerDown,!0),e.addEventListener("pointerdown",handlePointerDown,!0),e.addEventListener("touchstart",handlePointerDown,!0),e.addEventListener("visibilitychange",handleVisibilityChange,!0)}function isFocusVisible(e){e=e.target;try{return e.matches(":focus-visible")}catch(e){}return hadKeyboardEvent||focusTriggersKeyboardModality(e)}function useIsFocusVisible(){var e=react.exports.useCallback(e=>{null!=e&&prepare(e.ownerDocument)},[]);const t=react.exports.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!isFocusVisible(e)&&(t.current=!0)},onBlur:function(){return!(!t.current||(hadFocusVisibleRecently=!0,hadFocusVisibleRecentlyTimeout.start(100,()=>{hadFocusVisibleRecently=!1}),t.current=!1))},ref:e}}function getScrollbarSize(e){e=e.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}let cachedType;function detectScrollType(){var e,t;return cachedType||(e=document.createElement("div"),(t=document.createElement("div")).style.width="10px",t.style.height="1px",e.appendChild(t),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),cachedType="reverse",0<e.scrollLeft?cachedType="default":(e.scrollLeft=1,0===e.scrollLeft&&(cachedType="negative")),document.body.removeChild(e)),cachedType}function getNormalizedScrollLeft(e,t){var s=e.scrollLeft;if("rtl"!==t)return s;switch(detectScrollType()){case"negative":return e.scrollWidth-e.clientWidth+s;case"reverse":return e.scrollWidth-e.clientWidth-s;default:return s}}const DEFAULT_MODE_STORAGE_KEY="mode",DEFAULT_COLOR_SCHEME_STORAGE_KEY="color-scheme",DEFAULT_ATTRIBUTE="data-color-scheme";function getInitColorSchemeScript$1(e){var{defaultMode:e="light",defaultLightColorScheme:t="light",defaultDarkColorScheme:s="dark",modeStorageKey:r=DEFAULT_MODE_STORAGE_KEY,colorSchemeStorageKey:o=DEFAULT_COLOR_SCHEME_STORAGE_KEY,attribute:n=DEFAULT_ATTRIBUTE,colorSchemeNode:i="document.documentElement"}=e||{};return jsxRuntime.exports.jsx("script",{dangerouslySetInnerHTML:{__html:`(function() {
2
2
  try {
3
3
  var mode = localStorage.getItem('${r}') || '${e}';
4
4
  var colorScheme = '';
Binary file