{"id":22752833,"url":"https://github.com/eikospartners/windowmanagerjs","last_synced_at":"2025-04-14T15:14:29.224Z","repository":{"id":57151665,"uuid":"62739021","full_name":"EikosPartners/windowmanagerjs","owner":"EikosPartners","description":"A framework to manage multiple dockable HTML windows.","archived":false,"fork":false,"pushed_at":"2018-02-12T17:09:26.000Z","size":4763,"stargazers_count":26,"open_issues_count":10,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-14T15:14:23.097Z","etag":null,"topics":["browser","desktop","electron","manager","openfin","window","window-manager","windowmanager"],"latest_commit_sha":null,"homepage":"https://eikospartners.github.io/windowmanagerjs/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EikosPartners.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-06T17:07:03.000Z","updated_at":"2023-08-23T05:39:41.000Z","dependencies_parsed_at":"2022-09-03T16:22:18.975Z","dependency_job_id":null,"html_url":"https://github.com/EikosPartners/windowmanagerjs","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EikosPartners%2Fwindowmanagerjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EikosPartners%2Fwindowmanagerjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EikosPartners%2Fwindowmanagerjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EikosPartners%2Fwindowmanagerjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EikosPartners","download_url":"https://codeload.github.com/EikosPartners/windowmanagerjs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248904637,"owners_count":21180835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","desktop","electron","manager","openfin","window","window-manager","windowmanager"],"created_at":"2024-12-11T06:07:50.423Z","updated_at":"2025-04-14T15:14:29.196Z","avatar_url":"https://github.com/EikosPartners.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# windowmanager.js\n[![NPM Status](https://img.shields.io/npm/v/windowmanager.svg?style=flat)](https://www.npmjs.com/package/windowmanager)\n[![Build Status](https://travis-ci.org/EikosPartners/windowmanagerjs.svg?branch=master)](https://travis-ci.org/EikosPartners/windowmanagerjs)\n[![devDependencies Status](https://david-dm.org/EikosPartners/windowmanagerjs/dev-status.svg)](https://david-dm.org/EikosPartners/windowmanagerjs?type=dev)\u003cbr\u003e\nA framework to manage multiple dockable HTML windows.\u003cbr\u003e\nThis extension is designed to support multiple different different encapsulation runtimes.\u003cbr\u003e\nSee [API Documentation](https://eikospartners.github.io/windowmanagerjs/) for more information.\n\nRuntimes supported:\n* Modern Web Browsers (Chrome, Firefox, IE, Edge, Safari)\n* [OpenFin](https://openfin.co/)\n* [Electron](http://electron.atom.io/)\n\nFuture runtimes:\n* [NW.js](http://nwjs.io/)\n\n## Examples\nYou can see a live demo at [Eikos Partners Blotter Demonstration](http://blotter.eikospartners.com/install).\u003cbr\u003e\nAn open source example can be found at: https://github.com/aesalazar/windowmanagerjsdemo\u003cbr\u003e\nA basic example to get started:\n```javascript\n// Create a new window:\nlet childWindow = new windowmanager.Window({\n    url: \"child.html\", // Loads \"child.html\" based on the current window's url.\n    width: 500,\n    height: 500\n});\n\n// Execute code when window is ready for commands:\nchildWindow.onReady(() =\u003e {\n    childWindow.focus(); // Set focus to childWindow.\n});\n\n// Use the layout manager.\nlet state = {\n    width: 400, \n    height: 400,\n    url: 'child.html',\n    title: 'Child Window',\n    frame: false \n};\n\nlet configs = [state, state, state];\n\nlet layout = new windowmanager.Layout('tabbed', 'layout-div', configs);\n```\n## Installation - NPM package / express server   \n```bash\nnpm install --save windowmanager\n```\nLoading the package via `require` in node only gives you access to the script paths to make it easier to serve up the script:\n```javascript\nconst windowmanager = require('windowmanager');\n...\n// Start windowmanager in this node instance:\nwindowmanager.start({\n    // Optionally override the windowmanager package.json options for Electron's runtime:\n    endpoint: \"http://localhost:5000/\",      // The starting window's page location\n    config: \"http://localhost:5000/app.json\" // Where the OpenFin/Electron app.json startup file is\n});\n...\n// Set up to access windowmanager debug, minified and map scripts via root url:\n// Will give access to windowmanager through: example.com/windowmanager.js\napp.use('/', express.static(windowmanager.distPath, { index: false }));\n\n// Set up access to windowmanager.js via get:\napp.get('/js/windowmanager.js', function (req, res) {\n    res.sendFile(windowmanager.debug.scriptPath);\n});\napp.get('/js/windowmanager.min.js', function (req, res) {\n    res.sendFile(windowmanager.min.scriptPath);\n});\n```\n## Installation - dist script \nManually download either one of the following scripts from the dist folder (which contains the latest nightly version), and add it to your application.\u003cbr\u003e\n\u003cb\u003eNOTE:\u003c/b\u003e Bundling or compiling with babelify will break the script.\n  * [windowmanager](https://raw.githubusercontent.com/EikosPartners/windowmanagerjs/master/dist/windowmanager.js)\n  * [windowmanager.min](https://raw.githubusercontent.com/EikosPartners/windowmanagerjs/master/dist/windowmanager.min.js)\u003cbr\u003e\n\n#### Example installation with dist script and webpack \n* Download dist script\n* Put in its own folder in root directory \n* in webpack config, under your `module:` `rules:` `test: /\\.js$/,` make sure to `exclude:/folderName/`\n* npm install `copy-webpack-plugin` and \n* in webpack config, import `const CopyWebpackPlugin = require('copy-webpack-plugin')`\n* under plugins include\n``` \n    new CopyWebpackPlugin([\n      {from:'folderName',to:'folderName'} \n    ]),    \n```\n* in your entry point html page, include `\u003cscript src=\"./folderName/windowmanager.js\u003e\u003c/script\u003e`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feikospartners%2Fwindowmanagerjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feikospartners%2Fwindowmanagerjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feikospartners%2Fwindowmanagerjs/lists"}