@24i/bigscreen-sdk 1.0.23-alpha.2417 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/utils/src/index.ts +1 -0
- package/packages/utils/src/keyPress/index.ts +5 -1
- package/packages/utils/src/keyPress/keyPressSimulator.ts +30 -0
- package/packages/create-package/dist/createPackage.js +0 -66
- package/packages/create-package/dist/createPackage.js.map +0 -1
- package/packages/create-package/dist/index.js +0 -5
- package/packages/create-package/dist/index.js.map +0 -1
- package/packages/create-package/dist/questionnaire/questions.js +0 -35
- package/packages/create-package/dist/questionnaire/questions.js.map +0 -1
- package/packages/create-package/dist/settings/Settings.js +0 -10
- package/packages/create-package/dist/settings/Settings.js.map +0 -1
- package/packages/create-package/dist/types.js +0 -3
- package/packages/create-package/dist/types.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {
|
|
2
|
+
registerKeyPressSimulator,
|
|
3
|
+
unregisterKeyPressSimulator,
|
|
4
|
+
dispatchKeyboardEvent,
|
|
5
|
+
} from './keyPressSimulator';
|
|
2
6
|
export { simulateKeyPress } from './simulateKeyPress';
|
|
@@ -3,9 +3,19 @@ import { stopEvent } from '@24i/bigscreen-sdk/utils';
|
|
|
3
3
|
|
|
4
4
|
let keysPressed: Record<number, boolean>;
|
|
5
5
|
|
|
6
|
+
interface CustomKeyboardEvent extends KeyboardEvent {
|
|
7
|
+
skipKeyPressSimulation: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const shouldSkipEvent = (e: KeyboardEvent) => (
|
|
11
|
+
Boolean((e as CustomKeyboardEvent).skipKeyPressSimulation)
|
|
12
|
+
);
|
|
13
|
+
|
|
6
14
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
15
|
+
if (shouldSkipEvent(e)) return;
|
|
7
16
|
const { keyCode } = e;
|
|
8
17
|
if (keysPressed[keyCode] === true) {
|
|
18
|
+
console.warn(`Key ${e.code} (${e.keyCode}) is skipped by the key press simulator`);
|
|
9
19
|
stopEvent(e);
|
|
10
20
|
} else if (typeof keysPressed[keyCode] !== 'undefined') {
|
|
11
21
|
keysPressed[keyCode] = true;
|
|
@@ -42,3 +52,23 @@ export const unregisterKeyPressSimulator = () => {
|
|
|
42
52
|
window.document.removeEventListener('keydown', onKeyDown, true);
|
|
43
53
|
window.document.removeEventListener('keyup', onKeyUp, true);
|
|
44
54
|
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* This should be the main method for manually dispatching keyboard events when the
|
|
58
|
+
* key press simulator is registered in the app. When parameter `skipKeyPressSimulation`
|
|
59
|
+
* is `true`, those event's won't be caught by the key press simulator and
|
|
60
|
+
* are no longer under it's influence. Key press simulator should work only with events
|
|
61
|
+
* generated from input device.
|
|
62
|
+
* @param target element target to dispatch event
|
|
63
|
+
* @param event dispatching event
|
|
64
|
+
* @param skipKeyPressSimulation default value is `true`, when false, the event
|
|
65
|
+
* will be caught by the simulator and other dispatched events will be stopped.
|
|
66
|
+
*/
|
|
67
|
+
export const dispatchKeyboardEvent = (
|
|
68
|
+
target: HTMLElement,
|
|
69
|
+
event: KeyboardEvent,
|
|
70
|
+
skipKeyPressSimulation = true,
|
|
71
|
+
) => {
|
|
72
|
+
(event as CustomKeyboardEvent).skipKeyPressSimulation = skipKeyPressSimulation;
|
|
73
|
+
target.dispatchEvent(event);
|
|
74
|
+
};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.main = void 0;
|
|
5
|
-
const path = require("path");
|
|
6
|
-
const fs = require("fs");
|
|
7
|
-
const fse = require("fs-extra");
|
|
8
|
-
const chalk = require("chalk");
|
|
9
|
-
const minimist = require("minimist");
|
|
10
|
-
const questions_1 = require("./questionnaire/questions");
|
|
11
|
-
const Settings_1 = require("./settings/Settings");
|
|
12
|
-
async function isDirectoryEmpty(dirPath) {
|
|
13
|
-
const files = await fs.promises.readdir(dirPath);
|
|
14
|
-
return !files.length;
|
|
15
|
-
}
|
|
16
|
-
async function copyTemplateFiles(templateDir, targetDir) {
|
|
17
|
-
return fse.copy(templateDir, targetDir);
|
|
18
|
-
}
|
|
19
|
-
function updatePackageJsonFile(filePath, options) {
|
|
20
|
-
let data = fs.readFileSync(filePath, 'utf8');
|
|
21
|
-
const keywords = options.keywords.map((word) => `"${word}"`).join(', ');
|
|
22
|
-
data = data.replace(/("name": ")(.*)(")/, `$1${options.name}$3`);
|
|
23
|
-
data = data.replace(/("version": ")(.*)(")/, `$1${options.version}$3`);
|
|
24
|
-
data = data.replace(/("description": ")(.*)(")/, `$1${options.description}$3`);
|
|
25
|
-
data = data.replace(/("keywords": \[)(.*)(\])/, `$1${keywords}$3`);
|
|
26
|
-
data = data.replace(/("author": ")(.*)(")/, `$1${options.author}$3`);
|
|
27
|
-
fs.writeFileSync(filePath, data);
|
|
28
|
-
}
|
|
29
|
-
function parseArguments(rawArgv) {
|
|
30
|
-
const argv = minimist(rawArgv.slice(2));
|
|
31
|
-
const dirName = argv._[0];
|
|
32
|
-
if (!dirName) {
|
|
33
|
-
console.error('Error: Missing package name');
|
|
34
|
-
process.exit(1);
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
dirName,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
async function main() {
|
|
41
|
-
const { dirName: destDirName } = parseArguments(process.argv);
|
|
42
|
-
const destDir = path.join(process.cwd(), 'packages/', destDirName);
|
|
43
|
-
if (fs.existsSync(destDir)) {
|
|
44
|
-
console.error(`Error: Target directory "${destDir}" already exists`);
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
fs.mkdirSync(destDir, { recursive: true });
|
|
48
|
-
const isDirEmpty = await isDirectoryEmpty(destDir);
|
|
49
|
-
if (!isDirEmpty) {
|
|
50
|
-
console.error(`Error: Target directory "${destDir}" is not empty.`);
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
const settings = Object.assign({}, Settings_1.Settings);
|
|
54
|
-
settings.name = `${Settings_1.Settings.name}${destDirName}`.toLowerCase();
|
|
55
|
-
const details = await (0, questions_1.promptPackageDetails)(settings);
|
|
56
|
-
const templateDir = path.join(__dirname, '..', 'templates/typescript');
|
|
57
|
-
await copyTemplateFiles(templateDir, destDir);
|
|
58
|
-
const packageJsonFile = path.join(destDir, 'package.json');
|
|
59
|
-
updatePackageJsonFile(packageJsonFile, details);
|
|
60
|
-
const docsSymlinkTarget = path.join('../../../packages/', destDirName, '/README.md');
|
|
61
|
-
const docsSymlinkPath = path.join(process.cwd(), 'docs/packages/', destDirName, '/README.md');
|
|
62
|
-
await fse.ensureSymlink(docsSymlinkTarget, docsSymlinkPath);
|
|
63
|
-
console.log(`${chalk.green('Success')}, package has been initialized!`);
|
|
64
|
-
}
|
|
65
|
-
exports.main = main;
|
|
66
|
-
//# sourceMappingURL=createPackage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createPackage.js","sourceRoot":"","sources":["../src/createPackage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mDAAuC;AAEvC,IAAA,oBAAI,GAAE,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.promptPackageDetails = void 0;
|
|
4
|
-
const inquirer = require("inquirer");
|
|
5
|
-
async function promptPackageDetails(defaultValues) {
|
|
6
|
-
return inquirer.prompt([
|
|
7
|
-
{
|
|
8
|
-
type: 'input',
|
|
9
|
-
name: 'name',
|
|
10
|
-
message: 'Package name:',
|
|
11
|
-
default: defaultValues.name,
|
|
12
|
-
}, {
|
|
13
|
-
type: 'input',
|
|
14
|
-
name: 'version',
|
|
15
|
-
message: 'Version:',
|
|
16
|
-
default: defaultValues.version,
|
|
17
|
-
}, {
|
|
18
|
-
type: 'input',
|
|
19
|
-
name: 'description',
|
|
20
|
-
message: 'Description:',
|
|
21
|
-
}, {
|
|
22
|
-
type: 'input',
|
|
23
|
-
name: 'keywords',
|
|
24
|
-
message: 'Keywords:',
|
|
25
|
-
filter: (ans) => ans.split(/[\s,]+/),
|
|
26
|
-
}, {
|
|
27
|
-
type: 'input',
|
|
28
|
-
name: 'author',
|
|
29
|
-
message: 'Author:',
|
|
30
|
-
default: defaultValues.author,
|
|
31
|
-
},
|
|
32
|
-
]);
|
|
33
|
-
}
|
|
34
|
-
exports.promptPackageDetails = promptPackageDetails;
|
|
35
|
-
//# sourceMappingURL=questions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/questionnaire/questions.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAWrC,KAAK,UAAU,oBAAoB,CAAC,aAA4C;IAC5E,OAAO,QAAQ,CAAC,MAAM,CAAC;QACnB;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,aAAa,CAAC,IAAI;SAC9B,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,aAAa,CAAC,OAAO;SACjC,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,cAAc;SAC1B,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;SACvC,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,aAAa,CAAC,MAAM;SAChC;KACJ,CAAC,CAAC;AACP,CAAC;AAEQ,oDAAoB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Settings = void 0;
|
|
4
|
-
const Settings = {
|
|
5
|
-
name: '@24i/smartapps-bigscreen-',
|
|
6
|
-
version: '0.0.1',
|
|
7
|
-
author: '24i',
|
|
8
|
-
};
|
|
9
|
-
exports.Settings = Settings;
|
|
10
|
-
//# sourceMappingURL=Settings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/settings/Settings.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG;IACb,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,KAAK;CAChB,CAAC;AAEO,4BAAQ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|