diff --git a/debugger/.gitignore b/debugger/.gitignore new file mode 100644 index 000000000..1521c8b76 --- /dev/null +++ b/debugger/.gitignore @@ -0,0 +1 @@ +dist diff --git a/debugger/background/index.ts b/debugger/background/index.ts index 6023da0a1..f73fb9349 100644 --- a/debugger/background/index.ts +++ b/debugger/background/index.ts @@ -1,4 +1,4 @@ -type GlobalChrome = { +type _GlobalChrome = { devtools: { panels: { create: (name: string, icon: string, page: string, code: Function) => void @@ -15,15 +15,16 @@ type GlobalChrome = { onInstalled: { addListener: (handler: unknown) => EventListener } - connect: (what: { name: string }) => WebSocketLike + connect: (what: { name: string }) => _WebSocketLike sendMessage: (what: unknown) => void } tabs: { executeScript: (tab: number | string, data: unknown) => void } } +declare var chrome: _GlobalChrome -type WebSocketLike = { +type _WebSocketLike = { onMessage: { addListener: (handler: unknown) => EventListener removeListener: (listener: unknown) => void @@ -35,16 +36,14 @@ type WebSocketLike = { postMessage: Function } -type DevToolConnection = WebSocketLike - -declare var chrome: GlobalChrome +type _DevToolConnection = _WebSocketLike const connections: { - [port: number]: DevToolConnection + [port: number]: _DevToolConnection } = {} // Background page -- background.js -chrome.runtime.onConnect.addListener(function (port: WebSocketLike) { +chrome.runtime.onConnect.addListener(function (port: _WebSocketLike) { var devToolsListener = function ( message: { name: string; tabId: number; scriptToInject: string }, sender: number, @@ -61,7 +60,7 @@ chrome.runtime.onConnect.addListener(function (port: WebSocketLike) { port.onMessage.addListener(devToolsListener) - port.onDisconnect.addListener(function (devToolDisconnected: WebSocketLike) { + port.onDisconnect.addListener(function (devToolDisconnected: _WebSocketLike) { port.onMessage.removeListener(devToolsListener) const allTabs = Object.keys(connections) for (let i = 0; i < allTabs.length; i++) { diff --git a/debugger/devtool/BUILD.bazel b/debugger/devtool/BUILD.bazel index 02187fb20..79f49a78c 100644 --- a/debugger/devtool/BUILD.bazel +++ b/debugger/devtool/BUILD.bazel @@ -3,31 +3,50 @@ package(default_visibility = ["//visibility:public"]) load("@npm_bazel_typescript//:index.bzl", "ts_library") load("@npm_bazel_rollup//:index.bzl", "rollup_bundle") -filegroup( - name = "static", +ts_library( + name = "devtool", srcs = glob( include = [ - "static/**/*", + "page.tsx", ], ), + module_name = "@dcl/debugger/devtool", + deps = [ + "//debugger/devtool/comms", + "//debugger/devtool/jslibs", + "//debugger/devtool/scenes", + "//debugger/types", + "//jslibs/hooks", + "@npm//@types/react", + "@npm//@types/react-dom", + "@npm//@types/redux", + "@npm//react", + "@npm//react-dom", + "@npm//redux", + ], ) ts_library( - name = "devtool", + name = "bundled_devtool", srcs = glob( include = [ - "comms/*.ts", - "jslibs/*.ts", + "**/*.ts", + "**/*.tsx", "page.tsx", ], ), - module_name = "@dcl/debugger/devtool", + module_name = "@dcl/debugger/bundled_devtool", deps = [ + "//debugger/devtool/comms", + "//debugger/devtool/jslibs", + "//debugger/devtool/scenes", "//debugger/types", + "//jslibs/hooks", "@npm//@types/react", "@npm//@types/react-dom", "@npm//@types/redux", "@npm//react", + "@npm//chart.js", "@npm//react-dom", "@npm//redux", ], @@ -39,9 +58,15 @@ rollup_bundle( entry_point = "page.tsx", format = "amd", deps = [ - ":devtool", + ":bundled_devtool", + "//debugger/devtool/comms", + "//debugger/devtool/jslibs", + "//debugger/devtool/scenes", + "//debugger/devtool/static", + "//debugger/types", + "//jslibs/hooks", + "@npm//chart.js", "@npm//react", "@npm//react-dom", - "@npm//redux", ], ) diff --git a/debugger/devtool/Render.tsx b/debugger/devtool/Render.tsx new file mode 100644 index 000000000..b2d8790c4 --- /dev/null +++ b/debugger/devtool/Render.tsx @@ -0,0 +1,28 @@ +import { useStore2 } from '../../jslibs/hooks/useStore2' +import React, { useCallback } from 'react' +import { commsStore } from './comms/store' +import { GlobalChrome } from '../types/chrome' +import { LineChart } from './comms/chart' + +declare var chrome: GlobalChrome + +export function Render(props: { panelWindow: Window }) { + const test = useCallback(() => { + chrome.devtools.inspectedWindow.eval(`window.postMessage( + { + name: '[dcl-debugger:panel] Pong!', + source: 'dcl-debugger', + }, + '*' + )`) + }, []) + const [state] = useStore2(commsStore) + return ( +
+
Render 5
+
{JSON.stringify(state, null, 2)}
+ + +
+ ) +} diff --git a/debugger/devtool/comms/BUILD.bazel b/debugger/devtool/comms/BUILD.bazel new file mode 100644 index 000000000..d4eaa7405 --- /dev/null +++ b/debugger/devtool/comms/BUILD.bazel @@ -0,0 +1,24 @@ +package(default_visibility = ["//visibility:public"]) + +load("@npm_bazel_typescript//:index.bzl", "ts_library") + +ts_library( + name = "comms", + srcs = glob( + include = [ + "*.ts", + "*.tsx", + ], + ), + module_name = "@dcl/debugger/devtool/comms", + deps = [ + "//debugger/devtool/jslibs", + "//debugger/types", + "//jslibs/hooks", + "@npm//redux", + "@npm//react", + "@npm//@types/react", + "@npm//chart.js", + "@npm//@types/chart.js", + ], +) diff --git a/debugger/devtool/comms/chart.tsx b/debugger/devtool/comms/chart.tsx new file mode 100644 index 000000000..4045177b5 --- /dev/null +++ b/debugger/devtool/comms/chart.tsx @@ -0,0 +1,119 @@ +import Chart from 'chart.js' +import React, { useEffect, useLayoutEffect, useState } from 'react' +import { useStore2 } from '../../../jslibs/hooks/useStore2' +import { getCommsStore } from './store' + +function getContextFromCanvas(panelWindow: Window) { + const document = panelWindow.document + if (!document) { + return + } + const canvas = panelWindow.document.getElementById('canvas') as HTMLCanvasElement + if (canvas) { + return canvas.getContext('2d') + } +} + +export function LineChart(props: { panelWindow: Window }) { + const [state] = useStore2(getCommsStore()) + const [context, setContext] = useState(null as CanvasRenderingContext2D | null) + useEffect(() => { + if (!context) { + const tryContext = getContextFromCanvas(props.panelWindow) + if (tryContext) { + setContext(tryContext) + } + } + }) + const [myLine, setMyLine] = useState(null as Chart | null) + useEffect(() => { + if (context && !myLine) { + setMyLine(new Chart(context, initialConfig)) + } + }, [context, myLine, setMyLine]) + const [configChangeRequests, setChangeRequests] = useState([]) + useLayoutEffect(() => { + if (myLine && configChangeRequests.length) { + for (let change of configChangeRequests) { + change(initialConfig) + } + setChangeRequests([]) + myLine.update() + } + }, [configChangeRequests, myLine, setChangeRequests]) + return ( + + ) +} + +export var MONTHS = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', +] +var initialConfig = { + type: 'line', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], + datasets: [ + { + label: 'My First dataset', + labels: MONTHS, + backgroundColor: '#ffffff', + borderColor: '#ff0000', + data: [0.1, 0.2, 0.3, 0.25, 0.35, 0.5, 0.7], + fill: false, + }, + { + label: 'My Second dataset', + labels: MONTHS, + fill: false, + backgroundColor: '#0000ff', + borderColor: '#0000ff', + data: [0.15, 0.12, 0.26, 0.37, 0.29, 0.4, 0.65], + }, + ], + }, + options: { + responsive: true, + title: { + display: true, + text: 'Chart.js Line Chart', + }, + scales: { + xAxes: [ + { + display: true, + scaleLabel: { + display: true, + labelString: 'Month', + }, + }, + ], + yAxes: [ + { + display: true, + scaleLabel: { + display: true, + labelString: 'Value', + }, + }, + ], + }, + }, +} diff --git a/debugger/devtool/comms/reducer.ts b/debugger/devtool/comms/reducer.ts new file mode 100644 index 000000000..e30b23806 --- /dev/null +++ b/debugger/devtool/comms/reducer.ts @@ -0,0 +1,30 @@ +import { + CommsState, + COMMS_REPORT, + COMMS_DISCONNECTED, + ReportAction, + INITAL_COMMS_STATE, + DisconnectedAction, +} from './types' + +export function CommsReducer(state: CommsState, action: ReportAction | DisconnectedAction) { + if (!action) { + if (!state) { + return INITAL_COMMS_STATE + } + return state + } + if (!state) { + return CommsReducer(INITAL_COMMS_STATE, action) + } + switch (action.type) { + case COMMS_DISCONNECTED: + return {} + case COMMS_REPORT: + return { + ...action.payload, + history: [action.payload, ...(state.history || [])].filter((_, index) => index < 10), + } + } + return state +} diff --git a/debugger/devtool/comms/setup.ts b/debugger/devtool/comms/setup.ts index 2808b06a2..5625800a4 100644 --- a/debugger/devtool/comms/setup.ts +++ b/debugger/devtool/comms/setup.ts @@ -1,6 +1,7 @@ -import type { GlobalChrome, DevToolConnection } from 'dcl/debugger/types/chrome' -import { getCommsStore, COMMS_REPORT } from './store' import { clientLog } from '../jslibs/clientLog' +import type { DevToolConnection, GlobalChrome } from '../../types/chrome' +import { getCommsStore } from './store' +import { COMMS_REPORT, COMMS_DISCONNECTED } from './types' export declare var chrome: GlobalChrome export function setupComms(connection: DevToolConnection) { @@ -37,3 +38,7 @@ export function setupComms(connection: DevToolConnection) { } }) } + +export function resetComms() { + getCommsStore().dispatch({ type: COMMS_DISCONNECTED }) +} diff --git a/debugger/devtool/comms/store.ts b/debugger/devtool/comms/store.ts index 1e56c7390..6f80f29f3 100644 --- a/debugger/devtool/comms/store.ts +++ b/debugger/devtool/comms/store.ts @@ -1,27 +1,6 @@ -import { AnyAction, createStore } from 'redux' +import { createStore } from 'redux' +import { CommsReducer } from './reducer' -export const COMMS_REPORT = '[Comms] Report' -export type CommsReport = typeof COMMS_REPORT -export type CommsState = {} -export type ReportAction = { type: CommsReport; payload: CommsState } - -export const INITAL_COMMS_STATE = {} -export function CommsReducer(state: CommsState, action: ReportAction | AnyAction) { - if (!action) { - if (!state) { - return INITAL_COMMS_STATE - } - return state - } - if (!state) { - return CommsReducer(INITAL_COMMS_STATE, action) - } - switch (action.type) { - case COMMS_REPORT: - return action.payload - } - return state -} export const commsStore: any = createStore(CommsReducer) export function getCommsStore(): any { diff --git a/debugger/devtool/comms/types.ts b/debugger/devtool/comms/types.ts new file mode 100644 index 000000000..825dca7d0 --- /dev/null +++ b/debugger/devtool/comms/types.ts @@ -0,0 +1,20 @@ +export const COMMS_REPORT = '[Comms] Report' +export const COMMS_DISCONNECTED = '[Comms] Disconnected' + +export type CommsReport = typeof COMMS_REPORT +export type CommsDisconnected = typeof COMMS_DISCONNECTED + +export type CommsState = { + history?: any[] +} + +export const INITAL_COMMS_STATE: CommsState = {} + +export type ReportAction = { + type: CommsReport + payload: CommsState +} + +export type DisconnectedAction = { + type: CommsDisconnected +} diff --git a/debugger/devtool/jslibs/BUILD.bazel b/debugger/devtool/jslibs/BUILD.bazel new file mode 100644 index 000000000..df7a593b8 --- /dev/null +++ b/debugger/devtool/jslibs/BUILD.bazel @@ -0,0 +1,18 @@ +package(default_visibility = ["//visibility:public"]) + +load("@npm_bazel_typescript//:index.bzl", "ts_library") + +ts_library( + name = "jslibs", + srcs = glob( + include = [ + "*.ts", + ], + ), + module_name = "@dcl/debugger/devtool/jslibs", + deps = [ + "//debugger/types", + "//jslibs/hooks", + "@npm//redux", + ], +) diff --git a/debugger/devtool/jslibs/clientLog.ts b/debugger/devtool/jslibs/clientLog.ts index c893203e3..da2ac792a 100644 --- a/debugger/devtool/jslibs/clientLog.ts +++ b/debugger/devtool/jslibs/clientLog.ts @@ -5,6 +5,5 @@ export function clientLog(...messages: (string | any)[]) { const str = `console.log(\`${ messages.map((_) => (typeof _ === 'string' ? _ : JSON.stringify(_))).join('`, `') + '`' })` - console.log(str) chrome.devtools.inspectedWindow.eval(str) } diff --git a/debugger/devtool/page.tsx b/debugger/devtool/page.tsx index 90500e2d2..ef389e2e7 100644 --- a/debugger/devtool/page.tsx +++ b/debugger/devtool/page.tsx @@ -1,58 +1,50 @@ -import type { GlobalChrome } from 'dcl/debugger/types/chrome' -import React, { useCallback } from 'react' +import React from 'react' import ReactDOM from 'react-dom' -import { setupComms } from './comms/setup' -import { commsStore } from './comms/store' -import { useStore2 } from './jslibs/useStore2' +import type { GlobalChrome } from '../types/chrome' +import { setupComms, resetComms } from './comms/setup' import { clientLog } from './jslibs/clientLog' -declare const chrome: GlobalChrome +import { Render } from './Render' +export declare const chrome: GlobalChrome -/** - * Initialize the connection - */ -export const backgroundPageConnection = chrome.runtime.connect({ - name: 'dcl-debugger-page', -}) -/** - * Send the first message to the background page - */ -backgroundPageConnection.postMessage({ - name: 'init', - tabId: chrome.devtools.inspectedWindow.tabId, -}) +const FILE_LOCAL_VERBOSE_BUGS = false -setupComms(backgroundPageConnection) +function setupBackground() { + /** + * Initialize the connection + */ + const backgroundPageConnection = chrome.runtime.connect({ + name: 'dcl-debugger-page', + }) + /** + * Send the first message to the background page + */ + backgroundPageConnection.postMessage({ + name: 'init', + tabId: chrome.devtools.inspectedWindow.tabId, + }) -/** - * Create a panel and continue there - */ -chrome.devtools.panels.create('DCL Tools', 'static/icon.png', 'static/panel.html', function (panel) { - panel.onShown.addListener(function (panelWin: Window) { - ReactDOM.render(, panelWin.document.getElementById('root')) - backgroundPageConnection.onMessage.addListener(function (message: any) { - clientLog(`[dcl-debugger:panel] received message`, message) - }) + backgroundPageConnection.onDisconnect.addListener(() => { + resetComms() }) -}) + setupComms(backgroundPageConnection) -function Render() { - const test = useCallback(() => { - chrome.devtools.inspectedWindow.eval( - `window.postMessage( - { - name: '[dcl-debugger:panel] Pong!', - source: 'dcl-debugger', - }, - '*' - )` - ) - }, []) - const [state] = useStore2(commsStore) - return ( -
-
Render 5
-
{JSON.stringify(state, null, 2)}
- -
- ) + /** + * Create a panel and continue there + */ + chrome.devtools.panels.create('DCL Tools', 'static/icon.png', 'static/panel.html', function (panel) { + panel.onShown.addListener(function (panelWin: Window) { + ReactDOM.render(, panelWin.document.getElementById('root')) + backgroundPageConnection.onDisconnect.addListener(function (message: any) { + ReactDOM.render(

Disconnected

, panelWin.document.getElementById('root')) + }) + backgroundPageConnection.onMessage.addListener(function (message: any) { + if (typeof message === 'object' && message.name === '[dcl-debugger:panel] Pong!') { + clientLog(`📬 Messaging back & forth between dcl-debugger and the client successfully established 👌`) + } + FILE_LOCAL_VERBOSE_BUGS && clientLog(`[dcl-debugger:panel] received message`, message) + }) + }) + }) } + +setupBackground() diff --git a/debugger/devtool/rollup.config.js b/debugger/devtool/rollup.config.js index a1ad9bb40..9f38243a2 100644 --- a/debugger/devtool/rollup.config.js +++ b/debugger/devtool/rollup.config.js @@ -1,5 +1,4 @@ module.exports = { - external: [ - 'react', 'redux', 'react-dom' - ] -} \ No newline at end of file + external: ['react', 'redux', 'react-dom', 'chart.js', 'rxjs', 'rxjs/operators'], + inlineDynamicImports: true, +} diff --git a/debugger/devtool/scenes/BUILD.bazel b/debugger/devtool/scenes/BUILD.bazel new file mode 100644 index 000000000..b6ce33826 --- /dev/null +++ b/debugger/devtool/scenes/BUILD.bazel @@ -0,0 +1,18 @@ +package(default_visibility = ["//visibility:public"]) + +load("@npm_bazel_typescript//:index.bzl", "ts_library") + +ts_library( + name = "scenes", + srcs = glob( + include = [ + "*.ts", + ], + ), + module_name = "@dcl/debugger/devtool/scenes", + deps = [ + "//debugger/types", + "//jslibs/hooks", + "@npm//redux", + ], +) diff --git a/debugger/devtool/static/BUILD.bazel b/debugger/devtool/static/BUILD.bazel new file mode 100644 index 000000000..8cb468b05 --- /dev/null +++ b/debugger/devtool/static/BUILD.bazel @@ -0,0 +1,10 @@ +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "static", + srcs = glob( + include = [ + "*", + ], + ), +) diff --git a/debugger/devtool/static/panel.html b/debugger/devtool/static/panel.html index fb6cd7970..4fa6cafd5 100644 --- a/debugger/devtool/static/panel.html +++ b/debugger/devtool/static/panel.html @@ -1,11 +1,25 @@ - -
+
+
+ +
diff --git a/debugger/extension/content.ts b/debugger/extension/content.ts index 1f0bde216..efac063c3 100644 --- a/debugger/extension/content.ts +++ b/debugger/extension/content.ts @@ -1,41 +1,3 @@ -type GlobalChrome = { - devtools: { - panels: { - create: (name: string, icon: string, page: string, code: Function) => void - } - inspectedWindow: Window & { tabId: number } - } - runtime: { - onConnect: { - addListener: (handler: unknown) => EventListener - } - onMessage: { - addListener: (handler: unknown) => EventListener - } - connect: (what: { name: string }) => WebSocketLike - sendMessage: (what: unknown) => void - } - tabs: { - executeScript: (tab: number, data: unknown) => void - } -} - -type WebSocketLike = { - onMessage: { - addListener: (handler: unknown) => EventListener - removeListener: (listener: unknown) => void - } - onDisconnect: { - addListener: (handler: unknown) => EventListener - removeListener: (listener: unknown) => void - } - postMessage: Function -} - -type DevToolConnection = WebSocketLike - -declare const chrome: GlobalChrome - window.addEventListener('message', function (event) { const EXTENSION_NAMESPACE = 'dcl-debugger' @@ -49,7 +11,7 @@ window.addEventListener('message', function (event) { return } try { - chrome.runtime.sendMessage(message) + ;(window as any).chrome.runtime.sendMessage(message) } catch (e) { console.log(`>> context probably invalidated! waiting re-insert`) } diff --git a/debugger/extension/manifest.json b/debugger/extension/manifest.json index e36108f4a..ce577563f 100644 --- a/debugger/extension/manifest.json +++ b/debugger/extension/manifest.json @@ -1,6 +1,6 @@ { "manifest_version": 2, - "name": "dcl-toolkit", + "name": "dcl-debugger", "version": "0.0.1", "description": "Inspect the Decentraland Client and Scenes", "icons": { "16": "static/icon16.png", "48": "static/icon48.png", "128": "static/icon128.png" }, @@ -15,7 +15,7 @@ "minimum_chrome_version": "10.0", "devtools_page": "static/devtools.html", "background": { - "scripts": ["js/background.js"], + "scripts": ["js/background.js", "static/vendor/hotreload.js"], "persistent": false }, "permissions": [ diff --git a/debugger/extension/static/vendor/chartsjs.production.min.js b/debugger/extension/static/chart.js similarity index 100% rename from debugger/extension/static/vendor/chartsjs.production.min.js rename to debugger/extension/static/chart.js diff --git a/debugger/extension/static/start.js b/debugger/extension/static/start.js index 0944b2ac0..e10ae8311 100644 --- a/debugger/extension/static/start.js +++ b/debugger/extension/static/start.js @@ -5,7 +5,9 @@ requirejs.config({ // Require.js appends `.js` extension for you react: '../static/vendor/react.production.min', redux: '../static/vendor/redux.production.min', - 'chart.js': '../static/vendor/chartsjs.production.min', + 'chart.js': '../static/vendor/chartjs.production.min', + 'rxjs': '../static/vendor/rxjs.production.min', + 'rxjs/operators': '../static/vendor/rxjs.production.min', 'react-dom': '../static/vendor/react-dom.production.min', '@dcl/debugger/devtool': '.', '@dcl/debugger/background': '.', diff --git a/debugger/extension/static/vendor/hotreload.js b/debugger/extension/static/vendor/hotreload.js new file mode 100644 index 000000000..66457f9d6 --- /dev/null +++ b/debugger/extension/static/vendor/hotreload.js @@ -0,0 +1,43 @@ +const filesInDirectory = (dir) => + new Promise((resolve) => + dir.createReader().readEntries((entries) => + Promise.all( + entries + .filter((e) => e.name[0] !== '.') + .map((e) => (e.isDirectory ? filesInDirectory(e) : new Promise((resolve) => e.file(resolve)))) + ) + .then((files) => [].concat(...files)) + .then(resolve) + ) + ) + +const timestampForFilesInDirectory = (dir) => + filesInDirectory(dir).then((files) => files.map((f) => f.name + f.lastModifiedDate).join()) + +const reload = () => { + chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { + // NB: see https://github.com/xpl/crx-hotreload/issues/5 + + if (tabs[0]) { + chrome.tabs.reload(tabs[0].id) + } + + chrome.runtime.reload() + }) +} + +const watchChanges = (dir, lastTimestamp) => { + timestampForFilesInDirectory(dir).then((timestamp) => { + if (!lastTimestamp || lastTimestamp === timestamp) { + setTimeout(() => watchChanges(dir, timestamp), 1000) // retry after 1s + } else { + reload() + } + }) +} + +chrome.management.getSelf((self) => { + if (self.installType === 'development') { + chrome.runtime.getPackageDirectoryEntry((dir) => watchChanges(dir)) + } +}) diff --git a/debugger/extension/static/vendor/rxjs.production.min.js b/debugger/extension/static/vendor/rxjs.production.min.js new file mode 100644 index 000000000..fe5b40d1f --- /dev/null +++ b/debugger/extension/static/vendor/rxjs.production.min.js @@ -0,0 +1,267 @@ +/** + @license + Apache License 2.0 https://github.com/ReactiveX/RxJS/blob/master/LICENSE.txt + **/ +/** + @license + Apache License 2.0 https://github.com/ReactiveX/RxJS/blob/master/LICENSE.txt + **/ +/* + ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. +*****************************************************************************/ +(function(k,h){"object"===typeof exports&&"undefined"!==typeof module?h(exports):"function"===typeof define&&define.amd?define("rxjs",["exports"],h):h(k.rxjs={})})(this,function(k){function h(c,a){function b(){this.constructor=c}Ob(c,a);c.prototype=null===a?Object.create(a):(b.prototype=a.prototype,new b)}function T(c){return"function"===typeof c}function U(c){setTimeout(function(){throw c;})}function Ja(c){Error.call(this);this.message=c?c.length+" errors occurred during unsubscription:\n"+c.map(function(a, + b){return b+1+") "+a.toString()}).join("\n "):"";this.name="UnsubscriptionError";this.errors=c;return this}function Ka(c){return c.reduce(function(a,b){return a.concat(b instanceof aa?b.errors:b)},[])}function pa(c){for(;c;){var a=c.destination,b=c.isStopped;if(c.closed||b)return!1;c=a&&a instanceof m?a:null}return!0}function E(){}function qa(){for(var c=[],a=0;a=b.length?b[0]:b);g.complete()}]))}catch(x){pa(g)?g.error(x):console.warn(x)}}return g.subscribe(d)})}}function Tb(c){var a=this,b=c.args,d=c.subscriber;c=c.params;var e=c.callbackFunc,f=c.context,g=c.scheduler,l=c.subject;if(!l){l=c.subject=new V;try{e.apply(f,b.concat([function(){for(var b=[],c=0;c=b.length?b[0]:b,subject:l}))}]))}catch(v){l.error(v)}}this.add(l.subscribe(d))}function Ub(c){var a=c.subject;a.next(c.value);a.complete()}function Qa(c,a,b){if(a)if(z(a))b=a;else return function(){for(var d=[],e=0;e=b.length?b[0]:b),g.complete())}]))}catch(x){pa(g)?g.error(x):console.warn(x)}}return g.subscribe(d)})}}function Vb(c){var a=this,b=c.params,d=c.subscriber;c=c.context;var e=b.callbackFunc,f=b.args,g=b.scheduler,l=b.subject;if(!l){l= + b.subject=new V;try{e.apply(c,f.concat([function(){for(var b=[],c=0;c=b.length?b[0]:b,subject:l}))}]))}catch(v){this.add(g.schedule(Ra,0,{err:v,subject:l}))}}this.add(l.subscribe(d))}function Wb(c){var a=c.subject;a.next(c.value);a.complete()}function Ra(c){c.subject.error(c.err)}function Sa(c){return!!c&&"function"!==typeof c.subscribe&&"function"===typeof c.then}function p(c, + a,b,d,e){void 0===e&&(e=new J(c,b,d));if(!e.closed)return Ta(a)(e)}function Xb(c,a){return a?new n(function(b){var d=new t;d.add(a.schedule(function(){return c.then(function(c){d.add(a.schedule(function(){b.next(c);d.add(a.schedule(function(){return b.complete()}))}))},function(c){d.add(a.schedule(function(){return b.error(c)}))})}));return d}):new n(Ua(c))}function Yb(c,a){if(!c)throw Error("Iterable cannot be null");return a?new n(function(b){var d=new t,e;d.add(function(){e&&"function"===typeof e.return&& + e.return()});d.add(a.schedule(function(){e=c[I]();d.add(a.schedule(function(){if(!b.closed){var a,c;try{var d=e.next();a=d.value;c=d.done}catch(v){b.error(v);return}c?b.complete():(b.next(a),this.schedule())}}))}));return d}):new n(Va(c))}function Zb(c,a){return a?new n(function(b){var d=new t;d.add(a.schedule(function(){var e=c[W]();d.add(e.subscribe({next:function(c){d.add(a.schedule(function(){return b.next(c)}))},error:function(c){d.add(a.schedule(function(){return b.error(c)}))},complete:function(){d.add(a.schedule(function(){return b.complete()}))}}))})); + return d}):new n(Wa(c))}function K(c,a){if(!a)return c instanceof n?c:new n(Ta(c));if(null!=c){if(c&&"function"===typeof c[W])return Zb(c,a);if(Sa(c))return Xb(c,a);if(Xa(c))return H(c,a);if(c&&"function"===typeof c[I]||"string"===typeof c)return Yb(c,a)}throw new TypeError((null!==c&&typeof c||c)+" is not observable");}function P(c,a,b){void 0===b&&(b=Number.POSITIVE_INFINITY);if("function"===typeof a)return function(d){return d.pipe(P(function(b,d){return K(c(b,d)).pipe(C(function(c,e){return a(b, + c,d,e)}))},b))};"number"===typeof a&&(b=a);return function(a){return a.lift(new $b(c,b))}}function wa(c){void 0===c&&(c=Number.POSITIVE_INFINITY);return P(N,c)}function Ya(){return wa(1)}function L(){for(var c=[],a=0;a=c.count?d.complete():(d.next(a),d.closed||(c.index=b+1,c.start=a+1,this.schedule(c)))}function eb(c,a,b){void 0===c&&(c=0);var d=-1;X(a)?d=1>Number(a)&&1||Number(a):z(a)&&(b= + a);z(b)||(b=y);return new n(function(a){var e=X(c)?c:+c-b.now();return b.schedule(gc,e,{index:0,period:d,subscriber:a})})}function gc(c){var a=c.index,b=c.period,d=c.subscriber;d.next(a);if(!d.closed){if(-1===b)return d.complete();c.index=a+1;this.schedule(c,b)}}function fb(){for(var c=[],a=0;a=a?this.connection=null:(b._refCount=a-1,1=a?this.connection=null:(b._refCount=a-1,1b?1:b;d._windowTime=1>a?1:a;a===Number.POSITIVE_INFINITY?(d._infiniteTimeWindow=!0,d.next=d.nextInfiniteTimeWindow):d.next=d.nextTimeWindow;return d}h(a,c);a.prototype.nextInfiniteTimeWindow=function(b){var a=this._events;a.push(b);a.length>this._bufferSize&&a.shift();c.prototype.next.call(this, + b)};a.prototype.nextTimeWindow=function(b){this._events.push(new Zc(this._getNow(),b));this._trimBufferThenGetEvents();c.prototype.next.call(this,b)};a.prototype._subscribe=function(b){var a=this._infiniteTimeWindow,c=a?this._events:this._trimBufferThenGetEvents(),f=this.scheduler,g=c.length,l;if(this.closed)throw new F;this.isStopped||this.hasError?l=t.EMPTY:(this.observers.push(b),l=new ub(this,b));f&&b.add(b=new Ab(b,f));if(a)for(a=0;aa&&(l=Math.max(l,g-a));0a.index?1:-1:b.delay>a.delay?1:-1};return a}(fa);O.prototype=Object.create(Error.prototype);Oa.prototype=Object.create(Error.prototype);var ca=Oa;va.prototype=Object.create(Error.prototype);var Sb=function(){function c(a,b){this.project=a;this.thisArg=b}c.prototype.call=function(a, + b){return b.subscribe(new dd(a,this.project,this.thisArg))};return c}(),dd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.project=a;b.count=0;b.thisArg=e||b;return b}h(a,c);a.prototype._next=function(b){var a;try{a=this.project.call(this.thisArg,b,this.count++)}catch(e){this.destination.error(e);return}this.destination.next(a)};return a}(m),q=function(c){function a(){return null!==c&&c.apply(this,arguments)||this}h(a,c);a.prototype.notifyNext=function(b,a,c,f,g){this.destination.next(a)}; + a.prototype.notifyError=function(b,a){this.destination.error(b)};a.prototype.notifyComplete=function(b){this.destination.complete()};return a}(m),J=function(c){function a(b,a,e){var d=c.call(this)||this;d.parent=b;d.outerValue=a;d.outerIndex=e;d.index=0;return d}h(a,c);a.prototype._next=function(b){this.parent.notifyNext(this.outerValue,b,this.outerIndex,this.index++,this)};a.prototype._error=function(b){this.parent.notifyError(b,this);this.unsubscribe()};a.prototype._complete=function(){this.parent.notifyComplete(this); + this.unsubscribe()};return a}(m),Ua=function(c){return function(a){c.then(function(b){a.closed||(a.next(b),a.complete())},function(b){return a.error(b)}).then(null,U);return a}},I;I="function"===typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";var Va=function(c){return function(a){var b=c[I]();do{var d=b.next();if(d.done){a.complete();break}a.next(d.value);if(a.closed)break}while(1);"function"===typeof b.return&&a.add(function(){b.return&&b.return()});return a}},Wa=function(c){return function(a){var b= + c[W]();if("function"!==typeof b.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return b.subscribe(a)}},Xa=function(c){return c&&"number"===typeof c.length&&"function"!==typeof c},Ta=function(c){if(c instanceof n)return function(a){if(c._isScalar)a.next(c.value),a.complete();else return c.subscribe(a)};if(c&&"function"===typeof c[W])return Wa(c);if(Xa(c))return Na(c);if(Sa(c))return Ua(c);if(c&&"function"===typeof c[I])return Va(c);throw new TypeError("You provided "+ + (null!==c&&"object"===typeof c?"an invalid object":"'"+c+"'")+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.");},Db={},Ga=function(){function c(a){this.resultSelector=a}c.prototype.call=function(a,b){return b.subscribe(new ed(a,this.resultSelector))};return c}(),ed=function(c){function a(b,a){b=c.call(this,b)||this;b.resultSelector=a;b.active=0;b.values=[];b.observables=[];return b}h(a,c);a.prototype._next=function(b){this.values.push(Db);this.observables.push(b)}; + a.prototype._complete=function(){var b=this.observables,a=b.length;if(0===a)this.destination.complete();else{this.toRespond=this.active=a;for(var c=0;cthis.index};c.prototype.hasCompleted=function(){return this.array.length===this.index};return c}(),kd=function(c){function a(b,a,e){b=c.call(this,b)||this;b.parent=a;b.observable=e;b.stillUnsubscribed=!0;b.buffer=[];b.isComplete=!1;return b}h(a,c);a.prototype[I]=function(){return this};a.prototype.next=function(){var b=this.buffer;return 0===b.length&&this.isComplete?{value:null,done:!0}:{value:b.shift(),done:!1}};a.prototype.hasValue=function(){return 0< + this.buffer.length};a.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete};a.prototype.notifyComplete=function(){0e;if(b.timespanOnly)b.add(f.closeAction=g.schedule(ib,a,{subscriber:b,context:f,bufferTimeSpan:a}));else{var d={bufferTimeSpan:a,bufferCreationInterval:e,subscriber:b,scheduler:g};b.add(f.closeAction=g.schedule(jb,a,{subscriber:b, + context:f}));b.add(g.schedule(ic,e,d))}return b}h(a,c);a.prototype._next=function(b){for(var a=this.contexts,c=a.length,f,g=0;g=c[0].time-f.now();)c.shift().notification.observe(g);0this.total)throw new O;}c.prototype.call=function(a,b){return b.subscribe(new Ud(a,this.total))};return c}(),Ud=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.count=0;return b}h(a,c);a.prototype._next=function(b){var a=this.total,c=++this.count; + c<=a&&(this.destination.next(b),c===a&&(this.destination.complete(),this.unsubscribe()))};return a}(m),Wd=function(){function c(a,b,c){this.predicate=a;this.thisArg=b;this.source=c}c.prototype.call=function(a,b){return b.subscribe(new Vd(a,this.predicate,this.thisArg,this.source))};return c}(),Vd=function(c){function a(b,a,e,f){b=c.call(this,b)||this;b.predicate=a;b.thisArg=e;b.source=f;b.index=0;b.thisArg=e||b;return b}h(a,c);a.prototype.notifyComplete=function(b){this.destination.next(b);this.destination.complete()}; + a.prototype._next=function(b){var a=!1;try{a=this.predicate.call(this.thisArg,b,this.index++,this.source)}catch(e){this.destination.error(e);return}a||this.notifyComplete(!1)};a.prototype._complete=function(){this.notifyComplete(!0)};return a}(m),Yd=function(){function c(){}c.prototype.call=function(a,b){return b.subscribe(new Xd(a))};return c}(),Xd=function(c){function a(b){b=c.call(this,b)||this;b.hasCompleted=!1;b.hasSubscription=!1;return b}h(a,c);a.prototype._next=function(b){this.hasSubscription|| + (this.hasSubscription=!0,this.add(p(this,b)))};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete()};a.prototype.notifyComplete=function(b){this.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(q),qc=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new Zd(a,this.project))};return c}(),Zd=function(c){function a(b,a){b=c.call(this,b)||this;b.project=a;b.hasSubscription= + !1;b.hasCompleted=!1;b.index=0;return b}h(a,c);a.prototype._next=function(b){this.hasSubscription||this.tryNext(b)};a.prototype.tryNext=function(b){var a,c=this.index++;try{a=this.project(b,c)}catch(f){this.destination.error(f);return}this.hasSubscription=!0;this._innerSub(a,b,c)};a.prototype._innerSub=function(b,a,c){var d=new J(this,void 0,void 0);this.destination.add(d);p(this,b,a,c,d)};a.prototype._complete=function(){this.hasCompleted=!0;this.hasSubscription||this.destination.complete();this.unsubscribe()}; + a.prototype.notifyNext=function(b,a,c,f,g){this.destination.next(a)};a.prototype.notifyError=function(b){this.destination.error(b)};a.prototype.notifyComplete=function(b){this.destination.remove(b);this.hasSubscription=!1;this.hasCompleted&&this.destination.complete()};return a}(q),ae=function(){function c(a,b,c){this.project=a;this.concurrent=b;this.scheduler=c}c.prototype.call=function(a,b){return b.subscribe(new $d(a,this.project,this.concurrent,this.scheduler))};return c}(),$d=function(c){function a(b, + a,e,f){b=c.call(this,b)||this;b.project=a;b.concurrent=e;b.scheduler=f;b.index=0;b.active=0;b.hasCompleted=!1;ethis.total)throw new O;}c.prototype.call=function(a,b){return b.subscribe(new ie(a,this.total))};return c}(),ie=function(c){function a(b,a){b=c.call(this,b)||this;b.total=a;b.ring=[];b.count=0;return b}h(a,c);a.prototype._next=function(b){var a=this.ring,c=this.total,f= + this.count++;a.length=this.total?this.total:this.count,f=this.ring,g=0;gthis.total&&this.destination.next(a)};return a}(m),Ne=function(){function c(a){this._skipCount= + a;if(0>this._skipCount)throw new O;}c.prototype.call=function(a,b){return 0===this._skipCount?b.subscribe(new m(a)):b.subscribe(new Me(a,this._skipCount))};return c}(),Me=function(c){function a(a,d){a=c.call(this,a)||this;a._skipCount=d;a._count=0;a._ring=Array(d);return a}h(a,c);a.prototype._next=function(a){var b=this._skipCount,c=this._count++;if(cd)b.delayTime=0;e&&"function"===typeof e.schedule||(b.scheduler=ma);return b}h(a,c);a.create=function(b,c,e){void 0===c&&(c=0);void 0===e&&(e=ma);return new a(b,c,e)};a.dispatch=function(a){return this.add(a.source.subscribe(a.subscriber))};a.prototype._subscribe=function(b){return this.scheduler.schedule(a.dispatch,this.delayTime,{source:this.source,subscriber:b})};return a}(n),Te=function(){function c(a, + b){this.scheduler=a;this.delay=b}c.prototype.call=function(a,b){return(new Se(b,this.delay,this.scheduler)).subscribe(a)};return c}(),Cc=function(){function c(a){this.project=a}c.prototype.call=function(a,b){return b.subscribe(new Ue(a,this.project))};return c}(),Ue=function(c){function a(a,d){a=c.call(this,a)||this;a.project=d;a.index=0;return a}h(a,c);a.prototype._next=function(a){var b,c=this.index++;try{b=this.project(a,c)}catch(f){this.destination.error(f);return}this._innerSub(b,a,c)};a.prototype._innerSub= + function(a,c,e){var b=this.innerSubscription;b&&b.unsubscribe();b=new J(this,void 0,void 0);this.destination.add(b);this.innerSubscription=p(this,a,c,e,b)};a.prototype._complete=function(){var a=this.innerSubscription;a&&!a.closed||c.prototype._complete.call(this);this.unsubscribe()};a.prototype._unsubscribe=function(){this.innerSubscription=null};a.prototype.notifyComplete=function(a){this.destination.remove(a);this.innerSubscription=null;this.isStopped&&c.prototype._complete.call(this)};a.prototype.notifyNext= + function(a,c,e,f,g){this.destination.next(c)};return a}(q),We=function(){function c(a){this.notifier=a}c.prototype.call=function(a,b){a=new Ve(a);var c=p(a,this.notifier);return c&&!a.seenValue?(a.add(c),b.subscribe(a)):a};return c}(),Ve=function(c){function a(a){a=c.call(this,a)||this;a.seenValue=!1;return a}h(a,c);a.prototype.notifyNext=function(a,c,e,f,g){this.seenValue=!0;this.complete()};a.prototype.notifyComplete=function(){};return a}(q),Ye=function(){function c(a,b){this.predicate=a;this.inclusive= + b}c.prototype.call=function(a,b){return b.subscribe(new Xe(a,this.predicate,this.inclusive))};return c}(),Xe=function(c){function a(a,d,e){a=c.call(this,a)||this;a.predicate=d;a.inclusive=e;a.index=0;return a}h(a,c);a.prototype._next=function(a){var b=this.destination,c;try{c=this.predicate(a,this.index++)}catch(f){b.error(f);return}this.nextOrComplete(a,c)};a.prototype.nextOrComplete=function(a,c){var b=this.destination;c?b.next(a):(this.inclusive&&b.next(a),b.complete())};return a}(m),Ib={leading:!0, + trailing:!1},$e=function(){function c(a,b,c){this.durationSelector=a;this.leading=b;this.trailing=c}c.prototype.call=function(a,b){return b.subscribe(new Ze(a,this.durationSelector,this.leading,this.trailing))};return c}(),Ze=function(c){function a(a,d,e,f){var b=c.call(this,a)||this;b.destination=a;b.durationSelector=d;b._leading=e;b._trailing=f;b._hasValue=!1;return b}h(a,c);a.prototype._next=function(a){this._hasValue=!0;this._sendValue=a;this._throttled||(this._leading?this.send():this.throttle(a))}; + a.prototype.send=function(){var a=this._sendValue;this._hasValue&&(this.destination.next(a),this.throttle(a));this._hasValue=!1;this._sendValue=null};a.prototype.throttle=function(a){(a=this.tryDurationSelector(a))&&this.add(this._throttled=p(this,a))};a.prototype.tryDurationSelector=function(a){try{return this.durationSelector(a)}catch(d){return this.destination.error(d),null}};a.prototype.throttlingDone=function(){var a=this._throttled,c=this._trailing;a&&a.unsubscribe();this._throttled=null;c&& + this.send()};a.prototype.notifyNext=function(a,c,e,f,g){this.throttlingDone()};a.prototype.notifyComplete=function(){this.throttlingDone()};return a}(q),bf=function(){function c(a,b,c,e){this.duration=a;this.scheduler=b;this.leading=c;this.trailing=e}c.prototype.call=function(a,b){return b.subscribe(new af(a,this.duration,this.scheduler,this.leading,this.trailing))};return c}(),af=function(c){function a(a,d,e,f,g){a=c.call(this,a)||this;a.duration=d;a.scheduler=e;a.leading=f;a.trailing=g;a._hasTrailingValue= + !1;a._trailingValue=null;return a}h(a,c);a.prototype._next=function(a){this.throttled?this.trailing&&(this._trailingValue=a,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(Dc,this.duration,{subscriber:this})),this.leading&&this.destination.next(a))};a.prototype._complete=function(){this._hasTrailingValue&&this.destination.next(this._trailingValue);this.destination.complete()};a.prototype.clearThrottle=function(){var a=this.throttled;a&&(this.trailing&&this._hasTrailingValue&& + (this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),a.unsubscribe(),this.remove(a),this.throttled=null)};return a}(m),cf=function(){return function(c,a){this.value=c;this.interval=a}}(),Ec=function(){function c(a,b,c,e){this.waitFor=a;this.absoluteTimeout=b;this.withObservable=c;this.scheduler=e}c.prototype.call=function(a,b){return b.subscribe(new df(a,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))};return c}(),df=function(c){function a(a, + d,e,f,g){a=c.call(this,a)||this;a.absoluteTimeout=d;a.waitFor=e;a.withObservable=f;a.scheduler=g;a.action=null;a.scheduleTimeout();return a}h(a,c);a.dispatchTimeout=function(a){var b=a.withObservable;a._unsubscribeAndRecycle();a.add(p(a,b))};a.prototype.scheduleTimeout=function(){var b=this.action;b?this.action=b.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(a.dispatchTimeout,this.waitFor,this))};a.prototype._next=function(a){this.absoluteTimeout||this.scheduleTimeout(); + c.prototype._next.call(this,a)};a.prototype._unsubscribe=function(){this.withObservable=this.scheduler=this.action=null};return a}(q),ef=function(){return function(c,a){this.value=c;this.timestamp=a}}(),gf=function(){function c(a){this.windowBoundaries=a}c.prototype.call=function(a,b){a=new ff(a);b=b.subscribe(a);b.closed||a.add(p(a,this.windowBoundaries));return b};return c}(),ff=function(c){function a(a){var b=c.call(this,a)||this;b.window=new u;a.next(b.window);return b}h(a,c);a.prototype.notifyNext= + function(a,c,e,f,g){this.openWindow()};a.prototype.notifyError=function(a,c){this._error(a)};a.prototype.notifyComplete=function(a){this._complete()};a.prototype._next=function(a){this.window.next(a)};a.prototype._error=function(a){this.window.error(a);this.destination.error(a)};a.prototype._complete=function(){this.window.complete();this.destination.complete()};a.prototype._unsubscribe=function(){this.window=null};a.prototype.openWindow=function(){var a=this.window;a&&a.complete();var a=this.destination, + c=this.window=new u;a.next(c)};return a}(q),jf=function(){function c(a,b){this.windowSize=a;this.startWindowEvery=b}c.prototype.call=function(a,b){return b.subscribe(new hf(a,this.windowSize,this.startWindowEvery))};return c}(),hf=function(c){function a(a,d,e){var b=c.call(this,a)||this;b.destination=a;b.windowSize=d;b.startWindowEvery=e;b.windows=[new u];b.count=0;a.next(b.windows[0]);return b}h(a,c);a.prototype._next=function(a){for(var b=0=this.maxWindowSize&&this.closeWindow(g))}};a.prototype._error=function(a){for(var b=this.windows;0c)throw new O; + var b=2<=arguments.length;return function(d){return d.pipe(Y(function(a,b){return b===c}),za(1),b?ba(a):na(function(){return new O}))}},endWith:function(){for(var c=[],a=0;a(a||0)?Number.POSITIVE_INFINITY:a;return function(d){return d.lift(new ae(c,a,b))}},filter:Y,finalize:function(c){return function(a){return a.lift(new ce(c))}},find:function(c,a){if("function"!==typeof c)throw new TypeError("predicate is not a function");return function(b){return b.lift(new Gb(c,b,!1,a))}},findIndex:function(c,a){return function(b){return b.lift(new Gb(c,b,!0,a))}},first:function(c,a){var b=2<=arguments.length; + return function(d){return d.pipe(c?Y(function(a,b){return c(a,b,d)}):N,za(1),b?ba(a):na(function(){return new ca}))}},groupBy:function(c,a,b,d){return function(e){return e.lift(new Tc(c,a,b,d))}},ignoreElements:function(){return function(c){return c.lift(new fe)}},isEmpty:function(){return function(c){return c.lift(new he)}},last:function(c,a){var b=2<=arguments.length;return function(d){return d.pipe(c?Y(function(a,b){return c(a,b,d)}):N,ha(1),b?ba(a):na(function(){return new ca}))}},map:C,mapTo:function(c){return function(a){return a.lift(new ke(c))}}, + materialize:function(){return function(c){return c.lift(new me)}},max:function(c){return ja("function"===typeof c?function(a,b){return 0b?a:b})},merge:function(){for(var c=[],a=0;ac(a,b)?a:b}:function(a,b){return ac?a.lift(new Hb(-1,a)):a.lift(new Hb(c-1,a))}},repeatWhen:function(c){return function(a){return a.lift(new we(c))}}, + retry:function(c){void 0===c&&(c=-1);return function(a){return a.lift(new ye(c,a))}},retryWhen:function(c){return function(a){return a.lift(new Ae(c,a))}},refCount:ra,sample:function(c){return function(a){return a.lift(new Ce(c))}},sampleTime:function(c,a){void 0===a&&(a=y);return function(b){return b.lift(new Ee(c,a))}},scan:ia,sequenceEqual:function(c,a){return function(b){return b.lift(new Ge(c,a))}},share:function(){return function(c){return ra()(Q(yc)(c))}},shareReplay:function(c,a,b){var d; + d=c&&"object"===typeof c?c:{bufferSize:c,windowTime:a,refCount:!1,scheduler:b};return function(a){return a.lift(zc(d))}},single:function(c){return function(a){return a.lift(new Je(c,a))}},skip:function(c){return function(a){return a.lift(new Le(c))}},skipLast:function(c){return function(a){return a.lift(new Ne(c))}},skipUntil:function(c){return function(a){return a.lift(new Pe(c))}},skipWhile:function(c){return function(a){return a.lift(new Re(c))}},startWith:function(){for(var c=[],a=0;ak?new ga(h):new ga(h,k)};a.parseMarbles=function(a,c, + e,f,g){var b=this;void 0===f&&(f=!1);void 0===g&&(g=!1);if(-1!==a.indexOf("!"))throw Error('conventional marble diagrams cannot have the unsubscription marker "!"');for(var d=a.length,h=[],k=g?a.replace(/^[ ]+/,"").indexOf("^"):a.indexOf("^"),m=-1===k?0:k*-this.frameTimeFactor,n="object"!==typeof c?function(a){return a}:function(a){return f&&c[a]instanceof Ha?c[a].messages:c[a]},p=-1,k=function(c){var d=m,f=function(a){d+=a*b.frameTimeFactor},l=void 0,k=a[c];switch(k){case " ":g||f(1);break;case "-":f(1); + break;case "(":p=m;f(1);break;case ")":p=-1;f(1);break;case "|":l=w.createComplete();f(1);break;case "^":f(1);break;case "#":l=w.createError(e||"error");f(1);break;default:if(g&&k.match(/^[0-9]$/)&&(0===c||" "===a[c-1])){var r=a.slice(c).match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /);if(r){c+=r[0].length-1;var k=parseFloat(r[1]),v=void 0;switch(r[2]){case "ms":v=k;break;case "s":v=1E3*k;break;case "m":v=6E4*k}f(v/q.frameTimeFactor);break}}l=w.createNext(n(k));f(1)}l&&h.push({frame:-1d;d++)try{b=c[d];new B.ActiveXObject(b);break}catch(r){}a=new B.ActiveXObject(b)}catch(r){throw Error("XMLHttpRequest is not supported by your browser");}}return a},crossDomain:!0,withCredentials:!1, + headers:{},method:"GET",responseType:"json",timeout:0};if("string"===typeof a)e.url=a;else for(var f in a)a.hasOwnProperty(f)&&(e[f]=a[f]);b.request=e;return b}h(a,c);a.prototype._subscribe=function(a){return new Af(a,this.request)};a.create=function(){var b=function(b){return new a(b)};b.get=Ic;b.post=Jc;b.delete=Kc;b.put=Lc;b.patch=Mc;b.getJSON=Nc;return b}();return a}(n),Af=function(c){function a(a,d){a=c.call(this,a)||this;a.request=d;a.done=!1;var b=d.headers=d.headers||{};d.crossDomain||a.getHeader(b, + "X-Requested-With")||(b["X-Requested-With"]="XMLHttpRequest");a.getHeader(b,"Content-Type")||B.FormData&&d.body instanceof B.FormData||"undefined"===typeof d.body||(b["Content-Type"]="application/x-www-form-urlencoded; charset\x3dUTF-8");d.body=a.serializeBody(d.body,a.getHeader(d.headers,"Content-Type"));a.send();return a}h(a,c);a.prototype.next=function(a){this.done=!0;var b=this.xhr,c=this.request,f=this.destination,g;try{g=new Lb(a,b,c)}catch(l){return f.error(l)}f.next(g)};a.prototype.send=function(){var a= + this.request,c=this.request,e=c.user,f=c.method,g=c.url,h=c.async,k=c.password,m=c.headers,c=c.body;try{var r=this.xhr=a.createXHR();this.setupEvents(r,a);e?r.open(f,g,h,e,k):r.open(f,g,h);h&&(r.timeout=a.timeout,r.responseType=a.responseType);"withCredentials"in r&&(r.withCredentials=!!a.withCredentials);this.setHeaders(r,m);c?r.send(c):r.send()}catch(Ac){this.error(Ac)}};a.prototype.serializeBody=function(a,c){if(!a||"string"===typeof a||B.FormData&&a instanceof B.FormData)return a;if(c){var b= + c.indexOf(";");-1!==b&&(c=c.substring(0,b))}switch(c){case "application/x-www-form-urlencoded":return Object.keys(a).map(function(b){return encodeURIComponent(b)+"\x3d"+encodeURIComponent(a[b])}).join("\x26");case "application/json":return JSON.stringify(a);default:return a}};a.prototype.setHeaders=function(a,c){for(var b in c)c.hasOwnProperty(b)&&a.setRequestHeader(b,c[b])};a.prototype.getHeader=function(a,c){for(var b in a)if(b.toLowerCase()===c.toLowerCase())return a[b]};a.prototype.setupEvents= + function(a,c){function b(a){var c=b.subscriber,d=b.progressSubscriber,e=b.request;d&&d.error(a);var f;try{f=new Mb(this,e)}catch(Ia){f=Ia}c.error(f)}function d(a){}function g(a){var b=g.subscriber,c=g.progressSubscriber,d=g.request;if(4===this.readyState){var e=1223===this.status?204:this.status,f="text"===this.responseType?this.response||this.responseText:this.response;0===e&&(e=f?200:0);if(400>e)c&&c.complete(),b.next(a),b.complete();else{c&&c.error(a);a=void 0;try{a=new oa("ajax error "+e,this, + d)}catch(vf){a=vf}b.error(a)}}}var h=c.progressSubscriber;a.ontimeout=b;b.request=c;b.subscriber=this;b.progressSubscriber=h;if(a.upload&&"withCredentials"in a){if(h){var k;k=function(a){k.progressSubscriber.next(a)};B.XDomainRequest?a.onprogress=k:a.upload.onprogress=k;k.progressSubscriber=h}var m;m=function(a){var b=m.progressSubscriber,c=m.subscriber,d=m.request;b&&b.error(a);var e;try{e=new oa("ajax error",this,d)}catch(Ia){e=Ia}c.error(e)};a.onerror=m;m.request=c;m.subscriber=this;m.progressSubscriber= + h}a.onreadystatechange=d;d.subscriber=this;d.progressSubscriber=h;d.request=c;a.onload=g;g.subscriber=this;g.progressSubscriber=h;g.request=c};a.prototype.unsubscribe=function(){var a=this.xhr;!this.done&&a&&4!==a.readyState&&"function"===typeof a.abort&&a.abort();c.prototype.unsubscribe.call(this)};return a}(m),Lb=function(){return function(c,a,b){this.originalEvent=c;this.xhr=a;this.request=b;this.status=a.status;this.responseType=a.responseType||b.responseType;this.response=sb(this.responseType, + a)}}();rb.prototype=Object.create(Error.prototype);var oa=rb,Mb=function(c,a){oa.call(this,"ajax timeout",c,a);this.name="AjaxTimeoutError";return this},Bf=Object.freeze({ajax:R.create,AjaxResponse:Lb,AjaxError:oa,AjaxTimeoutError:Mb}),Cf={url:"",deserializer:function(c){return JSON.parse(c.data)},serializer:function(c){return JSON.stringify(c)}},Nb=function(c){function a(a,d){var b=c.call(this)||this;if(a instanceof n)b.destination=d,b.source=a;else{d=b._config=Pc({},Cf);b._output=new u;if("string"=== + typeof a)d.url=a;else for(var f in a)a.hasOwnProperty(f)&&(d[f]=a[f]);if(!d.WebSocketCtor&&WebSocket)d.WebSocketCtor=WebSocket;else if(!d.WebSocketCtor)throw Error("no WebSocket constructor can be found");b.destination=new Z}return b}h(a,c);a.prototype.lift=function(b){var c=new a(this._config,this.destination);c.operator=b;c.source=this;return c};a.prototype._resetState=function(){this._socket=null;this.source||(this.destination=new Z);this._output=new u};a.prototype.multiplex=function(a,c,e){var b= + this;return new n(function(d){try{b.next(a())}catch(v){d.error(v)}var f=b.subscribe(function(a){try{e(a)&&d.next(a)}catch(x){d.error(x)}},function(a){return d.error(a)},function(){return d.complete()});return function(){try{b.next(c())}catch(v){d.error(v)}f.unsubscribe()}})};a.prototype._connectSocket=function(){var a=this,c=this._config,e=c.WebSocketCtor,f=c.protocol,g=c.url,c=c.binaryType,h=this._output,k=null;try{this._socket=k=f?new e(g,f):new e(g),c&&(this._socket.binaryType=c)}catch(r){h.error(r); + return}var n=new t(function(){a._socket=null;k&&1===k.readyState&&k.close()});k.onopen=function(b){if(a._socket){var c=a._config.openObserver;c&&c.next(b);b=a.destination;a.destination=m.create(function(b){if(1===k.readyState)try{var c=a._config.serializer;k.send(c(b))}catch(uf){a.destination.error(uf)}},function(b){var c=a._config.closingObserver;c&&c.next(void 0);b&&b.code?k.close(b.code,b.reason):h.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")); + a._resetState()},function(){var b=a._config.closingObserver;b&&b.next(void 0);k.close();a._resetState()});b&&b instanceof Z&&n.add(b.subscribe(a.destination))}else k.close(),a._resetState()};k.onerror=function(b){a._resetState();h.error(b)};k.onclose=function(b){a._resetState();var c=a._config.closeObserver;c&&c.next(b);b.wasClean?h.complete():h.error(b)};k.onmessage=function(b){try{var c=a._config.deserializer;h.next(c(b))}catch(Bc){h.error(Bc)}}};a.prototype._subscribe=function(a){var b=this,c= + this.source;if(c)return c.subscribe(a);this._socket||this._connectSocket();this._output.subscribe(a);a.add(function(){var a=b._socket;0===b._output.observers.length&&(a&&1===a.readyState&&a.close(),b._resetState())});return a};a.prototype.unsubscribe=function(){var a=this._socket;a&&1===a.readyState&&a.close();this._resetState();c.prototype.unsubscribe.call(this)};return a}(Ba),Df=Object.freeze({webSocket:function(c){return new Nb(c)},WebSocketSubject:Nb});k.operators=tf;k.testing=xf;k.ajax=Bf;k.webSocket= + Df;k.Observable=n;k.ConnectableObservable=wb;k.GroupedObservable=Ca;k.observable=W;k.Subject=u;k.BehaviorSubject=xb;k.ReplaySubject=Z;k.AsyncSubject=V;k.asapScheduler=ma;k.asyncScheduler=y;k.queueScheduler=yb;k.animationFrameScheduler=cd;k.VirtualTimeScheduler=Cb;k.VirtualAction=Fa;k.Scheduler=Da;k.Subscription=t;k.Subscriber=m;k.Notification=w;k.pipe=qa;k.noop=E;k.identity=N;k.isObservable=function(c){return!!c&&(c instanceof n||"function"===typeof c.lift&&"function"===typeof c.subscribe)};k.ArgumentOutOfRangeError= + O;k.EmptyError=ca;k.ObjectUnsubscribedError=F;k.UnsubscriptionError=aa;k.TimeoutError=va;k.bindCallback=Pa;k.bindNodeCallback=Qa;k.combineLatest=function(){for(var c=[],a=0;ac)c=0;a&&"function"===typeof a.schedule||(a=y);return new n(function(b){b.add(a.schedule(cc,c,{subscriber:b,counter:0,period:c}));return b})};k.merge=cb;k.never=function(){return Eb};k.of=ta;k.onErrorResumeNext=ya;k.pairs=function(c,a){return a?new n(function(b){var d=Object.keys(c),e=new t;e.add(a.schedule(dc,0,{keys:d,index:0,subscriber:b,subscription:e,obj:c})); + return e}):new n(function(a){for(var b=Object.keys(c),e=0;e=a){d.complete();break}d.next(f++);if(d.closed)break}while(1)})};k.throwError=ua;k.timer=eb;k.using=function(c,a){return new n(function(b){var d;try{d=c()}catch(g){b.error(g); + return}var e;try{e=a(d)}catch(g){b.error(g);return}var f=(e?K(e):M).subscribe(b);return function(){f.unsubscribe();d&&d.unsubscribe()}})};k.zip=fb;k.EMPTY=M;k.NEVER=Eb;k.config=D;Object.defineProperty(k,"__esModule",{value:!0})}); + //# sourceMappingURL=rxjs.umd.min.js.map + \ No newline at end of file diff --git a/debugger/extension/tsconfig.json b/debugger/extension/tsconfig.json new file mode 100644 index 000000000..21601918f --- /dev/null +++ b/debugger/extension/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} \ No newline at end of file diff --git a/jslibs/hooks/BUILD b/jslibs/hooks/BUILD index 853cfaf83..85604fcf7 100644 --- a/jslibs/hooks/BUILD +++ b/jslibs/hooks/BUILD @@ -24,5 +24,6 @@ ts_library( "@npm//@types/react", "@npm//defaults", "@npm//react", + "@npm//redux", ], ) \ No newline at end of file diff --git a/debugger/devtool/jslibs/useStore2.ts b/jslibs/hooks/useStore2.ts similarity index 100% rename from debugger/devtool/jslibs/useStore2.ts rename to jslibs/hooks/useStore2.ts diff --git a/jslibs/liteui/BUILD b/jslibs/liteui/BUILD new file mode 100644 index 000000000..79c16d7de --- /dev/null +++ b/jslibs/liteui/BUILD @@ -0,0 +1,27 @@ +package(default_visibility = ["//visibility:public"]) + +load("@npm_bazel_typescript//:index.bzl", "ts_library") + +filegroup( + name = "sources", + srcs = glob( + include = [ + "*.ts", + "*.tsx", + ], + ), +) + +ts_library( + name = "liteui", + srcs = glob( + include = [ + "*.ts", + "*.tsx", + ], + ), + deps = [ + "@npm//@types/react", + "@npm//react", + ], +) \ No newline at end of file diff --git a/webb/src/components/liteui/dcl.tsx b/jslibs/liteui/dcl.tsx similarity index 100% rename from webb/src/components/liteui/dcl.tsx rename to jslibs/liteui/dcl.tsx diff --git a/package.json b/package.json index 8200faf9f..70f219091 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@rollup/plugin-node-resolve": "7.1.1", "@rollup/plugin-replace": "2.3.1", "@types/chai": "4.2.11", + "@types/chart.js": "^2.9.19", "@types/cors": "2.8.6", "@types/d3": "5.7.2", "@types/defaults": "1.0.3", @@ -59,11 +60,13 @@ "babylonjs": "4.1.0", "buffer": "5.5.0", "chai": "4.2.0", + "chart.js": "^2.9.3", "cors": "2.8.5", "css-loader": "^3.4.2", "csstype": "^2.6.10", "d3": "5.15.1", "decentraland-renderer": "1.8.16142", + "decentraland-ui": "^2.17.0", "defaults": "1.0.3", "devtools-protocol": "0.0.754670", "ethereum-cryptography": "0.0.7", diff --git a/webb/src/controls/Position.tsx b/webb/src/controls/Position.tsx index 9f90d3480..80ac494e6 100644 --- a/webb/src/controls/Position.tsx +++ b/webb/src/controls/Position.tsx @@ -1,6 +1,6 @@ import { parcelLimits } from 'dcl/utils' import React from 'react' -import { Segment } from '../components/liteui/dcl' +import { Segment } from 'dcl/jslibs/liteui/dcl' export type PositionControl = { x: number diff --git a/yarn.lock b/yarn.lock index 2b28d3a38..7e2b6dbf4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1326,6 +1326,14 @@ argparse "~1.0.9" colors "~1.2.1" +"@semantic-ui-react/event-stack@^3.1.0": + version "3.1.1" + resolved "https://npm.eordano.com:443/@semantic-ui-react%2fevent-stack/-/event-stack-3.1.1.tgz#3263d17511db81a743167fe45281a24b3eb6b3c8" + integrity sha512-SA7VOu/tY3OkooR++mm9voeQrJpYXjJaMHO1aFCcSouS2xhqMR9Gnz0LEGLOR0h9ueWPBKaQzKIrx3FTTJZmUQ== + dependencies: + exenv "^1.2.2" + prop-types "^15.6.2" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -1372,6 +1380,23 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== +"@stardust-ui/react-component-event-listener@~0.38.0": + version "0.38.0" + resolved "https://npm.eordano.com:443/@stardust-ui%2freact-component-event-listener/-/react-component-event-listener-0.38.0.tgz#1787faded94b40ad41226e6289baf13e701c6e7f" + integrity sha512-sIP/e0dyOrrlb8K7KWumfMxj/gAifswTBC4o68Aa+C/GA73ccRp/6W1VlHvF/dlOR4KLsA+5SKnhjH36xzPsWg== + dependencies: + "@babel/runtime" "^7.1.2" + prop-types "^15.7.2" + +"@stardust-ui/react-component-ref@~0.38.0": + version "0.38.0" + resolved "https://npm.eordano.com:443/@stardust-ui%2freact-component-ref/-/react-component-ref-0.38.0.tgz#52d555f2d5edd213c923c93a106f7de940e427ef" + integrity sha512-xjs6WnvJVueSIXMWw0C3oWIgAPpcD03qw43oGOjUXqFktvpNkB73JoKIhS4sCrtQxBdct75qqr4ZL6JiyPcESw== + dependencies: + "@babel/runtime" "^7.1.2" + prop-types "^15.7.2" + react-is "^16.6.3" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -1414,6 +1439,13 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" integrity sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw== +"@types/chart.js@^2.9.19": + version "2.9.19" + resolved "https://npm.eordano.com:443/@types%2fchart.js/-/chart.js-2.9.19.tgz#b112e2c2daad9f76afc32b4c099c56ccdf34040c" + integrity sha512-sFxlMb+ElfJelXh0Z8spmiLRrnXCd7CaT6WGQtckhjETK1H5i1nYKN4TOExhqPeDZ6u+w4bJ20UYqELWOEfAKQ== + dependencies: + moment "^2.10.2" + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" @@ -1940,6 +1972,14 @@ "@types/history" "*" "@types/react" "*" +"@types/react-virtualized@^9.21.2": + version "9.21.8" + resolved "https://npm.eordano.com:443/@types%2freact-virtualized/-/react-virtualized-9.21.8.tgz#dc0150a75fd6e42f33729886463ece04d03367ea" + integrity sha512-7fZoA0Azd2jLIE9XC37fMZgMqaJe3o3pfzGjvrzphoKjBCdT4oNl6wikvo4dDMESDnpkZ8DvVTc7aSe4DW86Ew== + dependencies: + "@types/prop-types" "*" + "@types/react" "*" + "@types/react@*": version "16.9.34" resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz#f7d5e331c468f53affed17a8a4d488cd44ea9349" @@ -2946,6 +2986,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +balloon-css@^0.5.0: + version "0.5.2" + resolved "https://npm.eordano.com:443/balloon-css/-/balloon-css-0.5.2.tgz#9e2163565a136c9d4aa20e8400772ce3b738d3ff" + integrity sha512-zheJpzwyNrG4t39vusA67v3BYg1HTVXOF8cErPEHzWK88PEOFwgo6Ea9VHOgOWNMgeuOtFVtB73NE2NWl9uDyQ== + base-x@^3.0.2, base-x@^3.0.8: version "3.0.8" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" @@ -3705,6 +3750,29 @@ charenc@~0.0.1: resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= +chart.js@^2.9.3: + version "2.9.3" + resolved "https://npm.eordano.com:443/chart.js/-/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" + integrity sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw== + dependencies: + chartjs-color "^2.1.0" + moment "^2.10.2" + +chartjs-color-string@^0.6.0: + version "0.6.0" + resolved "https://npm.eordano.com:443/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== + dependencies: + color-name "^1.0.0" + +chartjs-color@^2.1.0: + version "2.4.1" + resolved "https://npm.eordano.com:443/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== + dependencies: + chartjs-color-string "^0.6.0" + color-convert "^1.9.3" + check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -3831,6 +3899,11 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +classnames@^2.2.6: + version "2.2.6" + resolved "https://npm.eordano.com:443/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -3982,6 +4055,11 @@ clone@~0.1.9: resolved "https://registry.yarnpkg.com/clone/-/clone-0.1.19.tgz#613fb68639b26a494ac53253e15b1a6bd88ada85" integrity sha1-YT+2hjmyaklKxTJT4Vsaa9iK2oU= +clsx@^1.0.1: + version "1.1.0" + resolved "https://npm.eordano.com:443/clsx/-/clsx-1.1.0.tgz#62937c6adfea771247c34b54d320fb99624f5702" + integrity sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA== + coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -4017,7 +4095,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -4419,7 +4497,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-react-context@0.3.0: +create-react-context@0.3.0, create-react-context@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw== @@ -4694,7 +4772,7 @@ csso@^4.0.2: dependencies: css-tree "1.0.0-alpha.39" -csstype@^2.2.0, csstype@^2.6.10: +csstype@^2.2.0, csstype@^2.6.10, csstype@^2.6.7: version "2.6.10" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== @@ -5074,6 +5152,18 @@ decentraland-renderer@1.8.16142: resolved "https://registry.yarnpkg.com/decentraland-renderer/-/decentraland-renderer-1.8.16142.tgz#06b2afbeba292e9e0d030d1651e1c6f18565adb3" integrity sha512-ufbBk6PC1mfv3A7vxuVkZI9Bft3CVz1hmQ5Kjm4+4fFvoQv4tJ/vwrHDZRt7XgndavlOdaUBfoQ3rJvPsssbIA== +decentraland-ui@^2.17.0: + version "2.17.0" + resolved "https://npm.eordano.com:443/decentraland-ui/-/decentraland-ui-2.17.0.tgz#9ddccc30906b51949168717ddf6a6b8ffe28e519" + integrity sha512-F4tBKgcAkXGx/GG6kK/t3bVvOCcUbMCi/BEOV5kv5enYHUqWTcl1Dt0lwGU5jtraWPY7od1Xqf/iUv3tJYU+5w== + dependencies: + balloon-css "^0.5.0" + ethereum-blockies "^0.1.1" + parallax-js "^3.1.0" + react-tile-map "^0.3.2" + semantic-ui-css "^2.4.1" + semantic-ui-react "^0.88.0" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -5093,7 +5183,7 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-equal@^1.0.1, deep-equal@^1.1.0: +deep-equal@^1.0.1, deep-equal@^1.1.0, deep-equal@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== @@ -5420,6 +5510,14 @@ dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" +dom-helpers@^5.0.0: + version "5.1.4" + resolved "https://npm.eordano.com:443/dom-helpers/-/dom-helpers-5.1.4.tgz#4609680ab5c79a45f2531441f1949b79d6587f4b" + integrity sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^2.6.7" + dom-serialize@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" @@ -5507,6 +5605,11 @@ dotenv@^8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +dprop@^1.0.0: + version "1.0.0" + resolved "https://npm.eordano.com:443/dprop/-/dprop-1.0.0.tgz#5f45a60a60fa3ac1d0f68b6b435831f2ff665468" + integrity sha1-X0WmCmD6OsHQ9otrQ1gx8v9mVGg= + draco3d@^1.3.4: version "1.3.6" resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.3.6.tgz#e4d9e7d846637775328c903721c932b953dce331" @@ -6147,6 +6250,11 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" +ethereum-blockies@^0.1.1: + version "0.1.1" + resolved "https://npm.eordano.com:443/ethereum-blockies/-/ethereum-blockies-0.1.1.tgz#879fe959deef492a7a92b43dc34ae8dc2ee591fc" + integrity sha1-h5/pWd7vSSp6krQ9w0ro3C7lkfw= + ethereum-cryptography@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.0.7.tgz#61a9918a75cc551789be4456375ebacc30af5afa" @@ -6197,6 +6305,11 @@ events@3.1.0, events@^3.0.0: resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== +events@^1.0.2: + version "1.1.1" + resolved "https://npm.eordano.com:443/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + eventsource@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" @@ -6274,6 +6387,11 @@ execa@^3.4.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +exenv@^1.2.2: + version "1.2.2" + resolved "https://npm.eordano.com:443/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + integrity sha1-KueOhdmJQVhnCwPUe+wfA72Ru50= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -7286,6 +7404,11 @@ git-up@4.0.1: is-ssh "^1.3.0" parse-url "^5.0.0" +gl-vec2@^1.0.0: + version "1.3.0" + resolved "https://npm.eordano.com:443/gl-vec2/-/gl-vec2-1.3.0.tgz#83d472ed46034de8e09cbc857123fb6c81c51199" + integrity sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A== + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -8097,6 +8220,11 @@ immer@1.10.0: resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== +impetus@^0.8.8: + version "0.8.8" + resolved "https://npm.eordano.com:443/impetus/-/impetus-0.8.8.tgz#8848c56ac8ccdd375fa541bfe62533c3cc472050" + integrity sha512-7ejVjFxRAiBlnZQbdNGzUGgxMvLjVke/QNP2TFN/VK8baASsuRiE8YuSbD0qyiU8Pae+w95De4ZYz+rxSo5FJw== + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -9243,6 +9371,11 @@ jju@^1.1.0, jju@~1.4.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= +jquery@x.*: + version "3.5.0" + resolved "https://npm.eordano.com:443/jquery/-/jquery-3.5.0.tgz#9980b97d9e4194611c36530e7dc46a58d7340fc9" + integrity sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ== + js-sha3@0.8.0, js-sha3@^0.8.0, js-sha3@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -9533,6 +9666,11 @@ karma@4.4.1: tmp "0.0.33" useragent "2.3.0" +keyboard-key@^1.0.4: + version "1.1.0" + resolved "https://npm.eordano.com:443/keyboard-key/-/keyboard-key-1.1.0.tgz#6f2e8e37fa11475bb1f1d65d5174f1b35653f5b7" + integrity sha512-qkBzPTi3rlAKvX7k0/ub44sqOfXeLc/jcnGGmj5c7BJpU8eDrEVPyhCvNYAaoubbsLm9uGWwQJO1ytQK1a9/dQ== + keyv@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -10075,7 +10213,7 @@ longest@^1.0.1: resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -10702,11 +10840,25 @@ mock-fs@^4.1.0: resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.11.0.tgz#0828107e4b843a6ba855ecebfe3c6e073b69db92" integrity sha512-Yp4o3/ZA15wsXqJTT+R+9w2AYIkD1i80Lds47wDbuUhOvQvm+O2EfjFZSz0pMgZZSPHRhGxgcd2+GL4+jZMtdw== -moment@^2.24.0: +moment@^2.10.2, moment@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== +mouse-event-offset@^3.0.2: + version "3.0.2" + resolved "https://npm.eordano.com:443/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz#dfd86a6e248c6ba8cad53b905d5037a2063e9984" + integrity sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ= + +mouse-wheel@^1.2.0: + version "1.2.0" + resolved "https://npm.eordano.com:443/mouse-wheel/-/mouse-wheel-1.2.0.tgz#6d2903b1ea8fb48e61f1b53b9036773f042cdb5c" + integrity sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w= + dependencies: + right-now "^1.0.0" + signum "^1.0.0" + to-px "^1.0.1" + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -11004,7 +11156,7 @@ node-object-hash@^2.0.0: resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-2.0.0.tgz#9971fcdb7d254f05016bd9ccf508352bee11116b" integrity sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ== -node-pre-gyp@*, node-pre-gyp@0.14.0: +node-pre-gyp@0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== @@ -11789,6 +11941,14 @@ pako@~1.0.5: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +parallax-js@^3.1.0: + version "3.1.0" + resolved "https://npm.eordano.com:443/parallax-js/-/parallax-js-3.1.0.tgz#cc8a5d7dd5e2529b94b9a34f3d4cd13a22eb049e" + integrity sha512-UONoPKSQykeNvFcemDPxYYDU/T89LSffoaZAwOMhDp0ABhmFPwthgn2GrfB7An9Qo+8nPZIuQeZsh2pWn1qN3A== + dependencies: + object-assign "^4.1.1" + raf "^3.3.0" + parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -11860,6 +12020,11 @@ parse-path@^4.0.0: is-ssh "^1.3.0" protocols "^1.4.0" +parse-unit@^1.0.1: + version "1.0.1" + resolved "https://npm.eordano.com:443/parse-unit/-/parse-unit-1.0.1.tgz#7e1bb6d5bef3874c28e392526a2541170291eecf" + integrity sha1-fhu21b7zh0wo45JSaiVBFwKR7s8= + parse-url@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" @@ -12102,6 +12267,11 @@ pnp-webpack-plugin@^1.6.4: dependencies: ts-pnp "^1.1.6" +popper.js@^1.14.4: + version "1.16.1" + resolved "https://npm.eordano.com:443/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== + portfinder@^1.0.20, portfinder@^1.0.25: version "1.0.25" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" @@ -12587,7 +12757,7 @@ prompts@^2.3.1, prompts@^2.3.2: kleur "^3.0.3" sisteransi "^1.0.4" -prop-types@15.7.2, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@15.7.2, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -12805,6 +12975,13 @@ rabin-wasm@^0.1.1: node-fetch "^2.6.0" readable-stream "^3.6.0" +raf@^3.3.0: + version "3.4.1" + resolved "https://npm.eordano.com:443/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -12969,7 +13146,7 @@ react-hot-loader@^4.12.20: shallowequal "^1.1.0" source-map "^0.7.3" -react-is@^16.7.0, react-is@^16.8.1, react-is@^16.9.0: +react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -12979,6 +13156,19 @@ react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== +react-popper@^1.3.4: + version "1.3.7" + resolved "https://npm.eordano.com:443/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324" + integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww== + dependencies: + "@babel/runtime" "^7.1.2" + create-react-context "^0.3.0" + deep-equal "^1.1.1" + popper.js "^1.14.4" + prop-types "^15.6.1" + typed-styles "^0.0.7" + warning "^4.0.2" + react-reconciler@0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.25.1.tgz#f9814d59d115e1210762287ce987801529363aaa" @@ -13015,6 +13205,30 @@ react-refresh@^0.7.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.7.2.tgz#f30978d21eb8cac6e2f2fde056a7d04f6844dd50" integrity sha512-u5l7fhAJXecWUJzVxzMRU2Zvw8m4QmDNHlTrT5uo3KBlYBhmChd7syAakBoay1yIiVhx/8Fi7a6v6kQZfsw81Q== +react-tile-map@^0.3.2: + version "0.3.2" + resolved "https://npm.eordano.com:443/react-tile-map/-/react-tile-map-0.3.2.tgz#0a2e3d8a3ee6254b05caa43f3f1f19ca619f5192" + integrity sha512-UWIV8lC5s8Yow8vBmdLtC6eT3OM2+OFXmQeerFdZHBumGTxR7QeqoZfrEi/H6rcJSJsUaAudBb0qliJGugIN6g== + dependencies: + "@types/react-virtualized" "^9.21.2" + impetus "^0.8.8" + mouse-wheel "^1.2.0" + react-virtualized "^9.21.1" + touch-pinch "^1.0.1" + touch-position "^2.0.0" + +react-virtualized@^9.21.1: + version "9.21.2" + resolved "https://npm.eordano.com:443/react-virtualized/-/react-virtualized-9.21.2.tgz#02e6df65c1e020c8dbf574ec4ce971652afca84e" + integrity sha512-oX7I7KYiUM7lVXQzmhtF4Xg/4UA5duSA+/ZcAvdWlTLFCoFYq1SbauJT5gZK9cZS/wdYR6TPGpX/dqzvTqQeBA== + dependencies: + babel-runtime "^6.26.0" + clsx "^1.0.1" + dom-helpers "^5.0.0" + loose-envify "^1.3.0" + prop-types "^15.6.0" + react-lifecycles-compat "^3.0.4" + react@^16.13.1, react@^16.8.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" @@ -13588,6 +13802,11 @@ right-align@^0.1.3: dependencies: align-text "^0.1.1" +right-now@^1.0.0: + version "1.0.0" + resolved "https://npm.eordano.com:443/right-now/-/right-now-1.0.0.tgz#6e89609deebd7dcdaf8daecc9aea39cf585a0918" + integrity sha1-bolgne69fc2vja7Mmuo5z1haCRg= + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -13865,6 +14084,30 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" +semantic-ui-css@^2.4.1: + version "2.4.1" + resolved "https://npm.eordano.com:443/semantic-ui-css/-/semantic-ui-css-2.4.1.tgz#f5aea39fafb787cbd905ec724272a3f9cba9004a" + integrity sha512-Pkp0p9oWOxlH0kODx7qFpIRYpK1T4WJOO4lNnpNPOoWKCrYsfHqYSKgk5fHfQtnWnsAKy7nLJMW02bgDWWFZFg== + dependencies: + jquery x.* + +semantic-ui-react@^0.88.0: + version "0.88.2" + resolved "https://npm.eordano.com:443/semantic-ui-react/-/semantic-ui-react-0.88.2.tgz#3d4b54f8b799769b412435c8531475fd34aa4149" + integrity sha512-+02kN2z8PuA/cMdvDUsHhbJmBzxxgOXVHMFr9XK7zGb0wkW9A6OPQMFokWz7ozlVtKjN6r7zsb+Qvjk/qq1OWw== + dependencies: + "@babel/runtime" "^7.1.2" + "@semantic-ui-react/event-stack" "^3.1.0" + "@stardust-ui/react-component-event-listener" "~0.38.0" + "@stardust-ui/react-component-ref" "~0.38.0" + classnames "^2.2.6" + keyboard-key "^1.0.4" + lodash "^4.17.15" + prop-types "^15.7.2" + react-is "^16.8.6" + react-popper "^1.3.4" + shallowequal "^1.1.0" + semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" @@ -14127,6 +14370,11 @@ signed-varint@^2.0.1: dependencies: varint "~5.0.0" +signum@^1.0.0: + version "1.0.0" + resolved "https://npm.eordano.com:443/signum/-/signum-1.0.0.tgz#74a7d2bf2a20b40eba16a92b152124f1d559fa77" + integrity sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc= + simple-concat@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" @@ -15216,6 +15464,13 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" +to-px@^1.0.1: + version "1.1.0" + resolved "https://npm.eordano.com:443/to-px/-/to-px-1.1.0.tgz#b6b269ed5db0cc9aefc15272a4c8bcb2ca1e99ca" + integrity sha512-bfg3GLYrGoEzrGoE05TAL/Uw+H/qrf2ptr9V3W7U0lkjjyYnIfgxmVLUfhQ1hZpIQwin81uxhDjvUkDYsC0xWw== + dependencies: + parse-unit "^1.0.1" + to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" @@ -15259,6 +15514,24 @@ token-types@^2.0.0: "@tokenizer/token" "^0.1.0" ieee754 "^1.1.13" +touch-pinch@^1.0.1: + version "1.0.1" + resolved "https://npm.eordano.com:443/touch-pinch/-/touch-pinch-1.0.1.tgz#52f2aeee263139730570d0ccdf8d443a92b3b36d" + integrity sha1-UvKu7iYxOXMFcNDM341EOpKzs20= + dependencies: + dprop "^1.0.0" + events "^1.0.2" + gl-vec2 "^1.0.0" + mouse-event-offset "^3.0.2" + +touch-position@^2.0.0: + version "2.0.0" + resolved "https://npm.eordano.com:443/touch-position/-/touch-position-2.0.0.tgz#dba7cc7f6e8fa19288152d229e15b7dc5c824286" + integrity sha1-26fMf26PoZKIFS0inhW33FyCQoY= + dependencies: + events "^1.0.2" + mouse-event-offset "^3.0.2" + tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -15363,6 +15636,11 @@ type@^2.0.0: resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== +typed-styles@^0.0.7: + version "0.0.7" + resolved "https://npm.eordano.com:443/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" + integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== + typedarray-to-buffer@^3.1.5, typedarray-to-buffer@~3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -15934,7 +16212,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -warning@^4.0.3: +warning@^4.0.2, warning@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==