From 3f7873f186ec0473c5e730f1675102eb5332af0f Mon Sep 17 00:00:00 2001 From: Sofiene Djebali Date: Wed, 8 Jun 2016 17:33:50 +0200 Subject: [PATCH] DTL --- Plugins/Vorlon/plugins/domtimeline/README.md | 33 - .../domtimeline/api/vorlon.basePlugin.d.ts | 18 - .../api/vorlon.clientMessenger.d.ts | 39 - .../domtimeline/api/vorlon.clientPlugin.d.ts | 12 - .../plugins/domtimeline/api/vorlon.core.d.ts | 37 - .../api/vorlon.dashboardPlugin.d.ts | 17 - .../plugins/domtimeline/api/vorlon.enums.d.ts | 12 - .../plugins/domtimeline/api/vorlon.tools.d.ts | 45 - .../Vorlon/plugins/domtimeline/control.css | 435 - .../Vorlon/plugins/domtimeline/control.html | 56 - Plugins/Vorlon/plugins/domtimeline/control.js | 326 - .../plugins/domtimeline/dom-timeline.js | 751 - Plugins/Vorlon/plugins/domtimeline/icon.png | Bin 2860 -> 0 bytes .../domtimeline/images/arrow-blue-b.PNG | Bin 198 -> 0 bytes .../domtimeline/images/arrow-blue-b.png | Bin 198 -> 0 bytes .../plugins/domtimeline/images/arrow-blue.PNG | Bin 180 -> 0 bytes .../plugins/domtimeline/images/arrow-blue.png | Bin 180 -> 0 bytes .../domtimeline/images/arrow-green-b.PNG | Bin 180 -> 0 bytes .../domtimeline/images/arrow-green-b.png | Bin 180 -> 0 bytes .../domtimeline/images/arrow-green.PNG | Bin 183 -> 0 bytes .../domtimeline/images/arrow-green.png | Bin 183 -> 0 bytes .../domtimeline/images/arrow-red-b.PNG | Bin 206 -> 0 bytes .../domtimeline/images/arrow-red-b.png | Bin 206 -> 0 bytes .../plugins/domtimeline/images/arrow-red.PNG | Bin 180 -> 0 bytes .../plugins/domtimeline/images/arrow-red.png | Bin 180 -> 0 bytes .../plugins/domtimeline/images/blind.png | Bin 130 -> 0 bytes .../Vorlon/plugins/domtimeline/images/lev.PNG | Bin 349 -> 0 bytes .../Vorlon/plugins/domtimeline/images/lev.png | Bin 349 -> 0 bytes .../plugins/domtimeline/images/rule.PNG | Bin 249 -> 0 bytes .../plugins/domtimeline/images/rule.png | Bin 825 -> 0 bytes .../Vorlon/plugins/domtimeline/jquery-ui.js | 16608 ---------------- .../domtimeline/vorlon.domtimeline.client.ts | 230 - .../vorlon.domtimeline.dashboard.ts | 460 - Server/config.json | 7 - 34 files changed, 19086 deletions(-) delete mode 100644 Plugins/Vorlon/plugins/domtimeline/README.md delete mode 100644 Plugins/Vorlon/plugins/domtimeline/api/vorlon.basePlugin.d.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientMessenger.d.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientPlugin.d.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/api/vorlon.core.d.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/api/vorlon.dashboardPlugin.d.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/api/vorlon.enums.d.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/api/vorlon.tools.d.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/control.css delete mode 100644 Plugins/Vorlon/plugins/domtimeline/control.html delete mode 100644 Plugins/Vorlon/plugins/domtimeline/control.js delete mode 100644 Plugins/Vorlon/plugins/domtimeline/dom-timeline.js delete mode 100644 Plugins/Vorlon/plugins/domtimeline/icon.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-blue-b.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-blue-b.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-blue.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-blue.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-green-b.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-green-b.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-green.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-green.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-red-b.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-red-b.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-red.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/arrow-red.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/blind.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/lev.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/lev.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/rule.PNG delete mode 100644 Plugins/Vorlon/plugins/domtimeline/images/rule.png delete mode 100644 Plugins/Vorlon/plugins/domtimeline/jquery-ui.js delete mode 100644 Plugins/Vorlon/plugins/domtimeline/vorlon.domtimeline.client.ts delete mode 100644 Plugins/Vorlon/plugins/domtimeline/vorlon.domtimeline.dashboard.ts diff --git a/Plugins/Vorlon/plugins/domtimeline/README.md b/Plugins/Vorlon/plugins/domtimeline/README.md deleted file mode 100644 index 7f0846da..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# DOMTimeline plugin - -This is an example additional plugin for vorlon. It renders an input field into the Vorlon dashboard. If you type a message, it sends it to your client, which reverses it, and sends it back to be rendered into the dashboard. - -You can use this as a starting point for your own plugins. - -## Enabling the sample plugin - -To enable the sample plugin: - -1. Clone this github repo if you haven't already (`git clone git@github.com/MicrosoftDX/Vorlonjs`) -2. Modify `Server/config.json` to add the plugin, so it looks like this: - -```json -{ - "includeSocketIO": true, - "plugins": [ - { "id": "CONSOLE", "name": "Interactive Console", "panel": "bottom", "foldername" : "interactiveConsole", "enabled": true}, - { "id": "DOM", "name": "Dom Explorer", "panel": "top", "foldername" : "domExplorer", "enabled": true }, - { "id": "MODERNIZR", "name": "Modernizr","panel": "bottom", "foldername" : "modernizrReport", "enabled": true }, - { "id": "OBJEXPLORER", "name" : "Obj. Explorer","panel": "top", "foldername" : "objectExplorer", "enabled": true }, - { "id": "SAMPLE", "name" : "Sample","panel": "top", "foldername" : "sample", "enabled": true } - ] -} -``` - -3. From the root directory of the repository, install dependencies with `npm install`, build vorlon with `npm run build` and start the server with `npm start` (make sure you kill any existing vorlon servers running on your machine. You can now navigate to the vorlon dashboard as normal, and you'll see an additional tab in the list. - -## Modifying the plugin - -The plugin is based on two files (one for the client and one for the dashboard) who respectively extend from VORLON.ClientPlugin and VORLON.DashboardPlugin, as defined in `Plugins/Vorlon/vorlon.clientPlugin.ts` and `Plugins/Vorlon/vorlon.dashboardPlugin.ts` so you can see what methods are available for your plugin from there. You may also wish to look at the other existing plugins in `Plugins/Vorlon/plugins` for ideas. - -`control.html` will be inserted into the dashboard, as will `dashboard.css`. diff --git a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.basePlugin.d.ts b/Plugins/Vorlon/plugins/domtimeline/api/vorlon.basePlugin.d.ts deleted file mode 100644 index 4f49c028..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.basePlugin.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -declare module VORLON { - class BasePlugin { - name: string; - _ready: boolean; - protected _id: string; - protected _debug: boolean; - _type: PluginType; - trace: (msg) => void; - protected traceLog: (msg: any) => void; - protected traceNoop: (msg: any) => void; - loadingDirectory: string; - constructor(name: string); - Type: PluginType; - debug: boolean; - getID(): string; - isReady(): boolean; - } -} diff --git a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientMessenger.d.ts b/Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientMessenger.d.ts deleted file mode 100644 index 90241fc0..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientMessenger.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -declare module VORLON { - interface VorlonMessageMetadata { - pluginID: string; - side: RuntimeSide; - sessionId: string; - clientId: string; - listenClientId: string; - } - interface VorlonMessage { - metadata: VorlonMessageMetadata; - command?: string; - data?: any; - } - class ClientMessenger { - private _socket; - private _isConnected; - private _sessionId; - private _clientId; - private _listenClientId; - private _serverUrl; - onRealtimeMessageReceived: (message: VorlonMessage) => void; - onHeloReceived: (id: string) => void; - onIdentifyReceived: (id: string) => void; - onRemoveClient: (id: any) => void; - onAddClient: (id: any) => void; - onStopListenReceived: () => void; - onRefreshClients: () => void; - onReload: (id: string) => void; - onError: (err: Error) => void; - isConnected: boolean; - clientId: string; - socketId: string; - constructor(side: RuntimeSide, serverUrl: string, sessionId: string, clientId: string, listenClientId: string); - stopListening(): void; - sendRealtimeMessage(pluginID: string, objectToSend: any, side: RuntimeSide, messageType?: string, command?: string): void; - sendMonitoringMessage(pluginID: string, message: string): void; - getMonitoringMessage(pluginID: string, onMonitoringMessage: (messages: string[]) => any, from?: string, to?: string): any; - } -} diff --git a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientPlugin.d.ts b/Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientPlugin.d.ts deleted file mode 100644 index 40280ebd..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.clientPlugin.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -declare module VORLON { - class ClientPlugin extends BasePlugin { - ClientCommands: any; - constructor(name: string); - startClientSide(): void; - onRealtimeMessageReceivedFromDashboardSide(receivedObject: any): void; - sendToDashboard(data: any): void; - sendCommandToDashboard(command: string, data?: any): void; - refresh(): void; - _loadNewScriptAsync(scriptName: string, callback: () => void, waitForDOMContentLoaded?: boolean): void; - } -} diff --git a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.core.d.ts b/Plugins/Vorlon/plugins/domtimeline/api/vorlon.core.d.ts deleted file mode 100644 index 73a2f31a..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.core.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -declare module VORLON { - class _Core { - _clientPlugins: ClientPlugin[]; - _dashboardPlugins: DashboardPlugin[]; - _messenger: ClientMessenger; - _sessionID: string; - _listenClientId: string; - _side: RuntimeSide; - _errorNotifier: any; - _messageNotifier: any; - _socketIOWaitCount: number; - debug: boolean; - _RetryTimeout: number; - Messenger: ClientMessenger; - ClientPlugins: Array; - DashboardPlugins: Array; - RegisterClientPlugin(plugin: ClientPlugin): void; - RegisterDashboardPlugin(plugin: DashboardPlugin): void; - StopListening(): void; - StartClientSide(serverUrl?: string, sessionId?: string, listenClientId?: string): void; - sendHelo(): void; - startClientDirtyCheck(): void; - StartDashboardSide(serverUrl?: string, sessionId?: string, listenClientId?: string, divMapper?: (string) => HTMLDivElement): void; - private _OnStopListenReceived(); - private _OnIdentifyReceived(message); - private ShowError(message, timeout?); - private _OnError(err); - private _OnIdentificationReceived(id); - private _OnReloadClient(id); - private _RetrySendingRealtimeMessage(plugin, message); - private _Dispatch(message); - private _DispatchPluginMessage(plugin, message); - private _DispatchFromClientPluginMessage(plugin, message); - private _DispatchFromDashboardPluginMessage(plugin, message); - } - var Core: _Core; -} diff --git a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.dashboardPlugin.d.ts b/Plugins/Vorlon/plugins/domtimeline/api/vorlon.dashboardPlugin.d.ts deleted file mode 100644 index cf89fb5e..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.dashboardPlugin.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -declare module VORLON { - class DashboardPlugin extends BasePlugin { - htmlFragmentUrl: any; - cssStyleSheetUrl: any; - DashboardCommands: any; - constructor(name: string, htmlFragmentUrl: string, cssStyleSheetUrl: string); - constructor(name: string, htmlFragmentUrl: string, cssStyleSheetUrls: string[], jsUrls: string[]); - startDashboardSide(div: HTMLDivElement): void; - onRealtimeMessageReceivedFromClientSide(receivedObject: any): void; - sendToClient(data: any): void; - sendCommandToClient(command: string, data?: any): void; - sendCommandToPluginClient(pluginId: string, command: string, data?: any): void; - sendCommandToPluginDashboard(pluginId: string, command: string, data?: any): void; - _insertHtmlContentAsync(divContainer: HTMLDivElement, callback: (filledDiv: HTMLDivElement) => void): void; - private _stripContent(content); - } -} diff --git a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.enums.d.ts b/Plugins/Vorlon/plugins/domtimeline/api/vorlon.enums.d.ts deleted file mode 100644 index 96b062b9..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.enums.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -declare module VORLON { - enum RuntimeSide { - Client = 0, - Dashboard = 1, - Both = 2, - } - enum PluginType { - OneOne = 0, - MulticastReceiveOnly = 1, - Multicast = 2, - } -} diff --git a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.tools.d.ts b/Plugins/Vorlon/plugins/domtimeline/api/vorlon.tools.d.ts deleted file mode 100644 index a13f7a26..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/api/vorlon.tools.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -declare module VORLON { - class Tools { - static IsWindowAvailable: boolean; - static QuerySelectorById(root: HTMLElement, id: string): HTMLElement; - static SetImmediate(func: () => void): void; - static setLocalStorageValue(key: string, data: string): void; - static getLocalStorageValue(key: string): any; - static Hook(rootObject: any, functionToHook: string, hookingFunction: (...optionalParams: any[]) => void): void; - static HookProperty(rootObject: any, propertyToHook: string, callback: any): void; - static getCallStack(skipped: any): any; - static CreateCookie(name: string, value: string, days: number): void; - static ReadCookie(name: string): string; - static CreateGUID(): string; - static RemoveEmpties(arr: string[]): number; - static AddClass(e: HTMLElement, name: string): HTMLElement; - static RemoveClass(e: HTMLElement, name: string): HTMLElement; - static ToggleClass(e: HTMLElement, name: string, callback?: (hasClass: boolean) => void): void; - static htmlToString(text: any): any; - } - class FluentDOM { - element: HTMLElement; - childs: Array; - parent: FluentDOM; - constructor(nodeType: string, className?: string, parentElt?: Element, parent?: FluentDOM); - static forElement(element: HTMLElement): FluentDOM; - addClass(classname: string): FluentDOM; - toggleClass(classname: string): FluentDOM; - className(classname: string): FluentDOM; - opacity(opacity: string): FluentDOM; - display(display: string): FluentDOM; - hide(): FluentDOM; - visibility(visibility: string): FluentDOM; - text(text: string): FluentDOM; - html(text: string): FluentDOM; - attr(name: string, val: string): FluentDOM; - editable(editable: boolean): FluentDOM; - style(name: string, val: string): FluentDOM; - appendTo(elt: Element): FluentDOM; - append(nodeType: string, className?: string, callback?: (fdom: FluentDOM) => void): FluentDOM; - createChild(nodeType: string, className?: string): FluentDOM; - click(callback: (EventTarget) => void): FluentDOM; - blur(callback: (EventTarget) => void): FluentDOM; - keydown(callback: (EventTarget) => void): FluentDOM; - } -} diff --git a/Plugins/Vorlon/plugins/domtimeline/control.css b/Plugins/Vorlon/plugins/domtimeline/control.css deleted file mode 100644 index f96ade34..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/control.css +++ /dev/null @@ -1,435 +0,0 @@ -.plugin-domtimeline * { - font-family: 'Roboto'; - box-sizing: border-box; -} - -.plugin-domtimeline #dom-recorder { - /* width: 90%; */ - margin: auto; - padding: 10px; - font-size: 16px; -} - -.plugin-domtimeline #options { - margin-bottom: 20px; -} - -.plugin-domtimeline #option-autorecord, #option-colorblind { - display: inline; -} - -.plugin-domtimeline #option-autorecord { - float:left; -} - -.plugin-domtimeline #option-colorblind { - float:right; -} - -.plugin-domtimeline #wrapper-timeline { - overflow-x: /*auto*/hidden; - overflow-y: hidden; - width: 100%; - position: relative; - padding-bottom: 10px; - margin-bottom: 0px; -} - -.plugin-domtimeline #timeline { - cursor: crosshair; - height: 100px; - background-color: #FBFAF7; - background-image: url('images/rule.png'); - background-repeat-y: no-repeat; - position: relative; -} - -.plugin-domtimeline .clear { - clear: both; - color: #75655E; -} - -.plugin-domtimeline #node-changes { - position: relative; -} - -.plugin-domtimeline #node-changes input { - position: absolute; - right: 0px; - top: 25px; - padding: 5px 8px; - border-radius: 5px; - border: 1px solid #EEE9E0; - outline: none; -} - -.plugin-domtimeline #node-changes h1 { - font-family: 'Oswald'; - text-transform: uppercase; - font-size: 22px; - font-weight: 500; - margin-top: 0px; - margin-bottom: 5px; - color: #000000; -} - -.plugin-domtimeline ul.inline-changes { - padding: 0; - margin: 0; - list-style-type: none; - margin-bottom: 20px; -} - -.plugin-domtimeline ul.inline-changes li { - display: inline; - margin-right: 5px; -} - -.plugin-domtimeline ul.inline-changes li:before { - content: ''; - width: 10px; - height: 10px; - position:relative; - margin-right: 5px; - display: inline-block; -} - -.plugin-domtimeline .colorblind-off ul.inline-changes li.inline-changes-added:before { - background-color: #007C29; -} - -.plugin-domtimeline .colorblind-off ul.inline-changes li.inline-changes-removed:before { - background-color: #F2002D; -} - -.plugin-domtimeline .colorblind-off ul.inline-changes li.inline-changes-modified:before { - background-color: #223879; -} - -.plugin-domtimeline .colorblind-on ul.inline-changes li.inline-changes-added:before { - background-color: #555555; -} - -.plugin-domtimeline .colorblind-on ul.inline-changes li.inline-changes-removed:before { - background-color: none; - border: 1px solid #555555; -} - -.plugin-domtimeline .colorblind-on ul.inline-changes li.inline-changes-modified:before { - background-color: none; - border: 1px solid #555555; - background-image: url('images/blind.png'); -} - -.plugin-domtimeline -ul.accordion-changes { - /* height: 260px; */ - padding: 0; - margin: 0; - /* border: 1px solid #E0E0E0; */ - list-style-type: none; - /* overflow-y: scroll; */ - overflow-x: hidden; -} - -.plugin-domtimeline ul.accordion-changes li { - position: relative; - cursor: pointer; - padding: 6px 10px; - font-weight: normal; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 9pt; - white-space: nowrap; - border-bottom: 1px solid #E0E0E0; -} - -.plugin-domtimeline ul.accordion-changes .td-name { - font-weight: bold; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 9pt; - white-space: nowrap; -} - -.plugin-domtimeline ul.accordion-changes li.hide-change { - background: rgba(107, 45, 129, 0.58); - opacity: 0.7; -} - -.plugin-domtimeline ul.accordion-changes li.hide-change:before { - display:none; -} - -.plugin-domtimeline ul.accordion-changes li .fa-undo { - display: none; - cursor: pointer; - margin-right: 10px; - position: absolute; right: 30px; top: 9px; - background: white; outline: 5px solid white; -} - -.plugin-domtimeline ul.accordion-changes li:hover .fa-undo{ - display: inline; -} - -.plugin-domtimeline ul.accordion-changes li[data-id]::before { - display: inline-block; - content: ""; - width: 8px; - height: 15px; - margin-right: 13px; - transition: all linear 0.2s; - vertical-align: bottom; -} - -.plugin-domtimeline ul.accordion-changes li.rotate[data-id]::before { - -ms-transform: rotate(90deg); /* IE 9 */ - -webkit-transform: rotate(90deg); /* Chrome, Safari, Opera */ - transform: rotate(90deg); -} - -.plugin-domtimeline .colorblind-off ul.accordion-changes li.accordion-changes-added[data-id]::before { - background-image: url('images/arrow-green.png'); -} - -.plugin-domtimeline .colorblind-off ul.accordion-changes li.accordion-changes-removed[data-id]::before { - background-image: url('images/arrow-red.png'); -} - -.plugin-domtimeline .colorblind-off ul.accordion-changes li.accordion-changes-modified[data-id]::before { - background-image: url('images/arrow-blue.png'); -} - -.plugin-domtimeline .colorblind-on ul.accordion-changes li.accordion-changes-added[data-id]::before { - background-image: url('images/arrow-green-b.png'); -} - -.plugin-domtimeline .colorblind-on ul.accordion-changes li.accordion-changes-removed[data-id]::before { - background-image: url('images/arrow-red-b.png'); -} - -.plugin-domtimeline .colorblind-on ul.accordion-changes li.accordion-changes-modified[data-id]::before { - background-image: url('images/arrow-blue-b.png'); -} - -.plugin-domtimeline -ul.accordion-changes li > span { - position: absolute; right: 5px; top: 7px; - background: white; outline: 5px solid white; -} - -.plugin-domtimeline .seconds-list { - position: relative; - height: calc(22em / 16); - cursor: -moz-grab; - cursor: -webkit-grab; - cursor: grab; -} - -.plugin-domtimeline .seconds-list span { - position: absolute; - display: inline-block; - width: calc(61em / 16); -} - -.plugin-domtimeline #timeline div { - position: absolute; - bottom: 0px; - width: calc(10em / 16); - display: inline-block; -} - -.plugin-domtimeline #timeline div span { - cursor: pointer; - float: left; - width: 100%; - display: inline-block; -} - -.plugin-domtimeline .colorblind-off #timeline div span.added_h { - background-color: #007C29; -} - -.plugin-domtimeline .colorblind-off #timeline div span.removed_h { - background-color: #F2002D; -} - -.plugin-domtimeline .colorblind-off #timeline div span.modified_h { - background-color: #223879; -} - -.plugin-domtimeline .colorblind-on #timeline div span.added_h { - background-color: #555555; -} - -.plugin-domtimeline .colorblind-on #timeline div span.removed_h { - background-color: none; - border: 1px solid #555555; -} - -.plugin-domtimeline .colorblind-on #timeline div span.modified_h { - background-color: none; - border: 1px solid #555555; - background-image: url('images/blind.png'); -} - -.plugin-domtimeline .acc { - display: none; - padding: 0px !important; - display: block; - overflow: hidden; - transition: all linear 0.3s; - border-bottom: none !important; -} - -.plugin-domtimeline .acc table { - padding: 5px 0 5px 40px; - display: block; -} - -.plugin-domtimeline .acc table .td-name { - margin-right: 15px; - padding-right: 20px; -} - -.plugin-domtimeline .acc table code { - font-family: "Consolas", monospace; - font-size: 11px; - white-space: pre-line; -} - -.plugin-domtimeline .lev { - background: transparent; - height: 100%; - position: relative; - left: 61px; - display: inline-block; - cursor: -moz-grab; - cursor: -webkit-grab; - cursor: grab; - border: 1px solid #6B2D81; - z-index: 10; -} - -.plugin-domtimeline .lev .drag-lev { - display: block; - width: 100%; - height: 100%; -} - -.plugin-domtimeline .lev .handle { - position: absolute; - top: 50%; - transform: translateY(-50%); - cursor: col-resize; - -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Chrome/Safari/Opera */ - -khtml-user-select: none; /* Konqueror */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; /* Non-prefixed version, currently - not supported by any browser */ - display: inline-block; - background: url('images/lev.png'); - width: 14px; - height: 19px; -} - -.plugin-domtimeline .lev .lev1 { - left: -8px; -} - -.plugin-domtimeline .lev .lev2 { - right: -8px; -} - -.plugin-domtimeline #history-control { - margin-top: 20px; -} - -.plugin-domtimeline button { - background: #D7CDBF; - padding: 5px 15px; - border-radius: 5px; - border: 1px solid #D7CDBF; - cursor: pointer; -} - -.plugin-domtimeline .ui-selectable-helper { - background: #482045; - opacity: 0.5; -} - -.plugin-domtimeline #offsetW { - width: 100% !important; - height: 100% !important; - position: absolute !important; - top: 0px !important; - left: 0px !important; - z-index: 555; - display: none; -} - -.plugin-domtimeline #filter-changes { - margin-bottom: 20px; - display:none; -} - -.plugin-domtimeline #filter-changes input { - width: 40px; - margin-right: 3px; -} - -.plugin-domtimeline #filter-changes a { - text-decoration: none; - margin-left: 10px; -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/*! Hint.css - v2.2.1 - 2016-03-26 -* http://kushagragour.in/lab/hint/ -* Copyright (c) 2016 Kushagra Gour; Licensed */ - -[data-hint]{position:relative;display:inline-block}[data-hint]:after,[data-hint]:before{position:absolute;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;-webkit-transition:.3s ease;-moz-transition:.3s ease;transition:.3s ease;-webkit-transition-delay:0ms;-moz-transition-delay:0ms;transition-delay:0ms}[data-hint]:hover:after,[data-hint]:hover:before{visibility:visible;opacity:1;-webkit-transition-delay:100ms;-moz-transition-delay:100ms;transition-delay:100ms}[data-hint]:before{content:'';position:absolute;background:0 0;border:6px solid transparent;z-index:1000001}[data-hint]:after{content:attr(data-hint);background:#383838;color:#fff;padding:8px 10px;font-size:12px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:12px;white-space:nowrap;text-shadow:0 -1px 0 #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}[data-hint='']:after,[data-hint='']:before{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#383838}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#383838}.hint--top:after,.hint--top:before{bottom:100%;left:50%}.hint--top:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--top:focus:before,.hint--top:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top:focus:after,.hint--top:hover:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--bottom:after,.hint--bottom:before{top:100%;left:50%}.hint--bottom:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom:after{-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.hint--bottom:focus:before,.hint--bottom:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom:focus:after,.hint--bottom:hover:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--right:before{border-right-color:#383838;margin-left:-11px;margin-bottom:-6px}.hint--right:after{margin-bottom:-14px}.hint--right:after,.hint--right:before{left:100%;bottom:50%}.hint--right:focus:after,.hint--right:focus:before,.hint--right:hover:after,.hint--right:hover:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--left:before{border-left-color:#383838;margin-right:-11px;margin-bottom:-6px}.hint--left:after{margin-bottom:-14px}.hint--left:after,.hint--left:before{right:100%;bottom:50%}.hint--left:focus:after,.hint--left:focus:before,.hint--left:hover:after,.hint--left:hover:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--top-left:after,.hint--top-left:before{bottom:100%;left:50%}.hint--top-left:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--top-left:focus:before,.hint--top-left:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--top-left:focus:after,.hint--top-left:hover:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--top-right:after,.hint--top-right:before{bottom:100%;left:50%}.hint--top-right:before{margin-bottom:-11px;left:calc(50% - 6px)}.hint--top-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--top-right:focus:after,.hint--top-right:focus:before,.hint--top-right:hover:after,.hint--top-right:hover:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--bottom-left:after,.hint--bottom-left:before{top:100%;left:50%}.hint--bottom-left:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-left:after{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);margin-left:12px}.hint--bottom-left:focus:before,.hint--bottom-left:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--bottom-left:focus:after,.hint--bottom-left:hover:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--bottom-right:after,.hint--bottom-right:before{top:100%;left:50%}.hint--bottom-right:before{margin-top:-11px;left:calc(50% - 6px)}.hint--bottom-right:after{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);margin-left:-12px}.hint--bottom-right:focus:after,.hint--bottom-right:focus:before,.hint--bottom-right:hover:after,.hint--bottom-right:hover:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--large:after,.hint--medium:after,.hint--small:after{white-space:normal;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}.hint--error:after{background-color:#b34e4d;text-shadow:0 -1px 0 #592726}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{background-color:#c09854;text-shadow:0 -1px 0 #6c5328}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{background-color:#3986ac;text-shadow:0 -1px 0 #1a3c4d}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{background-color:#458746;text-shadow:0 -1px 0 #1a321a}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top:after{-webkit-transform:translateX(-50%) translateY(-8px);-moz-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}.hint--always.hint--top-left:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--top-left:after{-webkit-transform:translateX(-100%) translateY(-8px);-moz-transform:translateX(-100%) translateY(-8px);transform:translateX(-100%) translateY(-8px)}.hint--always.hint--top-right:after,.hint--always.hint--top-right:before{-webkit-transform:translateY(-8px);-moz-transform:translateY(-8px);transform:translateY(-8px)}.hint--always.hint--bottom:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom:after{-webkit-transform:translateX(-50%) translateY(8px);-moz-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}.hint--always.hint--bottom-left:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--bottom-left:after{-webkit-transform:translateX(-100%) translateY(8px);-moz-transform:translateX(-100%) translateY(8px);transform:translateX(-100%) translateY(8px)}.hint--always.hint--bottom-right:after,.hint--always.hint--bottom-right:before{-webkit-transform:translateY(8px);-moz-transform:translateY(8px);transform:translateY(8px)}.hint--always.hint--left:after,.hint--always.hint--left:before{-webkit-transform:translateX(-8px);-moz-transform:translateX(-8px);transform:translateX(-8px)}.hint--always.hint--right:after,.hint--always.hint--right:before{-webkit-transform:translateX(8px);-moz-transform:translateX(8px);transform:translateX(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:after,.hint--no-animate:before{-webkit-transition-duration:0ms;-moz-transition-duration:0ms;transition-duration:0ms}.hint--bounce:after,.hint--bounce:before{-webkit-transition:opacity .3s ease,visibility .3s ease,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s ease,visibility .3s ease,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s ease,visibility .3s ease,transform .3s cubic-bezier(.71,1.7,.77,1.24)} diff --git a/Plugins/Vorlon/plugins/domtimeline/control.html b/Plugins/Vorlon/plugins/domtimeline/control.html deleted file mode 100644 index fce3a5df..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/control.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - Dom Timeline - - - - -
- - - - - - - -
-
- - -
-
-
-
- - - - - -
-
-
- Filter time range: s to s Reset range -
-
- - -

Node changes

- -
    -
    -
    -
    - - diff --git a/Plugins/Vorlon/plugins/domtimeline/control.js b/Plugins/Vorlon/plugins/domtimeline/control.js deleted file mode 100644 index 0c7ab5c2..00000000 --- a/Plugins/Vorlon/plugins/domtimeline/control.js +++ /dev/null @@ -1,326 +0,0 @@ -var START_TIME = 0; -var FRAMES_PER_SECOND = 5; -var TIMELINE_SECONDS = 20; - -var setNumberChanges = function (timeline) { - document.querySelectorAll('.inline-changes-added span')[0].innerHTML = countStatus('added' ,timeline); - document.querySelectorAll('.inline-changes-removed span')[0].innerHTML = countStatus('removed' ,timeline); - document.querySelectorAll('.inline-changes-modified span')[0].innerHTML = countStatus('modified' ,timeline); -} - -var setChanges = function (changes) { - - changes.sort(function(a, b) { - return a.time - b.time; - }); - - var times = {}; - var max = {time: 0, count: 0}; - for (var i = 0, len = changes.length; i < len; i++) { - details_table = ''; - for (var t = 0, lenT = changes[i].details.length; t < lenT; t++) { - details_table += '' + changes[i].details[t].name + ':' + changes[i].details[t].value + ''; - } - var details = ''; - document.querySelectorAll('.accordion-changes')[0].innerHTML += '
  • ' + escapeHtml(changes[i].element) + ' ' + changes[i].status + ' ' + changes[i].time + 's
  • ' + details; - if (typeof times[changes[i].time] === 'undefined') { - times[changes[i].time] = {added: 0, removed: 0, modified: 0}; - } - times[changes[i].time][changes[i].status]++; - if (max.count < (times[changes[i].time].added + times[changes[i].time].removed + times[changes[i].time].modified)) { - max.count = (times[changes[i].time].added + times[changes[i].time].removed + times[changes[i].time].modified); - max.time = changes[i].time; - } - } - - - for (var i = 0; i < document.getElementsByClassName('acc-tr').length; i++) { - document.getElementsByClassName('acc-tr')[i].addEventListener('click', function(e) { - if ($(this).hasClass('hide-change')) { - e.preventDefault(); - return; - } - - if ($(this.nextElementSibling).css('display') == 'none') { - $(this.nextElementSibling).show(); - } else { - $(this.nextElementSibling).hide(); - } - - var className = 'rotate'; - - if ($(this.nextElementSibling).css('display') == 'block') { - if (this.classList) - this.classList.add(className); - else - this.className += ' ' + className; - } else { - if (this.classList) - this.classList.remove(className); - else - this.className = this.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); - } - }, false); - } - - for (var time in times) { - var times_h = ''; - times_h += ''; - times_h += ''; - document.getElementById('timeline').innerHTML += '
    ' + times_h + '
    '; - } - -} - -var setTimelineSeconds = function (s) { - var v = START_TIME; - for (var i = 0; i <= s; i++) { - var left = (i) ? ((i * 61) - (4 * i.toString().length)) : i; - document.querySelectorAll('.seconds-list')[0].innerHTML += '' + v + 's'; - v++; - } - document.getElementById('timeline').style.width = (s + 1) * 61 + 'px'; -} - -var setTimeline = function(timeline) { - setNumberChanges(timeline); - setChanges(timeline); - setTimelineSeconds(TIMELINE_SECONDS); -} - -var filterChanges = function(timeline, type) { - setNumberChanges(timeline); - $('.acc-tr').each(function(i) { - var time = parseFloat($(this).data('time')); - if($('#filter-changes').css('display') == 'none' || (time >= $('#filter-changes').find('.from').val() && time <= $('#filter-changes').find('.to').val())) { - $(this).removeClass('hide-change').addClass('show-change'); - } else { - $(this).removeClass('show-change').addClass('hide-change'); - } - }); - $(".accordion-changes").animate({ scrollTop: $('.show-change').first().data('id') * 44}, ((type == 'resize' || type == 'draggable') ? 0 : 500)); -} - -var levChanged = function(type) { - if (parseInt(document.getElementById('lev').style.width) > 0) { - $('#lev').css('border-width', '2px'); - $('#filter-changes').show(); - $('#filter-changes').find('.from').val(($('.lev').position().left / 61).toFixed(2)); - $('#filter-changes').find('.to').val((($('.lev').position().left + parseInt(document.getElementById('lev').style.width)) / 61).toFixed(2)); - } else { - $('#lev').css('border-width', '1px'); - $('#filter-changes').hide(); - } - filterChanges(timeline, type); -} - -var escapeHtml = function (str) { - return String(str) - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'") - .replace(/\//g, "/"); -} - -var validate = function (evt) { - var theEvent = evt || window.event; - var key = theEvent.keyCode || theEvent.which; - key = String.fromCharCode( key ); - var regex = /[0-9]|\./; - if( !regex.test(key) ) { - theEvent.returnValue = false; - if(theEvent.preventDefault) theEvent.preventDefault(); - } -} - -var countStatus = function (status, timeline) { - var count = 0; - for (var i = 0, len = timeline.length; i < len; i++) { - if (timeline[i].status == status) { - if($('#filter-changes').css('display') == 'none' || (timeline[i].time >= $('#filter-changes').find('.from').val() && timeline[i].time <= $('#filter-changes').find('.to').val())) { - count++; - } - } - } - return count; -} - -var timeline = [ - {element: '
    ', time: 0.2, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 0.2, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 0.2, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 0.2, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 0.2, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 1.5, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '', time: 1.5, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 3.5, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 3.5, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '
    ', time: 5, status: 'added', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '', time: 1.5, status: 'removed', details: [{name: 'prop1', value: 'value for prop1'}, {name: 'prop2', value: 'value for prop2'}]}, - {element: '