@uuv/assistant 2.73.0 → 2.73.1
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/dist/src/Commons.d.ts +60 -0
- package/dist/src/Commons.js +55 -0
- package/dist/src/helper/css-helper.d.ts +47 -0
- package/dist/src/helper/css-helper.js +83 -0
- package/dist/src/helper/highlight/highlight-helper.d.ts +13 -0
- package/dist/src/helper/highlight/highlight-helper.js +51 -0
- package/dist/src/helper/highlight/inspector-dom.d.ts +7 -0
- package/dist/src/helper/highlight/inspector-dom.js +158 -0
- package/dist/src/helper/highlight/tooltip-helper.d.ts +2 -0
- package/dist/src/helper/highlight/tooltip-helper.js +67 -0
- package/dist/src/helper/index.d.ts +1 -0
- package/dist/src/helper/index.js +17 -0
- package/dist/src/helper/informative-nodes-helper.d.ts +38 -0
- package/dist/src/helper/informative-nodes-helper.js +250 -0
- package/dist/src/helper/keyboard-navigation-helper.d.ts +21 -0
- package/dist/src/helper/keyboard-navigation-helper.js +151 -0
- package/dist/src/helper/layer-helper.d.ts +12 -0
- package/dist/src/helper/layer-helper.js +149 -0
- package/dist/src/helper/result-display-helper.d.ts +2 -0
- package/dist/src/helper/result-display-helper.js +20 -0
- package/dist/src/helper/result-script-helper.d.ts +1 -0
- package/dist/src/helper/result-script-helper.js +30 -0
- package/dist/src/helper/selection-helper.d.ts +26 -0
- package/dist/src/helper/selection-helper.js +92 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +19 -0
- package/dist/src/service/abstract-component-service.d.ts +21 -0
- package/dist/src/service/abstract-component-service.js +107 -0
- package/dist/src/service/dialog-service.d.ts +22 -0
- package/dist/src/service/dialog-service.js +90 -0
- package/dist/src/service/form-completion-service.d.ts +23 -0
- package/dist/src/service/form-completion-service.js +72 -0
- package/dist/src/service/index.d.ts +4 -0
- package/dist/src/service/index.js +20 -0
- package/dist/src/service/table-and-grid-service.d.ts +17 -0
- package/dist/src/service/table-and-grid-service.js +87 -0
- package/dist/src/translator/abstract-translator.d.ts +29 -0
- package/dist/src/translator/abstract-translator.js +137 -0
- package/dist/src/translator/click-translator.d.ts +21 -0
- package/dist/src/translator/click-translator.js +60 -0
- package/dist/src/translator/expect-translator.d.ts +23 -0
- package/dist/src/translator/expect-translator.js +157 -0
- package/dist/src/translator/index.d.ts +8 -0
- package/dist/src/translator/index.js +24 -0
- package/dist/src/translator/keyboard-navigation-translator.d.ts +19 -0
- package/dist/src/translator/keyboard-navigation-translator.js +42 -0
- package/dist/src/translator/model.d.ts +38 -0
- package/dist/src/translator/model.js +31 -0
- package/dist/src/translator/textual-translator.d.ts +15 -0
- package/dist/src/translator/textual-translator.js +64 -0
- package/dist/src/translator/type-translator.d.ts +24 -0
- package/dist/src/translator/type-translator.js +121 -0
- package/dist/src/translator/within-translator.d.ts +19 -0
- package/dist/src/translator/within-translator.js +42 -0
- package/package.json +2 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Software Name : UUV
|
|
4
|
+
*
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
*
|
|
7
|
+
* This software is distributed under the MIT License,
|
|
8
|
+
* see the "LICENSE" file for more details
|
|
9
|
+
*
|
|
10
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
11
|
+
* Software description: Make test writing fast, understandable by any human
|
|
12
|
+
* understanding English or French.
|
|
13
|
+
*/
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.SelectionHelper = void 0;
|
|
25
|
+
const Commons_1 = require("../Commons");
|
|
26
|
+
const click_translator_1 = require("../translator/click-translator");
|
|
27
|
+
const expect_translator_1 = require("../translator/expect-translator");
|
|
28
|
+
const within_translator_1 = require("../translator/within-translator");
|
|
29
|
+
const type_translator_1 = require("../translator/type-translator");
|
|
30
|
+
const highlight_helper_1 = require("./highlight/highlight-helper");
|
|
31
|
+
class SelectionHelper {
|
|
32
|
+
constructor(onSelect, onReset, intelligentHighlight) {
|
|
33
|
+
this.onKeyDown = (e) => {
|
|
34
|
+
if (e.key === "Escape") {
|
|
35
|
+
this.onReset();
|
|
36
|
+
this.highLightHelper.cancel();
|
|
37
|
+
this.revertDisabledField();
|
|
38
|
+
document.removeEventListener("keydown", this.onKeyDown);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
this.highLightHelper = new highlight_helper_1.HighlightHelper(onSelect);
|
|
42
|
+
this.onReset = onReset;
|
|
43
|
+
this.intelligentHighlight = intelligentHighlight;
|
|
44
|
+
}
|
|
45
|
+
startSelect(enableDisabledField) {
|
|
46
|
+
if (enableDisabledField) {
|
|
47
|
+
this.enableDisabledField();
|
|
48
|
+
}
|
|
49
|
+
document.addEventListener("keydown", this.onKeyDown);
|
|
50
|
+
if (this.intelligentHighlight) {
|
|
51
|
+
this.highLightHelper.enableRefinedHighlight();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.highLightHelper.enableBasicHighlight();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
buildResultSentence(el, action, isDisabled) {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
let translator;
|
|
60
|
+
switch (action) {
|
|
61
|
+
case Commons_1.ActionEnum.WITHIN:
|
|
62
|
+
translator = new within_translator_1.WithinTranslator();
|
|
63
|
+
break;
|
|
64
|
+
case Commons_1.ActionEnum.EXPECT:
|
|
65
|
+
translator = new expect_translator_1.ExpectTranslator();
|
|
66
|
+
break;
|
|
67
|
+
case Commons_1.ActionEnum.CLICK:
|
|
68
|
+
translator = new click_translator_1.ClickTranslator();
|
|
69
|
+
break;
|
|
70
|
+
case Commons_1.ActionEnum.TYPE:
|
|
71
|
+
translator = new type_translator_1.TypeTranslator();
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
return translator.translate(el);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
enableDisabledField() {
|
|
78
|
+
const disabledElement = document.querySelectorAll(":disabled");
|
|
79
|
+
disabledElement.forEach((elem) => {
|
|
80
|
+
elem.className = `${elem.className} ${Commons_1.UUV_DISABLED_CLASS}`;
|
|
81
|
+
elem.removeAttribute("disabled");
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
revertDisabledField() {
|
|
85
|
+
const disabledElement = document.querySelectorAll(`.${Commons_1.UUV_DISABLED_CLASS}`);
|
|
86
|
+
disabledElement.forEach((elem) => {
|
|
87
|
+
elem.className = elem.className.replaceAll(Commons_1.UUV_DISABLED_CLASS, "");
|
|
88
|
+
elem.setAttribute("disabled", "true");
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.SelectionHelper = SelectionHelper;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./translator"), exports);
|
|
18
|
+
__exportStar(require("./service"), exports);
|
|
19
|
+
__exportStar(require("./helper"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Software Name : UUV
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This software is distributed under the MIT License,
|
|
7
|
+
* see the "LICENSE" file for more details
|
|
8
|
+
*
|
|
9
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
10
|
+
* Software description: Make test writing fast, understandable by any human
|
|
11
|
+
* understanding English or French.
|
|
12
|
+
*/
|
|
13
|
+
import { AdditionalLayerEnum } from "../Commons";
|
|
14
|
+
import { ExpectTranslator } from "../translator/expect-translator";
|
|
15
|
+
export declare abstract class AbstractComponentService {
|
|
16
|
+
expectTranslator: ExpectTranslator;
|
|
17
|
+
private buildAdditionalStyle;
|
|
18
|
+
addListener(dom: ShadowRoot, elements: HTMLElement[], onSelect: (el: HTMLElement) => void, onReset: () => void): void;
|
|
19
|
+
show(dom: ShadowRoot, layer: AdditionalLayerEnum, htmlElements: HTMLElement[], onSelect: (el: HTMLElement) => void, onReset: () => void): void;
|
|
20
|
+
abstract buildResultSentence(selectedArray: HTMLElement): Promise<string[]>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Software Name : UUV
|
|
4
|
+
*
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
*
|
|
7
|
+
* This software is distributed under the MIT License,
|
|
8
|
+
* see the "LICENSE" file for more details
|
|
9
|
+
*
|
|
10
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
11
|
+
* Software description: Make test writing fast, understandable by any human
|
|
12
|
+
* understanding English or French.
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.AbstractComponentService = void 0;
|
|
49
|
+
const LayerHelper = __importStar(require("../helper/layer-helper"));
|
|
50
|
+
const highlight_helper_1 = require("../helper/highlight/highlight-helper");
|
|
51
|
+
const expect_translator_1 = require("../translator/expect-translator");
|
|
52
|
+
class AbstractComponentService {
|
|
53
|
+
constructor() {
|
|
54
|
+
this.expectTranslator = new expect_translator_1.ExpectTranslator();
|
|
55
|
+
}
|
|
56
|
+
buildAdditionalStyle(elements) {
|
|
57
|
+
let completeStyle = "";
|
|
58
|
+
if (elements) {
|
|
59
|
+
elements.forEach((element, index) => {
|
|
60
|
+
completeStyle = `${completeStyle}
|
|
61
|
+
|
|
62
|
+
.element-border {
|
|
63
|
+
stroke-width: ${highlight_helper_1.HIGHLIGHT_ORANGE_PROPS.width};
|
|
64
|
+
stroke: ${highlight_helper_1.HIGHLIGHT_ORANGE_PROPS.borderColor};
|
|
65
|
+
fill-opacity: 10%;
|
|
66
|
+
fill: black;
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.element-border:hover {
|
|
71
|
+
fill: red;
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return completeStyle;
|
|
77
|
+
}
|
|
78
|
+
addListener(dom, elements, onSelect, onReset) {
|
|
79
|
+
if (elements) {
|
|
80
|
+
elements.forEach((element, index) => {
|
|
81
|
+
const targetElement = dom.getElementById(`element-border-${index}`);
|
|
82
|
+
if (targetElement) {
|
|
83
|
+
const functionToTrigger = () => {
|
|
84
|
+
onSelect(element);
|
|
85
|
+
};
|
|
86
|
+
targetElement.addEventListener("click", functionToTrigger);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
const escapeFunction = (e) => {
|
|
90
|
+
if (e.key === "Escape") {
|
|
91
|
+
onReset();
|
|
92
|
+
document.removeEventListener("keydown", escapeFunction);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
document.addEventListener("keydown", escapeFunction);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
show(dom, layer, htmlElements, onSelect, onReset) {
|
|
99
|
+
const customLayer = document.createElement("div");
|
|
100
|
+
customLayer.setAttribute("id", layer.toString());
|
|
101
|
+
customLayer.setAttribute("class", "uvv-assistant-additional-layer");
|
|
102
|
+
dom.appendChild(customLayer);
|
|
103
|
+
LayerHelper.buildLayer(dom, layer, htmlElements, this.buildAdditionalStyle(htmlElements), true, false);
|
|
104
|
+
this.addListener(dom, htmlElements, onSelect, onReset);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.AbstractComponentService = AbstractComponentService;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Software Name : UUV
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This software is distributed under the MIT License,
|
|
7
|
+
* see the "LICENSE" file for more details
|
|
8
|
+
*
|
|
9
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
10
|
+
* Software description: Make test writing fast, understandable by any human
|
|
11
|
+
* understanding English or French.
|
|
12
|
+
*/
|
|
13
|
+
import { AdditionalLayerEnum } from "../Commons";
|
|
14
|
+
import { AbstractComponentService } from "./abstract-component-service";
|
|
15
|
+
export declare class DialogService extends AbstractComponentService {
|
|
16
|
+
TRACKED_CLASS: string;
|
|
17
|
+
show(dom: ShadowRoot, layer: AdditionalLayerEnum, elements: HTMLElement[], onSelect: (el: HTMLElement) => void, onReset: () => void): void;
|
|
18
|
+
private overrideStyles;
|
|
19
|
+
private computeTopPosition;
|
|
20
|
+
private clone;
|
|
21
|
+
buildResultSentence(selectedArray: HTMLElement): Promise<string[]>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Software Name : UUV
|
|
4
|
+
*
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
*
|
|
7
|
+
* This software is distributed under the MIT License,
|
|
8
|
+
* see the "LICENSE" file for more details
|
|
9
|
+
*
|
|
10
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
11
|
+
* Software description: Make test writing fast, understandable by any human
|
|
12
|
+
* understanding English or French.
|
|
13
|
+
*/
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.DialogService = void 0;
|
|
25
|
+
const informative_nodes_helper_1 = require("../helper/informative-nodes-helper");
|
|
26
|
+
const abstract_component_service_1 = require("./abstract-component-service");
|
|
27
|
+
class DialogService extends abstract_component_service_1.AbstractComponentService {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.TRACKED_CLASS = "uuv-dialog-clone";
|
|
31
|
+
}
|
|
32
|
+
show(dom, layer, elements, onSelect, onReset) {
|
|
33
|
+
const clones = [];
|
|
34
|
+
let currentTop = 0;
|
|
35
|
+
elements.forEach((dialog, index) => {
|
|
36
|
+
const clone = document.createElement("div");
|
|
37
|
+
this.clone(clone, dialog);
|
|
38
|
+
this.overrideStyles(currentTop, dialog, clone);
|
|
39
|
+
const onClick = () => {
|
|
40
|
+
onSelect(clone);
|
|
41
|
+
clone.removeEventListener("click", onClick);
|
|
42
|
+
document.body.removeChild(clone);
|
|
43
|
+
Array.from(document.getElementsByClassName(this.TRACKED_CLASS)).forEach(el => el.remove());
|
|
44
|
+
};
|
|
45
|
+
clone.addEventListener("click", onClick);
|
|
46
|
+
document.body.appendChild(clone);
|
|
47
|
+
clones.push(clone);
|
|
48
|
+
});
|
|
49
|
+
super.show(dom, layer, clones, onSelect, onReset);
|
|
50
|
+
}
|
|
51
|
+
overrideStyles(currentTop, dialog, clone) {
|
|
52
|
+
currentTop = this.computeTopPosition(dialog, currentTop);
|
|
53
|
+
clone.classList.add(this.TRACKED_CLASS);
|
|
54
|
+
clone.style.position = "fixed";
|
|
55
|
+
clone.style.top = `${currentTop}px`;
|
|
56
|
+
clone.style.left = "2rem";
|
|
57
|
+
clone.style.right = "2rem";
|
|
58
|
+
clone.style.zIndex = "9999";
|
|
59
|
+
clone.style.display = "block";
|
|
60
|
+
}
|
|
61
|
+
computeTopPosition(dialog, currentTop) {
|
|
62
|
+
const style = getComputedStyle(dialog);
|
|
63
|
+
const marginBottom = parseFloat(style.marginBottom) || 0;
|
|
64
|
+
const marginTop = parseFloat(style.marginTop) || 0;
|
|
65
|
+
const height = dialog.getBoundingClientRect().height + marginTop + marginBottom;
|
|
66
|
+
currentTop += height + 30;
|
|
67
|
+
return currentTop;
|
|
68
|
+
}
|
|
69
|
+
clone(clone, dialog) {
|
|
70
|
+
clone.innerHTML = dialog.innerHTML;
|
|
71
|
+
const styles = getComputedStyle(dialog);
|
|
72
|
+
for (let i = 0; i < styles.length; i++) {
|
|
73
|
+
const prop = styles[i];
|
|
74
|
+
clone.style.setProperty(prop, styles.getPropertyValue(prop));
|
|
75
|
+
}
|
|
76
|
+
for (let i = 0; i < dialog.attributes.length; i++) {
|
|
77
|
+
const attr = dialog.attributes[i];
|
|
78
|
+
clone.setAttribute(attr.name, attr.value);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
buildResultSentence(selectedArray) {
|
|
82
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
+
var _a;
|
|
84
|
+
const name = (_a = new informative_nodes_helper_1.InformativeNodesHelper().getDialogName(selectedArray)) !== null && _a !== void 0 ? _a : "";
|
|
85
|
+
const sentenceKey = "key.when.withinElement.roleAndName";
|
|
86
|
+
return this.expectTranslator.computeDialogSentenceFromKeyNameAndContent(sentenceKey, name, selectedArray);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.DialogService = DialogService;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Software Name : UUV
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This software is distributed under the MIT License,
|
|
7
|
+
* see the "LICENSE" file for more details
|
|
8
|
+
*
|
|
9
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
10
|
+
* Software description: Make test writing fast, understandable by any human
|
|
11
|
+
* understanding English or French.
|
|
12
|
+
*/
|
|
13
|
+
import { FocusableElement } from "tabbable";
|
|
14
|
+
import { AbstractComponentService } from "./abstract-component-service";
|
|
15
|
+
export declare class FormCompletionService extends AbstractComponentService {
|
|
16
|
+
private typeTranslator;
|
|
17
|
+
private clickTranslator;
|
|
18
|
+
buildResultSentence(selectedForm: HTMLElement): Promise<string[]>;
|
|
19
|
+
isButton(element: FocusableElement): boolean;
|
|
20
|
+
isSubmitButton(element: FocusableElement): boolean;
|
|
21
|
+
isDisabled(element: FocusableElement): boolean;
|
|
22
|
+
isHidden(element: FocusableElement): boolean;
|
|
23
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Software Name : UUV
|
|
4
|
+
*
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
*
|
|
7
|
+
* This software is distributed under the MIT License,
|
|
8
|
+
* see the "LICENSE" file for more details
|
|
9
|
+
*
|
|
10
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
11
|
+
* Software description: Make test writing fast, understandable by any human
|
|
12
|
+
* understanding English or French.
|
|
13
|
+
*/
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.FormCompletionService = void 0;
|
|
25
|
+
const type_translator_1 = require("../translator/type-translator");
|
|
26
|
+
const click_translator_1 = require("../translator/click-translator");
|
|
27
|
+
const dom_accessibility_api_1 = require("dom-accessibility-api");
|
|
28
|
+
const abstract_component_service_1 = require("./abstract-component-service");
|
|
29
|
+
class FormCompletionService extends abstract_component_service_1.AbstractComponentService {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(...arguments);
|
|
32
|
+
this.typeTranslator = new type_translator_1.TypeTranslator();
|
|
33
|
+
this.clickTranslator = new click_translator_1.ClickTranslator();
|
|
34
|
+
}
|
|
35
|
+
buildResultSentence(selectedForm) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const elementsForCompletion = [].slice.call(selectedForm.getElementsByTagName("input"));
|
|
38
|
+
elementsForCompletion.push(...[].slice.call(selectedForm.getElementsByTagName("button")));
|
|
39
|
+
const sentences = [];
|
|
40
|
+
let foundSubmitButton = false;
|
|
41
|
+
const promises = elementsForCompletion
|
|
42
|
+
.filter(element => !this.isDisabled(element) && !this.isHidden(element))
|
|
43
|
+
.map((formElement) => __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
if (!this.isButton(formElement) || (this.isSubmitButton(formElement) && !foundSubmitButton)) {
|
|
45
|
+
let translator = this.typeTranslator;
|
|
46
|
+
if (this.isSubmitButton(formElement)) {
|
|
47
|
+
translator = this.clickTranslator;
|
|
48
|
+
foundSubmitButton = true;
|
|
49
|
+
}
|
|
50
|
+
const result = yield translator.translate(formElement);
|
|
51
|
+
sentences.push(...result.sentences);
|
|
52
|
+
}
|
|
53
|
+
return Promise.resolve("");
|
|
54
|
+
}));
|
|
55
|
+
yield Promise.all(promises);
|
|
56
|
+
return sentences;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
isButton(element) {
|
|
60
|
+
return (0, dom_accessibility_api_1.getRole)(element) === "button";
|
|
61
|
+
}
|
|
62
|
+
isSubmitButton(element) {
|
|
63
|
+
return this.isButton(element) && element.getAttribute("type") === "submit";
|
|
64
|
+
}
|
|
65
|
+
isDisabled(element) {
|
|
66
|
+
return element.disabled;
|
|
67
|
+
}
|
|
68
|
+
isHidden(element) {
|
|
69
|
+
return element.type === "hidden";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.FormCompletionService = FormCompletionService;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./abstract-component-service"), exports);
|
|
18
|
+
__exportStar(require("./dialog-service"), exports);
|
|
19
|
+
__exportStar(require("./form-completion-service"), exports);
|
|
20
|
+
__exportStar(require("./table-and-grid-service"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Software Name : UUV
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This software is distributed under the MIT License,
|
|
7
|
+
* see the "LICENSE" file for more details
|
|
8
|
+
*
|
|
9
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
10
|
+
* Software description: Make test writing fast, understandable by any human
|
|
11
|
+
* understanding English or French.
|
|
12
|
+
*/
|
|
13
|
+
import { AbstractComponentService } from "./abstract-component-service";
|
|
14
|
+
export declare class TableAndGridService extends AbstractComponentService {
|
|
15
|
+
buildResultSentence(selectedArray: HTMLTableElement | HTMLElement): Promise<string[]>;
|
|
16
|
+
private extractHeaderAndDataRows;
|
|
17
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Software Name : UUV
|
|
4
|
+
*
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
*
|
|
7
|
+
* This software is distributed under the MIT License,
|
|
8
|
+
* see the "LICENSE" file for more details
|
|
9
|
+
*
|
|
10
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
11
|
+
* Software description: Make test writing fast, understandable by any human
|
|
12
|
+
* understanding English or French.
|
|
13
|
+
*/
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.TableAndGridService = void 0;
|
|
25
|
+
const dom_accessibility_api_1 = require("dom-accessibility-api");
|
|
26
|
+
const abstract_component_service_1 = require("./abstract-component-service");
|
|
27
|
+
class TableAndGridService extends abstract_component_service_1.AbstractComponentService {
|
|
28
|
+
buildResultSentence(selectedArray) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
var _a;
|
|
31
|
+
const sentences = [];
|
|
32
|
+
const tableName = (0, dom_accessibility_api_1.computeAccessibleName)(selectedArray);
|
|
33
|
+
let headers;
|
|
34
|
+
const indefiniteArticle = "a";
|
|
35
|
+
let roleName;
|
|
36
|
+
let values;
|
|
37
|
+
let cellRoleName;
|
|
38
|
+
const sentenceKey = "key.then.element.withRoleAndNameAndContent";
|
|
39
|
+
const role = (_a = (0, dom_accessibility_api_1.getRole)(selectedArray)) !== null && _a !== void 0 ? _a : "";
|
|
40
|
+
switch (role) {
|
|
41
|
+
case "table": {
|
|
42
|
+
const headerAndDataRows = this.extractHeaderAndDataRows(selectedArray);
|
|
43
|
+
headers = headerAndDataRows.headers;
|
|
44
|
+
values = headerAndDataRows.values;
|
|
45
|
+
roleName = "table";
|
|
46
|
+
cellRoleName = "cell";
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case "grid": {
|
|
50
|
+
const headerAndDataRows = this.extractHeaderAndDataRows(selectedArray);
|
|
51
|
+
headers = headerAndDataRows.headers;
|
|
52
|
+
values = headerAndDataRows.values;
|
|
53
|
+
roleName = "grid";
|
|
54
|
+
cellRoleName = "gridcell";
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case "treegrid": {
|
|
58
|
+
const headerAndDataRows = this.extractHeaderAndDataRows(selectedArray);
|
|
59
|
+
headers = headerAndDataRows.headers;
|
|
60
|
+
values = headerAndDataRows.values;
|
|
61
|
+
roleName = "treegrid";
|
|
62
|
+
cellRoleName = "gridcell";
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const result = this.expectTranslator.computeTableSentenceFromKeyNameAndContent(sentenceKey, indefiniteArticle, roleName, tableName, headers, values, cellRoleName);
|
|
67
|
+
sentences.push(result);
|
|
68
|
+
return sentences;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
extractHeaderAndDataRows(selectedArray) {
|
|
72
|
+
const rows = Array.from(selectedArray.querySelectorAll('[role=row], tr'));
|
|
73
|
+
if (rows.length > 0) {
|
|
74
|
+
return {
|
|
75
|
+
headers: rows[0],
|
|
76
|
+
values: rows.slice(1)
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return {
|
|
81
|
+
headers: [],
|
|
82
|
+
values: []
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.TableAndGridService = TableAndGridService;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Software Name : UUV
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This software is distributed under the MIT License,
|
|
7
|
+
* see the "LICENSE" file for more details
|
|
8
|
+
*
|
|
9
|
+
* Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley
|
|
10
|
+
* Software description: Make test writing fast, understandable by any human
|
|
11
|
+
* understanding English or French.
|
|
12
|
+
*/
|
|
13
|
+
import { TranslateSentences } from "./model";
|
|
14
|
+
import { EnDictionary } from "@uuv/dictionary";
|
|
15
|
+
export declare abstract class Translator {
|
|
16
|
+
protected dictionary: EnDictionary;
|
|
17
|
+
protected selectedHtmlElem: HTMLElement | SVGElement;
|
|
18
|
+
translate(htmlElem: HTMLElement | SVGElement): Promise<TranslateSentences>;
|
|
19
|
+
abstract getSentenceFromDomSelector(htmlElem: HTMLElement | SVGElement): TranslateSentences;
|
|
20
|
+
abstract getSentenceFromAccessibleRoleAndName(accessibleRole: string, accessibleName: string): TranslateSentences;
|
|
21
|
+
abstract getSentenceFromAccessibleRoleAndNameAndContent(accessibleRole: string, accessibleName: string, content: string): TranslateSentences;
|
|
22
|
+
static getSelector(element: any): string;
|
|
23
|
+
protected initResponse(): TranslateSentences;
|
|
24
|
+
protected computeSentenceFromKeyRoleAndName(computedKey: string, accessibleRole: string, accessibleName: string): string;
|
|
25
|
+
protected computeSentenceFromKeyRoleNameAndContent(computedKey: string, accessibleRole: string, accessibleName: string, content: string): string;
|
|
26
|
+
protected computeSentenceFromKeyAndSelector(computedKey: string, selector: string): string;
|
|
27
|
+
computeSentenceFromKeyAndContent(computedKey: string, content: string): string;
|
|
28
|
+
getSentenceFromKey(key: string): import("@uuv/dictionary").BaseSentence;
|
|
29
|
+
}
|