diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b7c06f6c3..06374c0df 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,52 +1,49 @@ --- -name: 🕷 Bug report +name: "\U0001F577 Bug report" about: Report a bug. +title: '' +labels: ":spider: type-bug" +assignees: Danielku15 --- -# Your environment - -* Version used: (master branch) -* Platform used: JavaScript or C# -* Rendering engine used: SVG (default), HTML5 or GDI -* Browser Name and Version: -* Operating System and version (desktop or mobile): -* Link to your project: - - -# Expected Results +### Expected Results -# Observed Results +### Observed Results -# Steps to Reproduce (for bugs) +### Steps to Reproduce +Link to jsFiddle, CodePen, Project etc.: + 1. 2. 3. -# Possible Solution - +### Further details + + +### Your environment + +**Version** +- [ ] 1.0 +- [ ] 1.1 +- [ ] 1.2-alpha.## + +**Flavor** +- [ ] JavaScript +- [ ] .net + +**System** + \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..7b068ea38 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: Feature Request + url: https://github.com/CoderLine/alphaTab/discussions?discussions_q=category%3AIdeas + about: Propose your desired feature with a new discussion. + - name: General Question + url: https://github.com/CoderLine/alphaTab/discussions?discussions_q=category%3AQ%26A + about: Ask any question about alphaTab. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 7b2be0b48..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -name: 💡 Feature request -about: Suggest a new feature - ---- - - - - -# Description - - -# Possible Solutions - - -# Current Workarounds - diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 23659ba06..000000000 --- a/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -name: ❓ General Question -about: Ask any question that is not covered in the documentation. - ---- - - - -# Question - - -# Your environment (if applicable) - -* Version used: (master branch) -* Platform used: JavaScript or C# -* Rendering engine used: SVG (default), HTML5 or GDI -* Browser Name and Version: -* Operating System and version (desktop or mobile): -* Link to your project: diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..935c8318d --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,16 @@ +### Issues + +Fixes # + +### Proposed changes + + +### Checklist +- [ ] I consent that this change becomes part of alphaTab under it's current or any future open source license +- [ ] Changes are implemented +- [ ] Existing builds tests pass +- [ ] New tests were added + +## Further details +- [ ] This is a breaking change +- [ ] This change will require update of the documentation/website diff --git a/.gitignore b/.gitignore index e56aa82bd..87b275052 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,6 @@ bin/ .vs/ *.user *.tgz -test-results/ \ No newline at end of file +test-results/ +debug.log +src/generated/VersionInfo.ts \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index 652070ee1..2ab4b6d46 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,6 +4,7 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { "name": "Launch C# Compiler", "type": "node", @@ -25,6 +26,45 @@ "env": { "TS_NODE_PROJECT": "tsconfig.build-csharp.json" } + }, + + { + "name": "Launch TypeScript Generator", + "type": "node", + "request": "launch", + "args": [ + "src.compiler/typescript/AlphaTabGenerator.ts", + "--project", + "tsconfig.build-csharp.json" + ], + "runtimeArgs": [ + "--nolazy", + "-r", + "ts-node/register" + ], + "cwd": "${workspaceRoot}", + "protocol": "inspector", + "smartStep": false, + "internalConsoleOptions": "openOnSessionStart", + "env": { + "TS_NODE_PROJECT": "tsconfig.build-csharp.json" + } + }, + + { + "name": "Launch JavaScript Compiler", + "type": "node", + "request": "launch", + "runtimeExecutable": "npm", + "windows": { + "runtimeExecutable": "npm.cmd" + }, + "runtimeArgs": [ + "run-script", + "build", + "--inspect-brk=5858" + ], + "port": 5858 } ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index e302cd919..78af7f1e9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,7 @@ { "files.exclude": { "dist/lib.csharp/**": true, - "src.csharp/**": true + "src.csharp/**": true, + "node_modules/**": true } } \ No newline at end of file diff --git a/README.md b/README.md index e3375c842..b956d5b3f 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,13 @@ alphaTab is a cross platform music notation and guitar tablature rendering libra ![alphaTab](img/banner.png?raw=true "alphaTab") +# Getting Started + +To get started follow our guides and tutorials at: + +* https://www.alphatab.net/docs/introduction +* https://www.alphatab.net/docs/tutorials + ## Build Status > Until the official 1.0 release we recommend to use pre release versions based on the `develop` branch. @@ -20,9 +27,7 @@ alphaTab is a cross platform music notation and guitar tablature rendering libra # Downloads The latest binaries based are available for download at either npmjs.org or NuGet.org. -Use the links below to grab the binaries from the latest builds. Please do not use the GitHub releases yet, they are not maintained. We recommend using package managers to pull the files to your projects. - -> Until the official 1.0 release we recommend to use `develop` branch which are available as "pre-release" versions on the package registries. +Use the links below to grab the binaries from the latest builds. We recommend using package managers to pull the files to your projects.   |   --- | --- | diff --git a/code-of-conduct.md b/code-of-conduct.md index 4a9568ba8..87b0bc6f4 100644 --- a/code-of-conduct.md +++ b/code-of-conduct.md @@ -55,7 +55,7 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at alexjovermorales@gmail.com. All +reported by contacting the project team via GitHub options. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. diff --git a/karma.conf.js b/karma.conf.js index f7b7d5e0e..dc0cd27c7 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -15,6 +15,7 @@ const storage = multer.diskStorage({ const upload = multer({ storage: storage }); const cors = require('cors'); const fs = require('fs'); +const path = require('path'); module.exports = function (config) { config.set({ @@ -54,6 +55,38 @@ module.exports = function (config) { port: 8090, appVisitor: function (app, log) { app.use(cors()); + app.get( + '/list-files', + function (req, res) { + log.info(`loading files from ${req.query.dir}`); + + const directoryPath = path.join(__dirname, req.query.dir); + fs.readdir(directoryPath, (err, files) => { + //handling error + if (err) { + res.status(400); + res.send(JSON.stringify(`Error: ${err.message}`)); + } else { + res.send(JSON.stringify(files.filter(f => + fs.statSync(path.join(directoryPath, f)).isFile() + ))); + } + }); + } + ); + app.post( + '/save-file', + upload.fields([ + { + name: 'file', + maxCount: 1 + } + ]), + function (req, res) { + log.info(`save file ${req.file}`); + res.send(JSON.stringify('OK')); + } + ); app.post( '/save-visual-error', upload.fields([ @@ -75,6 +108,27 @@ module.exports = function (config) { res.send(JSON.stringify('OK')); } ); + app.post( + '/list-files', + upload.fields([ + { + name: 'expected', + maxCount: 1 + }, + { + name: 'actual', + maxCount: 1 + }, + { + name: 'diff', + maxCount: 1 + } + ]), + function (req, res) { + log.info(`save visual error ${req.file}`); + res.send(JSON.stringify('OK')); + } + ); } }, diff --git a/package-lock.json b/package-lock.json index ca166420e..8c393c362 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@coderline/alphatab", - "version": "1.1.0", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -57,9 +57,9 @@ } }, "@rollup/plugin-commonjs": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-16.0.0.tgz", - "integrity": "sha512-LuNyypCP3msCGVQJ7ki8PqYdpjfEkE/xtFa5DqlF+7IBD0JsfMZ87C58heSwIMint58sAUZbt3ITqOmdQv/dXw==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.0.0.tgz", + "integrity": "sha512-/omBIJG1nHQc+bgkYDuLpb/V08QyutP9amOrJRUSlYJZP+b/68gM//D8sxJe3Yry2QnYIr3QjR3x4AlxJEN3GA==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -72,12 +72,12 @@ }, "dependencies": { "resolve": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", - "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dev": true, "requires": { - "is-core-module": "^2.0.0", + "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } } @@ -135,9 +135,9 @@ } }, "@types/jasmine": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.1.tgz", - "integrity": "sha512-eeSCVhBsgwHNS1FmaMu4zrLxfykCTWJMLFZv7lmyrZQjw7foUUXoPu4GukSN9v7JvUw7X+/aDH3kCaymirBSTg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.2.tgz", + "integrity": "sha512-AzfesNFLvOs6Q1mHzIsVJXSeUnqVh4ZHG8ngygKJfbkcSLwzrBVm/LKa+mR8KrOfnWtUL47112gde1MC0IXqpQ==", "dev": true }, "@types/minimatch": { @@ -152,6 +152,12 @@ "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==", "dev": true }, + "@types/resize-observer-browser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.5.tgz", + "integrity": "sha512-8k/67Z95Goa6Lznuykxkfhq9YU3l1Qe6LNZmwde1u7802a3x8v44oq0j91DICclxatTr0rNnhXx7+VTIetSrSQ==", + "dev": true + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -787,6 +793,12 @@ "vary": "^1" } }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", @@ -1111,9 +1123,9 @@ "dev": true }, "estree-walker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz", - "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, "esutils": { @@ -1878,9 +1890,9 @@ "dev": true }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "ipaddr.js": { @@ -1931,9 +1943,9 @@ "dev": true }, "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -3074,9 +3086,9 @@ } }, "rollup": { - "version": "2.33.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.1.tgz", - "integrity": "sha512-uY4O/IoL9oNW8MMcbA5hcOaz6tZTMIh7qJHx/tzIJm+n1wLoY38BLn6fuy7DhR57oNFLMbDQtDeJoFURt5933w==", + "version": "2.35.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz", + "integrity": "sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==", "dev": true, "requires": { "fsevents": "~2.1.2" @@ -3109,43 +3121,13 @@ } }, "rollup-plugin-dts": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-1.4.13.tgz", - "integrity": "sha512-7mxoQ6PcmCkBE5ZhrjGDL4k42XLy8BkSqpiRi1MipwiGs+7lwi4mQkp2afX+OzzLjJp/TGM8llfe8uayIUhPEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-2.0.1.tgz", + "integrity": "sha512-y38NSXIY37YExCumbGBTL5dXg7pL7XD+Kbe98iEHWFN9yiKJf7t4kKBOkml5ylUDjQIXBnNClGDeRktc1T5dmA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "optional": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true, - "optional": true - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "optional": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - } + "@babel/code-frame": "^7.10.4", + "magic-string": "^0.25.7" } }, "rollup-plugin-license": { @@ -3908,9 +3890,9 @@ } }, "terser": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz", - "integrity": "sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", + "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -3995,12 +3977,13 @@ "dev": true }, "ts-node": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", - "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "dev": true, "requires": { "arg": "^4.1.0", + "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -4112,9 +4095,9 @@ "dev": true }, "typescript": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", - "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "ua-parser-js": { diff --git a/package.json b/package.json index d51535fdf..9ee92f93c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@coderline/alphatab", - "version": "1.1.0", + "version": "1.2.0", "description": "alphaTab is a music notation and guitar tablature rendering library", "keywords": [ "guitar", @@ -28,20 +28,22 @@ "scripts": { "clean": "rimraf dist", "lint": "tslint --project tsconfig.build.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", - "build": "ttsc --project tsconfig.build.json && rollup -c rollup.config.js", + "build": "npm run generate-typescript && tsc --project tsconfig.build.json && rollup -c rollup.config.js", "build-ci": "npm run clean && npm run build && npm pack", - "start": "node scripts/setup-playground.js && npm run build && concurrently --kill-others \"ttsc --project tsconfig.build.json --watch\" \"rollup -c rollup.config.js -w\"", - "test": "ttsc --project tsconfig.json && concurrently --kill-others \"ttsc --project tsconfig.json -w\" \"karma start karma.conf.js --browsers Chrome --no-single-run --reporters spec,kjhtml\"", - "test-ci": "ttsc --project tsconfig.json && karma start karma.conf.js --browsers ChromeHeadless --single-run --reporters spec", - "generate-csharp": "ts-node --project tsconfig.build-csharp.json src.compiler/csharp/CSharpTranspiler.ts --project tsconfig.build-csharp.json", + "start": "node scripts/setup-playground.js && npm run build && concurrently --kill-others \"tsc --project tsconfig.build.json --watch\" \"rollup -c rollup.config.js -w\"", + "test": "npm run generate-typescript && tsc --project tsconfig.json && concurrently --kill-others \"tsc --project tsconfig.json -w\" \"karma start karma.conf.js --browsers Chrome --no-single-run --reporters spec,kjhtml\"", + "test-ci": "npm run generate-typescript && tsc --project tsconfig.json && karma start karma.conf.js --browsers ChromeHeadless --single-run --reporters spec", + "generate-typescript": "rimraf src/generated && ts-node --project tsconfig.build-csharp.json src.compiler/typescript/AlphaTabGenerator.ts --project tsconfig.build-csharp.json", + "generate-csharp": "npm run generate-typescript && ts-node --project tsconfig.build-csharp.json src.compiler/csharp/CSharpTranspiler.ts --project tsconfig.build-csharp.json", "build-csharp": "npm run generate-csharp && cd src.csharp && dotnet build -c Release", "build-csharp-ci": "npm run clean && npm run generate-csharp && cd src.csharp && dotnet build -c Release", "test-csharp": "cd src.csharp && dotnet test", "test-csharp-ci": "cd src.csharp && dotnet test" }, "devDependencies": { - "@rollup/plugin-commonjs": "^16.0.0", - "@types/jasmine": "^3.6.1", + "@rollup/plugin-commonjs": "^17.0.0", + "@types/jasmine": "^3.6.2", + "@types/resize-observer-browser": "^0.1.5", "concurrently": "^5.3.0", "cors": "^2.8.5", "fs-extra": "^9.0.1", @@ -56,19 +58,19 @@ "lodash": "^4.17.20", "multer": "^1.4.2", "rimraf": "^3.0.2", - "rollup": "^2.33.1", + "rollup": "^2.35.1", "rollup-plugin-copy": "^3.3.0", - "rollup-plugin-dts": "^1.4.13", + "rollup-plugin-dts": "^2.0.1", "rollup-plugin-license": "^2.2.0", "rollup-plugin-serve": "^1.1.0", "rollup-plugin-terser": "^7.0.2", - "terser": "^5.3.8", - "ts-node": "^9.0.0", + "terser": "^5.5.1", + "ts-node": "^9.1.1", "tslint": "^6.1.3", "tslint-config-prettier": "^1.15.0", "tslint-config-standard": "^9.0.0", "ttypescript": "^1.5.12", - "typescript": "^4.0.5" + "typescript": "^4.1.3" }, "files": [ "/dist/alphaTab.js", diff --git a/playground-template/alphatex-editor.html b/playground-template/alphatex-editor.html index 92b056cbe..83faa6ac1 100644 --- a/playground-template/alphatex-editor.html +++ b/playground-template/alphatex-editor.html @@ -1,66 +1,42 @@ - - - AlphaTab alphaTex Editor Demo - - - - + + + AlphaTab alphaTex Editor Demo - - - + + + + - - - + + + - - - - - -
-
-
+ + + + + + + + + + +
+
+
\title "Canon Rock" \subtitle "JerryC" \tempo 90 @@ -71,28 +47,31 @@ 12.2{v f} 14.2{v f}.4 :8 15.2 17.2 | 14.1.2 :8 17.2 15.1 14.1{h} 17.2 | 15.2{v d}.4 :16 17.2{h} 15.2 :8 14.2 14.1 17.1{b(0 4 4 0)}.4 | - 15.1.8 :16 14.1{tu 3} 15.1{tu 3} 14.1{tu 3} :8 17.2 15.1 14.1 :16 12.1{tu 3} 14.1{tu 3} 12.1{tu 3} :8 15.2 14.2 | - 12.2 14.3 12.3 15.2 :32 14.2{h} 15.2{h} 14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h} -
+ 15.1.8 :16 14.1{tu 3} 15.1{tu 3} 14.1{tu 3} :8 17.2 15.1 14.1 :16 12.1{tu 3} 14.1{tu 3} 12.1{tu 3} :8 15.2 + 14.2 | + 12.2 14.3 12.3 15.2 :32 14.2{h} 15.2{h} 14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}14.2{h} + 15.2{h}14.2{h} 15.2{h}14.2{h} 15.2{h}
- - - + + + - window.at = setupControl('#alphaTab'); - setupEditor(window.at, '#editor'); - }; - req.open('GET', 'control-template.html'); - req.send(); - - - + \ No newline at end of file diff --git a/playground-template/alphatex-editor.js b/playground-template/alphatex-editor.js index 2db61de4e..ae9f24990 100644 --- a/playground-template/alphatex-editor.js +++ b/playground-template/alphatex-editor.js @@ -13,6 +13,6 @@ function setupEditor(api, selector) { mode: 'ace/mode/tex' }); editor.session.on('change', () => { - api.tex(editor.getSession().getDocument().getAllLines().join('\n')); + api.tex(editor.getSession().getDocument().getAllLines().join('\n'), 'all'); }); } diff --git a/playground-template/control-template.html b/playground-template/control-template.html index b9748be2a..c169439ae 100644 --- a/playground-template/control-template.html +++ b/playground-template/control-template.html @@ -100,6 +100,9 @@ + + +