├── src ├── types │ ├── types.d.ts │ └── draw2d.d.ts ├── ui │ ├── i18n │ │ ├── i18n-loader.ts │ │ ├── en_us.json │ │ └── fr_fr.json │ ├── ui.html │ └── css.styl ├── emulator │ ├── compiler.ts │ ├── micro-task-scheduler.ts │ ├── emulator-manager.ts │ └── avr-runner.ts ├── utils │ └── dom.ts ├── editor │ ├── coordinate-port-locator.ts │ ├── connections-policies.ts │ ├── editor.ts │ ├── canvas.ts │ └── component-figure.ts ├── main.ts └── panels │ ├── catalog.ts │ └── component.ts ├── web ├── assets │ └── icon.png ├── css │ └── main.styl ├── index.html └── index.ts ├── dist ├── web │ ├── assets │ │ └── icon.png │ ├── 10fa3306660fb60c33fd.png │ └── index.html └── src │ └── bundle.js.LICENSE.txt ├── .babelrc ├── index.html ├── tsconfig.json ├── README.md ├── LICENSE ├── webpack.config.js ├── webpack.config.web.js └── package.json /src/types/types.d.ts: -------------------------------------------------------------------------------- 1 | declare module "draw2d"; -------------------------------------------------------------------------------- /web/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ClementGre/HackCable/HEAD/web/assets/icon.png -------------------------------------------------------------------------------- /dist/web/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ClementGre/HackCable/HEAD/dist/web/assets/icon.png -------------------------------------------------------------------------------- /dist/web/10fa3306660fb60c33fd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ClementGre/HackCable/HEAD/dist/web/10fa3306660fb60c33fd.png -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-env", 4 | "@babel/typescript" 5 | ], 6 | "plugins": [ 7 | "@babel/proposal-class-properties", 8 | "@babel/proposal-object-rest-spread" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/ui/i18n/i18n-loader.ts: -------------------------------------------------------------------------------- 1 | import i18next from "i18next"; 2 | 3 | export function loadTranslations(){ 4 | i18next.addResourceBundle('fr_fr', 'common', require('./fr_fr.json')); 5 | i18next.addResourceBundle('en_us', 'common', require('./en_us.json')); 6 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Redirecting... 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/ui/i18n/en_us.json: -------------------------------------------------------------------------------- 1 | { 2 | "wokwiComponents.arduinoUno.description": "Arduino Uno Card", 3 | "wokwiComponents.led.description": "Light-Emitting Diode", 4 | "wokwiComponents.rgbLed.description": "Light-Emitting Diode with a controllable color", 5 | "wokwiComponents.ledBar.description": "Bar composed of 10 Light-Emitting Diode" 6 | } -------------------------------------------------------------------------------- /src/ui/i18n/fr_fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "wokwiComponents.arduinoUno.description": "Carte Arduino Uno", 3 | "wokwiComponents.led.description": "Diode Électroluminescente", 4 | "wokwiComponents.rgbLed.description": "Diode Électroluminescente de couleur contrôllable", 5 | "wokwiComponents.ledBar.description": "Barre de 10 Diodes Électroluminescentes" 6 | } -------------------------------------------------------------------------------- /src/emulator/compiler.ts: -------------------------------------------------------------------------------- 1 | export interface CompileResult { 2 | stdout: string; 3 | stderr: string; 4 | hex: string; 5 | } 6 | 7 | export async function compileToHex(source: string) { 8 | const resp = await fetch('https://hexi.wokwi.com/build', { 9 | method: 'POST', 10 | mode: 'cors', 11 | cache: 'no-cache', 12 | headers: { 13 | 'Content-Type': 'application/json' 14 | }, 15 | body: JSON.stringify({ sketch: source }) 16 | }); 17 | return (await resp.json()) as CompileResult; 18 | } -------------------------------------------------------------------------------- /src/utils/dom.ts: -------------------------------------------------------------------------------- 1 | export function css(element: HTMLElement, style: any) { 2 | 3 | Object.keys(style).forEach((key: any) => { 4 | if (key in element.style) { 5 | if (typeof style[key] == 'number') 6 | element.style[key] = style[key] + 'px'; 7 | else element.style[key] = style[key]; 8 | } 9 | }); 10 | } 11 | export function unitToPx(value: string): number{ 12 | if(value.endsWith('mm')){ 13 | return parseInt(value.replace('mm', ''), 10) * 3.8 14 | }else{ 15 | return parseInt(value.replace('mm', ''), 10) 16 | } 17 | } -------------------------------------------------------------------------------- /src/editor/coordinate-port-locator.ts: -------------------------------------------------------------------------------- 1 | import draw2d from "draw2d"; 2 | 3 | export class CoordinatePortLocator extends draw2d.layout.locator.PortLocator{ 4 | 5 | public readonly portId: string; 6 | private readonly x: number; 7 | private readonly y: number; 8 | constructor(portId: string, x: number, y: number){ 9 | super(); 10 | this.portId = portId; 11 | this.x = x; 12 | this.y = y; 13 | } 14 | public relocate(index: any, figure: any){ 15 | super.relocate(index, figure) 16 | this.applyConsiderRotation(figure, this.x, this.y); 17 | } 18 | 19 | 20 | } -------------------------------------------------------------------------------- /src/ui/ui.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 |
7 | 11 |
12 |
13 | 14 |
15 |
16 |
17 |
18 |
19 |
20 |
-------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "noFallthroughCasesInSwitch": true, 5 | "noUnusedParameters": true, 6 | "noImplicitReturns": true, 7 | "esModuleInterop": true, 8 | "noUnusedLocals": true, 9 | "noImplicitAny": true, 10 | "declarationDir": "dist/types", 11 | "declaration": true, 12 | "target": "es2015", 13 | "module": "es2015", 14 | "strict": true, 15 | "moduleResolution": "Node", 16 | "typeRoots": ["./node_modules/@types", "./src/types", "./node_modules/draw2d-types"] 17 | }, 18 | "include": [ 19 | "src/**/*", 20 | "web/**/*", 21 | "node_modules/draw2d-types/draw2d.d.ts" 22 | ], 23 | "exclude": [ 24 | "node_modules", 25 | "dist" 26 | ], 27 | 28 | } -------------------------------------------------------------------------------- /dist/web/index.html: -------------------------------------------------------------------------------- 1 | HackCable
-------------------------------------------------------------------------------- /src/emulator/micro-task-scheduler.ts: -------------------------------------------------------------------------------- 1 | export type IMicroTaskCallback = () => void; 2 | 3 | export class MicroTaskScheduler { 4 | private readonly channel = new MessageChannel(); 5 | private executionQueue: Array = []; 6 | private _stopped = true; 7 | 8 | start() { 9 | if (this._stopped) { 10 | this._stopped = false; 11 | this.channel.port2.onmessage = this.handleMessage; 12 | } 13 | } 14 | 15 | stop() { 16 | this._stopped = true; 17 | this.executionQueue.splice(0, this.executionQueue.length); 18 | this.channel.port2.onmessage = null; 19 | } 20 | 21 | get stopped(){ 22 | return this._stopped; 23 | } 24 | 25 | 26 | postTask(fn: IMicroTaskCallback) { 27 | if (!this._stopped) { 28 | this.executionQueue.push(fn); 29 | this.channel.port1.postMessage(null); 30 | } 31 | } 32 | 33 | private handleMessage = () => { 34 | const executeJob = this.executionQueue.shift(); 35 | if (executeJob !== undefined) { 36 | executeJob(); 37 | } 38 | }; 39 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HackCable 2 | Arduino and ESP32 simulator (Wire components + emulate code) 3 | Test the library here [https://clementgre.github.io/HackCable/](https://clementgre.github.io/HackCable/) 4 | 5 | ## Goals 6 | 7 | - Offer a graphical interface to wire electronic component to board. 8 | - Using [Wokwi Elements](https://github.com/wokwi/wokwi-elements) for components definition/display 9 | - and [Wokwi Boards](https://github.com/wokwi/wokwi-boards) for ESP32 board definition/display. 10 | - Using [Draw2D](http://www.draw2d.org) for the wiring system. 11 | - Allow emulating code on these boards 12 | - Using [AVR8JS](https://github.com/wokwi/avr8js) for emulating the code on Arduino. 13 | 14 | ### Project structure 15 | 16 | HackCable is coded in TypeScript, using Webpack + Babel. 17 | 18 | The code is using only one npm configuration, but there is two webpack configuration files, and two main folders: 19 | - ``src`` is the code of the library itself 20 | - ``web`` is the website that allow to test the library, and to make an example of use. The ``:web`` tasks allow to use this part of the code, associated with the webpack config : ``webpack.config.web.js``. 21 | 22 | # Tasks 23 | 24 | TypeScript Type checking and generating 25 | 26 | ``type-check`` 27 | 28 | ``type-check:watch`` 29 | 30 | ``build:types`` 31 | 32 | Build the library itself 33 | 34 | ``build:src`` 35 | 36 | Build or start the live server of the web page that use the library 37 | 38 | ``build:web`` 39 | 40 | ``serve:web`` -------------------------------------------------------------------------------- /web/css/main.styl: -------------------------------------------------------------------------------- 1 | p, h1, h2, h3, h4, select, label 2 | font-family Rubik 3 | color white 4 | 5 | html 6 | min-height 100vh 7 | 8 | body 9 | margin 0 10 | padding 0 11 | min-height 100vh 12 | position relative 13 | 14 | header 15 | position absolute 16 | top 40 17 | height 40px 18 | width 100% 19 | background-color #30343F 20 | border-bottom 1px solid black 21 | 22 | 23 | main 24 | box-sizing: border-box 25 | padding-top 40px; 26 | padding-bottom 20px; 27 | height 100vh 28 | overflow hidden 29 | display flex 30 | 31 | .sideBar 32 | background-color #30343F 33 | max-width 500px 34 | min-width 40% 35 | height 100% 36 | border-right 1px solid black 37 | padding 10px 38 | flex-direction column 39 | overflow scroll 40 | 41 | .buttonBar 42 | display flex 43 | flex-direction row 44 | margin-bottom 10px 45 | gap 10px 46 | flex-wrap wrap 47 | line-height 0 48 | button 49 | border none 50 | border-radius 5px 51 | padding 3px 7px 52 | textarea 53 | border none 54 | border-radius 5px 55 | width 100% 56 | resize vertical 57 | min-height 50% 58 | 59 | 60 | footer 61 | position absolute 62 | bottom 0 63 | height 20px 64 | width 100% 65 | background-color #30343F 66 | border-top 1px solid black 67 | -------------------------------------------------------------------------------- /src/editor/connections-policies.ts: -------------------------------------------------------------------------------- 1 | import draw2d from "draw2d"; 2 | 3 | export class VertexClickConnectionPolicy extends draw2d.policy.connection.ClickConnectionCreatePolicy{ 4 | createConnection(){ 5 | const connection = super.createConnection(); 6 | if(connection.getRouter() instanceof draw2d.layout.connection.VertexRouter){ 7 | // The vertex order is reversed when using hybrid ports (bug from Draw2D) 8 | connection.setVertices(this.vertices.reverse()) 9 | }else{ 10 | // When there is only 2 vertices, superclass is using a DirectRouter. 11 | connection.setRouter(new draw2d.layout.connection.VertexRouter()); 12 | } 13 | return connection 14 | } 15 | } 16 | class VertexDragConnectionPolicy extends draw2d.policy.connection.DragConnectionCreatePolicy{ 17 | createConnection(){ 18 | return new draw2d.Connection({router: new draw2d.layout.connection.VertexRouter()}) 19 | } 20 | } 21 | 22 | /*let createOrthogonalConnection = function(){ 23 | //return new draw2d.Connection({router: new draw2d.layout.connection.CircuitConnectionRouter()}); 24 | return new draw2d.Connection({router: new draw2d.layout.connection.InteractiveManhattanConnectionRouter()}); 25 | };*/ 26 | 27 | export const connectionsPolicy = new draw2d.policy.connection.ComposedConnectionCreatePolicy([ 28 | new VertexDragConnectionPolicy(), 29 | new VertexClickConnectionPolicy() 30 | //new draw2d.policy.connection.OrthogonalConnectionCreatePolicy({createConnection: createOrthogonalConnection}) 31 | ]) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, Clément Grennerat 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HackCable 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 |
15 |
16 | 41 |
42 | 43 |
44 |
45 | 50 | 51 | -------------------------------------------------------------------------------- /src/emulator/emulator-manager.ts: -------------------------------------------------------------------------------- 1 | import {AVRRunner} from "./avr-runner"; 2 | import {CompileResult, compileToHex} from "./compiler"; 3 | import {HackCable} from "../main"; 4 | 5 | export class EmulatorManager{ 6 | 7 | private readonly hackcable: HackCable; 8 | constructor(hackcable: HackCable) { 9 | this.hackcable = hackcable; 10 | } 11 | 12 | private runner: AVRRunner | undefined; 13 | private loadingRunner: AVRRunner | undefined; 14 | 15 | 16 | static async compileCode(code: string): Promise{ 17 | return compileToHex(code); 18 | } 19 | async compileAndLoadCode(code: string): Promise{ 20 | const data = await compileToHex(code); 21 | console.log(data) 22 | this.loadCode(data.hex); 23 | return data; 24 | } 25 | loadCode(hexCode: string){ 26 | this.loadingRunner = new AVRRunner(hexCode.replace(/\n\n/g, "\n")); 27 | } 28 | run(){ 29 | stop(); 30 | this.runner = this.loadingRunner; 31 | this.setupHardware(); 32 | // Callback called every 500 000 cpu cycles 33 | this.runner?.execute(() => {}); 34 | } 35 | 36 | 37 | setPaused(pause: boolean){ 38 | if(this.runner) this.runner.pause = pause; 39 | } 40 | isPosed(){ 41 | if(this.runner) return this.runner.pause; 42 | return true; 43 | } 44 | stop(){ 45 | if(this.runner) this.runner.stop(); 46 | } 47 | 48 | 49 | private setupHardware(){ 50 | if(!this.runner) throw new Error("Runner mustn't be null!") 51 | this.runner.portD.addListener(() => { 52 | if(this.runner) this.hackcable.portDUpdate(this.runner.portD) 53 | }); 54 | } 55 | } 56 | 57 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); 3 | const webpack = require('webpack') 4 | 5 | module.exports = { 6 | entry: ["@babel/polyfill", path.resolve(__dirname, 'src') + "/main.ts"], 7 | performance: { 8 | hints: false 9 | }, 10 | output: { 11 | filename: 'bundle.js', 12 | path: path.resolve(__dirname, 'dist/src'), 13 | library: "hackcable", 14 | libraryTarget: "umd", // exposes and know when to use module.exports or exports. 15 | clean: true, 16 | }, 17 | resolve: { 18 | extensions: ['.ts', '.js', '.json'] 19 | }, 20 | module: { 21 | rules: [ 22 | { // TS loader 23 | test: /\.(js|ts)$/, 24 | exclude: /node_modules/, 25 | use: { 26 | loader: 'babel-loader' 27 | }, 28 | }, 29 | { 30 | test: /\.html$/i, 31 | loader: "html-loader", 32 | }, 33 | { 34 | test: /\.styl$/, 35 | use: [ 36 | "style-loader", 37 | "css-loader", 38 | { 39 | loader: "stylus-loader", 40 | options: { 41 | webpackImporter: false, 42 | }, 43 | }, 44 | ], 45 | }, 46 | { 47 | test: /\.css$/i, 48 | use: ["style-loader", "css-loader"] 49 | } 50 | ] 51 | }, 52 | plugins: [ 53 | new ForkTsCheckerWebpackPlugin(), 54 | new webpack.ProvidePlugin({ 55 | Buffer: ['buffer', 'Buffer'], 56 | }) 57 | ] 58 | 59 | }; -------------------------------------------------------------------------------- /src/ui/css.styl: -------------------------------------------------------------------------------- 1 | 2 | .hackCable-root 3 | height 100% 4 | width 100% 5 | display flex 6 | flex-wrap nowrap 7 | 8 | p, h1, h2, h3, h4, select 9 | font-family Rubik 10 | color #c9c9c9 11 | 12 | h3 13 | font-weight 400 14 | font-size .9em 15 | text-align center 16 | word-wrap break-word 17 | 18 | .hackCable-sideBar 19 | height 100% 20 | width 250px; 21 | background-color #424B5A 22 | display: flex; 23 | flex-direction column 24 | 25 | .hackCable-catalog-actions 26 | width 100% 27 | background: #30343F 28 | text-align center 29 | 30 | select 31 | margin 5px 32 | padding 3px 33 | width 80% 34 | max-width 150px 35 | background-color #22242c 36 | border-radius 3px 37 | border none 38 | color white 39 | 40 | .hackCable-catalog-list 41 | overflow-y scroll 42 | overflow-x hidden 43 | height 100% 44 | width 100% 45 | padding 5px 5px 0 5px 46 | box-sizing: border-box 47 | scrollbar-width thin 48 | 49 | .hackCable-catalog-element 50 | text-align center 51 | display block 52 | overflow hidden 53 | border-radius 5px 54 | background: #30343F 55 | padding 10px 56 | margin-bottom 5px 57 | h3 58 | margin 0 0 10px 0 59 | 60 | .hackCable-editor 61 | background-color white 62 | width 100% 63 | overflow scroll 64 | scrollbar-width thin 65 | position relative 66 | 67 | #hackCable-canvas 68 | width 1500px 69 | height 1000px 70 | position relative 71 | 72 | .hackCable-canvas-overlay-container 73 | height 100% 74 | width 100% 75 | position absolute 76 | overflow hidden 77 | transform-origin: left top; 78 | 79 | background-color rgba(0, 0, 0, 0) 80 | background-position 0 0, 0 0; 81 | background-repeat repeat, repeat 82 | background-attachment scroll, scroll 83 | background-image linear-gradient(to right, rgb(240, 240, 240) 1px, transparent 1px), linear-gradient(rgb(240, 240, 240) 1px, rgb(255, 255, 255) 1px) 84 | background-clip border-box, border-box 85 | background-size 20px 20px; 86 | 87 | * 88 | position absolute 89 | transform-origin left top 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /src/emulator/avr-runner.ts: -------------------------------------------------------------------------------- 1 | import { 2 | avrInstruction, 3 | AVRTimer, 4 | CPU, 5 | timer0Config, 6 | AVRIOPort, 7 | portBConfig, 8 | portCConfig, 9 | portDConfig, timer1Config, timer2Config, AVRUSART, usart0Config 10 | } from "avr8js"; 11 | import {MicroTaskScheduler} from "./micro-task-scheduler"; 12 | 13 | // ATmega328p params 14 | const FLASH = 0x8000; 15 | 16 | export class AVRRunner { 17 | readonly program = new Uint16Array(FLASH); 18 | readonly cpu: CPU; 19 | readonly timer0: AVRTimer; 20 | readonly timer1: AVRTimer; 21 | readonly timer2: AVRTimer; 22 | readonly portB: AVRIOPort; 23 | readonly portC: AVRIOPort; 24 | readonly portD: AVRIOPort; 25 | readonly usart: AVRUSART; 26 | readonly speed = 16e6; // 16 MHZ 27 | readonly workUnitCycles = 500000; 28 | readonly taskScheduler = new MicroTaskScheduler(); 29 | 30 | constructor(hex: string) { 31 | const { data } = require('intel-hex').parse(hex) 32 | this.program = new Uint16Array(new Uint8Array(data).buffer); 33 | this.cpu = new CPU(this.program); 34 | this.timer0 = new AVRTimer(this.cpu, timer0Config); 35 | this.timer1 = new AVRTimer(this.cpu, timer1Config); 36 | this.timer2 = new AVRTimer(this.cpu, timer2Config); 37 | this.portB = new AVRIOPort(this.cpu, portBConfig); 38 | this.portC = new AVRIOPort(this.cpu, portCConfig); 39 | this.portD = new AVRIOPort(this.cpu, portDConfig); 40 | this.usart = new AVRUSART(this.cpu, usart0Config, this.speed); 41 | this.taskScheduler.start(); 42 | } 43 | 44 | execute(callback: (cpu: CPU) => void) { 45 | const cyclesToRun = this.cpu.cycles + this.workUnitCycles; 46 | while(this.cpu.cycles < cyclesToRun) { 47 | avrInstruction(this.cpu); 48 | this.cpu.tick(); 49 | } 50 | 51 | callback(this.cpu); 52 | this.taskScheduler.postTask(() => this.execute(callback)); 53 | } 54 | 55 | set pause(pause: boolean){ 56 | if(pause && !this.pause) this.taskScheduler.stop(); 57 | else if(!pause && this.pause){ 58 | this.taskScheduler.start(); 59 | this.execute(() => {}) 60 | } 61 | } 62 | get pause(){ 63 | return this.taskScheduler.stopped; 64 | } 65 | stop(){ 66 | this.taskScheduler.stop(); 67 | } 68 | } -------------------------------------------------------------------------------- /src/editor/editor.ts: -------------------------------------------------------------------------------- 1 | import {Canvas} from "./canvas"; 2 | import {ComponentFigure, FigureData, WiringData} from "./component-figure"; 3 | import {wokwiComponentById} from "../panels/component"; 4 | import {Port} from "draw2d-types"; 5 | import * as draw2d from "draw2d"; 6 | 7 | export declare type EditorSaveData = {figures: FigureData[], connections: WiringData[]} 8 | 9 | export class Editor{ 10 | 11 | private readonly _canvas; 12 | 13 | constructor() { 14 | this._canvas = new Canvas('hackCable-canvas'); 15 | } 16 | 17 | public getEditorSaveData(): EditorSaveData{ 18 | 19 | let data: EditorSaveData = {figures: [], connections: []}; 20 | 21 | this._canvas.getFigures().data.forEach((figure: any) => { 22 | if(figure instanceof ComponentFigure){ 23 | data.figures.push(figure.getFigureData()); 24 | data.connections.push(...figure.getWiringData()) 25 | } 26 | }); 27 | return data; 28 | } 29 | public loadEditorSaveData(data: EditorSaveData){ 30 | this._canvas.clear() 31 | 32 | // Create each figures 33 | data.figures.forEach((figureData) => { 34 | let figure = new ComponentFigure(wokwiComponentById[figureData.componentId]); 35 | figure.setId(figureData.figureId) // So the connections can find this figure 36 | this._canvas.add(figure.setX(figureData.x).setY(figureData.y)) 37 | }) 38 | // Add all connections 39 | data.connections.forEach((connectionData) => { 40 | const sourceFigure: ComponentFigure = this._canvas.getFigure(connectionData.fromFigure) 41 | const targetFigure: ComponentFigure = this._canvas.getFigure(connectionData.targetFigure) 42 | if(sourceFigure && targetFigure){ 43 | const sourcePort: Port = sourceFigure.getPortByName(connectionData.fromPortName) 44 | const targetPort: Port = targetFigure.getPortByName(connectionData.targetPortName) 45 | if(sourcePort && targetPort){ 46 | let con = new draw2d.Connection(); 47 | con.setRouter(new draw2d.layout.connection.VertexRouter()); 48 | con.setSource(sourcePort) 49 | con.setTarget(targetPort) 50 | con.setVertices(connectionData.svgPath) 51 | this._canvas.add(con) 52 | } 53 | } 54 | }) 55 | } 56 | 57 | get canvas(){ 58 | return this._canvas; 59 | } 60 | } -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import "./ui/css.styl" 2 | import * as avr8js from 'avr8js'; 3 | import '@wokwi/elements'; 4 | import {LEDElement} from "@wokwi/elements"; 5 | import {Catalog} from "./panels/catalog"; 6 | import {EmulatorManager} from "./emulator/emulator-manager"; 7 | 8 | export {AVRRunner} from "./emulator/avr-runner"; 9 | export {EmulatorManager} from './emulator/emulator-manager'; 10 | import * as compiler from './emulator/compiler'; 11 | import {Editor} from "./editor/editor"; 12 | import i18next, {TFunction} from "i18next"; 13 | import {loadTranslations} from "./ui/i18n/i18n-loader"; 14 | export type CompileResult = compiler.CompileResult; 15 | 16 | // Draw2D deps 17 | require('webpack-jquery-ui'); 18 | require('webpack-jquery-ui/draggable'); 19 | 20 | export class HackCable { 21 | 22 | public debug: boolean = process.env.NODE_ENV === "development"; 23 | private readonly led: LEDElement | undefined; 24 | 25 | private readonly _emulatorManager: EmulatorManager; 26 | private readonly _catalog: Catalog; 27 | private readonly _editor: Editor; 28 | 29 | constructor(mountDiv: HTMLElement, language = 'en_us'){ 30 | console.log("Mounting HackCable...") 31 | 32 | this.loadI18N(language) 33 | 34 | // Load HTML 35 | mountDiv.innerHTML = require('./ui/ui.html').default 36 | mountDiv.classList.add("hackCable-root"); 37 | 38 | // Init classes 39 | this._catalog = new Catalog() 40 | this._emulatorManager = new EmulatorManager(this); 41 | this._editor = new Editor(); 42 | 43 | console.log(i18next.t('wokwiComponents.arduinoUno.description')) 44 | } 45 | 46 | private loadI18N(language: string) { 47 | i18next.init({ 48 | lng: language, // if you're using a language detector, do not define the lng option 49 | fallbackLng: ['fr', 'en'], 50 | defaultNS: 'common', 51 | debug: this.debug, 52 | resources: {} 53 | }); 54 | loadTranslations(); 55 | } 56 | public changeLanguage(language: string): Promise{ 57 | return i18next.changeLanguage(language) 58 | } 59 | public getLanguage() { 60 | return i18next.language; 61 | } 62 | 63 | public get emulatorManager(){ 64 | return this._emulatorManager; 65 | } 66 | public get catalog(){ 67 | return this._catalog; 68 | } 69 | public get editor(){ 70 | return this._editor; 71 | } 72 | 73 | public portDUpdate(portD: avr8js.AVRIOPort) { 74 | if(this.led != undefined) this.led.value = portD.pinState(1) === avr8js.PinState.High; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /webpack.config.web.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); 3 | const HtmlWebpackPlugin = require('html-webpack-plugin'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | const webpack = require('webpack') 6 | 7 | module.exports = { 8 | entry: ["@babel/polyfill", path.resolve(__dirname, 'web') + "/index.ts"], 9 | performance: { 10 | hints: false 11 | }, 12 | devServer: { 13 | client: { 14 | overlay: true, 15 | }, 16 | compress: true, 17 | port: 9000, 18 | }, 19 | 20 | output: { 21 | filename: 'bundle.js', 22 | path: path.resolve(__dirname, 'dist/web'), 23 | clean: true 24 | }, 25 | resolve: { 26 | extensions: ['.ts', '.js', '.json', '.css'], 27 | fallback: { 28 | buffer: require.resolve('buffer/'), 29 | } 30 | }, 31 | module: { 32 | rules: [ 33 | { // TS loader 34 | test: /\.(js|ts)$/, 35 | exclude: /node_modules/, 36 | use: { 37 | loader: 'babel-loader' 38 | } 39 | }, 40 | { 41 | test: /\.html$/i, 42 | loader: "html-loader", 43 | }, 44 | { 45 | test: /\.styl$/, 46 | use: [ 47 | "style-loader", 48 | "css-loader", 49 | { 50 | loader: "stylus-loader", 51 | options: { 52 | webpackImporter: false, 53 | }, 54 | }, 55 | ], 56 | }, 57 | { // CSS auto injection 58 | test: /\.css$/i, 59 | use: ["style-loader", "css-loader"] 60 | } 61 | ] 62 | }, 63 | plugins: [ 64 | new ForkTsCheckerWebpackPlugin(), 65 | new HtmlWebpackPlugin({ // Auto-inject JS into HTML + copy HTML 66 | template: "./web/index.html", 67 | filename: "./index.html" 68 | }), 69 | new CopyWebpackPlugin({ // Copy Assets 70 | patterns: [ 71 | { 72 | from: './web/assets', 73 | to: 'assets' 74 | } 75 | ] 76 | }), 77 | new webpack.ProvidePlugin({ 78 | Buffer: ['buffer', 'Buffer'], 79 | "$": "jquery", 80 | "jQuery": "jquery", 81 | "window.jQuery": "jquery" 82 | }) 83 | ], 84 | } 85 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hackcable", 3 | "version": "0.0.3", 4 | "description": "Arduino and ESP32 simulator (Components wiring + code emulation)", 5 | "main": "dist/bundle.js", 6 | "types": "dist/types/src/main.d.ts", 7 | "scripts": { 8 | "type-check": "tsc --noEmit", 9 | "type-check:watch": "npm run type-check -- --watch", 10 | "build:types": "tsc --emitDeclarationOnly", 11 | "build:src": "webpack --mode=production", 12 | "build:web": "webpack --mode=production --config ./webpack.config.web.js", 13 | "serve:web": "npx webpack serve --mode=development --config ./webpack.config.web.js" 14 | }, 15 | "exports": { 16 | ".": "./dist/src/bundle.js" 17 | }, 18 | "files": [ 19 | "dist" 20 | ], 21 | "repository": { 22 | "type": "git", 23 | "url": "git+https://github.com/ClementGre/HackCable.git" 24 | }, 25 | "author": "Clément Grennerat", 26 | "license": "BSD-3-Clause", 27 | "bugs": { 28 | "url": "https://github.com/ClementGre/HackCable/issues" 29 | }, 30 | "homepage": "https://github.com/ClementGre/HackCable#readme", 31 | "keywords": [], 32 | "devDependencies": { 33 | "@babel/core": "^7.16.0", 34 | "@babel/plugin-proposal-class-properties": "^7.16.0", 35 | "@babel/plugin-proposal-object-rest-spread": "7.16.0", 36 | "@babel/plugin-transform-runtime": "^7.16.4", 37 | "@babel/polyfill": "^7.12.1", 38 | "@babel/preset-env": "^7.16.0", 39 | "@babel/preset-typescript": "7.16.0", 40 | "@types/jquery": "^3.5.9", 41 | "@types/react": "^17.0.37", 42 | "babel-loader": "^8.2.3", 43 | "buffer": "^6.0.3", 44 | "copy-webpack-plugin": "^10.0.0", 45 | "css-loader": "^6.5.1", 46 | "draw2d-types": "^1.0.3", 47 | "fork-ts-checker-webpack-plugin": "6.4.0", 48 | "html-loader": "^3.0.1", 49 | "html-webpack-plugin": "^5.5.0", 50 | "style-loader": "^3.3.1", 51 | "stylus": "^0.55.0", 52 | "stylus-loader": "^6.2.0", 53 | "typescript": "4.4.4", 54 | "webpack": "5.62.1", 55 | "webpack-cli": "4.9.1", 56 | "webpack-dev-server": "^4.5.0" 57 | }, 58 | "dependencies": { 59 | "@wokwi/elements": "^0.54.1", 60 | "avr8js": "^0.18.6", 61 | "canvg": "^3.0.9", 62 | "class": "^0.1.4", 63 | "draw2d": "^1.0.38", 64 | "i18next": "^21.6.3", 65 | "intel-hex": "^0.1.2", 66 | "jquery": "^3.6.0", 67 | "jquery-autosize": "^1.18.18", 68 | "jquery-contextmenu": "^2.9.2", 69 | "jquery-ui": "^1.13.0", 70 | "jquery-ui-touch-punch": "^0.2.3", 71 | "json2": "^0.4.0", 72 | "pathfinding": "^0.4.18", 73 | "raphael": "^2.3.0", 74 | "rgbcolor": "^1.0.1", 75 | "shifty": "^2.16.0", 76 | "webpack-jquery-ui": "^2.0.1" 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/panels/catalog.ts: -------------------------------------------------------------------------------- 1 | import {ComponentElement, ComponentType, wokwiComponents} from "./component"; 2 | 3 | export class Catalog { 4 | 5 | readonly elements: ComponentElement[] = [] 6 | private readonly catalog; 7 | private readonly sorter: HTMLSelectElement | undefined; 8 | constructor() { 9 | 10 | this.elements = wokwiComponents().filter((c) => c.type != ComponentType.CARD).map((c) => { 11 | return new ComponentElement(c); 12 | }); 13 | 14 | const root = document.querySelector(".hackCable-catalog-list") 15 | if(root instanceof HTMLDivElement){ 16 | this.catalog = root; 17 | 18 | const sorter = document.querySelector(".hackCable-catalog-sorter") 19 | if(sorter instanceof HTMLSelectElement){ 20 | this.sorter = sorter; 21 | this.build(); 22 | }else console.error("[HackCable] Unable to find element .hackCable-catalog-sorter") 23 | }else console.error("[HackCable] Unable to find element .hackCable-catalog-list") 24 | } 25 | 26 | 27 | build(){ 28 | 29 | // Actions 30 | if(this.sorter){ 31 | this.sorter.innerHTML = "\n" + 32 | "\n" + 33 | "\n" + 34 | "\n" + 35 | "\n" + 36 | "\n" + 37 | "\n"; 38 | 39 | this.sorter.addEventListener("change", (e) => { 40 | console.log(e) 41 | this.updateCatalogList() 42 | }) 43 | } 44 | this.updateCatalogList() 45 | } 46 | 47 | updateCatalogList(){ 48 | 49 | if(this.catalog) this.catalog.innerHTML = "" 50 | 51 | let filterType: number = -1 52 | if(this.sorter){ 53 | filterType = parseInt(this.sorter.value, 10) 54 | } 55 | 56 | this.elements.filter((e) => { 57 | return ComponentType[e.type] == ComponentType[filterType] || filterType == -1 58 | }).forEach((e) => { 59 | //console.log(e.pinInfo) 60 | 61 | const div = document.createElement('div'); 62 | div.setAttribute("class", "hackCable-catalog-element") 63 | div.setAttribute("title", e.description) 64 | div.innerHTML = "

" + e.name + "

"; 65 | this.catalog?.appendChild(div); 66 | 67 | setTimeout(() => { 68 | const svg = e.wokwiComponent.shadowRoot?.querySelector("svg"); 69 | if(svg) svg.setAttribute("style", "max-width: 100%; height: auto") 70 | }) 71 | div.appendChild(e.wokwiComponent); 72 | }) 73 | } 74 | } -------------------------------------------------------------------------------- /src/editor/canvas.ts: -------------------------------------------------------------------------------- 1 | import draw2d from "draw2d"; 2 | import {connectionsPolicy} from "./connections-policies"; 3 | import {CoordinatePortLocator} from "./coordinate-port-locator"; 4 | import {ComponentFigure} from "./component-figure"; 5 | import {wokwiComponentByClass} from "../panels/component"; 6 | import {ArduinoUnoElement, Dht22Element, LEDElement, NeoPixelElement} from "@wokwi/elements"; 7 | import {css} from "../utils/dom"; 8 | 9 | const DEFAULT_ZOOM = .6; 10 | 11 | export class Canvas extends draw2d.Canvas{ 12 | 13 | private selected: any = null; 14 | 15 | constructor(divId: string){ 16 | super(divId); 17 | 18 | // Overlay 19 | this.overlayContainer = document.querySelector('.hackCable-canvas-overlay-container'); 20 | this.html.prepend(this.overlayContainer); 21 | 22 | this.setScrollArea(document.querySelector('.hackCable-canvas')) 23 | 24 | // Edit policies 25 | this.installEditPolicy(new draw2d.policy.canvas.PanningSelectionPolicy()) 26 | this.installEditPolicy(new draw2d.policy.canvas.SnapToGeometryEditPolicy()) 27 | this.installEditPolicy(new draw2d.policy.canvas.SnapToInBetweenEditPolicy()) 28 | this.installEditPolicy(new draw2d.policy.canvas.SnapToCenterEditPolicy()) 29 | this.installEditPolicy(connectionsPolicy); 30 | 31 | // Listeners 32 | this.on("select", (_emitter: any, event: any) => this.onSelectionChange(event.figure)); 33 | this.on("zoom", () => this.onZoomChange()); 34 | /*this.on("figure:add", () => {});*/ 35 | 36 | this.setZoom(DEFAULT_ZOOM) 37 | 38 | // Add test figures 39 | let rect = new draw2d.shape.basic.Rectangle({x: 100, y: 10, stroke: 3, color: "#9e0000", bgColor: "#cd0000"}); 40 | rect.createPort("hybrid", new CoordinatePortLocator("", 0, 0)); 41 | rect.createPort("hybrid", new CoordinatePortLocator("", 30, 30)); 42 | this.add(rect) 43 | let led = new ComponentFigure(wokwiComponentByClass[LEDElement.name]); 44 | this.add(led.setX(100).setY(100)) 45 | let card = new ComponentFigure(wokwiComponentByClass[ArduinoUnoElement.name]); 46 | this.add(card.setX(200).setY(150)) 47 | let pixel = new ComponentFigure(wokwiComponentByClass[NeoPixelElement.name]); 48 | this.add(pixel.setX(200).setY(50)) 49 | let dht22 = new ComponentFigure(wokwiComponentByClass[Dht22Element.name]); 50 | this.add(dht22.setX(250).setY(10)) 51 | 52 | 53 | 54 | } 55 | private onZoomChange(){ 56 | css(this.overlayContainer, {transform: 'scale(' + 1/this.getZoom() + ')'}) 57 | } 58 | private onSelectionChange(selected: any){ 59 | if(this.selected != selected){ 60 | if(this.selected instanceof ComponentFigure) this.selected.onUnselected() 61 | if(selected instanceof ComponentFigure) selected.onSelected(); 62 | this.selected = selected; 63 | } 64 | } 65 | public clear(){ 66 | super.clear() 67 | this.setZoom(DEFAULT_ZOOM) 68 | } 69 | } -------------------------------------------------------------------------------- /web/index.ts: -------------------------------------------------------------------------------- 1 | import "./css/main.styl" 2 | import {CompileResult, EmulatorManager, HackCable} from "../src/main"; 3 | 4 | console.log("Running HackCable web interface") 5 | 6 | const mountingDiv = document.getElementById('hackCable'); 7 | if(!mountingDiv) throw new DOMException("Mounting div not found") 8 | 9 | const lang = localStorage.getItem('hackCable-webExample-language'); 10 | let hackCable = new HackCable(mountingDiv, lang ? lang : 'fr_fr'); 11 | 12 | const compileButton = document.getElementById('compile'); 13 | const executeButton = document.getElementById('execute'); 14 | const stopButton = document.getElementById('stop'); 15 | const pauseButton = document.getElementById('pause'); 16 | const codeInput = document.getElementById('code-editor'); 17 | const hexInput = document.getElementById('code-compiled'); 18 | 19 | if(compileButton && executeButton && stopButton && pauseButton && codeInput instanceof HTMLTextAreaElement && hexInput instanceof HTMLTextAreaElement){ 20 | 21 | const code = localStorage.getItem('hackCable-webExample-inputCode'); 22 | if(code) codeInput.value = code; 23 | const hex = localStorage.getItem('hackCable-webExample-inputHex'); 24 | if(hex) hexInput.value = hex; 25 | 26 | compileButton.addEventListener("click", () => compile()); 27 | executeButton.addEventListener("click", () => execute()); 28 | stopButton.addEventListener("click", () => hackCable.emulatorManager.stop()); 29 | pauseButton.addEventListener("click", () => { 30 | hackCable.emulatorManager.setPaused(!hackCable.emulatorManager.isPosed()) 31 | }); 32 | 33 | function compile(){ 34 | if(codeInput instanceof HTMLTextAreaElement && hexInput instanceof HTMLTextAreaElement){ 35 | 36 | console.log("Compiling...") 37 | localStorage.setItem('hackCable-webExample-inputCode', codeInput.value); 38 | hackCable.emulatorManager.compileAndLoadCode(codeInput.value).then(() => {}) 39 | EmulatorManager.compileCode(codeInput.value).then((data: CompileResult) => { 40 | if(data){ 41 | console.log("done") 42 | hexInput.value = data.hex 43 | localStorage.setItem('hackCable-webExample-inputHex', data.hex); 44 | } 45 | }) 46 | } 47 | 48 | } 49 | function execute(){ 50 | hackCable.emulatorManager.stop() 51 | if(hexInput instanceof HTMLTextAreaElement){ 52 | localStorage.setItem('hackCable-webExample-inputHex', hexInput.value); 53 | hackCable.emulatorManager.loadCode(hexInput.value) 54 | hackCable.emulatorManager.run() 55 | } 56 | } 57 | } 58 | 59 | const save = document.getElementById('save'); 60 | const restore = document.getElementById('restore'); 61 | if(save && restore){ 62 | save.addEventListener("click", () => { 63 | const data = hackCable.editor.getEditorSaveData(); 64 | console.log('Saving data:', data) 65 | localStorage.setItem('savedEditor', JSON.stringify(data)); 66 | }); 67 | restore.addEventListener("click", () => { 68 | const data = JSON.parse(localStorage.getItem('savedEditor')); 69 | console.log('Loading data:', data) 70 | hackCable.editor.loadEditorSaveData(data) 71 | }); 72 | } 73 | 74 | // language 75 | 76 | const languageEn = document.getElementById('language-en'); 77 | const languageFr = document.getElementById('language-fr'); 78 | 79 | languageEn?.addEventListener("click", () => { 80 | localStorage.setItem('hackCable-webExample-language', 'en_us'); 81 | location.reload() 82 | }); 83 | languageFr?.addEventListener("click", () => { 84 | console.log("Change lang") 85 | localStorage.setItem('hackCable-webExample-language', 'fr_fr'); 86 | location.reload() 87 | }); 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /src/editor/component-figure.ts: -------------------------------------------------------------------------------- 1 | import draw2d from "draw2d"; 2 | import {ElementPin} from "@wokwi/elements"; 3 | import {WokwiComponent, WokwiComponentInfo} from "../panels/component"; 4 | import {CoordinatePortLocator} from "./coordinate-port-locator"; 5 | import {css, unitToPx} from "../utils/dom"; 6 | import {Port} from "draw2d-types"; 7 | 8 | export declare type FigureData = {componentId: number, figureId: string, x: number, y: number} 9 | export declare type WiringData = {svgPath: string, fromFigure: string, fromPortName: string, targetFigure: string, targetPortName: string} 10 | 11 | export class ComponentFigure extends draw2d.shape.basic.Rectangle{ 12 | 13 | private readonly component: WokwiComponentInfo; 14 | constructor(component: WokwiComponentInfo){ 15 | super(); 16 | this.component = component; 17 | 18 | this.setBackgroundColor(null) 19 | this.setColor(null) 20 | this.setResizeable(false) 21 | this.installEditPolicy(new draw2d.policy.figure.AntSelectionFeedbackPolicy()); 22 | 23 | // Load wokwi component into overlay 24 | let element: WokwiComponent = new component.clasz(); 25 | this.overlay = element; 26 | 27 | element.pinInfo.forEach((pinInfo: ElementPin) => { 28 | let port = this.createPort("hybrid", new CoordinatePortLocator(pinInfo.name, pinInfo.x, pinInfo.y)); 29 | port.setAlpha(.7) 30 | port.setBackgroundColor('#424B5A') 31 | port.setDiameter(7) 32 | port.on("connect", () => port.setVisible(false)); 33 | port.on("disconnect", () => port.setVisible(true)); 34 | }) 35 | 36 | 37 | // Listeners 38 | this.on("added", (_emitter: any, event: any) => { 39 | event.canvas.overlayContainer.append(this.overlay) 40 | 41 | setTimeout(() => { 42 | let svg = this.overlay.shadowRoot?.querySelector("svg") 43 | this.setWidth(unitToPx(svg.getAttribute('width'))) 44 | this.setHeight(unitToPx(svg.getAttribute('height'))) 45 | }) 46 | }) 47 | this.on("removed", (_emitter: any, _event: any) => { 48 | this.overlay.remove() 49 | }) 50 | this.on("move", (_emitter: any, event: any) => { 51 | css(this.overlay, {top: event.y, left: event.x}) 52 | }) 53 | this.on("click", (_emitter: any, _event: any) => { 54 | this.toFront() 55 | }) 56 | } 57 | 58 | public onSelected(){ 59 | this.toFront() 60 | } 61 | public onUnselected(){ 62 | 63 | } 64 | public toFront(){ 65 | super.toFront() 66 | this.getCanvas().overlayContainer.append(this.overlay) 67 | } 68 | 69 | public getPortByName(name: string): Port{ 70 | return this.hybridPorts.data.find((port: Port) => { // Iterate through ports 71 | return port.getLocator().portId === name; 72 | }) 73 | } 74 | 75 | public getFigureData(): FigureData{ 76 | return { 77 | componentId: this.component.id, 78 | figureId: this.getId(), 79 | x: this.getX(), 80 | y: this.getY(), 81 | } 82 | } 83 | public getWiringData(): WiringData[]{ 84 | 85 | let wiringData: WiringData[] = []; 86 | 87 | this.hybridPorts.data.forEach((sourcePort: Port) => { // Iterate through ports 88 | sourcePort.getConnections().data.forEach((connection: any) => { // Iterate through connections of this port 89 | if(connection.sourcePort === sourcePort){ // Save connections only from theirs source port 90 | wiringData.push({ 91 | svgPath: connection.getVertices().data, 92 | fromFigure: this.getId(), 93 | fromPortName: sourcePort.getLocator().portId, 94 | targetFigure: connection.getTarget().getParent().getId(), 95 | targetPortName: connection.getTarget().getLocator().portId 96 | }); 97 | } 98 | }) 99 | }) 100 | return wiringData; 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /src/panels/component.ts: -------------------------------------------------------------------------------- 1 | import { 2 | AnalogJoystickElement, ArduinoMegaElement, 3 | ArduinoNanoElement, 4 | ArduinoUnoElement, 5 | BigSoundSensorElement, 6 | BuzzerElement, 7 | Dht22Element, DipSwitch8Element, 8 | Ds1307Element, 9 | ESP32DevkitV1Element, FlameSensorElement, 10 | FranzininhoElement, GasSensorElement, 11 | HCSR04Element, 12 | HeartBeatSensorElement, 13 | ILI9341Element, 14 | IRReceiverElement, IRRemoteElement, 15 | KY040Element, 16 | LCD1602Element, LCD2004Element, LedBarGraphElement, LEDElement, 17 | LEDRingElement, MembraneKeypadElement, 18 | MicrosdCardElement, MPU6050Element, 19 | NanoRP2040ConnectElement, 20 | NeoPixelElement, 21 | NeopixelMatrixElement, NTCTemperatureSensorElement, PhotoresistorSensorElement, 22 | PIRMotionSensorElement, 23 | PotentiometerElement, 24 | PushbuttonElement, 25 | ResistorElement, RGBLedElement, 26 | RotaryDialerElement, 27 | ServoElement, SevenSegmentElement, SlidePotentiometerElement, 28 | SlideSwitchElement, 29 | SmallSoundSensorElement, SSD1306Element, 30 | TiltSwitchElement 31 | } from "@wokwi/elements"; 32 | import i18next from "i18next"; 33 | 34 | export declare type WokwiComponent = SevenSegmentElement | ArduinoUnoElement | LCD1602Element | LEDElement | NeoPixelElement | PushbuttonElement | ResistorElement | MembraneKeypadElement | PotentiometerElement | NeopixelMatrixElement | SSD1306Element | BuzzerElement | RotaryDialerElement | ServoElement | Dht22Element | ArduinoMegaElement | ArduinoNanoElement | Ds1307Element | LEDRingElement | SlideSwitchElement | HCSR04Element | LCD2004Element | AnalogJoystickElement | SlidePotentiometerElement | IRReceiverElement | IRRemoteElement | PIRMotionSensorElement | NTCTemperatureSensorElement | HeartBeatSensorElement | TiltSwitchElement | FlameSensorElement | GasSensorElement | FranzininhoElement | NanoRP2040ConnectElement | SmallSoundSensorElement | BigSoundSensorElement | MPU6050Element | ESP32DevkitV1Element | KY040Element | PhotoresistorSensorElement | RGBLedElement | ILI9341Element | LedBarGraphElement | MicrosdCardElement | DipSwitch8Element 35 | 36 | export declare type WokwiClass = typeof Dht22Element; 37 | 38 | export const wokwiComponentClasses = [SevenSegmentElement, ArduinoUnoElement, LCD1602Element, LEDElement, NeoPixelElement, PushbuttonElement, ResistorElement, MembraneKeypadElement, PotentiometerElement, NeopixelMatrixElement, SSD1306Element, BuzzerElement, RotaryDialerElement, ServoElement, Dht22Element, ArduinoMegaElement, ArduinoNanoElement, Ds1307Element, LEDRingElement, SlideSwitchElement, HCSR04Element, LCD2004Element, AnalogJoystickElement, SlidePotentiometerElement, IRReceiverElement, IRRemoteElement, PIRMotionSensorElement, NTCTemperatureSensorElement, HeartBeatSensorElement, TiltSwitchElement, FlameSensorElement, GasSensorElement, FranzininhoElement, NanoRP2040ConnectElement, SmallSoundSensorElement, BigSoundSensorElement, MPU6050Element, ESP32DevkitV1Element, KY040Element, PhotoresistorSensorElement, RGBLedElement, ILI9341Element, LedBarGraphElement, MicrosdCardElement, DipSwitch8Element] 39 | 40 | export declare type WokwiComponentInfo = {id: number, clasz: WokwiClass, name: string, description: string, type: ComponentType} 41 | export declare type WokwiComponents = WokwiComponentInfo[] 42 | export declare type WokwiComponentById = {[id: number]: WokwiComponentInfo} 43 | export declare type WokwiComponentByClass = {[clasz: string]: WokwiComponentInfo} 44 | 45 | export enum ComponentType { 46 | LED, 47 | MOTOR, 48 | TRANSMITTER, 49 | BUTTON, 50 | SENSOR, 51 | OTHER, 52 | CARD 53 | } 54 | 55 | export const wokwiComponents = (): WokwiComponents => [ 56 | { 57 | id: 0, 58 | clasz: ArduinoUnoElement, 59 | name: "Arduino Uno", 60 | description: i18next.t("wokwiComponents.arduinoUno.description"), 61 | type: ComponentType.CARD 62 | },{ 63 | id: 1, 64 | clasz: LEDElement, 65 | name: "LED", 66 | description: i18next.t("wokwiComponents.led.description"), 67 | type: ComponentType.LED 68 | },{ 69 | id: 2, 70 | clasz: RGBLedElement, 71 | name: "LED RGB", 72 | description: i18next.t("wokwiComponents.rgbLed.description"), 73 | type: ComponentType.LED 74 | },{ 75 | id: 3, 76 | clasz: LedBarGraphElement, 77 | name: "LED Bar", 78 | description: i18next.t("wokwiComponents.ledBar.description"), 79 | type: ComponentType.LED 80 | },{ 81 | id: 4, 82 | clasz: NeoPixelElement, 83 | name: "Pixel", 84 | description: i18next.t("wokwiComponents.led.description"), 85 | type: ComponentType.LED 86 | },{ 87 | id: 5, 88 | clasz: SevenSegmentElement, 89 | name: "Numitrons", 90 | description: "Peut afficher un chiffre ou une lettre", 91 | type: ComponentType.LED 92 | },{ 93 | id: 6, 94 | clasz: LEDRingElement, 95 | name: "LED Ring", 96 | description: "Anneau de Leds", 97 | type: ComponentType.LED 98 | },{ 99 | id: 7, 100 | clasz: LCD1602Element, 101 | name: "Écran 2*16 caractères", 102 | description: "Peut afficher du texte (Jusqu'à 32 caractères sur 2 lignes)", 103 | type: ComponentType.LED 104 | },{ 105 | id: 8, 106 | clasz: LCD2004Element, 107 | name: "Écran 4*20 caractères", 108 | description: "Peut afficher du texte (Jusqu'à 80 caractères sur 4 lignes)", 109 | type: ComponentType.LED 110 | },{ 111 | id: 9, 112 | clasz: BuzzerElement, 113 | name: "Buzzer", 114 | description: "Haut parleur", 115 | type: ComponentType.TRANSMITTER 116 | },{ 117 | id: 10, 118 | clasz: PushbuttonElement, 119 | name: "Bouton poussoir", 120 | description: "", 121 | type: ComponentType.BUTTON 122 | },{ 123 | id: 11, 124 | clasz: PotentiometerElement, 125 | name: "Potentiomètre", 126 | description: "Résistance variable", 127 | type: ComponentType.BUTTON 128 | },{ 129 | id: 12, 130 | clasz: SlideSwitchElement, 131 | name: "Slide switch", 132 | description: "Interrupteur", 133 | type: ComponentType.BUTTON 134 | },{ 135 | id: 13, 136 | clasz: AnalogJoystickElement, 137 | name: "Joystick", 138 | description: "", 139 | type: ComponentType.BUTTON 140 | },{ 141 | id: 14, 142 | clasz: SlidePotentiometerElement, 143 | name: "Potentiomètre", 144 | description: "Résistance variable", 145 | type: ComponentType.BUTTON 146 | },{ 147 | id: 15, 148 | clasz: DipSwitch8Element, 149 | name: "DipSwitch8", 150 | description: "Barre de 8 interrupteurs", 151 | type: ComponentType.BUTTON 152 | },{ 153 | id: 16, 154 | clasz: Dht22Element, 155 | name: "DHT22 (T° et φ)", 156 | description: "Capteur de température et d'humidité", 157 | type: ComponentType.SENSOR 158 | },{ 159 | id: 17, 160 | clasz: HCSR04Element, 161 | name: "HCSR04", 162 | description: "Détecteur de proximité", 163 | type: ComponentType.SENSOR 164 | },{ 165 | id: 18, 166 | clasz: NTCTemperatureSensorElement, 167 | name: "Temperature sensor", 168 | description: "", 169 | type: ComponentType.SENSOR 170 | },{ 171 | id: 19, 172 | clasz: SmallSoundSensorElement, 173 | name: "Détecteur de son faible", 174 | description: "", 175 | type: ComponentType.SENSOR 176 | },{ 177 | id: 20, 178 | clasz: BigSoundSensorElement, 179 | name: "Détecteur de son fort", 180 | description: "", 181 | type: ComponentType.SENSOR 182 | },{ 183 | id: 21, 184 | clasz: ServoElement, 185 | name: "Servo moteur", 186 | description: "Moteur de précision (angle de rotation controllable)", 187 | type: ComponentType.MOTOR 188 | },{ 189 | id: 22, 190 | clasz: KY040Element, 191 | name: "Potentiometre KY040", 192 | description: "Résistance variable", 193 | type: ComponentType.BUTTON 194 | },{ 195 | id: 23, 196 | clasz: PhotoresistorSensorElement, 197 | name: "Photoresistance", 198 | description: "Capteur de lumière", 199 | type: ComponentType.SENSOR 200 | },{ 201 | id: 24, 202 | clasz: ResistorElement, 203 | name: "Résistance", 204 | description: "", 205 | type: ComponentType.OTHER 206 | },{ 207 | id: 25, 208 | clasz: Ds1307Element, 209 | name: "Ds1307 (Horloge)", 210 | description: "", 211 | type: ComponentType.OTHER 212 | }] 213 | 214 | export let wokwiComponentById: WokwiComponentById = {}; 215 | export let wokwiComponentByClass: WokwiComponentByClass = {}; 216 | for(let component of wokwiComponents()){ 217 | wokwiComponentById[component.id] = component; 218 | wokwiComponentByClass[component.clasz.name] = component; 219 | } 220 | 221 | 222 | export class ComponentElement { 223 | 224 | public readonly componentId: number; 225 | public readonly wokwiComponent: WokwiComponent 226 | public readonly name: string 227 | public readonly description: string 228 | public readonly type: ComponentType 229 | 230 | constructor(component: WokwiComponentInfo) { 231 | this.componentId = component.id; 232 | this.wokwiComponent = new component.clasz(); 233 | this.name = component.name; 234 | this.description = component.description; 235 | this.type = component.type 236 | } 237 | 238 | } -------------------------------------------------------------------------------- /src/types/draw2d.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for [draw2d] 2 | // Project: [http://www.draw2d.org] 3 | // Definitions by: Hesham Elbadawi 4 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped 5 | export = Draw2D; 6 | declare namespace Draw2D { 7 | class Canvas { 8 | constructor(...args: any[]); 9 | 10 | add(figure: any, x: any, y: any): any; 11 | add(connection: any): any; 12 | 13 | addSelection(object: any): any; 14 | 15 | calculateConnectionIntersection(): any; 16 | 17 | clear(): any; 18 | 19 | destroy(): void; 20 | 21 | fireEvent(event: any, args: any): void; 22 | 23 | fromCanvasToDocumentCoordinate(x: any, y: any): any; 24 | 25 | fromDocumentToCanvasCoordinate(x: any, y: any): any; 26 | 27 | getAbsoluteX(): any; 28 | 29 | getAbsoluteY(): any; 30 | 31 | getAllPorts(): any; 32 | 33 | getBestFigure(x: any, y: any, blacklist: any, whitelist: any): any; 34 | 35 | getBestLine(x: any, y: any, lineToIgnore: any): any; 36 | 37 | getCommandStack(): any; 38 | 39 | getDimension(): any; 40 | 41 | getDropInterceptorPolicies(): any; 42 | 43 | getFigure(id: any): any; 44 | 45 | getFigures(): any; 46 | 47 | getHeight(): any; 48 | 49 | getHtmlContainer(): any; 50 | 51 | getIntersection(line: any): any; 52 | 53 | getLine(id: any): any; 54 | 55 | getLines(): any; 56 | 57 | getPrimarySelection(): any; 58 | 59 | getScrollArea(): any; 60 | 61 | getScrollLeft(): any; 62 | 63 | getScrollTop(): any; 64 | 65 | getSelection(): any; 66 | 67 | getWidth(): any; 68 | 69 | getZoom(): any; 70 | 71 | hideDecoration(): void; 72 | 73 | init(canvasId: any, width: any, height: any): any; 74 | 75 | installEditPolicy(policy: any): any; 76 | 77 | off(eventOrFunction: any): any; 78 | 79 | on(event: any, callback: any): any; 80 | 81 | onClick(x: any, y: any, shiftKey: any, ctrlKey: any): void; 82 | 83 | onDoubleClick(x: any, y: any, shiftKey: any, ctrlKey: any): void; 84 | 85 | onDrag(draggedDomNode: any, x: any, y: any): void; 86 | 87 | onDragEnter(draggedDomNode: any): void; 88 | 89 | onDragLeave(draggedDomNode: any): void; 90 | 91 | onDrop(droppedDomNode: any, x: any, y: any, shiftKey: any, ctrlKey: any): void; 92 | 93 | onMouseWheel(wheelDelta: any, x: any, y: any, shiftKey: any, ctrlKey: any): any; 94 | 95 | onRightMouseDown(x: any, y: any, shiftKey: any, ctrlKey: any): void; 96 | 97 | registerPort(port: any): any; 98 | 99 | remove(figure: any): any; 100 | 101 | scrollTo(top: any, left: any): any; 102 | 103 | setCurrentSelection(object: any): any; 104 | 105 | setDimension(dim: any, height: any): any; 106 | 107 | setScrollArea(elementSelector: any): any; 108 | 109 | setScrollLeft(left: any): any; 110 | 111 | setScrollTop(top: any): any; 112 | 113 | setZoom(zoomFactor: any, animated: any): void; 114 | 115 | showDecoration(): void; 116 | 117 | snapToHelper(figure: any, pos: any): any; 118 | 119 | uninstallEditPolicy(policy: any): any; 120 | 121 | unregisterPort(port: any): any; 122 | 123 | static extend: any; 124 | static inject: any; 125 | } 126 | 127 | class Corona { 128 | constructor(...args: any[]); 129 | 130 | init(...args: any[]): any; 131 | 132 | setAlpha(...args: any[]): any; 133 | 134 | static extend: any; 135 | static inject: any; 136 | } 137 | 138 | class Figure { 139 | constructor(...args: any[]); 140 | 141 | add(child: any, locator: any, index: any): any; 142 | 143 | addCssClass(className: any): any; 144 | 145 | applyTransformation(): any; 146 | 147 | attr(name: any, value: any): any; 148 | 149 | clone(cloneMetaData: any): any; 150 | 151 | contains(containedFigure: any): any; 152 | 153 | createCommand(request: any): any; 154 | 155 | createShapeElement(): void; 156 | 157 | delegateTarget(draggedFigure: any): any; 158 | 159 | fireEvent(event: any, args: any): void; 160 | 161 | getAbsoluteBounds(): any; 162 | 163 | getAbsolutePosition(): any; 164 | 165 | getAbsoluteX(): any; 166 | 167 | getAbsoluteY(): any; 168 | 169 | getAlpha(): any; 170 | 171 | getBestChild(x: any, y: any, figureToIgnore: any): any; 172 | 173 | getBoundingBox(): any; 174 | 175 | getCanSnapToHelper(): any; 176 | 177 | getCanvas(): any; 178 | 179 | getChildren(): any; 180 | 181 | getComposite(): any; 182 | 183 | getCssClass(): any; 184 | 185 | getHandleBBox(): any; 186 | 187 | getHeight(): any; 188 | 189 | getId(): any; 190 | 191 | getKeepAspectRatio(): any; 192 | 193 | getMinHeight(): any; 194 | 195 | getMinWidth(): any; 196 | 197 | getParent(): any; 198 | 199 | getPersistentAttributes(): any; 200 | 201 | getPosition(): any; 202 | 203 | getRoot(): any; 204 | 205 | getRotationAngle(): any; 206 | 207 | getSelectionAdapter(): any; 208 | 209 | getShapeElement(): any; 210 | 211 | getSnapToGridAnchor(): any; 212 | 213 | getTopLevelShapeElement(): any; 214 | 215 | getUserData(): any; 216 | 217 | getWidth(): any; 218 | 219 | getX(): any; 220 | 221 | getY(): any; 222 | 223 | getZOrder(): any; 224 | 225 | hasCssClass(className: any): any; 226 | 227 | hitTest(iX: any, iY: any, corona: any): any; 228 | 229 | init(attr: any, setter: any, getter: any): any; 230 | 231 | installEditPolicy(policy: any): any; 232 | 233 | isDeleteable(): any; 234 | 235 | isDraggable(): any; 236 | 237 | isResizeable(): any; 238 | 239 | isSelectable(): any; 240 | 241 | isSelected(): any; 242 | 243 | isStrechable(): any; 244 | 245 | isVisible(): any; 246 | 247 | off(eventOrFunction: any): any; 248 | 249 | on(event: any, callback: any, context: any): any; 250 | 251 | onCatch(droppedFigure: any, x: any, y: any, shiftKey: any, ctrlKey: any): void; 252 | 253 | onClick(): void; 254 | 255 | onContextMenu(x: any, y: any): void; 256 | 257 | onDoubleClick(): void; 258 | 259 | onDrag(dx: any, dy: any, dx2: any, dy2: any, shiftKey: any, ctrlKey: any): void; 260 | 261 | onDragEnd(x: any, y: any, shiftKey: any, ctrlKey: any): void; 262 | 263 | onDragEnter(draggedFigure: any): void; 264 | 265 | onDragLeave(draggedFigure: any): void; 266 | 267 | onDragStart(x: any, y: any, shiftKey: any, ctrlKey: any): any; 268 | 269 | onDrop(dropTarget: any, x: any, y: any, shiftKey: any, ctrlKey: any): void; 270 | 271 | onMouseEnter(): void; 272 | 273 | onMouseLeave(): void; 274 | 275 | onPanning(dx: any, dy: any, dx2: any, dy2: any, shiftKey: any, ctrlKey: any): void; 276 | 277 | onPanningEnd(): void; 278 | 279 | onTimer(): void; 280 | 281 | pick(obj: any, var_keys: any, ...args: any[]): any; 282 | 283 | remove(child: any): any; 284 | 285 | removeCssClass(className: any): any; 286 | 287 | repaint(attributes: any): any; 288 | 289 | resetChildren(): any; 290 | 291 | select(asPrimarySelection: any): any; 292 | 293 | setAlpha(percent: any): any; 294 | 295 | setBoundingBox(rect: any): any; 296 | 297 | setCanSnapToHelper(flag: any): any; 298 | 299 | setCanvas(canvas: any): any; 300 | 301 | setComposite(composite: any): any; 302 | 303 | setCssClass(cssClass: any): any; 304 | 305 | setDeleteable(flag: any): any; 306 | 307 | setDimension(w: any, h: any): any; 308 | 309 | setDraggable(flag: any): any; 310 | 311 | setGlow(flag: any): any; 312 | 313 | setHeight(height: any): any; 314 | 315 | setId(newId: any): any; 316 | 317 | setKeepAspectRatio(flag: any): any; 318 | 319 | setMinHeight(h: any): any; 320 | 321 | setMinWidth(w: any): any; 322 | 323 | setParent(parent: any): any; 324 | 325 | setPersistentAttributes(memento: any): any; 326 | 327 | setPosition(x: any, y: any): any; 328 | 329 | setResizeable(flag: any): any; 330 | 331 | setRotationAngle(angle: any): any; 332 | 333 | setSelectable(flag: any): any; 334 | 335 | setSelectionAdapter(adapter: any): any; 336 | 337 | setSnapToGridAnchor(point: any): any; 338 | 339 | setUserData(object: any): any; 340 | 341 | setVisible(flag: any, duration: any): any; 342 | 343 | setWidth(width: any): any; 344 | 345 | setX(x: any): any; 346 | 347 | setY(y: any): any; 348 | 349 | startTimer(milliSeconds: any): any; 350 | 351 | stopTimer(): any; 352 | 353 | toBack(figure: any): any; 354 | 355 | toFront(figure: any): any; 356 | 357 | toggleCssClass(className: any): any; 358 | 359 | translate(dx: any, dy: any): any; 360 | 361 | uninstallEditPolicy(policy: any): any; 362 | 363 | unselect(): any; 364 | 365 | static extend: any; 366 | static inject: any; 367 | } 368 | 369 | class HeadlessCanvas { 370 | constructor(...args: any[]); 371 | 372 | add(figure: any, x: any, y: any): any; 373 | 374 | calculateConnectionIntersection(): void; 375 | 376 | clear(): any; 377 | 378 | fireEvent(event: any, args: any): void; 379 | 380 | getAllPorts(): any; 381 | 382 | getCommandStack(): any; 383 | 384 | getFigure(id: any): any; 385 | 386 | getFigures(): any; 387 | 388 | getLine(id: any): any; 389 | 390 | getLines(): any; 391 | 392 | hideDecoration(): void; 393 | 394 | init(): void; 395 | 396 | off(eventOrFunction: any): any; 397 | 398 | on(event: any, callback: any): any; 399 | 400 | registerPort(port: any): any; 401 | 402 | showDecoration(): void; 403 | 404 | static extend: any; 405 | static inject: any; 406 | } 407 | 408 | class HybridPort { 409 | constructor(...args: any[]); 410 | 411 | createCommand(...args: any[]): any; 412 | 413 | init(...args: any[]): any; 414 | 415 | static extend: any; 416 | static inject: any; 417 | } 418 | 419 | class InputPort { 420 | constructor(...args: any[]); 421 | 422 | createCommand(...args: any[]): any; 423 | 424 | init(...args: any[]): any; 425 | 426 | static extend: any; 427 | static inject: any; 428 | } 429 | 430 | class OutputPort { 431 | constructor(...args: any[]); 432 | 433 | createCommand(...args: any[]): any; 434 | 435 | init(...args: any[]): any; 436 | 437 | static extend: any; 438 | static inject: any; 439 | } 440 | 441 | class Port { 442 | constructor(...args: any[]); 443 | 444 | createCommand(request: any): any; 445 | 446 | fireEvent(...args: any[]): any; 447 | 448 | getConnectionAnchorLocation(referencePoint: any, inquiringConnection: any): any; 449 | 450 | getConnectionAnchorReferencePoint(inquiringConnection: any): any; 451 | 452 | getConnectionDirection(peerPort: any): any; 453 | 454 | getConnections(): any; 455 | 456 | getCoronaWidth(): any; 457 | 458 | getLocator(): any; 459 | 460 | getMaxFanOut(): any; 461 | 462 | getName(): any; 463 | 464 | getPersistentAttributes(...args: any[]): any; 465 | 466 | getSelectionAdapter(): any; 467 | 468 | getValue(): any; 469 | 470 | hitTest(iX: any, iY: any, corona: any): any; 471 | 472 | init(...args: any[]): any; 473 | 474 | onConnect(connection: any): void; 475 | 476 | onDisconnect(connection: any): void; 477 | 478 | onDrag(...args: any[]): any; 479 | 480 | onDragEnd(x: any, y: any, shiftKey: any, ctrlKey: any): void; 481 | 482 | onDragStart(x: any, y: any, shiftKey: any, ctrlKey: any): any; 483 | 484 | onDrop(dropTarget: any, x: any, y: any, shiftKey: any, ctrlKey: any): void; 485 | 486 | onMouseEnter(): void; 487 | 488 | onMouseLeave(): void; 489 | 490 | repaint(...args: any[]): any; 491 | 492 | setBackgroundColor(...args: any[]): any; 493 | 494 | setConnectionAnchor(anchor: any): any; 495 | 496 | setConnectionDirection(direction: any): any; 497 | 498 | setCoronaWidth(width: any): void; 499 | 500 | setGlow(flag: any): any; 501 | 502 | setLocator(locator: any): any; 503 | 504 | setMaxFanOut(count: any): any; 505 | 506 | setName(name: any): void; 507 | 508 | setParent(...args: any[]): any; 509 | 510 | setPersistentAttributes(...args: any[]): any; 511 | 512 | setValue(value: any): any; 513 | 514 | static extend: any; 515 | static inject: any; 516 | } 517 | 518 | class ResizeHandle { 519 | constructor(...args: any[]); 520 | 521 | createShapeElement(...args: any[]): any; 522 | 523 | fireEvent(event: any, args: any): void; 524 | 525 | getOwner(): any; 526 | 527 | getSnapToDirection(): any; 528 | 529 | getType(): any; 530 | 531 | hide(): any; 532 | 533 | init(...args: any[]): any; 534 | 535 | onDrag(...args: any[]): any; 536 | 537 | onDragEnd(x: any, y: any, shiftKey: any, ctrlKey: any): void; 538 | 539 | onDragStart(x: any, y: any, shiftKey: any, ctrlKey: any): any; 540 | 541 | onKeyDown(keyCode: any, ctrl: any): void; 542 | 543 | repaint(...args: any[]): any; 544 | 545 | setBackgroundColor(...args: any[]): any; 546 | 547 | setCanvas(...args: any[]): any; 548 | 549 | setDimension(...args: any[]): any; 550 | 551 | setDraggable(...args: any[]): any; 552 | 553 | setOwner(owner: any): any; 554 | 555 | setPosition(x: any, y: any): any; 556 | 557 | setType(type: any): any; 558 | 559 | show(canvas: any): any; 560 | 561 | supportsSnapToHelper(): any; 562 | 563 | updateCursor(shape: any): any; 564 | 565 | static extend: any; 566 | static inject: any; 567 | } 568 | 569 | class SVGFigure { 570 | constructor(...args: any[]); 571 | 572 | createSet(): any; 573 | 574 | getSVG(): any; 575 | 576 | importSVG(canvas: any, rawSVG: any): any; 577 | 578 | init(...args: any[]): any; 579 | 580 | setPersistentAttributes(...args: any[]): any; 581 | 582 | setSVG(svg: any, duration: any): any; 583 | 584 | static extend: any; 585 | static inject: any; 586 | } 587 | 588 | class Selection { 589 | constructor(...args: any[]); 590 | 591 | add(figure: any): any; 592 | 593 | clear(): any; 594 | 595 | contains(figure: any, checkDescendant: any): any; 596 | 597 | each(func: any, reverse: any): any; 598 | 599 | getAll(expand: any): any; 600 | 601 | getPrimary(): any; 602 | 603 | getSize(): any; 604 | 605 | init(): void; 606 | 607 | remove(figure: any): any; 608 | 609 | setPrimary(figure: any): any; 610 | 611 | static extend: any; 612 | static inject: any; 613 | } 614 | 615 | class SetFigure { 616 | constructor(...args: any[]); 617 | 618 | applyAlpha(): void; 619 | 620 | applyTransformation(): any; 621 | 622 | createSet(): any; 623 | 624 | createShapeElement(): any; 625 | 626 | getTopLevelShapeElement(): any; 627 | 628 | init(...args: any[]): any; 629 | 630 | repaint(...args: any[]): any; 631 | 632 | setCanvas(...args: any[]): any; 633 | 634 | setCssClass(...args: any[]): any; 635 | 636 | setVisible(...args: any[]): any; 637 | 638 | toBack(figure: any): any; 639 | 640 | toFront(figure: any): any; 641 | 642 | static extend: any; 643 | static inject: any; 644 | } 645 | 646 | class VectorFigure { 647 | constructor(...args: any[]); 648 | 649 | getBackgroundColor(): any; 650 | 651 | getColor(): any; 652 | 653 | getDashArray(): any; 654 | 655 | getPersistentAttributes(...args: any[]): any; 656 | 657 | getRadius(): any; 658 | 659 | getStroke(): any; 660 | 661 | init(...args: any[]): any; 662 | 663 | repaint(...args: any[]): any; 664 | 665 | setBackgroundColor(color: any): any; 666 | 667 | setColor(color: any): any; 668 | 669 | setDashArray(dashPattern: any): any; 670 | 671 | setGlow(flag: any): any; 672 | 673 | setPersistentAttributes(...args: any[]): any; 674 | 675 | setRadius(radius: any): any; 676 | 677 | setStroke(w: any): any; 678 | 679 | static extend: any; 680 | static inject: any; 681 | } 682 | 683 | const Configuration: { 684 | factory: { 685 | createConnection: any; 686 | createHybridPort: any; 687 | createInputPort: any; 688 | createOutputPort: any; 689 | createResizeHandle: any; 690 | }; 691 | i18n: { 692 | command: { 693 | addShape: string; 694 | addVertex: string; 695 | assignShape: string; 696 | changeAttributes: string; 697 | collection: string; 698 | connectPorts: string; 699 | deleteShape: string; 700 | deleteVertex: string; 701 | groupShapes: string; 702 | move: string; 703 | moveLine: string; 704 | moveShape: string; 705 | moveVertex: string; 706 | moveVertices: string; 707 | resizeShape: string; 708 | rotateShape: string; 709 | ungroupShapes: string; 710 | }; 711 | dialog: { 712 | filenamePrompt: string; 713 | }; 714 | menu: { 715 | addSegment: string; 716 | deleteSegment: string; 717 | }; 718 | }; 719 | version: string; 720 | }; 721 | // Circular reference from draw2d.Connection.DROP_FILTER.draw2d 722 | const Connection: any; 723 | const SnapToHelper: { 724 | CENTER_H: number; 725 | CENTER_V: number; 726 | EAST: number; 727 | EAST_WEST: number; 728 | NORTH: number; 729 | NORTH_EAST: number; 730 | NORTH_SOUTH: number; 731 | NORTH_WEST: number; 732 | NSEW: number; 733 | SOUTH: number; 734 | SOUTH_EAST: number; 735 | SOUTH_WEST: number; 736 | WEST: number; 737 | }; 738 | const decoration: { 739 | connection: { 740 | ArrowDecorator: any; 741 | BarDecorator: any; 742 | CircleDecorator: any; 743 | Decorator: any; 744 | DiamondDecorator: any; 745 | }; 746 | }; 747 | const isTouchDevice: boolean; 748 | const layout: { 749 | anchor: { 750 | CenterEdgeConnectionAnchor: any; 751 | ChopboxConnectionAnchor: any; 752 | ConnectionAnchor: any; 753 | FanConnectionAnchor: any; 754 | ShortesPathConnectionAnchor: any; 755 | }; 756 | connection: { 757 | CircuitConnectionRouter: any; 758 | ConnectionRouter: any; 759 | DirectRouter: any; 760 | FanConnectionRouter: any; 761 | InteractiveManhattanConnectionRouter: any; 762 | ManhattanBridgedConnectionRouter: any; 763 | ManhattanConnectionRouter: any; 764 | MazeConnectionRouter: any; 765 | MuteableManhattanConnectionRouter: any; 766 | RubberbandRouter: any; 767 | SketchConnectionRouter: any; 768 | SplineConnectionRouter: any; 769 | VertexRouter: any; 770 | }; 771 | locator: { 772 | BottomLocator: any; 773 | CenterLocator: any; 774 | ConnectionLocator: any; 775 | DraggableLocator: any; 776 | InputPortLocator: any; 777 | LeftLocator: any; 778 | Locator: any; 779 | ManhattanMidpointLocator: any; 780 | OutputPortLocator: any; 781 | ParallelMidpointLocator: any; 782 | PolylineMidpointLocator: any; 783 | PortLocator: any; 784 | RightLocator: any; 785 | SmartDraggableLocator: any; 786 | TopLocator: any; 787 | XYAbsPortLocator: any; 788 | XYRelPortLocator: any; 789 | }; 790 | mesh: { 791 | ExplodeLayouter: any; 792 | MeshLayouter: any; 793 | ProposedMeshChange: any; 794 | }; 795 | }; 796 | const shape: { 797 | analog: { 798 | OpAmp: any; 799 | ResistorBridge: any; 800 | ResistorVertical: any; 801 | VoltageSupplyHorizontal: any; 802 | VoltageSupplyVertical: any; 803 | }; 804 | arrow: { 805 | CalligrapherArrowDownLeft: any; 806 | CalligrapherArrowLeft: any; 807 | }; 808 | basic: { 809 | Arc: any; 810 | Circle: any; 811 | Diamond: any; 812 | GhostVertexResizeHandle: any; 813 | Image: any; 814 | Label: any; 815 | Line: any; 816 | LineEndResizeHandle: any; 817 | LineResizeHandle: any; 818 | LineStartResizeHandle: any; 819 | Oval: any; 820 | PolyLine: any; 821 | Polygon: any; 822 | Rectangle: any; 823 | Text: any; 824 | VertexResizeHandle: any; 825 | }; 826 | composite: { 827 | Composite: any; 828 | Group: any; 829 | Jailhouse: any; 830 | Raft: any; 831 | StrongComposite: any; 832 | WeakComposite: any; 833 | }; 834 | diagram: { 835 | Diagram: any; 836 | Pie: any; 837 | Sparkline: any; 838 | }; 839 | dimetric: { 840 | Rectangle: any; 841 | }; 842 | flowchart: { 843 | Document: any; 844 | }; 845 | icon: { 846 | Acw: any; 847 | Alarm: any; 848 | Anonymous: any; 849 | Apple: any; 850 | Apps: any; 851 | ArrowDown: any; 852 | ArrowLeft: any; 853 | ArrowLeft2: any; 854 | ArrowRight: any; 855 | ArrowRight2: any; 856 | ArrowUp: any; 857 | Aumade: any; 858 | BarChart: any; 859 | BioHazard: any; 860 | Book: any; 861 | Bookmark: any; 862 | Books: any; 863 | Bubble: any; 864 | Bug: any; 865 | Calendar: any; 866 | Cart: any; 867 | Ccw: any; 868 | Chat: any; 869 | Check: any; 870 | Chrome: any; 871 | Clip: any; 872 | Clock: any; 873 | Cloud: any; 874 | Cloud2: any; 875 | CloudDown: any; 876 | CloudUp: any; 877 | Cloudy: any; 878 | Code: any; 879 | CodeTalk: any; 880 | CommandLine: any; 881 | Connect: any; 882 | Contract: any; 883 | Crop: any; 884 | Cross: any; 885 | Cube: any; 886 | Customer: any; 887 | Db: any; 888 | Detour: any; 889 | Diagram: any; 890 | Disconnect: any; 891 | DockBottom: any; 892 | DockLeft: any; 893 | DockRight: any; 894 | DockTop: any; 895 | Download: any; 896 | Dry: any; 897 | Employee: any; 898 | End: any; 899 | Ethernet: any; 900 | Exchange: any; 901 | Expand: any; 902 | Export: any; 903 | Fave: any; 904 | Feed: any; 905 | Ff: any; 906 | Firefox: any; 907 | Flag: any; 908 | Flickr: any; 909 | Folder: any; 910 | Font: any; 911 | Fork: any; 912 | ForkAlt: any; 913 | FullCube: any; 914 | Future: any; 915 | GRaphael: any; 916 | Gear: any; 917 | Gear2: any; 918 | GitHub: any; 919 | GitHubAlt: any; 920 | Glasses: any; 921 | Globe: any; 922 | GlobeAlt: any; 923 | GlobeAlt2: any; 924 | Hail: any; 925 | Hammer: any; 926 | HammerAndScrewDriver: any; 927 | HangUp: any; 928 | Help: any; 929 | History: any; 930 | Home: any; 931 | IMac: any; 932 | Icon: any; 933 | Icons: any; 934 | Ie: any; 935 | Ie9: any; 936 | Import: any; 937 | InkScape: any; 938 | Ipad: any; 939 | Iphone: any; 940 | JQuery: any; 941 | Jigsaw: any; 942 | Key: any; 943 | Lab: any; 944 | Lamp: any; 945 | Lamp_alt: any; 946 | Landing: any; 947 | Landscape1: any; 948 | Landscape2: any; 949 | LineChart: any; 950 | Link: any; 951 | LinkedIn: any; 952 | Linux: any; 953 | List: any; 954 | Location: any; 955 | Lock: any; 956 | Locked: any; 957 | Magic: any; 958 | Magnet: any; 959 | Mail: any; 960 | Man: any; 961 | Merge: any; 962 | Mic: any; 963 | MicMute: any; 964 | Minus: any; 965 | NewWindow: any; 966 | No: any; 967 | NoMagnet: any; 968 | NodeJs: any; 969 | Notebook: any; 970 | Noview: any; 971 | Opera: any; 972 | Package: any; 973 | Page: any; 974 | Page2: any; 975 | Pallete: any; 976 | Palm: any; 977 | Paper: any; 978 | Parent: any; 979 | Pc: any; 980 | Pen: any; 981 | Pensil: any; 982 | People: any; 983 | Phone: any; 984 | Photo: any; 985 | Picker: any; 986 | Picture: any; 987 | PieChart: any; 988 | Plane: any; 989 | Plugin: any; 990 | Plus: any; 991 | Power: any; 992 | Ppt: any; 993 | Printer: any; 994 | Quote: any; 995 | Rain: any; 996 | Raphael: any; 997 | ReflectH: any; 998 | ReflectV: any; 999 | Refresh: any; 1000 | Resize2: any; 1001 | Rotate: any; 1002 | Ruler: any; 1003 | Run: any; 1004 | Rw: any; 1005 | Safari: any; 1006 | ScrewDriver: any; 1007 | Search: any; 1008 | Sencha: any; 1009 | Settings: any; 1010 | SettingsAlt: any; 1011 | Shuffle: any; 1012 | Skull: any; 1013 | Skype: any; 1014 | SlideShare: any; 1015 | Smile: any; 1016 | Smile2: any; 1017 | Snow: any; 1018 | Split: any; 1019 | Star: any; 1020 | Star2: any; 1021 | Star2Off: any; 1022 | Star3: any; 1023 | Star3Off: any; 1024 | StarOff: any; 1025 | Start: any; 1026 | Sticker: any; 1027 | Stop: any; 1028 | StopWatch: any; 1029 | Sun: any; 1030 | Svg: any; 1031 | TShirt: any; 1032 | Tag: any; 1033 | TakeOff: any; 1034 | Talke: any; 1035 | Talkq: any; 1036 | Thunder: any; 1037 | Trash: any; 1038 | Twitter: any; 1039 | TwitterBird: any; 1040 | Umbrella: any; 1041 | Undo: any; 1042 | Unlock: any; 1043 | Usb: any; 1044 | User: any; 1045 | Users: any; 1046 | Video: any; 1047 | View: any; 1048 | Vim: any; 1049 | Volume0: any; 1050 | Volume1: any; 1051 | Volume2: any; 1052 | Volume3: any; 1053 | Warning: any; 1054 | WheelChair: any; 1055 | Windows: any; 1056 | Woman: any; 1057 | Wrench: any; 1058 | Wrench2: any; 1059 | Wrench3: any; 1060 | ZoomIn: any; 1061 | ZoomOut: any; 1062 | }; 1063 | layout: { 1064 | FlexGridLayout: any; 1065 | HorizontalLayout: any; 1066 | Layout: any; 1067 | StackLayout: any; 1068 | TableLayout: any; 1069 | VerticalLayout: any; 1070 | }; 1071 | node: { 1072 | Between: any; 1073 | End: any; 1074 | Fulcrum: any; 1075 | HorizontalBus: any; 1076 | Hub: any; 1077 | Node: any; 1078 | Start: any; 1079 | VerticalBus: any; 1080 | }; 1081 | note: { 1082 | PostIt: any; 1083 | }; 1084 | pert: { 1085 | Activity: any; 1086 | Start: any; 1087 | }; 1088 | state: { 1089 | Connection: any; 1090 | End: any; 1091 | Start: any; 1092 | State: any; 1093 | }; 1094 | widget: { 1095 | Slider: any; 1096 | Widget: any; 1097 | }; 1098 | }; 1099 | const storage: {}; 1100 | namespace command { 1101 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1102 | const Command: any; 1103 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1104 | const CommandAdd: any; 1105 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1106 | const CommandAddVertex: any; 1107 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1108 | const CommandAssignFigure: any; 1109 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1110 | const CommandAttr: any; 1111 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1112 | const CommandBoundingBox: any; 1113 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1114 | const CommandCollection: any; 1115 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1116 | const CommandConnect: any; 1117 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1118 | const CommandDelete: any; 1119 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1120 | const CommandDeleteGroup: any; 1121 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1122 | const CommandGroup: any; 1123 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1124 | const CommandMove: any; 1125 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1126 | const CommandMoveConnection: any; 1127 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1128 | const CommandMoveLine: any; 1129 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1130 | const CommandMoveVertex: any; 1131 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1132 | const CommandMoveVertices: any; 1133 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1134 | const CommandReconnect: any; 1135 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1136 | const CommandRemoveVertex: any; 1137 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1138 | const CommandReplaceVertices: any; 1139 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1140 | const CommandResize: any; 1141 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1142 | const CommandRotate: any; 1143 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1144 | const CommandStack: any; 1145 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1146 | const CommandStackEvent: any; 1147 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1148 | const CommandStackEventListener: any; 1149 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1150 | const CommandType: any; 1151 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.command 1152 | const CommandUngroup: any; 1153 | } 1154 | namespace geo { 1155 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.geo 1156 | const Line: any; 1157 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.geo 1158 | const Point: any; 1159 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.geo 1160 | const PositionConstants: any; 1161 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.geo 1162 | const Ray: any; 1163 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.geo 1164 | const Rectangle: any; 1165 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.geo 1166 | const Util: any; 1167 | } 1168 | namespace io { 1169 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.io 1170 | const Reader: any; 1171 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.io 1172 | const Writer: any; 1173 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.io 1174 | const json: any; 1175 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.io 1176 | const png: any; 1177 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.io 1178 | const svg: any; 1179 | } 1180 | namespace policy { 1181 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.policy 1182 | const EditPolicy: any; 1183 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.policy 1184 | const canvas: any; 1185 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.policy 1186 | const connection: any; 1187 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.policy 1188 | const figure: any; 1189 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.policy 1190 | const line: any; 1191 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.policy 1192 | const port: any; 1193 | } 1194 | namespace ui { 1195 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.ui 1196 | const LabelEditor: any; 1197 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.ui 1198 | const LabelInplaceEditor: any; 1199 | } 1200 | namespace util { 1201 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.util 1202 | const ArrayList: any; 1203 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.util 1204 | const Base64: any; 1205 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.util 1206 | const Color: any; 1207 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.util 1208 | const JSON: any; 1209 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.util 1210 | const UUID: any; 1211 | // Too-deep object hierarchy from draw2d.Connection.DROP_FILTER.draw2d.util 1212 | const spline: any; 1213 | } 1214 | } 1215 | 1216 | -------------------------------------------------------------------------------- /dist/src/bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * JavaScript Debug - v0.4 - 6/22/2010 3 | * http://benalman.com/projects/javascript-debug-console-log/ 4 | * 5 | * Copyright (c) 2010 "Cowboy" Ben Alman 6 | * Dual licensed under the MIT and GPL licenses. 7 | * http://benalman.com/about/license/ 8 | * 9 | * With lots of help from Paul Irish! 10 | * http://paulirish.com/ 11 | */ 12 | 13 | /*! 14 | * Sizzle CSS Selector Engine v2.3.6 15 | * https://sizzlejs.com/ 16 | * 17 | * Copyright JS Foundation and other contributors 18 | * Released under the MIT license 19 | * https://js.foundation/ 20 | * 21 | * Date: 2021-02-16 22 | */ 23 | 24 | /*! 25 | * The buffer module from node.js, for the browser. 26 | * 27 | * @author Feross Aboukhadijeh 28 | * @license MIT 29 | */ 30 | 31 | /*! 32 | * jQuery Color Animations v2.2.0 33 | * https://github.com/jquery/jquery-color 34 | * 35 | * Copyright OpenJS Foundation and other contributors 36 | * Released under the MIT license. 37 | * http://jquery.org/license 38 | * 39 | * Date: Sun May 10 09:02:36 2020 +0200 40 | */ 41 | 42 | /*! 43 | * jQuery JavaScript Library v3.6.0 44 | * https://jquery.com/ 45 | * 46 | * Includes Sizzle.js 47 | * https://sizzlejs.com/ 48 | * 49 | * Copyright OpenJS Foundation and other contributors 50 | * Released under the MIT license 51 | * https://jquery.org/license 52 | * 53 | * Date: 2021-03-02T17:08Z 54 | */ 55 | 56 | /*! 57 | * jQuery UI :data 1.13.0 58 | * http://jqueryui.com 59 | * 60 | * Copyright jQuery Foundation and other contributors 61 | * Released under the MIT license. 62 | * http://jquery.org/license 63 | */ 64 | 65 | /*! 66 | * jQuery UI Accordion 1.13.0 67 | * http://jqueryui.com 68 | * 69 | * Copyright jQuery Foundation and other contributors 70 | * Released under the MIT license. 71 | * http://jquery.org/license 72 | */ 73 | 74 | /*! 75 | * jQuery UI Autocomplete 1.13.0 76 | * http://jqueryui.com 77 | * 78 | * Copyright jQuery Foundation and other contributors 79 | * Released under the MIT license. 80 | * http://jquery.org/license 81 | */ 82 | 83 | /*! 84 | * jQuery UI Button 1.13.0 85 | * http://jqueryui.com 86 | * 87 | * Copyright jQuery Foundation and other contributors 88 | * Released under the MIT license. 89 | * http://jquery.org/license 90 | */ 91 | 92 | /*! 93 | * jQuery UI Checkboxradio 1.13.0 94 | * http://jqueryui.com 95 | * 96 | * Copyright jQuery Foundation and other contributors 97 | * Released under the MIT license. 98 | * http://jquery.org/license 99 | */ 100 | 101 | /*! 102 | * jQuery UI Controlgroup 1.13.0 103 | * http://jqueryui.com 104 | * 105 | * Copyright jQuery Foundation and other contributors 106 | * Released under the MIT license. 107 | * http://jquery.org/license 108 | */ 109 | 110 | /*! 111 | * jQuery UI Datepicker 1.13.0 112 | * http://jqueryui.com 113 | * 114 | * Copyright jQuery Foundation and other contributors 115 | * Released under the MIT license. 116 | * http://jquery.org/license 117 | */ 118 | 119 | /*! 120 | * jQuery UI Dialog 1.13.0 121 | * http://jqueryui.com 122 | * 123 | * Copyright jQuery Foundation and other contributors 124 | * Released under the MIT license. 125 | * http://jquery.org/license 126 | */ 127 | 128 | /*! 129 | * jQuery UI Disable Selection 1.13.0 130 | * http://jqueryui.com 131 | * 132 | * Copyright jQuery Foundation and other contributors 133 | * Released under the MIT license. 134 | * http://jquery.org/license 135 | */ 136 | 137 | /*! 138 | * jQuery UI Draggable 1.13.0 139 | * http://jqueryui.com 140 | * 141 | * Copyright jQuery Foundation and other contributors 142 | * Released under the MIT license. 143 | * http://jquery.org/license 144 | */ 145 | 146 | /*! 147 | * jQuery UI Droppable 1.13.0 148 | * http://jqueryui.com 149 | * 150 | * Copyright jQuery Foundation and other contributors 151 | * Released under the MIT license. 152 | * http://jquery.org/license 153 | */ 154 | 155 | /*! 156 | * jQuery UI Effects 1.13.0 157 | * http://jqueryui.com 158 | * 159 | * Copyright jQuery Foundation and other contributors 160 | * Released under the MIT license. 161 | * http://jquery.org/license 162 | */ 163 | 164 | /*! 165 | * jQuery UI Effects Blind 1.13.0 166 | * http://jqueryui.com 167 | * 168 | * Copyright jQuery Foundation and other contributors 169 | * Released under the MIT license. 170 | * http://jquery.org/license 171 | */ 172 | 173 | /*! 174 | * jQuery UI Effects Bounce 1.13.0 175 | * http://jqueryui.com 176 | * 177 | * Copyright jQuery Foundation and other contributors 178 | * Released under the MIT license. 179 | * http://jquery.org/license 180 | */ 181 | 182 | /*! 183 | * jQuery UI Effects Clip 1.13.0 184 | * http://jqueryui.com 185 | * 186 | * Copyright jQuery Foundation and other contributors 187 | * Released under the MIT license. 188 | * http://jquery.org/license 189 | */ 190 | 191 | /*! 192 | * jQuery UI Effects Drop 1.13.0 193 | * http://jqueryui.com 194 | * 195 | * Copyright jQuery Foundation and other contributors 196 | * Released under the MIT license. 197 | * http://jquery.org/license 198 | */ 199 | 200 | /*! 201 | * jQuery UI Effects Explode 1.13.0 202 | * http://jqueryui.com 203 | * 204 | * Copyright jQuery Foundation and other contributors 205 | * Released under the MIT license. 206 | * http://jquery.org/license 207 | */ 208 | 209 | /*! 210 | * jQuery UI Effects Fade 1.13.0 211 | * http://jqueryui.com 212 | * 213 | * Copyright jQuery Foundation and other contributors 214 | * Released under the MIT license. 215 | * http://jquery.org/license 216 | */ 217 | 218 | /*! 219 | * jQuery UI Effects Fold 1.13.0 220 | * http://jqueryui.com 221 | * 222 | * Copyright jQuery Foundation and other contributors 223 | * Released under the MIT license. 224 | * http://jquery.org/license 225 | */ 226 | 227 | /*! 228 | * jQuery UI Effects Highlight 1.13.0 229 | * http://jqueryui.com 230 | * 231 | * Copyright jQuery Foundation and other contributors 232 | * Released under the MIT license. 233 | * http://jquery.org/license 234 | */ 235 | 236 | /*! 237 | * jQuery UI Effects Puff 1.13.0 238 | * http://jqueryui.com 239 | * 240 | * Copyright jQuery Foundation and other contributors 241 | * Released under the MIT license. 242 | * http://jquery.org/license 243 | */ 244 | 245 | /*! 246 | * jQuery UI Effects Pulsate 1.13.0 247 | * http://jqueryui.com 248 | * 249 | * Copyright jQuery Foundation and other contributors 250 | * Released under the MIT license. 251 | * http://jquery.org/license 252 | */ 253 | 254 | /*! 255 | * jQuery UI Effects Scale 1.13.0 256 | * http://jqueryui.com 257 | * 258 | * Copyright jQuery Foundation and other contributors 259 | * Released under the MIT license. 260 | * http://jquery.org/license 261 | */ 262 | 263 | /*! 264 | * jQuery UI Effects Shake 1.13.0 265 | * http://jqueryui.com 266 | * 267 | * Copyright jQuery Foundation and other contributors 268 | * Released under the MIT license. 269 | * http://jquery.org/license 270 | */ 271 | 272 | /*! 273 | * jQuery UI Effects Size 1.13.0 274 | * http://jqueryui.com 275 | * 276 | * Copyright jQuery Foundation and other contributors 277 | * Released under the MIT license. 278 | * http://jquery.org/license 279 | */ 280 | 281 | /*! 282 | * jQuery UI Effects Slide 1.13.0 283 | * http://jqueryui.com 284 | * 285 | * Copyright jQuery Foundation and other contributors 286 | * Released under the MIT license. 287 | * http://jquery.org/license 288 | */ 289 | 290 | /*! 291 | * jQuery UI Effects Transfer 1.13.0 292 | * http://jqueryui.com 293 | * 294 | * Copyright jQuery Foundation and other contributors 295 | * Released under the MIT license. 296 | * http://jquery.org/license 297 | */ 298 | 299 | /*! 300 | * jQuery UI Focusable 1.13.0 301 | * http://jqueryui.com 302 | * 303 | * Copyright jQuery Foundation and other contributors 304 | * Released under the MIT license. 305 | * http://jquery.org/license 306 | */ 307 | 308 | /*! 309 | * jQuery UI Form Reset Mixin 1.13.0 310 | * http://jqueryui.com 311 | * 312 | * Copyright jQuery Foundation and other contributors 313 | * Released under the MIT license. 314 | * http://jquery.org/license 315 | */ 316 | 317 | /*! 318 | * jQuery UI Keycode 1.13.0 319 | * http://jqueryui.com 320 | * 321 | * Copyright jQuery Foundation and other contributors 322 | * Released under the MIT license. 323 | * http://jquery.org/license 324 | */ 325 | 326 | /*! 327 | * jQuery UI Labels 1.13.0 328 | * http://jqueryui.com 329 | * 330 | * Copyright jQuery Foundation and other contributors 331 | * Released under the MIT license. 332 | * http://jquery.org/license 333 | */ 334 | 335 | /*! 336 | * jQuery UI Menu 1.13.0 337 | * http://jqueryui.com 338 | * 339 | * Copyright jQuery Foundation and other contributors 340 | * Released under the MIT license. 341 | * http://jquery.org/license 342 | */ 343 | 344 | /*! 345 | * jQuery UI Mouse 1.13.0 346 | * http://jqueryui.com 347 | * 348 | * Copyright jQuery Foundation and other contributors 349 | * Released under the MIT license. 350 | * http://jquery.org/license 351 | */ 352 | 353 | /*! 354 | * jQuery UI Position 1.13.0 355 | * http://jqueryui.com 356 | * 357 | * Copyright jQuery Foundation and other contributors 358 | * Released under the MIT license. 359 | * http://jquery.org/license 360 | * 361 | * http://api.jqueryui.com/position/ 362 | */ 363 | 364 | /*! 365 | * jQuery UI Progressbar 1.13.0 366 | * http://jqueryui.com 367 | * 368 | * Copyright jQuery Foundation and other contributors 369 | * Released under the MIT license. 370 | * http://jquery.org/license 371 | */ 372 | 373 | /*! 374 | * jQuery UI Resizable 1.13.0 375 | * http://jqueryui.com 376 | * 377 | * Copyright jQuery Foundation and other contributors 378 | * Released under the MIT license. 379 | * http://jquery.org/license 380 | */ 381 | 382 | /*! 383 | * jQuery UI Scroll Parent 1.13.0 384 | * http://jqueryui.com 385 | * 386 | * Copyright jQuery Foundation and other contributors 387 | * Released under the MIT license. 388 | * http://jquery.org/license 389 | */ 390 | 391 | /*! 392 | * jQuery UI Selectable 1.13.0 393 | * http://jqueryui.com 394 | * 395 | * Copyright jQuery Foundation and other contributors 396 | * Released under the MIT license. 397 | * http://jquery.org/license 398 | */ 399 | 400 | /*! 401 | * jQuery UI Selectmenu 1.13.0 402 | * http://jqueryui.com 403 | * 404 | * Copyright jQuery Foundation and other contributors 405 | * Released under the MIT license. 406 | * http://jquery.org/license 407 | */ 408 | 409 | /*! 410 | * jQuery UI Slider 1.13.0 411 | * http://jqueryui.com 412 | * 413 | * Copyright jQuery Foundation and other contributors 414 | * Released under the MIT license. 415 | * http://jquery.org/license 416 | */ 417 | 418 | /*! 419 | * jQuery UI Sortable 1.13.0 420 | * http://jqueryui.com 421 | * 422 | * Copyright jQuery Foundation and other contributors 423 | * Released under the MIT license. 424 | * http://jquery.org/license 425 | */ 426 | 427 | /*! 428 | * jQuery UI Spinner 1.13.0 429 | * http://jqueryui.com 430 | * 431 | * Copyright jQuery Foundation and other contributors 432 | * Released under the MIT license. 433 | * http://jquery.org/license 434 | */ 435 | 436 | /*! 437 | * jQuery UI Tabbable 1.13.0 438 | * http://jqueryui.com 439 | * 440 | * Copyright jQuery Foundation and other contributors 441 | * Released under the MIT license. 442 | * http://jquery.org/license 443 | */ 444 | 445 | /*! 446 | * jQuery UI Tabs 1.13.0 447 | * http://jqueryui.com 448 | * 449 | * Copyright jQuery Foundation and other contributors 450 | * Released under the MIT license. 451 | * http://jquery.org/license 452 | */ 453 | 454 | /*! 455 | * jQuery UI Tooltip 1.13.0 456 | * http://jqueryui.com 457 | * 458 | * Copyright jQuery Foundation and other contributors 459 | * Released under the MIT license. 460 | * http://jquery.org/license 461 | */ 462 | 463 | /*! 464 | * jQuery UI Unique ID 1.13.0 465 | * http://jqueryui.com 466 | * 467 | * Copyright jQuery Foundation and other contributors 468 | * Released under the MIT license. 469 | * http://jquery.org/license 470 | */ 471 | 472 | /*! 473 | * jQuery UI Widget 1.13.0 474 | * http://jqueryui.com 475 | * 476 | * Copyright jQuery Foundation and other contributors 477 | * Released under the MIT license. 478 | * http://jquery.org/license 479 | */ 480 | 481 | /*! 482 | * jQuery contextMenu - Plugin for simple contextMenu handling 483 | * 484 | * Version: 1.6.5 485 | * 486 | * Authors: Rodney Rehm, Addy Osmani (patches for FF) 487 | * Web: http://medialize.github.com/jQuery-contextMenu/ 488 | * 489 | * Licensed under 490 | * MIT License http://www.opensource.org/licenses/mit-license 491 | * GPL v3 http://opensource.org/licenses/GPL-3.0 492 | * 493 | */ 494 | 495 | /*! !../../node_modules/css-loader!./contextmenu.css */ 496 | 497 | /*! !./node_modules/raw-loader!./src/lib/Class.exec.js */ 498 | 499 | /*! !./node_modules/raw-loader!./src/lib/pathfinding.exec.js */ 500 | 501 | /*! !./node_modules/raw-loader!./src/lib/raphael.exec.js */ 502 | 503 | /*! !./node_modules/script-loader/addScript.js */ 504 | 505 | /*! ../../node_modules/css-loader/lib/css-base.js */ 506 | 507 | /*! ../../node_modules/style-loader/lib/addStyles.js */ 508 | 509 | /*! ../../packages */ 510 | 511 | /*! ../../util/Color */ 512 | 513 | /*! ../../util/JSONUtil */ 514 | 515 | /*! ../../util/extend */ 516 | 517 | /*! ../packages */ 518 | 519 | /*! ../util/extend */ 520 | 521 | /*! ./../../node_modules/webpack/buildin/global.js */ 522 | 523 | /*! ./Canvas */ 524 | 525 | /*! ./Configuration */ 526 | 527 | /*! ./Connection */ 528 | 529 | /*! ./Figure */ 530 | 531 | /*! ./HeadlessCanvas */ 532 | 533 | /*! ./HybridPort */ 534 | 535 | /*! ./InputPort */ 536 | 537 | /*! ./OutputPort */ 538 | 539 | /*! ./Port */ 540 | 541 | /*! ./ResizeHandle */ 542 | 543 | /*! ./SVGFigure */ 544 | 545 | /*! ./Selection */ 546 | 547 | /*! ./SetFigure */ 548 | 549 | /*! ./VectorFigure */ 550 | 551 | /*! ./command/Command */ 552 | 553 | /*! ./command/CommandAdd */ 554 | 555 | /*! ./command/CommandAddVertex */ 556 | 557 | /*! ./command/CommandAssignFigure */ 558 | 559 | /*! ./command/CommandAttr */ 560 | 561 | /*! ./command/CommandBoundingBox */ 562 | 563 | /*! ./command/CommandCollection */ 564 | 565 | /*! ./command/CommandConnect */ 566 | 567 | /*! ./command/CommandDelete */ 568 | 569 | /*! ./command/CommandDeleteGroup */ 570 | 571 | /*! ./command/CommandGroup */ 572 | 573 | /*! ./command/CommandMove */ 574 | 575 | /*! ./command/CommandMoveConnection */ 576 | 577 | /*! ./command/CommandMoveLine */ 578 | 579 | /*! ./command/CommandMoveVertex */ 580 | 581 | /*! ./command/CommandMoveVertices */ 582 | 583 | /*! ./command/CommandReconnect */ 584 | 585 | /*! ./command/CommandRemoveVertex */ 586 | 587 | /*! ./command/CommandReplaceVertices */ 588 | 589 | /*! ./command/CommandResize */ 590 | 591 | /*! ./command/CommandRotate */ 592 | 593 | /*! ./command/CommandStack */ 594 | 595 | /*! ./command/CommandStackEvent */ 596 | 597 | /*! ./command/CommandStackEventListener */ 598 | 599 | /*! ./command/CommandType */ 600 | 601 | /*! ./command/CommandUngroup */ 602 | 603 | /*! ./decoration/connection/ArrowDecorator */ 604 | 605 | /*! ./decoration/connection/BarDecorator */ 606 | 607 | /*! ./decoration/connection/CircleDecorator */ 608 | 609 | /*! ./decoration/connection/Decorator */ 610 | 611 | /*! ./decoration/connection/DiamondDecorator */ 612 | 613 | /*! ./dom */ 614 | 615 | /*! ./geo/Line */ 616 | 617 | /*! ./geo/Point */ 618 | 619 | /*! ./geo/PositionConstants */ 620 | 621 | /*! ./geo/Ray */ 622 | 623 | /*! ./geo/Rectangle */ 624 | 625 | /*! ./geo/Util */ 626 | 627 | /*! ./io/Reader */ 628 | 629 | /*! ./io/Writer */ 630 | 631 | /*! ./io/json/Reader */ 632 | 633 | /*! ./io/json/Writer */ 634 | 635 | /*! ./io/png/Writer */ 636 | 637 | /*! ./io/svg/Writer */ 638 | 639 | /*! ./layout/anchor/CenterEdgeConnectionAnchor */ 640 | 641 | /*! ./layout/anchor/ChopboxConnectionAnchor */ 642 | 643 | /*! ./layout/anchor/ConnectionAnchor */ 644 | 645 | /*! ./layout/anchor/FanConnectionAnchor */ 646 | 647 | /*! ./layout/anchor/ShortesPathConnectionAnchor */ 648 | 649 | /*! ./layout/connection/CircuitConnectionRouter */ 650 | 651 | /*! ./layout/connection/ConnectionRouter */ 652 | 653 | /*! ./layout/connection/DirectRouter */ 654 | 655 | /*! ./layout/connection/FanConnectionRouter */ 656 | 657 | /*! ./layout/connection/InteractiveManhattanConnectionRouter */ 658 | 659 | /*! ./layout/connection/ManhattanBridgedConnectionRouter */ 660 | 661 | /*! ./layout/connection/ManhattanConnectionRouter */ 662 | 663 | /*! ./layout/connection/MazeConnectionRouter */ 664 | 665 | /*! ./layout/connection/MuteableManhattanConnectionRouter */ 666 | 667 | /*! ./layout/connection/RubberbandRouter */ 668 | 669 | /*! ./layout/connection/SketchConnectionRouter */ 670 | 671 | /*! ./layout/connection/SplineConnectionRouter */ 672 | 673 | /*! ./layout/connection/VertexRouter */ 674 | 675 | /*! ./layout/locator/BottomLocator */ 676 | 677 | /*! ./layout/locator/CenterLocator */ 678 | 679 | /*! ./layout/locator/ConnectionLocator */ 680 | 681 | /*! ./layout/locator/DraggableLocator */ 682 | 683 | /*! ./layout/locator/InputPortLocator */ 684 | 685 | /*! ./layout/locator/LeftLocator */ 686 | 687 | /*! ./layout/locator/Locator */ 688 | 689 | /*! ./layout/locator/ManhattanMidpointLocator */ 690 | 691 | /*! ./layout/locator/OutputPortLocator */ 692 | 693 | /*! ./layout/locator/ParallelMidpointLocator */ 694 | 695 | /*! ./layout/locator/PolylineMidpointLocator */ 696 | 697 | /*! ./layout/locator/PortLocator */ 698 | 699 | /*! ./layout/locator/RightLocator */ 700 | 701 | /*! ./layout/locator/SmartDraggableLocator */ 702 | 703 | /*! ./layout/locator/TopLocator */ 704 | 705 | /*! ./layout/locator/XYAbsPortLocator */ 706 | 707 | /*! ./layout/locator/XYRelPortLocator */ 708 | 709 | /*! ./layout/mesh/ExplodeLayouter */ 710 | 711 | /*! ./layout/mesh/MeshLayouter */ 712 | 713 | /*! ./layout/mesh/ProposedMeshChange */ 714 | 715 | /*! ./policy/EditPolicy */ 716 | 717 | /*! ./policy/canvas/BoundingboxSelectionPolicy */ 718 | 719 | /*! ./policy/canvas/CanvasPolicy */ 720 | 721 | /*! ./policy/canvas/CoronaDecorationPolicy */ 722 | 723 | /*! ./policy/canvas/DecorationPolicy */ 724 | 725 | /*! ./policy/canvas/DefaultKeyboardPolicy */ 726 | 727 | /*! ./policy/canvas/DropInterceptorPolicy */ 728 | 729 | /*! ./policy/canvas/ExtendedKeyboardPolicy */ 730 | 731 | /*! ./policy/canvas/FadeoutDecorationPolicy */ 732 | 733 | /*! ./policy/canvas/GhostMoveSelectionPolicy */ 734 | 735 | /*! ./policy/canvas/KeyboardPolicy */ 736 | 737 | /*! ./policy/canvas/PanningSelectionPolicy */ 738 | 739 | /*! ./policy/canvas/ReadOnlySelectionPolicy */ 740 | 741 | /*! ./policy/canvas/SelectionPolicy */ 742 | 743 | /*! ./policy/canvas/ShowChessboardEditPolicy */ 744 | 745 | /*! ./policy/canvas/ShowDimetricGridEditPolicy */ 746 | 747 | /*! ./policy/canvas/ShowDotEditPolicy */ 748 | 749 | /*! ./policy/canvas/ShowGridEditPolicy */ 750 | 751 | /*! ./policy/canvas/SingleSelectionPolicy */ 752 | 753 | /*! ./policy/canvas/SnapToCenterEditPolicy */ 754 | 755 | /*! ./policy/canvas/SnapToDimetricGridEditPolicy */ 756 | 757 | /*! ./policy/canvas/SnapToEditPolicy */ 758 | 759 | /*! ./policy/canvas/SnapToGeometryEditPolicy */ 760 | 761 | /*! ./policy/canvas/SnapToGridEditPolicy */ 762 | 763 | /*! ./policy/canvas/SnapToInBetweenEditPolicy */ 764 | 765 | /*! ./policy/canvas/SnapToVerticesEditPolicy */ 766 | 767 | /*! ./policy/canvas/WheelZoomPolicy */ 768 | 769 | /*! ./policy/canvas/ZoomPolicy */ 770 | 771 | /*! ./policy/connection/ClickConnectionCreatePolicy */ 772 | 773 | /*! ./policy/connection/ComposedConnectionCreatePolicy */ 774 | 775 | /*! ./policy/connection/ConnectionCreatePolicy */ 776 | 777 | /*! ./policy/connection/DragConnectionCreatePolicy */ 778 | 779 | /*! ./policy/connection/OrthogonalConnectionCreatePolicy */ 780 | 781 | /*! ./policy/figure/AntSelectionFeedbackPolicy */ 782 | 783 | /*! ./policy/figure/BigRectangleSelectionFeedbackPolicy */ 784 | 785 | /*! ./policy/figure/BusSelectionFeedbackPolicy */ 786 | 787 | /*! ./policy/figure/DragDropEditPolicy */ 788 | 789 | /*! ./policy/figure/FigureEditPolicy */ 790 | 791 | /*! ./policy/figure/GlowSelectionFeedbackPolicy */ 792 | 793 | /*! ./policy/figure/HBusSelectionFeedbackPolicy */ 794 | 795 | /*! ./policy/figure/HorizontalEditPolicy */ 796 | 797 | /*! ./policy/figure/RectangleSelectionFeedbackPolicy */ 798 | 799 | /*! ./policy/figure/RegionEditPolicy */ 800 | 801 | /*! ./policy/figure/ResizeSelectionFeedbackPolicy */ 802 | 803 | /*! ./policy/figure/RoundRectangleSelectionFeedbackPolicy */ 804 | 805 | /*! ./policy/figure/SelectionFeedbackPolicy */ 806 | 807 | /*! ./policy/figure/SelectionPolicy */ 808 | 809 | /*! ./policy/figure/SlimSelectionFeedbackPolicy */ 810 | 811 | /*! ./policy/figure/VBusSelectionFeedbackPolicy */ 812 | 813 | /*! ./policy/figure/VertexSelectionFeedbackPolicy */ 814 | 815 | /*! ./policy/figure/VerticalEditPolicy */ 816 | 817 | /*! ./policy/figure/WidthSelectionFeedbackPolicy */ 818 | 819 | /*! ./policy/line/LineSelectionFeedbackPolicy */ 820 | 821 | /*! ./policy/line/OrthogonalSelectionFeedbackPolicy */ 822 | 823 | /*! ./policy/line/VertexSelectionFeedbackPolicy */ 824 | 825 | /*! ./policy/port/ElasticStrapFeedbackPolicy */ 826 | 827 | /*! ./policy/port/IntrusivePortsFeedbackPolicy */ 828 | 829 | /*! ./policy/port/PortFeedbackPolicy */ 830 | 831 | /*! ./sax */ 832 | 833 | /*! ./shape/analog/OpAmp */ 834 | 835 | /*! ./shape/analog/ResistorBridge */ 836 | 837 | /*! ./shape/analog/ResistorVertical */ 838 | 839 | /*! ./shape/analog/VoltageSupplyHorizontal */ 840 | 841 | /*! ./shape/analog/VoltageSupplyVertical */ 842 | 843 | /*! ./shape/arrow/CalligrapherArrowDownLeft */ 844 | 845 | /*! ./shape/arrow/CalligrapherArrowLeft */ 846 | 847 | /*! ./shape/basic/Arc */ 848 | 849 | /*! ./shape/basic/Circle */ 850 | 851 | /*! ./shape/basic/Diamond */ 852 | 853 | /*! ./shape/basic/GhostVertexResizeHandle */ 854 | 855 | /*! ./shape/basic/Image */ 856 | 857 | /*! ./shape/basic/Label */ 858 | 859 | /*! ./shape/basic/Line */ 860 | 861 | /*! ./shape/basic/LineEndResizeHandle */ 862 | 863 | /*! ./shape/basic/LineResizeHandle */ 864 | 865 | /*! ./shape/basic/LineStartResizeHandle */ 866 | 867 | /*! ./shape/basic/Oval */ 868 | 869 | /*! ./shape/basic/PolyLine */ 870 | 871 | /*! ./shape/basic/Polygon */ 872 | 873 | /*! ./shape/basic/Rectangle */ 874 | 875 | /*! ./shape/basic/Text */ 876 | 877 | /*! ./shape/basic/VertexResizeHandle */ 878 | 879 | /*! ./shape/composite/Composite */ 880 | 881 | /*! ./shape/composite/Group */ 882 | 883 | /*! ./shape/composite/Jailhouse */ 884 | 885 | /*! ./shape/composite/Raft */ 886 | 887 | /*! ./shape/composite/StrongComposite */ 888 | 889 | /*! ./shape/composite/WeakComposite */ 890 | 891 | /*! ./shape/diagram/Diagram */ 892 | 893 | /*! ./shape/diagram/Pie */ 894 | 895 | /*! ./shape/diagram/Sparkline */ 896 | 897 | /*! ./shape/dimetric/Rectangle */ 898 | 899 | /*! ./shape/flowchart/Document */ 900 | 901 | /*! ./shape/icon/Acw */ 902 | 903 | /*! ./shape/icon/Alarm */ 904 | 905 | /*! ./shape/icon/Anonymous */ 906 | 907 | /*! ./shape/icon/Apple */ 908 | 909 | /*! ./shape/icon/Apps */ 910 | 911 | /*! ./shape/icon/ArrowDown */ 912 | 913 | /*! ./shape/icon/ArrowLeft */ 914 | 915 | /*! ./shape/icon/ArrowLeft2 */ 916 | 917 | /*! ./shape/icon/ArrowRight */ 918 | 919 | /*! ./shape/icon/ArrowRight2 */ 920 | 921 | /*! ./shape/icon/ArrowUp */ 922 | 923 | /*! ./shape/icon/Aumade */ 924 | 925 | /*! ./shape/icon/BarChart */ 926 | 927 | /*! ./shape/icon/BioHazard */ 928 | 929 | /*! ./shape/icon/Book */ 930 | 931 | /*! ./shape/icon/Bookmark */ 932 | 933 | /*! ./shape/icon/Books */ 934 | 935 | /*! ./shape/icon/Bubble */ 936 | 937 | /*! ./shape/icon/Bug */ 938 | 939 | /*! ./shape/icon/Calendar */ 940 | 941 | /*! ./shape/icon/Cart */ 942 | 943 | /*! ./shape/icon/Ccw */ 944 | 945 | /*! ./shape/icon/Chat */ 946 | 947 | /*! ./shape/icon/Check */ 948 | 949 | /*! ./shape/icon/Chrome */ 950 | 951 | /*! ./shape/icon/Clip */ 952 | 953 | /*! ./shape/icon/Clock */ 954 | 955 | /*! ./shape/icon/Cloud */ 956 | 957 | /*! ./shape/icon/Cloud2 */ 958 | 959 | /*! ./shape/icon/CloudDown */ 960 | 961 | /*! ./shape/icon/CloudUp */ 962 | 963 | /*! ./shape/icon/Cloudy */ 964 | 965 | /*! ./shape/icon/Code */ 966 | 967 | /*! ./shape/icon/CodeTalk */ 968 | 969 | /*! ./shape/icon/CommandLine */ 970 | 971 | /*! ./shape/icon/Connect */ 972 | 973 | /*! ./shape/icon/Contract */ 974 | 975 | /*! ./shape/icon/Crop */ 976 | 977 | /*! ./shape/icon/Cross */ 978 | 979 | /*! ./shape/icon/Cube */ 980 | 981 | /*! ./shape/icon/Customer */ 982 | 983 | /*! ./shape/icon/Db */ 984 | 985 | /*! ./shape/icon/Detour */ 986 | 987 | /*! ./shape/icon/Diagram */ 988 | 989 | /*! ./shape/icon/Disconnect */ 990 | 991 | /*! ./shape/icon/DockBottom */ 992 | 993 | /*! ./shape/icon/DockLeft */ 994 | 995 | /*! ./shape/icon/DockRight */ 996 | 997 | /*! ./shape/icon/DockTop */ 998 | 999 | /*! ./shape/icon/Download */ 1000 | 1001 | /*! ./shape/icon/Dry */ 1002 | 1003 | /*! ./shape/icon/Employee */ 1004 | 1005 | /*! ./shape/icon/End */ 1006 | 1007 | /*! ./shape/icon/Ethernet */ 1008 | 1009 | /*! ./shape/icon/Exchange */ 1010 | 1011 | /*! ./shape/icon/Expand */ 1012 | 1013 | /*! ./shape/icon/Export */ 1014 | 1015 | /*! ./shape/icon/Fave */ 1016 | 1017 | /*! ./shape/icon/Feed */ 1018 | 1019 | /*! ./shape/icon/Ff */ 1020 | 1021 | /*! ./shape/icon/Firefox */ 1022 | 1023 | /*! ./shape/icon/Flag */ 1024 | 1025 | /*! ./shape/icon/Flickr */ 1026 | 1027 | /*! ./shape/icon/Folder */ 1028 | 1029 | /*! ./shape/icon/Font */ 1030 | 1031 | /*! ./shape/icon/Fork */ 1032 | 1033 | /*! ./shape/icon/ForkAlt */ 1034 | 1035 | /*! ./shape/icon/FullCube */ 1036 | 1037 | /*! ./shape/icon/Future */ 1038 | 1039 | /*! ./shape/icon/GRaphael */ 1040 | 1041 | /*! ./shape/icon/Gear */ 1042 | 1043 | /*! ./shape/icon/Gear2 */ 1044 | 1045 | /*! ./shape/icon/GitHub */ 1046 | 1047 | /*! ./shape/icon/GitHubAlt */ 1048 | 1049 | /*! ./shape/icon/Glasses */ 1050 | 1051 | /*! ./shape/icon/Globe */ 1052 | 1053 | /*! ./shape/icon/GlobeAlt */ 1054 | 1055 | /*! ./shape/icon/GlobeAlt2 */ 1056 | 1057 | /*! ./shape/icon/Hail */ 1058 | 1059 | /*! ./shape/icon/Hammer */ 1060 | 1061 | /*! ./shape/icon/HammerAndScrewDriver */ 1062 | 1063 | /*! ./shape/icon/HangUp */ 1064 | 1065 | /*! ./shape/icon/Help */ 1066 | 1067 | /*! ./shape/icon/History */ 1068 | 1069 | /*! ./shape/icon/Home */ 1070 | 1071 | /*! ./shape/icon/IMac */ 1072 | 1073 | /*! ./shape/icon/Icon */ 1074 | 1075 | /*! ./shape/icon/Icons */ 1076 | 1077 | /*! ./shape/icon/Ie */ 1078 | 1079 | /*! ./shape/icon/Ie9 */ 1080 | 1081 | /*! ./shape/icon/Import */ 1082 | 1083 | /*! ./shape/icon/InkScape */ 1084 | 1085 | /*! ./shape/icon/Ipad */ 1086 | 1087 | /*! ./shape/icon/Iphone */ 1088 | 1089 | /*! ./shape/icon/JQuery */ 1090 | 1091 | /*! ./shape/icon/Jigsaw */ 1092 | 1093 | /*! ./shape/icon/Key */ 1094 | 1095 | /*! ./shape/icon/Lab */ 1096 | 1097 | /*! ./shape/icon/Lamp */ 1098 | 1099 | /*! ./shape/icon/Lamp_alt */ 1100 | 1101 | /*! ./shape/icon/Landing */ 1102 | 1103 | /*! ./shape/icon/Landscape1 */ 1104 | 1105 | /*! ./shape/icon/Landscape2 */ 1106 | 1107 | /*! ./shape/icon/LineChart */ 1108 | 1109 | /*! ./shape/icon/Link */ 1110 | 1111 | /*! ./shape/icon/LinkedIn */ 1112 | 1113 | /*! ./shape/icon/Linux */ 1114 | 1115 | /*! ./shape/icon/List */ 1116 | 1117 | /*! ./shape/icon/Location */ 1118 | 1119 | /*! ./shape/icon/Lock */ 1120 | 1121 | /*! ./shape/icon/Locked */ 1122 | 1123 | /*! ./shape/icon/Magic */ 1124 | 1125 | /*! ./shape/icon/Magnet */ 1126 | 1127 | /*! ./shape/icon/Mail */ 1128 | 1129 | /*! ./shape/icon/Man */ 1130 | 1131 | /*! ./shape/icon/Merge */ 1132 | 1133 | /*! ./shape/icon/Mic */ 1134 | 1135 | /*! ./shape/icon/MicMute */ 1136 | 1137 | /*! ./shape/icon/Minus */ 1138 | 1139 | /*! ./shape/icon/NewWindow */ 1140 | 1141 | /*! ./shape/icon/No */ 1142 | 1143 | /*! ./shape/icon/NoMagnet */ 1144 | 1145 | /*! ./shape/icon/NodeJs */ 1146 | 1147 | /*! ./shape/icon/Notebook */ 1148 | 1149 | /*! ./shape/icon/Noview */ 1150 | 1151 | /*! ./shape/icon/Opera */ 1152 | 1153 | /*! ./shape/icon/Package */ 1154 | 1155 | /*! ./shape/icon/Page */ 1156 | 1157 | /*! ./shape/icon/Page2 */ 1158 | 1159 | /*! ./shape/icon/Pallete */ 1160 | 1161 | /*! ./shape/icon/Palm */ 1162 | 1163 | /*! ./shape/icon/Paper */ 1164 | 1165 | /*! ./shape/icon/Parent */ 1166 | 1167 | /*! ./shape/icon/Pc */ 1168 | 1169 | /*! ./shape/icon/Pen */ 1170 | 1171 | /*! ./shape/icon/Pensil */ 1172 | 1173 | /*! ./shape/icon/People */ 1174 | 1175 | /*! ./shape/icon/Phone */ 1176 | 1177 | /*! ./shape/icon/Photo */ 1178 | 1179 | /*! ./shape/icon/Picker */ 1180 | 1181 | /*! ./shape/icon/Picture */ 1182 | 1183 | /*! ./shape/icon/PieChart */ 1184 | 1185 | /*! ./shape/icon/Plane */ 1186 | 1187 | /*! ./shape/icon/Plugin */ 1188 | 1189 | /*! ./shape/icon/Plus */ 1190 | 1191 | /*! ./shape/icon/Power */ 1192 | 1193 | /*! ./shape/icon/Ppt */ 1194 | 1195 | /*! ./shape/icon/Printer */ 1196 | 1197 | /*! ./shape/icon/Quote */ 1198 | 1199 | /*! ./shape/icon/Rain */ 1200 | 1201 | /*! ./shape/icon/Raphael */ 1202 | 1203 | /*! ./shape/icon/ReflectH */ 1204 | 1205 | /*! ./shape/icon/ReflectV */ 1206 | 1207 | /*! ./shape/icon/Refresh */ 1208 | 1209 | /*! ./shape/icon/Resize2 */ 1210 | 1211 | /*! ./shape/icon/Rotate */ 1212 | 1213 | /*! ./shape/icon/Ruler */ 1214 | 1215 | /*! ./shape/icon/Run */ 1216 | 1217 | /*! ./shape/icon/Rw */ 1218 | 1219 | /*! ./shape/icon/Safari */ 1220 | 1221 | /*! ./shape/icon/ScrewDriver */ 1222 | 1223 | /*! ./shape/icon/Search */ 1224 | 1225 | /*! ./shape/icon/Sencha */ 1226 | 1227 | /*! ./shape/icon/Settings */ 1228 | 1229 | /*! ./shape/icon/SettingsAlt */ 1230 | 1231 | /*! ./shape/icon/Shuffle */ 1232 | 1233 | /*! ./shape/icon/Skull */ 1234 | 1235 | /*! ./shape/icon/Skype */ 1236 | 1237 | /*! ./shape/icon/SlideShare */ 1238 | 1239 | /*! ./shape/icon/Smile */ 1240 | 1241 | /*! ./shape/icon/Smile2 */ 1242 | 1243 | /*! ./shape/icon/Snow */ 1244 | 1245 | /*! ./shape/icon/Split */ 1246 | 1247 | /*! ./shape/icon/Star */ 1248 | 1249 | /*! ./shape/icon/Star2 */ 1250 | 1251 | /*! ./shape/icon/Star2Off */ 1252 | 1253 | /*! ./shape/icon/Star3 */ 1254 | 1255 | /*! ./shape/icon/Star3Off */ 1256 | 1257 | /*! ./shape/icon/StarOff */ 1258 | 1259 | /*! ./shape/icon/Start */ 1260 | 1261 | /*! ./shape/icon/Sticker */ 1262 | 1263 | /*! ./shape/icon/Stop */ 1264 | 1265 | /*! ./shape/icon/StopWatch */ 1266 | 1267 | /*! ./shape/icon/Sun */ 1268 | 1269 | /*! ./shape/icon/Svg */ 1270 | 1271 | /*! ./shape/icon/TShirt */ 1272 | 1273 | /*! ./shape/icon/Tag */ 1274 | 1275 | /*! ./shape/icon/TakeOff */ 1276 | 1277 | /*! ./shape/icon/Talke */ 1278 | 1279 | /*! ./shape/icon/Talkq */ 1280 | 1281 | /*! ./shape/icon/Thunder */ 1282 | 1283 | /*! ./shape/icon/Trash */ 1284 | 1285 | /*! ./shape/icon/Twitter */ 1286 | 1287 | /*! ./shape/icon/TwitterBird */ 1288 | 1289 | /*! ./shape/icon/Umbrella */ 1290 | 1291 | /*! ./shape/icon/Undo */ 1292 | 1293 | /*! ./shape/icon/Unlock */ 1294 | 1295 | /*! ./shape/icon/Usb */ 1296 | 1297 | /*! ./shape/icon/User */ 1298 | 1299 | /*! ./shape/icon/Users */ 1300 | 1301 | /*! ./shape/icon/Video */ 1302 | 1303 | /*! ./shape/icon/View */ 1304 | 1305 | /*! ./shape/icon/Vim */ 1306 | 1307 | /*! ./shape/icon/Volume0 */ 1308 | 1309 | /*! ./shape/icon/Volume1 */ 1310 | 1311 | /*! ./shape/icon/Volume2 */ 1312 | 1313 | /*! ./shape/icon/Volume3 */ 1314 | 1315 | /*! ./shape/icon/Warning */ 1316 | 1317 | /*! ./shape/icon/WheelChair */ 1318 | 1319 | /*! ./shape/icon/Windows */ 1320 | 1321 | /*! ./shape/icon/Woman */ 1322 | 1323 | /*! ./shape/icon/Wrench */ 1324 | 1325 | /*! ./shape/icon/Wrench2 */ 1326 | 1327 | /*! ./shape/icon/Wrench3 */ 1328 | 1329 | /*! ./shape/icon/ZoomIn */ 1330 | 1331 | /*! ./shape/icon/ZoomOut */ 1332 | 1333 | /*! ./shape/layout/FlexGridLayout */ 1334 | 1335 | /*! ./shape/layout/HorizontalLayout */ 1336 | 1337 | /*! ./shape/layout/Layout */ 1338 | 1339 | /*! ./shape/layout/StackLayout */ 1340 | 1341 | /*! ./shape/layout/TableLayout */ 1342 | 1343 | /*! ./shape/layout/VerticalLayout */ 1344 | 1345 | /*! ./shape/node/Between */ 1346 | 1347 | /*! ./shape/node/End */ 1348 | 1349 | /*! ./shape/node/Fulcrum */ 1350 | 1351 | /*! ./shape/node/HorizontalBus */ 1352 | 1353 | /*! ./shape/node/Hub */ 1354 | 1355 | /*! ./shape/node/Node */ 1356 | 1357 | /*! ./shape/node/Start */ 1358 | 1359 | /*! ./shape/node/VerticalBus */ 1360 | 1361 | /*! ./shape/note/PostIt */ 1362 | 1363 | /*! ./shape/pert/Activity */ 1364 | 1365 | /*! ./shape/pert/Start */ 1366 | 1367 | /*! ./shape/state/Connection */ 1368 | 1369 | /*! ./shape/state/End */ 1370 | 1371 | /*! ./shape/state/Start */ 1372 | 1373 | /*! ./shape/state/State */ 1374 | 1375 | /*! ./shape/widget/Slider */ 1376 | 1377 | /*! ./shape/widget/Widget */ 1378 | 1379 | /*! ./ui/LabelEditor */ 1380 | 1381 | /*! ./ui/LabelInplaceEditor */ 1382 | 1383 | /*! ./urls */ 1384 | 1385 | /*! ./util/ArrayList */ 1386 | 1387 | /*! ./util/Base64 */ 1388 | 1389 | /*! ./util/Debug */ 1390 | 1391 | /*! ./util/Polyfill */ 1392 | 1393 | /*! ./util/SVGUtil */ 1394 | 1395 | /*! ./util/extend */ 1396 | 1397 | /*! ./util/raphael_ext */ 1398 | 1399 | /*! ./util/spline/BezierSpline */ 1400 | 1401 | /*! ./util/spline/CatmullRomSpline */ 1402 | 1403 | /*! ./util/spline/CubicSpline */ 1404 | 1405 | /*! ./util/spline/Spline */ 1406 | 1407 | /*! 2.3.1 */ 1408 | 1409 | /*! canvg-browser */ 1410 | 1411 | /*! css/contextmenu.css */ 1412 | 1413 | /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ 1414 | 1415 | /*! lib/Class.exec.js */ 1416 | 1417 | /*! lib/jquery.autoresize */ 1418 | 1419 | /*! lib/jquery.contextmenu */ 1420 | 1421 | /*! lib/pathfinding.exec.js */ 1422 | 1423 | /*! lib/raphael.exec.js */ 1424 | 1425 | /*! no static exports found */ 1426 | 1427 | /*! packages */ 1428 | 1429 | /*! rgbcolor */ 1430 | 1431 | /*! shifty */ 1432 | 1433 | /*! stackblur */ 1434 | 1435 | /*! util/JSONUtil */ 1436 | 1437 | /*! util/UUID */ 1438 | 1439 | /*! util/extend */ 1440 | 1441 | /*! xmldom */ 1442 | 1443 | /*!*********************!*\ 1444 | !*** ./src/Port.js ***! 1445 | \*********************/ 1446 | 1447 | /*!**********************!*\ 1448 | !*** ./src/index.js ***! 1449 | \**********************/ 1450 | 1451 | /*!***********************!*\ 1452 | !*** ./src/Canvas.js ***! 1453 | \***********************/ 1454 | 1455 | /*!***********************!*\ 1456 | !*** ./src/Figure.js ***! 1457 | \***********************/ 1458 | 1459 | /*!************************!*\ 1460 | !*** ./src/geo/Ray.js ***! 1461 | \************************/ 1462 | 1463 | /*!*************************!*\ 1464 | !*** ./src/geo/Line.js ***! 1465 | \*************************/ 1466 | 1467 | /*!*************************!*\ 1468 | !*** ./src/geo/Util.js ***! 1469 | \*************************/ 1470 | 1471 | /*!*************************!*\ 1472 | !*** ./src/packages.js ***! 1473 | \*************************/ 1474 | 1475 | /*!**************************!*\ 1476 | !*** ./src/InputPort.js ***! 1477 | \**************************/ 1478 | 1479 | /*!**************************!*\ 1480 | !*** ./src/SVGFigure.js ***! 1481 | \**************************/ 1482 | 1483 | /*!**************************!*\ 1484 | !*** ./src/Selection.js ***! 1485 | \**************************/ 1486 | 1487 | /*!**************************!*\ 1488 | !*** ./src/SetFigure.js ***! 1489 | \**************************/ 1490 | 1491 | /*!**************************!*\ 1492 | !*** ./src/geo/Point.js ***! 1493 | \**************************/ 1494 | 1495 | /*!**************************!*\ 1496 | !*** ./src/io/Reader.js ***! 1497 | \**************************/ 1498 | 1499 | /*!**************************!*\ 1500 | !*** ./src/io/Writer.js ***! 1501 | \**************************/ 1502 | 1503 | /*!**************************!*\ 1504 | !*** ./src/util/UUID.js ***! 1505 | \**************************/ 1506 | 1507 | /*!***************************!*\ 1508 | !*** ./src/Connection.js ***! 1509 | \***************************/ 1510 | 1511 | /*!***************************!*\ 1512 | !*** ./src/HybridPort.js ***! 1513 | \***************************/ 1514 | 1515 | /*!***************************!*\ 1516 | !*** ./src/OutputPort.js ***! 1517 | \***************************/ 1518 | 1519 | /*!***************************!*\ 1520 | !*** ./src/util/Color.js ***! 1521 | \***************************/ 1522 | 1523 | /*!***************************!*\ 1524 | !*** ./src/util/Debug.js ***! 1525 | \***************************/ 1526 | 1527 | /*!****************************!*\ 1528 | !*** ./src/util/Base64.js ***! 1529 | \****************************/ 1530 | 1531 | /*!****************************!*\ 1532 | !*** ./src/util/extend.js ***! 1533 | \****************************/ 1534 | 1535 | /*!*****************************!*\ 1536 | !*** ./src/ResizeHandle.js ***! 1537 | \*****************************/ 1538 | 1539 | /*!*****************************!*\ 1540 | !*** ./src/VectorFigure.js ***! 1541 | \*****************************/ 1542 | 1543 | /*!*****************************!*\ 1544 | !*** ./src/util/SVGUtil.js ***! 1545 | \*****************************/ 1546 | 1547 | /*!******************************!*\ 1548 | !*** ./src/Configuration.js ***! 1549 | \******************************/ 1550 | 1551 | /*!******************************!*\ 1552 | !*** ./src/geo/Rectangle.js ***! 1553 | \******************************/ 1554 | 1555 | /*!******************************!*\ 1556 | !*** ./src/io/png/Writer.js ***! 1557 | \******************************/ 1558 | 1559 | /*!******************************!*\ 1560 | !*** ./src/io/svg/Writer.js ***! 1561 | \******************************/ 1562 | 1563 | /*!******************************!*\ 1564 | !*** ./src/shape/icon/Db.js ***! 1565 | \******************************/ 1566 | 1567 | /*!******************************!*\ 1568 | !*** ./src/shape/icon/Ff.js ***! 1569 | \******************************/ 1570 | 1571 | /*!******************************!*\ 1572 | !*** ./src/shape/icon/Ie.js ***! 1573 | \******************************/ 1574 | 1575 | /*!******************************!*\ 1576 | !*** ./src/shape/icon/No.js ***! 1577 | \******************************/ 1578 | 1579 | /*!******************************!*\ 1580 | !*** ./src/shape/icon/Pc.js ***! 1581 | \******************************/ 1582 | 1583 | /*!******************************!*\ 1584 | !*** ./src/shape/icon/Rw.js ***! 1585 | \******************************/ 1586 | 1587 | /*!******************************!*\ 1588 | !*** ./src/util/JSONUtil.js ***! 1589 | \******************************/ 1590 | 1591 | /*!******************************!*\ 1592 | !*** ./src/util/Polyfill.js ***! 1593 | \******************************/ 1594 | 1595 | /*!*******************************!*\ 1596 | !*** ./src/HeadlessCanvas.js ***! 1597 | \*******************************/ 1598 | 1599 | /*!*******************************!*\ 1600 | !*** ./src/io/json/Reader.js ***! 1601 | \*******************************/ 1602 | 1603 | /*!*******************************!*\ 1604 | !*** ./src/io/json/Writer.js ***! 1605 | \*******************************/ 1606 | 1607 | /*!*******************************!*\ 1608 | !*** ./src/lib/Class.exec.js ***! 1609 | \*******************************/ 1610 | 1611 | /*!*******************************!*\ 1612 | !*** ./src/shape/icon/Acw.js ***! 1613 | \*******************************/ 1614 | 1615 | /*!*******************************!*\ 1616 | !*** ./src/shape/icon/Bug.js ***! 1617 | \*******************************/ 1618 | 1619 | /*!*******************************!*\ 1620 | !*** ./src/shape/icon/Ccw.js ***! 1621 | \*******************************/ 1622 | 1623 | /*!*******************************!*\ 1624 | !*** ./src/shape/icon/Dry.js ***! 1625 | \*******************************/ 1626 | 1627 | /*!*******************************!*\ 1628 | !*** ./src/shape/icon/End.js ***! 1629 | \*******************************/ 1630 | 1631 | /*!*******************************!*\ 1632 | !*** ./src/shape/icon/Ie9.js ***! 1633 | \*******************************/ 1634 | 1635 | /*!*******************************!*\ 1636 | !*** ./src/shape/icon/Key.js ***! 1637 | \*******************************/ 1638 | 1639 | /*!*******************************!*\ 1640 | !*** ./src/shape/icon/Lab.js ***! 1641 | \*******************************/ 1642 | 1643 | /*!*******************************!*\ 1644 | !*** ./src/shape/icon/Man.js ***! 1645 | \*******************************/ 1646 | 1647 | /*!*******************************!*\ 1648 | !*** ./src/shape/icon/Mic.js ***! 1649 | \*******************************/ 1650 | 1651 | /*!*******************************!*\ 1652 | !*** ./src/shape/icon/Pen.js ***! 1653 | \*******************************/ 1654 | 1655 | /*!*******************************!*\ 1656 | !*** ./src/shape/icon/Ppt.js ***! 1657 | \*******************************/ 1658 | 1659 | /*!*******************************!*\ 1660 | !*** ./src/shape/icon/Run.js ***! 1661 | \*******************************/ 1662 | 1663 | /*!*******************************!*\ 1664 | !*** ./src/shape/icon/Sun.js ***! 1665 | \*******************************/ 1666 | 1667 | /*!*******************************!*\ 1668 | !*** ./src/shape/icon/Svg.js ***! 1669 | \*******************************/ 1670 | 1671 | /*!*******************************!*\ 1672 | !*** ./src/shape/icon/Tag.js ***! 1673 | \*******************************/ 1674 | 1675 | /*!*******************************!*\ 1676 | !*** ./src/shape/icon/Usb.js ***! 1677 | \*******************************/ 1678 | 1679 | /*!*******************************!*\ 1680 | !*** ./src/shape/icon/Vim.js ***! 1681 | \*******************************/ 1682 | 1683 | /*!*******************************!*\ 1684 | !*** ./src/shape/node/End.js ***! 1685 | \*******************************/ 1686 | 1687 | /*!*******************************!*\ 1688 | !*** ./src/shape/node/Hub.js ***! 1689 | \*******************************/ 1690 | 1691 | /*!*******************************!*\ 1692 | !*** ./src/ui/LabelEditor.js ***! 1693 | \*******************************/ 1694 | 1695 | /*!*******************************!*\ 1696 | !*** ./src/util/ArrayList.js ***! 1697 | \*******************************/ 1698 | 1699 | /*!********************************!*\ 1700 | !*** ./src/command/Command.js ***! 1701 | \********************************/ 1702 | 1703 | /*!********************************!*\ 1704 | !*** ./src/shape/basic/Arc.js ***! 1705 | \********************************/ 1706 | 1707 | /*!********************************!*\ 1708 | !*** ./src/shape/icon/Apps.js ***! 1709 | \********************************/ 1710 | 1711 | /*!********************************!*\ 1712 | !*** ./src/shape/icon/Book.js ***! 1713 | \********************************/ 1714 | 1715 | /*!********************************!*\ 1716 | !*** ./src/shape/icon/Cart.js ***! 1717 | \********************************/ 1718 | 1719 | /*!********************************!*\ 1720 | !*** ./src/shape/icon/Chat.js ***! 1721 | \********************************/ 1722 | 1723 | /*!********************************!*\ 1724 | !*** ./src/shape/icon/Clip.js ***! 1725 | \********************************/ 1726 | 1727 | /*!********************************!*\ 1728 | !*** ./src/shape/icon/Code.js ***! 1729 | \********************************/ 1730 | 1731 | /*!********************************!*\ 1732 | !*** ./src/shape/icon/Crop.js ***! 1733 | \********************************/ 1734 | 1735 | /*!********************************!*\ 1736 | !*** ./src/shape/icon/Cube.js ***! 1737 | \********************************/ 1738 | 1739 | /*!********************************!*\ 1740 | !*** ./src/shape/icon/Fave.js ***! 1741 | \********************************/ 1742 | 1743 | /*!********************************!*\ 1744 | !*** ./src/shape/icon/Feed.js ***! 1745 | \********************************/ 1746 | 1747 | /*!********************************!*\ 1748 | !*** ./src/shape/icon/Flag.js ***! 1749 | \********************************/ 1750 | 1751 | /*!********************************!*\ 1752 | !*** ./src/shape/icon/Font.js ***! 1753 | \********************************/ 1754 | 1755 | /*!********************************!*\ 1756 | !*** ./src/shape/icon/Fork.js ***! 1757 | \********************************/ 1758 | 1759 | /*!********************************!*\ 1760 | !*** ./src/shape/icon/Gear.js ***! 1761 | \********************************/ 1762 | 1763 | /*!********************************!*\ 1764 | !*** ./src/shape/icon/Hail.js ***! 1765 | \********************************/ 1766 | 1767 | /*!********************************!*\ 1768 | !*** ./src/shape/icon/Help.js ***! 1769 | \********************************/ 1770 | 1771 | /*!********************************!*\ 1772 | !*** ./src/shape/icon/Home.js ***! 1773 | \********************************/ 1774 | 1775 | /*!********************************!*\ 1776 | !*** ./src/shape/icon/IMac.js ***! 1777 | \********************************/ 1778 | 1779 | /*!********************************!*\ 1780 | !*** ./src/shape/icon/Icon.js ***! 1781 | \********************************/ 1782 | 1783 | /*!********************************!*\ 1784 | !*** ./src/shape/icon/Ipad.js ***! 1785 | \********************************/ 1786 | 1787 | /*!********************************!*\ 1788 | !*** ./src/shape/icon/Lamp.js ***! 1789 | \********************************/ 1790 | 1791 | /*!********************************!*\ 1792 | !*** ./src/shape/icon/Link.js ***! 1793 | \********************************/ 1794 | 1795 | /*!********************************!*\ 1796 | !*** ./src/shape/icon/List.js ***! 1797 | \********************************/ 1798 | 1799 | /*!********************************!*\ 1800 | !*** ./src/shape/icon/Lock.js ***! 1801 | \********************************/ 1802 | 1803 | /*!********************************!*\ 1804 | !*** ./src/shape/icon/Mail.js ***! 1805 | \********************************/ 1806 | 1807 | /*!********************************!*\ 1808 | !*** ./src/shape/icon/Page.js ***! 1809 | \********************************/ 1810 | 1811 | /*!********************************!*\ 1812 | !*** ./src/shape/icon/Palm.js ***! 1813 | \********************************/ 1814 | 1815 | /*!********************************!*\ 1816 | !*** ./src/shape/icon/Plus.js ***! 1817 | \********************************/ 1818 | 1819 | /*!********************************!*\ 1820 | !*** ./src/shape/icon/Rain.js ***! 1821 | \********************************/ 1822 | 1823 | /*!********************************!*\ 1824 | !*** ./src/shape/icon/Snow.js ***! 1825 | \********************************/ 1826 | 1827 | /*!********************************!*\ 1828 | !*** ./src/shape/icon/Star.js ***! 1829 | \********************************/ 1830 | 1831 | /*!********************************!*\ 1832 | !*** ./src/shape/icon/Stop.js ***! 1833 | \********************************/ 1834 | 1835 | /*!********************************!*\ 1836 | !*** ./src/shape/icon/Undo.js ***! 1837 | \********************************/ 1838 | 1839 | /*!********************************!*\ 1840 | !*** ./src/shape/icon/User.js ***! 1841 | \********************************/ 1842 | 1843 | /*!********************************!*\ 1844 | !*** ./src/shape/icon/View.js ***! 1845 | \********************************/ 1846 | 1847 | /*!********************************!*\ 1848 | !*** ./src/shape/node/Node.js ***! 1849 | \********************************/ 1850 | 1851 | /*!********************************!*\ 1852 | !*** ./src/shape/state/End.js ***! 1853 | \********************************/ 1854 | 1855 | /*!*********************************!*\ 1856 | !*** ./src/css/contextmenu.css ***! 1857 | \*********************************/ 1858 | 1859 | /*!*********************************!*\ 1860 | !*** ./src/lib/raphael.exec.js ***! 1861 | \*********************************/ 1862 | 1863 | /*!*********************************!*\ 1864 | !*** ./src/shape/basic/Line.js ***! 1865 | \*********************************/ 1866 | 1867 | /*!*********************************!*\ 1868 | !*** ./src/shape/basic/Oval.js ***! 1869 | \*********************************/ 1870 | 1871 | /*!*********************************!*\ 1872 | !*** ./src/shape/basic/Text.js ***! 1873 | \*********************************/ 1874 | 1875 | /*!*********************************!*\ 1876 | !*** ./src/shape/icon/Alarm.js ***! 1877 | \*********************************/ 1878 | 1879 | /*!*********************************!*\ 1880 | !*** ./src/shape/icon/Apple.js ***! 1881 | \*********************************/ 1882 | 1883 | /*!*********************************!*\ 1884 | !*** ./src/shape/icon/Books.js ***! 1885 | \*********************************/ 1886 | 1887 | /*!*********************************!*\ 1888 | !*** ./src/shape/icon/Check.js ***! 1889 | \*********************************/ 1890 | 1891 | /*!*********************************!*\ 1892 | !*** ./src/shape/icon/Clock.js ***! 1893 | \*********************************/ 1894 | 1895 | /*!*********************************!*\ 1896 | !*** ./src/shape/icon/Cloud.js ***! 1897 | \*********************************/ 1898 | 1899 | /*!*********************************!*\ 1900 | !*** ./src/shape/icon/Cross.js ***! 1901 | \*********************************/ 1902 | 1903 | /*!*********************************!*\ 1904 | !*** ./src/shape/icon/Gear2.js ***! 1905 | \*********************************/ 1906 | 1907 | /*!*********************************!*\ 1908 | !*** ./src/shape/icon/Globe.js ***! 1909 | \*********************************/ 1910 | 1911 | /*!*********************************!*\ 1912 | !*** ./src/shape/icon/Icons.js ***! 1913 | \*********************************/ 1914 | 1915 | /*!*********************************!*\ 1916 | !*** ./src/shape/icon/Linux.js ***! 1917 | \*********************************/ 1918 | 1919 | /*!*********************************!*\ 1920 | !*** ./src/shape/icon/Magic.js ***! 1921 | \*********************************/ 1922 | 1923 | /*!*********************************!*\ 1924 | !*** ./src/shape/icon/Merge.js ***! 1925 | \*********************************/ 1926 | 1927 | /*!*********************************!*\ 1928 | !*** ./src/shape/icon/Minus.js ***! 1929 | \*********************************/ 1930 | 1931 | /*!*********************************!*\ 1932 | !*** ./src/shape/icon/Opera.js ***! 1933 | \*********************************/ 1934 | 1935 | /*!*********************************!*\ 1936 | !*** ./src/shape/icon/Page2.js ***! 1937 | \*********************************/ 1938 | 1939 | /*!*********************************!*\ 1940 | !*** ./src/shape/icon/Paper.js ***! 1941 | \*********************************/ 1942 | 1943 | /*!*********************************!*\ 1944 | !*** ./src/shape/icon/Phone.js ***! 1945 | \*********************************/ 1946 | 1947 | /*!*********************************!*\ 1948 | !*** ./src/shape/icon/Photo.js ***! 1949 | \*********************************/ 1950 | 1951 | /*!*********************************!*\ 1952 | !*** ./src/shape/icon/Plane.js ***! 1953 | \*********************************/ 1954 | 1955 | /*!*********************************!*\ 1956 | !*** ./src/shape/icon/Power.js ***! 1957 | \*********************************/ 1958 | 1959 | /*!*********************************!*\ 1960 | !*** ./src/shape/icon/Quote.js ***! 1961 | \*********************************/ 1962 | 1963 | /*!*********************************!*\ 1964 | !*** ./src/shape/icon/Ruler.js ***! 1965 | \*********************************/ 1966 | 1967 | /*!*********************************!*\ 1968 | !*** ./src/shape/icon/Skull.js ***! 1969 | \*********************************/ 1970 | 1971 | /*!*********************************!*\ 1972 | !*** ./src/shape/icon/Skype.js ***! 1973 | \*********************************/ 1974 | 1975 | /*!*********************************!*\ 1976 | !*** ./src/shape/icon/Smile.js ***! 1977 | \*********************************/ 1978 | 1979 | /*!*********************************!*\ 1980 | !*** ./src/shape/icon/Split.js ***! 1981 | \*********************************/ 1982 | 1983 | /*!*********************************!*\ 1984 | !*** ./src/shape/icon/Star2.js ***! 1985 | \*********************************/ 1986 | 1987 | /*!*********************************!*\ 1988 | !*** ./src/shape/icon/Star3.js ***! 1989 | \*********************************/ 1990 | 1991 | /*!*********************************!*\ 1992 | !*** ./src/shape/icon/Start.js ***! 1993 | \*********************************/ 1994 | 1995 | /*!*********************************!*\ 1996 | !*** ./src/shape/icon/Talke.js ***! 1997 | \*********************************/ 1998 | 1999 | /*!*********************************!*\ 2000 | !*** ./src/shape/icon/Talkq.js ***! 2001 | \*********************************/ 2002 | 2003 | /*!*********************************!*\ 2004 | !*** ./src/shape/icon/Trash.js ***! 2005 | \*********************************/ 2006 | 2007 | /*!*********************************!*\ 2008 | !*** ./src/shape/icon/Users.js ***! 2009 | \*********************************/ 2010 | 2011 | /*!*********************************!*\ 2012 | !*** ./src/shape/icon/Video.js ***! 2013 | \*********************************/ 2014 | 2015 | /*!*********************************!*\ 2016 | !*** ./src/shape/icon/Woman.js ***! 2017 | \*********************************/ 2018 | 2019 | /*!*********************************!*\ 2020 | !*** ./src/shape/node/Start.js ***! 2021 | \*********************************/ 2022 | 2023 | /*!*********************************!*\ 2024 | !*** ./src/shape/pert/Start.js ***! 2025 | \*********************************/ 2026 | 2027 | /*!*********************************!*\ 2028 | !*** ./src/util/raphael_ext.js ***! 2029 | \*********************************/ 2030 | 2031 | /*!**********************************!*\ 2032 | !*** ./src/policy/EditPolicy.js ***! 2033 | \**********************************/ 2034 | 2035 | /*!**********************************!*\ 2036 | !*** ./src/shape/basic/Image.js ***! 2037 | \**********************************/ 2038 | 2039 | /*!**********************************!*\ 2040 | !*** ./src/shape/basic/Label.js ***! 2041 | \**********************************/ 2042 | 2043 | /*!**********************************!*\ 2044 | !*** ./src/shape/diagram/Pie.js ***! 2045 | \**********************************/ 2046 | 2047 | /*!**********************************!*\ 2048 | !*** ./src/shape/icon/Aumade.js ***! 2049 | \**********************************/ 2050 | 2051 | /*!**********************************!*\ 2052 | !*** ./src/shape/icon/Bubble.js ***! 2053 | \**********************************/ 2054 | 2055 | /*!**********************************!*\ 2056 | !*** ./src/shape/icon/Chrome.js ***! 2057 | \**********************************/ 2058 | 2059 | /*!**********************************!*\ 2060 | !*** ./src/shape/icon/Cloud2.js ***! 2061 | \**********************************/ 2062 | 2063 | /*!**********************************!*\ 2064 | !*** ./src/shape/icon/Cloudy.js ***! 2065 | \**********************************/ 2066 | 2067 | /*!**********************************!*\ 2068 | !*** ./src/shape/icon/Detour.js ***! 2069 | \**********************************/ 2070 | 2071 | /*!**********************************!*\ 2072 | !*** ./src/shape/icon/Expand.js ***! 2073 | \**********************************/ 2074 | 2075 | /*!**********************************!*\ 2076 | !*** ./src/shape/icon/Export.js ***! 2077 | \**********************************/ 2078 | 2079 | /*!**********************************!*\ 2080 | !*** ./src/shape/icon/Flickr.js ***! 2081 | \**********************************/ 2082 | 2083 | /*!**********************************!*\ 2084 | !*** ./src/shape/icon/Folder.js ***! 2085 | \**********************************/ 2086 | 2087 | /*!**********************************!*\ 2088 | !*** ./src/shape/icon/Future.js ***! 2089 | \**********************************/ 2090 | 2091 | /*!**********************************!*\ 2092 | !*** ./src/shape/icon/GitHub.js ***! 2093 | \**********************************/ 2094 | 2095 | /*!**********************************!*\ 2096 | !*** ./src/shape/icon/Hammer.js ***! 2097 | \**********************************/ 2098 | 2099 | /*!**********************************!*\ 2100 | !*** ./src/shape/icon/HangUp.js ***! 2101 | \**********************************/ 2102 | 2103 | /*!**********************************!*\ 2104 | !*** ./src/shape/icon/Import.js ***! 2105 | \**********************************/ 2106 | 2107 | /*!**********************************!*\ 2108 | !*** ./src/shape/icon/Iphone.js ***! 2109 | \**********************************/ 2110 | 2111 | /*!**********************************!*\ 2112 | !*** ./src/shape/icon/JQuery.js ***! 2113 | \**********************************/ 2114 | 2115 | /*!**********************************!*\ 2116 | !*** ./src/shape/icon/Jigsaw.js ***! 2117 | \**********************************/ 2118 | 2119 | /*!**********************************!*\ 2120 | !*** ./src/shape/icon/Locked.js ***! 2121 | \**********************************/ 2122 | 2123 | /*!**********************************!*\ 2124 | !*** ./src/shape/icon/Magnet.js ***! 2125 | \**********************************/ 2126 | 2127 | /*!**********************************!*\ 2128 | !*** ./src/shape/icon/NodeJs.js ***! 2129 | \**********************************/ 2130 | 2131 | /*!**********************************!*\ 2132 | !*** ./src/shape/icon/Noview.js ***! 2133 | \**********************************/ 2134 | 2135 | /*!**********************************!*\ 2136 | !*** ./src/shape/icon/Parent.js ***! 2137 | \**********************************/ 2138 | 2139 | /*!**********************************!*\ 2140 | !*** ./src/shape/icon/Pensil.js ***! 2141 | \**********************************/ 2142 | 2143 | /*!**********************************!*\ 2144 | !*** ./src/shape/icon/People.js ***! 2145 | \**********************************/ 2146 | 2147 | /*!**********************************!*\ 2148 | !*** ./src/shape/icon/Picker.js ***! 2149 | \**********************************/ 2150 | 2151 | /*!**********************************!*\ 2152 | !*** ./src/shape/icon/Plugin.js ***! 2153 | \**********************************/ 2154 | 2155 | /*!**********************************!*\ 2156 | !*** ./src/shape/icon/Rotate.js ***! 2157 | \**********************************/ 2158 | 2159 | /*!**********************************!*\ 2160 | !*** ./src/shape/icon/Safari.js ***! 2161 | \**********************************/ 2162 | 2163 | /*!**********************************!*\ 2164 | !*** ./src/shape/icon/Search.js ***! 2165 | \**********************************/ 2166 | 2167 | /*!**********************************!*\ 2168 | !*** ./src/shape/icon/Sencha.js ***! 2169 | \**********************************/ 2170 | 2171 | /*!**********************************!*\ 2172 | !*** ./src/shape/icon/Smile2.js ***! 2173 | \**********************************/ 2174 | 2175 | /*!**********************************!*\ 2176 | !*** ./src/shape/icon/TShirt.js ***! 2177 | \**********************************/ 2178 | 2179 | /*!**********************************!*\ 2180 | !*** ./src/shape/icon/Unlock.js ***! 2181 | \**********************************/ 2182 | 2183 | /*!**********************************!*\ 2184 | !*** ./src/shape/icon/Wrench.js ***! 2185 | \**********************************/ 2186 | 2187 | /*!**********************************!*\ 2188 | !*** ./src/shape/icon/ZoomIn.js ***! 2189 | \**********************************/ 2190 | 2191 | /*!**********************************!*\ 2192 | !*** ./src/shape/note/PostIt.js ***! 2193 | \**********************************/ 2194 | 2195 | /*!**********************************!*\ 2196 | !*** ./src/shape/state/Start.js ***! 2197 | \**********************************/ 2198 | 2199 | /*!**********************************!*\ 2200 | !*** ./src/shape/state/State.js ***! 2201 | \**********************************/ 2202 | 2203 | /*!***********************************!*\ 2204 | !*** (webpack)/buildin/global.js ***! 2205 | \***********************************/ 2206 | 2207 | /*!***********************************!*\ 2208 | !*** ./src/command/CommandAdd.js ***! 2209 | \***********************************/ 2210 | 2211 | /*!***********************************!*\ 2212 | !*** ./src/shape/analog/OpAmp.js ***! 2213 | \***********************************/ 2214 | 2215 | /*!***********************************!*\ 2216 | !*** ./src/shape/basic/Circle.js ***! 2217 | \***********************************/ 2218 | 2219 | /*!***********************************!*\ 2220 | !*** ./src/shape/icon/ArrowUp.js ***! 2221 | \***********************************/ 2222 | 2223 | /*!***********************************!*\ 2224 | !*** ./src/shape/icon/CloudUp.js ***! 2225 | \***********************************/ 2226 | 2227 | /*!***********************************!*\ 2228 | !*** ./src/shape/icon/Connect.js ***! 2229 | \***********************************/ 2230 | 2231 | /*!***********************************!*\ 2232 | !*** ./src/shape/icon/Diagram.js ***! 2233 | \***********************************/ 2234 | 2235 | /*!***********************************!*\ 2236 | !*** ./src/shape/icon/DockTop.js ***! 2237 | \***********************************/ 2238 | 2239 | /*!***********************************!*\ 2240 | !*** ./src/shape/icon/Firefox.js ***! 2241 | \***********************************/ 2242 | 2243 | /*!***********************************!*\ 2244 | !*** ./src/shape/icon/ForkAlt.js ***! 2245 | \***********************************/ 2246 | 2247 | /*!***********************************!*\ 2248 | !*** ./src/shape/icon/Glasses.js ***! 2249 | \***********************************/ 2250 | 2251 | /*!***********************************!*\ 2252 | !*** ./src/shape/icon/History.js ***! 2253 | \***********************************/ 2254 | 2255 | /*!***********************************!*\ 2256 | !*** ./src/shape/icon/Landing.js ***! 2257 | \***********************************/ 2258 | 2259 | /*!***********************************!*\ 2260 | !*** ./src/shape/icon/MicMute.js ***! 2261 | \***********************************/ 2262 | 2263 | /*!***********************************!*\ 2264 | !*** ./src/shape/icon/Package.js ***! 2265 | \***********************************/ 2266 | 2267 | /*!***********************************!*\ 2268 | !*** ./src/shape/icon/Pallete.js ***! 2269 | \***********************************/ 2270 | 2271 | /*!***********************************!*\ 2272 | !*** ./src/shape/icon/Picture.js ***! 2273 | \***********************************/ 2274 | 2275 | /*!***********************************!*\ 2276 | !*** ./src/shape/icon/Printer.js ***! 2277 | \***********************************/ 2278 | 2279 | /*!***********************************!*\ 2280 | !*** ./src/shape/icon/Raphael.js ***! 2281 | \***********************************/ 2282 | 2283 | /*!***********************************!*\ 2284 | !*** ./src/shape/icon/Refresh.js ***! 2285 | \***********************************/ 2286 | 2287 | /*!***********************************!*\ 2288 | !*** ./src/shape/icon/Resize2.js ***! 2289 | \***********************************/ 2290 | 2291 | /*!***********************************!*\ 2292 | !*** ./src/shape/icon/Shuffle.js ***! 2293 | \***********************************/ 2294 | 2295 | /*!***********************************!*\ 2296 | !*** ./src/shape/icon/StarOff.js ***! 2297 | \***********************************/ 2298 | 2299 | /*!***********************************!*\ 2300 | !*** ./src/shape/icon/Sticker.js ***! 2301 | \***********************************/ 2302 | 2303 | /*!***********************************!*\ 2304 | !*** ./src/shape/icon/TakeOff.js ***! 2305 | \***********************************/ 2306 | 2307 | /*!***********************************!*\ 2308 | !*** ./src/shape/icon/Thunder.js ***! 2309 | \***********************************/ 2310 | 2311 | /*!***********************************!*\ 2312 | !*** ./src/shape/icon/Twitter.js ***! 2313 | \***********************************/ 2314 | 2315 | /*!***********************************!*\ 2316 | !*** ./src/shape/icon/Volume0.js ***! 2317 | \***********************************/ 2318 | 2319 | /*!***********************************!*\ 2320 | !*** ./src/shape/icon/Volume1.js ***! 2321 | \***********************************/ 2322 | 2323 | /*!***********************************!*\ 2324 | !*** ./src/shape/icon/Volume2.js ***! 2325 | \***********************************/ 2326 | 2327 | /*!***********************************!*\ 2328 | !*** ./src/shape/icon/Volume3.js ***! 2329 | \***********************************/ 2330 | 2331 | /*!***********************************!*\ 2332 | !*** ./src/shape/icon/Warning.js ***! 2333 | \***********************************/ 2334 | 2335 | /*!***********************************!*\ 2336 | !*** ./src/shape/icon/Windows.js ***! 2337 | \***********************************/ 2338 | 2339 | /*!***********************************!*\ 2340 | !*** ./src/shape/icon/Wrench2.js ***! 2341 | \***********************************/ 2342 | 2343 | /*!***********************************!*\ 2344 | !*** ./src/shape/icon/Wrench3.js ***! 2345 | \***********************************/ 2346 | 2347 | /*!***********************************!*\ 2348 | !*** ./src/shape/icon/ZoomOut.js ***! 2349 | \***********************************/ 2350 | 2351 | /*!***********************************!*\ 2352 | !*** ./src/shape/node/Between.js ***! 2353 | \***********************************/ 2354 | 2355 | /*!***********************************!*\ 2356 | !*** ./src/shape/node/Fulcrum.js ***! 2357 | \***********************************/ 2358 | 2359 | /*!***********************************!*\ 2360 | !*** ./src/util/spline/Spline.js ***! 2361 | \***********************************/ 2362 | 2363 | /*!************************************!*\ 2364 | !*** ./node_modules/xmldom/dom.js ***! 2365 | \************************************/ 2366 | 2367 | /*!************************************!*\ 2368 | !*** ./node_modules/xmldom/sax.js ***! 2369 | \************************************/ 2370 | 2371 | /*!************************************!*\ 2372 | !*** ./src/command/CommandAttr.js ***! 2373 | \************************************/ 2374 | 2375 | /*!************************************!*\ 2376 | !*** ./src/command/CommandMove.js ***! 2377 | \************************************/ 2378 | 2379 | /*!************************************!*\ 2380 | !*** ./src/command/CommandType.js ***! 2381 | \************************************/ 2382 | 2383 | /*!************************************!*\ 2384 | !*** ./src/shape/basic/Diamond.js ***! 2385 | \************************************/ 2386 | 2387 | /*!************************************!*\ 2388 | !*** ./src/shape/basic/Polygon.js ***! 2389 | \************************************/ 2390 | 2391 | /*!************************************!*\ 2392 | !*** ./src/shape/icon/BarChart.js ***! 2393 | \************************************/ 2394 | 2395 | /*!************************************!*\ 2396 | !*** ./src/shape/icon/Bookmark.js ***! 2397 | \************************************/ 2398 | 2399 | /*!************************************!*\ 2400 | !*** ./src/shape/icon/Calendar.js ***! 2401 | \************************************/ 2402 | 2403 | /*!************************************!*\ 2404 | !*** ./src/shape/icon/CodeTalk.js ***! 2405 | \************************************/ 2406 | 2407 | /*!************************************!*\ 2408 | !*** ./src/shape/icon/Contract.js ***! 2409 | \************************************/ 2410 | 2411 | /*!************************************!*\ 2412 | !*** ./src/shape/icon/Customer.js ***! 2413 | \************************************/ 2414 | 2415 | /*!************************************!*\ 2416 | !*** ./src/shape/icon/DockLeft.js ***! 2417 | \************************************/ 2418 | 2419 | /*!************************************!*\ 2420 | !*** ./src/shape/icon/Download.js ***! 2421 | \************************************/ 2422 | 2423 | /*!************************************!*\ 2424 | !*** ./src/shape/icon/Employee.js ***! 2425 | \************************************/ 2426 | 2427 | /*!************************************!*\ 2428 | !*** ./src/shape/icon/Ethernet.js ***! 2429 | \************************************/ 2430 | 2431 | /*!************************************!*\ 2432 | !*** ./src/shape/icon/Exchange.js ***! 2433 | \************************************/ 2434 | 2435 | /*!************************************!*\ 2436 | !*** ./src/shape/icon/FullCube.js ***! 2437 | \************************************/ 2438 | 2439 | /*!************************************!*\ 2440 | !*** ./src/shape/icon/GRaphael.js ***! 2441 | \************************************/ 2442 | 2443 | /*!************************************!*\ 2444 | !*** ./src/shape/icon/GlobeAlt.js ***! 2445 | \************************************/ 2446 | 2447 | /*!************************************!*\ 2448 | !*** ./src/shape/icon/InkScape.js ***! 2449 | \************************************/ 2450 | 2451 | /*!************************************!*\ 2452 | !*** ./src/shape/icon/Lamp_alt.js ***! 2453 | \************************************/ 2454 | 2455 | /*!************************************!*\ 2456 | !*** ./src/shape/icon/LinkedIn.js ***! 2457 | \************************************/ 2458 | 2459 | /*!************************************!*\ 2460 | !*** ./src/shape/icon/Location.js ***! 2461 | \************************************/ 2462 | 2463 | /*!************************************!*\ 2464 | !*** ./src/shape/icon/NoMagnet.js ***! 2465 | \************************************/ 2466 | 2467 | /*!************************************!*\ 2468 | !*** ./src/shape/icon/Notebook.js ***! 2469 | \************************************/ 2470 | 2471 | /*!************************************!*\ 2472 | !*** ./src/shape/icon/PieChart.js ***! 2473 | \************************************/ 2474 | 2475 | /*!************************************!*\ 2476 | !*** ./src/shape/icon/ReflectH.js ***! 2477 | \************************************/ 2478 | 2479 | /*!************************************!*\ 2480 | !*** ./src/shape/icon/ReflectV.js ***! 2481 | \************************************/ 2482 | 2483 | /*!************************************!*\ 2484 | !*** ./src/shape/icon/Settings.js ***! 2485 | \************************************/ 2486 | 2487 | /*!************************************!*\ 2488 | !*** ./src/shape/icon/Star2Off.js ***! 2489 | \************************************/ 2490 | 2491 | /*!************************************!*\ 2492 | !*** ./src/shape/icon/Star3Off.js ***! 2493 | \************************************/ 2494 | 2495 | /*!************************************!*\ 2496 | !*** ./src/shape/icon/Umbrella.js ***! 2497 | \************************************/ 2498 | 2499 | /*!************************************!*\ 2500 | !*** ./src/shape/layout/Layout.js ***! 2501 | \************************************/ 2502 | 2503 | /*!************************************!*\ 2504 | !*** ./src/shape/pert/Activity.js ***! 2505 | \************************************/ 2506 | 2507 | /*!************************************!*\ 2508 | !*** ./src/shape/widget/Slider.js ***! 2509 | \************************************/ 2510 | 2511 | /*!************************************!*\ 2512 | !*** ./src/shape/widget/Widget.js ***! 2513 | \************************************/ 2514 | 2515 | /*!*************************************!*\ 2516 | !*** ./src/command/CommandGroup.js ***! 2517 | \*************************************/ 2518 | 2519 | /*!*************************************!*\ 2520 | !*** ./src/command/CommandStack.js ***! 2521 | \*************************************/ 2522 | 2523 | /*!*************************************!*\ 2524 | !*** ./src/lib/pathfinding.exec.js ***! 2525 | \*************************************/ 2526 | 2527 | /*!*************************************!*\ 2528 | !*** ./src/shape/basic/PolyLine.js ***! 2529 | \*************************************/ 2530 | 2531 | /*!*************************************!*\ 2532 | !*** ./src/shape/composite/Raft.js ***! 2533 | \*************************************/ 2534 | 2535 | /*!*************************************!*\ 2536 | !*** ./src/shape/icon/Anonymous.js ***! 2537 | \*************************************/ 2538 | 2539 | /*!*************************************!*\ 2540 | !*** ./src/shape/icon/ArrowDown.js ***! 2541 | \*************************************/ 2542 | 2543 | /*!*************************************!*\ 2544 | !*** ./src/shape/icon/ArrowLeft.js ***! 2545 | \*************************************/ 2546 | 2547 | /*!*************************************!*\ 2548 | !*** ./src/shape/icon/BioHazard.js ***! 2549 | \*************************************/ 2550 | 2551 | /*!*************************************!*\ 2552 | !*** ./src/shape/icon/CloudDown.js ***! 2553 | \*************************************/ 2554 | 2555 | /*!*************************************!*\ 2556 | !*** ./src/shape/icon/DockRight.js ***! 2557 | \*************************************/ 2558 | 2559 | /*!*************************************!*\ 2560 | !*** ./src/shape/icon/GitHubAlt.js ***! 2561 | \*************************************/ 2562 | 2563 | /*!*************************************!*\ 2564 | !*** ./src/shape/icon/GlobeAlt2.js ***! 2565 | \*************************************/ 2566 | 2567 | /*!*************************************!*\ 2568 | !*** ./src/shape/icon/LineChart.js ***! 2569 | \*************************************/ 2570 | 2571 | /*!*************************************!*\ 2572 | !*** ./src/shape/icon/NewWindow.js ***! 2573 | \*************************************/ 2574 | 2575 | /*!*************************************!*\ 2576 | !*** ./src/shape/icon/StopWatch.js ***! 2577 | \*************************************/ 2578 | 2579 | /*!**************************************!*\ 2580 | !*** ./src/command/CommandDelete.js ***! 2581 | \**************************************/ 2582 | 2583 | /*!**************************************!*\ 2584 | !*** ./src/command/CommandResize.js ***! 2585 | \**************************************/ 2586 | 2587 | /*!**************************************!*\ 2588 | !*** ./src/command/CommandRotate.js ***! 2589 | \**************************************/ 2590 | 2591 | /*!**************************************!*\ 2592 | !*** ./src/geo/PositionConstants.js ***! 2593 | \**************************************/ 2594 | 2595 | /*!**************************************!*\ 2596 | !*** ./src/lib/jquery.autoresize.js ***! 2597 | \**************************************/ 2598 | 2599 | /*!**************************************!*\ 2600 | !*** ./src/shape/basic/Rectangle.js ***! 2601 | \**************************************/ 2602 | 2603 | /*!**************************************!*\ 2604 | !*** ./src/shape/composite/Group.js ***! 2605 | \**************************************/ 2606 | 2607 | /*!**************************************!*\ 2608 | !*** ./src/shape/diagram/Diagram.js ***! 2609 | \**************************************/ 2610 | 2611 | /*!**************************************!*\ 2612 | !*** ./src/shape/icon/ArrowLeft2.js ***! 2613 | \**************************************/ 2614 | 2615 | /*!**************************************!*\ 2616 | !*** ./src/shape/icon/ArrowRight.js ***! 2617 | \**************************************/ 2618 | 2619 | /*!**************************************!*\ 2620 | !*** ./src/shape/icon/Disconnect.js ***! 2621 | \**************************************/ 2622 | 2623 | /*!**************************************!*\ 2624 | !*** ./src/shape/icon/DockBottom.js ***! 2625 | \**************************************/ 2626 | 2627 | /*!**************************************!*\ 2628 | !*** ./src/shape/icon/Landscape1.js ***! 2629 | \**************************************/ 2630 | 2631 | /*!**************************************!*\ 2632 | !*** ./src/shape/icon/Landscape2.js ***! 2633 | \**************************************/ 2634 | 2635 | /*!**************************************!*\ 2636 | !*** ./src/shape/icon/SlideShare.js ***! 2637 | \**************************************/ 2638 | 2639 | /*!**************************************!*\ 2640 | !*** ./src/shape/icon/WheelChair.js ***! 2641 | \**************************************/ 2642 | 2643 | /*!**************************************!*\ 2644 | !*** ./src/ui/LabelInplaceEditor.js ***! 2645 | \**************************************/ 2646 | 2647 | /*!***************************************!*\ 2648 | !*** ./src/command/CommandConnect.js ***! 2649 | \***************************************/ 2650 | 2651 | /*!***************************************!*\ 2652 | !*** ./src/command/CommandUngroup.js ***! 2653 | \***************************************/ 2654 | 2655 | /*!***************************************!*\ 2656 | !*** ./src/layout/locator/Locator.js ***! 2657 | \***************************************/ 2658 | 2659 | /*!***************************************!*\ 2660 | !*** ./src/lib/jquery.contextmenu.js ***! 2661 | \***************************************/ 2662 | 2663 | /*!***************************************!*\ 2664 | !*** ./src/shape/icon/ArrowRight2.js ***! 2665 | \***************************************/ 2666 | 2667 | /*!***************************************!*\ 2668 | !*** ./src/shape/icon/CommandLine.js ***! 2669 | \***************************************/ 2670 | 2671 | /*!***************************************!*\ 2672 | !*** ./src/shape/icon/ScrewDriver.js ***! 2673 | \***************************************/ 2674 | 2675 | /*!***************************************!*\ 2676 | !*** ./src/shape/icon/SettingsAlt.js ***! 2677 | \***************************************/ 2678 | 2679 | /*!***************************************!*\ 2680 | !*** ./src/shape/icon/TwitterBird.js ***! 2681 | \***************************************/ 2682 | 2683 | /*!***************************************!*\ 2684 | !*** ./src/shape/node/VerticalBus.js ***! 2685 | \***************************************/ 2686 | 2687 | /*!***************************************!*\ 2688 | !*** ./src/shape/state/Connection.js ***! 2689 | \***************************************/ 2690 | 2691 | /*!****************************************!*\ 2692 | !*** ./node_modules/rgbcolor/index.js ***! 2693 | \****************************************/ 2694 | 2695 | /*!****************************************!*\ 2696 | !*** ./src/command/CommandMoveLine.js ***! 2697 | \****************************************/ 2698 | 2699 | /*!****************************************!*\ 2700 | !*** ./src/shape/diagram/Sparkline.js ***! 2701 | \****************************************/ 2702 | 2703 | /*!****************************************!*\ 2704 | !*** ./src/util/spline/CubicSpline.js ***! 2705 | \****************************************/ 2706 | 2707 | /*!*****************************************!*\ 2708 | !*** ./node_modules/stackblur/index.js ***! 2709 | \*****************************************/ 2710 | 2711 | /*!*****************************************!*\ 2712 | !*** ./src/command/CommandAddVertex.js ***! 2713 | \*****************************************/ 2714 | 2715 | /*!*****************************************!*\ 2716 | !*** ./src/command/CommandReconnect.js ***! 2717 | \*****************************************/ 2718 | 2719 | /*!*****************************************!*\ 2720 | !*** ./src/layout/mesh/MeshLayouter.js ***! 2721 | \*****************************************/ 2722 | 2723 | /*!*****************************************!*\ 2724 | !*** ./src/policy/canvas/ZoomPolicy.js ***! 2725 | \*****************************************/ 2726 | 2727 | /*!*****************************************!*\ 2728 | !*** ./src/shape/dimetric/Rectangle.js ***! 2729 | \*****************************************/ 2730 | 2731 | /*!*****************************************!*\ 2732 | !*** ./src/shape/flowchart/Document.js ***! 2733 | \*****************************************/ 2734 | 2735 | /*!*****************************************!*\ 2736 | !*** ./src/shape/layout/StackLayout.js ***! 2737 | \*****************************************/ 2738 | 2739 | /*!*****************************************!*\ 2740 | !*** ./src/shape/layout/TableLayout.js ***! 2741 | \*****************************************/ 2742 | 2743 | /*!*****************************************!*\ 2744 | !*** ./src/shape/node/HorizontalBus.js ***! 2745 | \*****************************************/ 2746 | 2747 | /*!*****************************************!*\ 2748 | !*** ./src/util/spline/BezierSpline.js ***! 2749 | \*****************************************/ 2750 | 2751 | /*!******************************************!*\ 2752 | !*** ./src/command/CommandCollection.js ***! 2753 | \******************************************/ 2754 | 2755 | /*!******************************************!*\ 2756 | !*** ./src/command/CommandMoveVertex.js ***! 2757 | \******************************************/ 2758 | 2759 | /*!******************************************!*\ 2760 | !*** ./src/command/CommandStackEvent.js ***! 2761 | \******************************************/ 2762 | 2763 | /*!******************************************!*\ 2764 | !*** ./src/layout/locator/TopLocator.js ***! 2765 | \******************************************/ 2766 | 2767 | /*!******************************************!*\ 2768 | !*** ./src/shape/composite/Composite.js ***! 2769 | \******************************************/ 2770 | 2771 | /*!******************************************!*\ 2772 | !*** ./src/shape/composite/Jailhouse.js ***! 2773 | \******************************************/ 2774 | 2775 | /*!*******************************************!*\ 2776 | !*** ./node_modules/xmldom/dom-parser.js ***! 2777 | \*******************************************/ 2778 | 2779 | /*!*******************************************!*\ 2780 | !*** ./src/command/CommandBoundingBox.js ***! 2781 | \*******************************************/ 2782 | 2783 | /*!*******************************************!*\ 2784 | !*** ./src/command/CommandDeleteGroup.js ***! 2785 | \*******************************************/ 2786 | 2787 | /*!*******************************************!*\ 2788 | !*** ./src/layout/locator/LeftLocator.js ***! 2789 | \*******************************************/ 2790 | 2791 | /*!*******************************************!*\ 2792 | !*** ./src/layout/locator/PortLocator.js ***! 2793 | \*******************************************/ 2794 | 2795 | /*!*******************************************!*\ 2796 | !*** ./src/policy/canvas/CanvasPolicy.js ***! 2797 | \*******************************************/ 2798 | 2799 | /*!********************************************!*\ 2800 | !*** ./node_modules/shifty/dist/shifty.js ***! 2801 | \********************************************/ 2802 | 2803 | /*!********************************************!*\ 2804 | !*** ./src/command/CommandAssignFigure.js ***! 2805 | \********************************************/ 2806 | 2807 | /*!********************************************!*\ 2808 | !*** ./src/command/CommandMoveVertices.js ***! 2809 | \********************************************/ 2810 | 2811 | /*!********************************************!*\ 2812 | !*** ./src/command/CommandRemoveVertex.js ***! 2813 | \********************************************/ 2814 | 2815 | /*!********************************************!*\ 2816 | !*** ./src/layout/locator/RightLocator.js ***! 2817 | \********************************************/ 2818 | 2819 | /*!********************************************!*\ 2820 | !*** ./src/layout/mesh/ExplodeLayouter.js ***! 2821 | \********************************************/ 2822 | 2823 | /*!********************************************!*\ 2824 | !*** ./src/shape/analog/ResistorBridge.js ***! 2825 | \********************************************/ 2826 | 2827 | /*!********************************************!*\ 2828 | !*** ./src/shape/layout/FlexGridLayout.js ***! 2829 | \********************************************/ 2830 | 2831 | /*!********************************************!*\ 2832 | !*** ./src/shape/layout/VerticalLayout.js ***! 2833 | \********************************************/ 2834 | 2835 | /*!*********************************************!*\ 2836 | !*** ./node_modules/canvg-browser/index.js ***! 2837 | \*********************************************/ 2838 | 2839 | /*!*********************************************!*\ 2840 | !*** ./src/layout/locator/BottomLocator.js ***! 2841 | \*********************************************/ 2842 | 2843 | /*!*********************************************!*\ 2844 | !*** ./src/layout/locator/CenterLocator.js ***! 2845 | \*********************************************/ 2846 | 2847 | /*!*********************************************!*\ 2848 | !*** ./src/policy/canvas/KeyboardPolicy.js ***! 2849 | \*********************************************/ 2850 | 2851 | /*!*********************************************!*\ 2852 | !*** ./src/shape/basic/LineResizeHandle.js ***! 2853 | \*********************************************/ 2854 | 2855 | /*!*********************************************!*\ 2856 | !*** ./src/util/spline/CatmullRomSpline.js ***! 2857 | \*********************************************/ 2858 | 2859 | /*!**********************************************!*\ 2860 | !*** ./src/command/CommandMoveConnection.js ***! 2861 | \**********************************************/ 2862 | 2863 | /*!**********************************************!*\ 2864 | !*** ./src/policy/canvas/SelectionPolicy.js ***! 2865 | \**********************************************/ 2866 | 2867 | /*!**********************************************!*\ 2868 | !*** ./src/policy/canvas/WheelZoomPolicy.js ***! 2869 | \**********************************************/ 2870 | 2871 | /*!**********************************************!*\ 2872 | !*** ./src/policy/figure/SelectionPolicy.js ***! 2873 | \**********************************************/ 2874 | 2875 | /*!**********************************************!*\ 2876 | !*** ./src/shape/analog/ResistorVertical.js ***! 2877 | \**********************************************/ 2878 | 2879 | /*!**********************************************!*\ 2880 | !*** ./src/shape/composite/WeakComposite.js ***! 2881 | \**********************************************/ 2882 | 2883 | /*!**********************************************!*\ 2884 | !*** ./src/shape/layout/HorizontalLayout.js ***! 2885 | \**********************************************/ 2886 | 2887 | /*!***********************************************!*\ 2888 | !*** ./node_modules/style-loader/lib/urls.js ***! 2889 | \***********************************************/ 2890 | 2891 | /*!***********************************************!*\ 2892 | !*** ./src/command/CommandReplaceVertices.js ***! 2893 | \***********************************************/ 2894 | 2895 | /*!***********************************************!*\ 2896 | !*** ./src/layout/anchor/ConnectionAnchor.js ***! 2897 | \***********************************************/ 2898 | 2899 | /*!***********************************************!*\ 2900 | !*** ./src/layout/connection/DirectRouter.js ***! 2901 | \***********************************************/ 2902 | 2903 | /*!***********************************************!*\ 2904 | !*** ./src/layout/connection/VertexRouter.js ***! 2905 | \***********************************************/ 2906 | 2907 | /*!***********************************************!*\ 2908 | !*** ./src/layout/mesh/ProposedMeshChange.js ***! 2909 | \***********************************************/ 2910 | 2911 | /*!***********************************************!*\ 2912 | !*** ./src/policy/canvas/DecorationPolicy.js ***! 2913 | \***********************************************/ 2914 | 2915 | /*!***********************************************!*\ 2916 | !*** ./src/policy/canvas/SnapToEditPolicy.js ***! 2917 | \***********************************************/ 2918 | 2919 | /*!***********************************************!*\ 2920 | !*** ./src/policy/figure/FigureEditPolicy.js ***! 2921 | \***********************************************/ 2922 | 2923 | /*!***********************************************!*\ 2924 | !*** ./src/policy/figure/RegionEditPolicy.js ***! 2925 | \***********************************************/ 2926 | 2927 | /*!***********************************************!*\ 2928 | !*** ./src/policy/port/PortFeedbackPolicy.js ***! 2929 | \***********************************************/ 2930 | 2931 | /*!***********************************************!*\ 2932 | !*** ./src/shape/basic/VertexResizeHandle.js ***! 2933 | \***********************************************/ 2934 | 2935 | /*!************************************************!*\ 2936 | !*** ./src/decoration/connection/Decorator.js ***! 2937 | \************************************************/ 2938 | 2939 | /*!************************************************!*\ 2940 | !*** ./src/layout/locator/DraggableLocator.js ***! 2941 | \************************************************/ 2942 | 2943 | /*!************************************************!*\ 2944 | !*** ./src/layout/locator/InputPortLocator.js ***! 2945 | \************************************************/ 2946 | 2947 | /*!************************************************!*\ 2948 | !*** ./src/layout/locator/XYAbsPortLocator.js ***! 2949 | \************************************************/ 2950 | 2951 | /*!************************************************!*\ 2952 | !*** ./src/layout/locator/XYRelPortLocator.js ***! 2953 | \************************************************/ 2954 | 2955 | /*!************************************************!*\ 2956 | !*** ./src/policy/canvas/ShowDotEditPolicy.js ***! 2957 | \************************************************/ 2958 | 2959 | /*!************************************************!*\ 2960 | !*** ./src/shape/basic/LineEndResizeHandle.js ***! 2961 | \************************************************/ 2962 | 2963 | /*!************************************************!*\ 2964 | !*** ./src/shape/composite/StrongComposite.js ***! 2965 | \************************************************/ 2966 | 2967 | /*!************************************************!*\ 2968 | !*** ./src/shape/icon/HammerAndScrewDriver.js ***! 2969 | \************************************************/ 2970 | 2971 | /*!*************************************************!*\ 2972 | !*** ./node_modules/css-loader/lib/css-base.js ***! 2973 | \*************************************************/ 2974 | 2975 | /*!*************************************************!*\ 2976 | !*** ./node_modules/script-loader/addScript.js ***! 2977 | \*************************************************/ 2978 | 2979 | /*!*************************************************!*\ 2980 | !*** ./src/layout/locator/ConnectionLocator.js ***! 2981 | \*************************************************/ 2982 | 2983 | /*!*************************************************!*\ 2984 | !*** ./src/layout/locator/OutputPortLocator.js ***! 2985 | \*************************************************/ 2986 | 2987 | /*!*************************************************!*\ 2988 | !*** ./src/policy/canvas/ShowGridEditPolicy.js ***! 2989 | \*************************************************/ 2990 | 2991 | /*!*************************************************!*\ 2992 | !*** ./src/policy/figure/DragDropEditPolicy.js ***! 2993 | \*************************************************/ 2994 | 2995 | /*!*************************************************!*\ 2996 | !*** ./src/policy/figure/VerticalEditPolicy.js ***! 2997 | \*************************************************/ 2998 | 2999 | /*!**************************************************!*\ 3000 | !*** ./src/command/CommandStackEventListener.js ***! 3001 | \**************************************************/ 3002 | 3003 | /*!**************************************************!*\ 3004 | !*** ./src/layout/anchor/FanConnectionAnchor.js ***! 3005 | \**************************************************/ 3006 | 3007 | /*!**************************************************!*\ 3008 | !*** ./src/shape/arrow/CalligrapherArrowLeft.js ***! 3009 | \**************************************************/ 3010 | 3011 | /*!**************************************************!*\ 3012 | !*** ./src/shape/basic/LineStartResizeHandle.js ***! 3013 | \**************************************************/ 3014 | 3015 | /*!***************************************************!*\ 3016 | !*** ./src/decoration/connection/BarDecorator.js ***! 3017 | \***************************************************/ 3018 | 3019 | /*!***************************************************!*\ 3020 | !*** ./src/layout/connection/ConnectionRouter.js ***! 3021 | \***************************************************/ 3022 | 3023 | /*!***************************************************!*\ 3024 | !*** ./src/layout/connection/RubberbandRouter.js ***! 3025 | \***************************************************/ 3026 | 3027 | /*!***************************************************!*\ 3028 | !*** ./src/policy/canvas/SnapToGridEditPolicy.js ***! 3029 | \***************************************************/ 3030 | 3031 | /*!***************************************************!*\ 3032 | !*** ./src/policy/figure/HorizontalEditPolicy.js ***! 3033 | \***************************************************/ 3034 | 3035 | /*!***************************************************!*\ 3036 | !*** ./src/shape/analog/VoltageSupplyVertical.js ***! 3037 | \***************************************************/ 3038 | 3039 | /*!****************************************************!*\ 3040 | !*** ./node_modules/style-loader/lib/addStyles.js ***! 3041 | \****************************************************/ 3042 | 3043 | /*!****************************************************!*\ 3044 | !*** ./src/policy/canvas/DefaultKeyboardPolicy.js ***! 3045 | \****************************************************/ 3046 | 3047 | /*!****************************************************!*\ 3048 | !*** ./src/policy/canvas/DropInterceptorPolicy.js ***! 3049 | \****************************************************/ 3050 | 3051 | /*!****************************************************!*\ 3052 | !*** ./src/policy/canvas/SingleSelectionPolicy.js ***! 3053 | \****************************************************/ 3054 | 3055 | /*!****************************************************!*\ 3056 | !*** ./src/shape/basic/GhostVertexResizeHandle.js ***! 3057 | \****************************************************/ 3058 | 3059 | /*!*****************************************************!*\ 3060 | !*** ./src/decoration/connection/ArrowDecorator.js ***! 3061 | \*****************************************************/ 3062 | 3063 | /*!*****************************************************!*\ 3064 | !*** ./src/layout/locator/SmartDraggableLocator.js ***! 3065 | \*****************************************************/ 3066 | 3067 | /*!*****************************************************!*\ 3068 | !*** ./src/policy/canvas/CoronaDecorationPolicy.js ***! 3069 | \*****************************************************/ 3070 | 3071 | /*!*****************************************************!*\ 3072 | !*** ./src/policy/canvas/ExtendedKeyboardPolicy.js ***! 3073 | \*****************************************************/ 3074 | 3075 | /*!*****************************************************!*\ 3076 | !*** ./src/policy/canvas/PanningSelectionPolicy.js ***! 3077 | \*****************************************************/ 3078 | 3079 | /*!*****************************************************!*\ 3080 | !*** ./src/policy/canvas/SnapToCenterEditPolicy.js ***! 3081 | \*****************************************************/ 3082 | 3083 | /*!*****************************************************!*\ 3084 | !*** ./src/shape/analog/VoltageSupplyHorizontal.js ***! 3085 | \*****************************************************/ 3086 | 3087 | /*!******************************************************!*\ 3088 | !*** ./src/decoration/connection/CircleDecorator.js ***! 3089 | \******************************************************/ 3090 | 3091 | /*!******************************************************!*\ 3092 | !*** ./src/layout/anchor/ChopboxConnectionAnchor.js ***! 3093 | \******************************************************/ 3094 | 3095 | /*!******************************************************!*\ 3096 | !*** ./src/layout/connection/FanConnectionRouter.js ***! 3097 | \******************************************************/ 3098 | 3099 | /*!******************************************************!*\ 3100 | !*** ./src/policy/canvas/FadeoutDecorationPolicy.js ***! 3101 | \******************************************************/ 3102 | 3103 | /*!******************************************************!*\ 3104 | !*** ./src/policy/canvas/ReadOnlySelectionPolicy.js ***! 3105 | \******************************************************/ 3106 | 3107 | /*!******************************************************!*\ 3108 | !*** ./src/policy/figure/SelectionFeedbackPolicy.js ***! 3109 | \******************************************************/ 3110 | 3111 | /*!******************************************************!*\ 3112 | !*** ./src/shape/arrow/CalligrapherArrowDownLeft.js ***! 3113 | \******************************************************/ 3114 | 3115 | /*!*******************************************************!*\ 3116 | !*** ./src/decoration/connection/DiamondDecorator.js ***! 3117 | \*******************************************************/ 3118 | 3119 | /*!*******************************************************!*\ 3120 | !*** ./src/layout/connection/MazeConnectionRouter.js ***! 3121 | \*******************************************************/ 3122 | 3123 | /*!*******************************************************!*\ 3124 | !*** ./src/layout/locator/ParallelMidpointLocator.js ***! 3125 | \*******************************************************/ 3126 | 3127 | /*!*******************************************************!*\ 3128 | !*** ./src/layout/locator/PolylineMidpointLocator.js ***! 3129 | \*******************************************************/ 3130 | 3131 | /*!*******************************************************!*\ 3132 | !*** ./src/policy/canvas/GhostMoveSelectionPolicy.js ***! 3133 | \*******************************************************/ 3134 | 3135 | /*!*******************************************************!*\ 3136 | !*** ./src/policy/canvas/ShowChessboardEditPolicy.js ***! 3137 | \*******************************************************/ 3138 | 3139 | /*!*******************************************************!*\ 3140 | !*** ./src/policy/canvas/SnapToGeometryEditPolicy.js ***! 3141 | \*******************************************************/ 3142 | 3143 | /*!*******************************************************!*\ 3144 | !*** ./src/policy/canvas/SnapToVerticesEditPolicy.js ***! 3145 | \*******************************************************/ 3146 | 3147 | /*!*******************************************************!*\ 3148 | !*** ./src/policy/port/ElasticStrapFeedbackPolicy.js ***! 3149 | \*******************************************************/ 3150 | 3151 | /*!********************************************************!*\ 3152 | !*** ./src/layout/locator/ManhattanMidpointLocator.js ***! 3153 | \********************************************************/ 3154 | 3155 | /*!********************************************************!*\ 3156 | !*** ./src/policy/canvas/SnapToInBetweenEditPolicy.js ***! 3157 | \********************************************************/ 3158 | 3159 | /*!********************************************************!*\ 3160 | !*** ./src/policy/line/LineSelectionFeedbackPolicy.js ***! 3161 | \********************************************************/ 3162 | 3163 | /*!*********************************************************!*\ 3164 | !*** ./node_modules/raw-loader!./src/lib/Class.exec.js ***! 3165 | \*********************************************************/ 3166 | 3167 | /*!*********************************************************!*\ 3168 | !*** ./src/layout/anchor/CenterEdgeConnectionAnchor.js ***! 3169 | \*********************************************************/ 3170 | 3171 | /*!*********************************************************!*\ 3172 | !*** ./src/layout/connection/SketchConnectionRouter.js ***! 3173 | \*********************************************************/ 3174 | 3175 | /*!*********************************************************!*\ 3176 | !*** ./src/layout/connection/SplineConnectionRouter.js ***! 3177 | \*********************************************************/ 3178 | 3179 | /*!*********************************************************!*\ 3180 | !*** ./src/policy/canvas/BoundingboxSelectionPolicy.js ***! 3181 | \*********************************************************/ 3182 | 3183 | /*!*********************************************************!*\ 3184 | !*** ./src/policy/canvas/ShowDimetricGridEditPolicy.js ***! 3185 | \*********************************************************/ 3186 | 3187 | /*!*********************************************************!*\ 3188 | !*** ./src/policy/connection/ConnectionCreatePolicy.js ***! 3189 | \*********************************************************/ 3190 | 3191 | /*!*********************************************************!*\ 3192 | !*** ./src/policy/figure/AntSelectionFeedbackPolicy.js ***! 3193 | \*********************************************************/ 3194 | 3195 | /*!*********************************************************!*\ 3196 | !*** ./src/policy/figure/BusSelectionFeedbackPolicy.js ***! 3197 | \*********************************************************/ 3198 | 3199 | /*!*********************************************************!*\ 3200 | !*** ./src/policy/port/IntrusivePortsFeedbackPolicy.js ***! 3201 | \*********************************************************/ 3202 | 3203 | /*!**********************************************************!*\ 3204 | !*** ./src/layout/anchor/ShortesPathConnectionAnchor.js ***! 3205 | \**********************************************************/ 3206 | 3207 | /*!**********************************************************!*\ 3208 | !*** ./src/layout/connection/CircuitConnectionRouter.js ***! 3209 | \**********************************************************/ 3210 | 3211 | /*!**********************************************************!*\ 3212 | !*** ./src/policy/figure/GlowSelectionFeedbackPolicy.js ***! 3213 | \**********************************************************/ 3214 | 3215 | /*!**********************************************************!*\ 3216 | !*** ./src/policy/figure/HBusSelectionFeedbackPolicy.js ***! 3217 | \**********************************************************/ 3218 | 3219 | /*!**********************************************************!*\ 3220 | !*** ./src/policy/figure/SlimSelectionFeedbackPolicy.js ***! 3221 | \**********************************************************/ 3222 | 3223 | /*!**********************************************************!*\ 3224 | !*** ./src/policy/figure/VBusSelectionFeedbackPolicy.js ***! 3225 | \**********************************************************/ 3226 | 3227 | /*!**********************************************************!*\ 3228 | !*** ./src/policy/line/VertexSelectionFeedbackPolicy.js ***! 3229 | \**********************************************************/ 3230 | 3231 | /*!***********************************************************!*\ 3232 | !*** ./node_modules/css-loader!./src/css/contextmenu.css ***! 3233 | \***********************************************************/ 3234 | 3235 | /*!***********************************************************!*\ 3236 | !*** ./node_modules/raw-loader!./src/lib/raphael.exec.js ***! 3237 | \***********************************************************/ 3238 | 3239 | /*!***********************************************************!*\ 3240 | !*** ./src/policy/canvas/SnapToDimetricGridEditPolicy.js ***! 3241 | \***********************************************************/ 3242 | 3243 | /*!***********************************************************!*\ 3244 | !*** ./src/policy/figure/WidthSelectionFeedbackPolicy.js ***! 3245 | \***********************************************************/ 3246 | 3247 | /*!************************************************************!*\ 3248 | !*** ./src/layout/connection/ManhattanConnectionRouter.js ***! 3249 | \************************************************************/ 3250 | 3251 | /*!************************************************************!*\ 3252 | !*** ./src/policy/figure/ResizeSelectionFeedbackPolicy.js ***! 3253 | \************************************************************/ 3254 | 3255 | /*!************************************************************!*\ 3256 | !*** ./src/policy/figure/VertexSelectionFeedbackPolicy.js ***! 3257 | \************************************************************/ 3258 | 3259 | /*!*************************************************************!*\ 3260 | !*** ./src/policy/connection/DragConnectionCreatePolicy.js ***! 3261 | \*************************************************************/ 3262 | 3263 | /*!**************************************************************!*\ 3264 | !*** ./src/policy/connection/ClickConnectionCreatePolicy.js ***! 3265 | \**************************************************************/ 3266 | 3267 | /*!**************************************************************!*\ 3268 | !*** ./src/policy/line/OrthogonalSelectionFeedbackPolicy.js ***! 3269 | \**************************************************************/ 3270 | 3271 | /*!***************************************************************!*\ 3272 | !*** ./node_modules/raw-loader!./src/lib/pathfinding.exec.js ***! 3273 | \***************************************************************/ 3274 | 3275 | /*!***************************************************************!*\ 3276 | !*** ./src/policy/figure/RectangleSelectionFeedbackPolicy.js ***! 3277 | \***************************************************************/ 3278 | 3279 | /*!*****************************************************************!*\ 3280 | !*** ./src/policy/connection/ComposedConnectionCreatePolicy.js ***! 3281 | \*****************************************************************/ 3282 | 3283 | /*!******************************************************************!*\ 3284 | !*** ./src/policy/figure/BigRectangleSelectionFeedbackPolicy.js ***! 3285 | \******************************************************************/ 3286 | 3287 | /*!*******************************************************************!*\ 3288 | !*** ./src/layout/connection/ManhattanBridgedConnectionRouter.js ***! 3289 | \*******************************************************************/ 3290 | 3291 | /*!*******************************************************************!*\ 3292 | !*** ./src/policy/connection/OrthogonalConnectionCreatePolicy.js ***! 3293 | \*******************************************************************/ 3294 | 3295 | /*!********************************************************************!*\ 3296 | !*** ./src/layout/connection/MuteableManhattanConnectionRouter.js ***! 3297 | \********************************************************************/ 3298 | 3299 | /*!********************************************************************!*\ 3300 | !*** ./src/policy/figure/RoundRectangleSelectionFeedbackPolicy.js ***! 3301 | \********************************************************************/ 3302 | 3303 | /*!***********************************************************************!*\ 3304 | !*** ./src/layout/connection/InteractiveManhattanConnectionRouter.js ***! 3305 | \***********************************************************************/ 3306 | 3307 | /** 3308 | * @license 3309 | * Copyright 2017 Google LLC 3310 | * SPDX-License-Identifier: BSD-3-Clause 3311 | */ 3312 | 3313 | /** 3314 | * @license 3315 | * Copyright 2018 Google LLC 3316 | * SPDX-License-Identifier: BSD-3-Clause 3317 | */ 3318 | 3319 | /** 3320 | * @license 3321 | * Copyright 2019 Google LLC 3322 | * SPDX-License-Identifier: BSD-3-Clause 3323 | */ 3324 | --------------------------------------------------------------------------------