@o3r/testing 13.0.0-next.26 → 13.0.0-next.28
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/core/angular/angular-materials/autocomplete-material.js +9 -20
- package/core/angular/angular-materials/autocomplete-material.js.map +1 -1
- package/core/angular/angular-materials/index.js +1 -1
- package/core/angular/angular-materials/select-material.js +42 -91
- package/core/angular/angular-materials/select-material.js.map +1 -1
- package/core/angular/angular-materials/slider-material.js +8 -11
- package/core/angular/angular-materials/slider-material.js.map +1 -1
- package/core/angular/component-fixture.js +68 -148
- package/core/angular/component-fixture.js.map +1 -1
- package/core/angular/element.js +44 -50
- package/core/angular/element.js.map +1 -1
- package/core/angular/elements/checkbox-element.js +12 -16
- package/core/angular/elements/checkbox-element.js.map +1 -1
- package/core/angular/elements/index.js +1 -1
- package/core/angular/elements/radio-element.js +12 -16
- package/core/angular/elements/radio-element.js.map +1 -1
- package/core/angular/elements/select-element.js +28 -49
- package/core/angular/elements/select-element.js.map +1 -1
- package/core/angular/elements/slider-element.js +38 -42
- package/core/angular/elements/slider-element.js.map +1 -1
- package/core/angular/group.js +9 -14
- package/core/angular/group.js.map +1 -1
- package/core/angular/groups/index.js +1 -1
- package/core/angular/groups/radio-group.js +25 -62
- package/core/angular/groups/radio-group.js.map +1 -1
- package/core/angular/index.js +1 -1
- package/core/angular/page-fixture.js +8 -11
- package/core/angular/page-fixture.js.map +1 -1
- package/core/angular-materials/autocomplete-material.js +8 -11
- package/core/angular-materials/autocomplete-material.js.map +1 -1
- package/core/angular-materials/index.js +1 -1
- package/core/angular-materials/select-material.js +12 -15
- package/core/angular-materials/select-material.js.map +1 -1
- package/core/angular-materials/slider-material.js +5 -8
- package/core/angular-materials/slider-material.js.map +1 -1
- package/core/component-fixture.js +28 -33
- package/core/component-fixture.js.map +1 -1
- package/core/element.js +24 -26
- package/core/element.js.map +1 -1
- package/core/elements/checkbox-element.js +12 -16
- package/core/elements/checkbox-element.js.map +1 -1
- package/core/elements/index.js +1 -1
- package/core/elements/radio-element.js +12 -16
- package/core/elements/radio-element.js.map +1 -1
- package/core/elements/select-element.js +10 -13
- package/core/elements/select-element.js.map +1 -1
- package/core/elements/slider-element.js +5 -8
- package/core/elements/slider-element.js.map +1 -1
- package/core/group.js +9 -15
- package/core/group.js.map +1 -1
- package/core/groups/index.js +1 -1
- package/core/groups/radio-group.js +8 -11
- package/core/groups/radio-group.js.map +1 -1
- package/core/helpers.js +11 -16
- package/core/helpers.js.map +1 -1
- package/core/index.js +1 -1
- package/core/page-fixture.js +8 -11
- package/core/page-fixture.js.map +1 -1
- package/core/playwright/angular-materials/autocomplete-material.js +26 -56
- package/core/playwright/angular-materials/autocomplete-material.js.map +1 -1
- package/core/playwright/angular-materials/index.js +1 -1
- package/core/playwright/angular-materials/select-material.js +48 -110
- package/core/playwright/angular-materials/select-material.js.map +1 -1
- package/core/playwright/angular-materials/slider-material.js +7 -10
- package/core/playwright/angular-materials/slider-material.js.map +1 -1
- package/core/playwright/component-fixture.js +88 -173
- package/core/playwright/component-fixture.js.map +1 -1
- package/core/playwright/element.js +38 -90
- package/core/playwright/element.js.map +1 -1
- package/core/playwright/elements/checkbox-element.js +49 -94
- package/core/playwright/elements/checkbox-element.js.map +1 -1
- package/core/playwright/elements/index.js +1 -1
- package/core/playwright/elements/radio-element.js +18 -34
- package/core/playwright/elements/radio-element.js.map +1 -1
- package/core/playwright/elements/select-element.js +14 -21
- package/core/playwright/elements/select-element.js.map +1 -1
- package/core/playwright/elements/slider-element.js +78 -157
- package/core/playwright/elements/slider-element.js.map +1 -1
- package/core/playwright/group.js +9 -14
- package/core/playwright/group.js.map +1 -1
- package/core/playwright/groups/index.js +1 -1
- package/core/playwright/groups/radio-group.js +27 -64
- package/core/playwright/groups/radio-group.js.map +1 -1
- package/core/playwright/index.js +1 -1
- package/core/playwright/page-fixture.js +8 -18
- package/core/playwright/page-fixture.js.map +1 -1
- package/errors/fixture-usage-error.js +5 -10
- package/errors/fixture-usage-error.js.map +1 -1
- package/errors/index.js +1 -1
- package/errors/transpilation-purpose-only.js +5 -10
- package/errors/transpilation-purpose-only.js.map +1 -1
- package/kassette/index.js +1 -1
- package/kassette/update-dates-in-mocks.js +66 -85
- package/kassette/update-dates-in-mocks.js.map +1 -1
- package/localization/index.js +1 -1
- package/localization/localization-mock.js +38 -60
- package/localization/localization-mock.js.map +1 -1
- package/mocks/index.js +1 -1
- package/mocks/mock-component-generator.js +54 -53
- package/mocks/mock-component-generator.js.map +1 -1
- package/package.json +16 -15
- package/public_api.js +1 -1
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +4 -6
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/playwright/index.d.ts.map +1 -1
- package/schematics/ng-add/playwright/index.js +3 -4
- package/schematics/ng-add/playwright/index.js.map +1 -1
- package/store/index.js +1 -1
- package/store/testable-select.js +13 -13
- package/store/testable-select.js.map +1 -1
- package/tools/index.js +1 -1
- package/tools/path-replacement/index.js +1 -1
- package/tools/path-replacement/path-replacement.js +24 -20
- package/tools/path-replacement/path-replacement.js.map +1 -1
- package/visual-test/index.js +1 -1
- package/visual-test/utils.js +18 -7
- package/visual-test/utils.js.map +1 -1
- package/visual-test/visual-test.js +29 -34
- package/visual-test/visual-test.js.map +1 -1
- package/visual-testing-reporter/index.d.ts.map +1 -1
- package/visual-testing-reporter/index.js +37 -40
- package/visual-testing-reporter/index.js.map +1 -1
package/core/angular/element.js
CHANGED
@@ -4,83 +4,77 @@ exports.O3rElement = void 0;
|
|
4
4
|
/**
|
5
5
|
* Implementation dedicated to angular / TestBed.
|
6
6
|
*/
|
7
|
-
|
8
|
-
|
7
|
+
class O3rElement {
|
8
|
+
constructor(sourceElement) {
|
9
9
|
this.sourceElement = sourceElement instanceof O3rElement ? sourceElement.sourceElement : sourceElement;
|
10
10
|
}
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
},
|
22
|
-
enumerable: false,
|
23
|
-
configurable: true
|
24
|
-
});
|
11
|
+
/**
|
12
|
+
* Returns the text content of the DOM node.
|
13
|
+
* Prioritizes .innerText, but fallbacks on .textContent in case the former is undefined in order
|
14
|
+
* to support JSDOM.
|
15
|
+
* @protected
|
16
|
+
*/
|
17
|
+
get text() {
|
18
|
+
const element = this.sourceElement.nativeElement;
|
19
|
+
return element ? (element.innerText === undefined ? element.textContent : element.innerText) : undefined;
|
20
|
+
}
|
25
21
|
/** @inheritdoc */
|
26
|
-
|
22
|
+
getText() {
|
27
23
|
return Promise.resolve(this.text);
|
28
|
-
}
|
24
|
+
}
|
29
25
|
/** @inheritdoc */
|
30
|
-
|
31
|
-
|
26
|
+
getPlainText() {
|
27
|
+
const innerText = this.text;
|
32
28
|
return Promise.resolve(innerText ? innerText.replace(/\r\n|\r|\n/g, ' ').replace(/\s\s+/g, ' ').trim() : undefined);
|
33
|
-
}
|
29
|
+
}
|
34
30
|
/** @inheritdoc */
|
35
|
-
|
31
|
+
getInnerHTML() {
|
36
32
|
return Promise.resolve(this.sourceElement.nativeElement && this.sourceElement.nativeElement.innerHTML);
|
37
|
-
}
|
33
|
+
}
|
38
34
|
/** @inheritdoc */
|
39
|
-
|
35
|
+
click() {
|
40
36
|
this.sourceElement.nativeElement.click();
|
41
37
|
return Promise.resolve();
|
42
|
-
}
|
38
|
+
}
|
43
39
|
/** @inheritdoc */
|
44
|
-
|
40
|
+
isVisible() {
|
45
41
|
return Promise.resolve(this.sourceElement.nativeElement.style.display !== 'none' && this.sourceElement.nativeElement.style.visibility !== 'hidden');
|
46
|
-
}
|
42
|
+
}
|
47
43
|
/** @inheritdoc */
|
48
|
-
|
44
|
+
getAttribute(attributeName) {
|
49
45
|
return Promise.resolve(this.sourceElement.nativeElement && this.sourceElement.nativeElement.getAttribute(attributeName));
|
50
|
-
}
|
46
|
+
}
|
51
47
|
/** @inheritdoc */
|
52
|
-
|
48
|
+
mouseOver() {
|
53
49
|
this.sourceElement.nativeElement.mouseOver();
|
54
50
|
this.sourceElement.nativeElement.dispatchEvent(new Event('mouseover'));
|
55
51
|
return Promise.resolve();
|
56
|
-
}
|
52
|
+
}
|
57
53
|
/** @inheritdoc */
|
58
|
-
|
54
|
+
getValue() {
|
59
55
|
return Promise.resolve(this.sourceElement.nativeElement && this.sourceElement.nativeElement.value);
|
60
|
-
}
|
56
|
+
}
|
61
57
|
/** @inheritdoc */
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
_this.sourceElement.triggerEventHandler('keyup', { target: _this.sourceElement.nativeElement, key: key, preventDefault: function () { }, stopPropagation: function () { } });
|
58
|
+
setValue(input) {
|
59
|
+
this.sourceElement.triggerEventHandler('focus', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
60
|
+
input.split('').forEach((key) => {
|
61
|
+
this.sourceElement.triggerEventHandler('keydown', { target: this.sourceElement.nativeElement, key, preventDefault: () => { }, stopPropagation: () => { } });
|
62
|
+
this.sourceElement.triggerEventHandler('keypress', { target: this.sourceElement.nativeElement, key, preventDefault: () => { }, stopPropagation: () => { } });
|
63
|
+
this.sourceElement.triggerEventHandler('keyup', { target: this.sourceElement.nativeElement, key, preventDefault: () => { }, stopPropagation: () => { } });
|
69
64
|
});
|
70
65
|
this.sourceElement.nativeElement.value = input;
|
71
|
-
this.sourceElement.triggerEventHandler('input', { target: this.sourceElement.nativeElement, preventDefault:
|
72
|
-
this.sourceElement.triggerEventHandler('blur', { target: this.sourceElement.nativeElement, preventDefault:
|
66
|
+
this.sourceElement.triggerEventHandler('input', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
67
|
+
this.sourceElement.triggerEventHandler('blur', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
73
68
|
return Promise.resolve();
|
74
|
-
}
|
69
|
+
}
|
75
70
|
/** @inheritdoc */
|
76
|
-
|
77
|
-
this.sourceElement.triggerEventHandler('focus', { target: this.sourceElement.nativeElement, preventDefault:
|
71
|
+
clearValue() {
|
72
|
+
this.sourceElement.triggerEventHandler('focus', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
78
73
|
this.sourceElement.nativeElement.value = '';
|
79
|
-
this.sourceElement.triggerEventHandler('input', { target: this.sourceElement.nativeElement, preventDefault:
|
80
|
-
this.sourceElement.triggerEventHandler('blur', { target: this.sourceElement.nativeElement, preventDefault:
|
74
|
+
this.sourceElement.triggerEventHandler('input', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
75
|
+
this.sourceElement.triggerEventHandler('blur', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
81
76
|
return Promise.resolve();
|
82
|
-
}
|
83
|
-
|
84
|
-
}());
|
77
|
+
}
|
78
|
+
}
|
85
79
|
exports.O3rElement = O3rElement;
|
86
80
|
//# sourceMappingURL=element.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/core/angular/element.ts"],"names":[],"mappings":";;;AASA;;GAEG;AACH;
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/core/angular/element.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DebugElement,\n} from '@angular/core';\nimport {\n ElementProfile,\n} from '../element';\n\nexport { ElementProfile } from '../element';\n\n/**\n * Implementation dedicated to angular / TestBed.\n */\nexport class O3rElement implements ElementProfile {\n /** Angular element */\n public sourceElement: DebugElement;\n\n constructor(sourceElement: DebugElement | O3rElement) {\n this.sourceElement = sourceElement instanceof O3rElement ? sourceElement.sourceElement : sourceElement;\n }\n\n /**\n * Returns the text content of the DOM node.\n * Prioritizes .innerText, but fallbacks on .textContent in case the former is undefined in order\n * to support JSDOM.\n * @protected\n */\n protected get text(): string | undefined {\n const element = this.sourceElement.nativeElement;\n return element ? (element.innerText === undefined ? element.textContent : element.innerText) : undefined;\n }\n\n /** @inheritdoc */\n public getText() {\n return Promise.resolve(this.text);\n }\n\n /** @inheritdoc */\n public getPlainText() {\n const innerText = this.text;\n return Promise.resolve(innerText ? innerText.replace(/\\r\\n|\\r|\\n/g, ' ').replace(/\\s\\s+/g, ' ').trim() : undefined);\n }\n\n /** @inheritdoc */\n public getInnerHTML(): Promise<string | undefined> {\n return Promise.resolve(this.sourceElement.nativeElement && (this.sourceElement.nativeElement.innerHTML as string));\n }\n\n /** @inheritdoc */\n public click() {\n this.sourceElement.nativeElement.click();\n return Promise.resolve();\n }\n\n /** @inheritdoc */\n public isVisible() {\n return Promise.resolve(this.sourceElement.nativeElement.style.display !== 'none' && this.sourceElement.nativeElement.style.visibility !== 'hidden');\n }\n\n /** @inheritdoc */\n public getAttribute(attributeName: string) {\n return Promise.resolve(this.sourceElement.nativeElement && (this.sourceElement.nativeElement.getAttribute(attributeName) as string));\n }\n\n /** @inheritdoc */\n public mouseOver() {\n this.sourceElement.nativeElement.mouseOver();\n this.sourceElement.nativeElement.dispatchEvent(new Event('mouseover'));\n return Promise.resolve();\n }\n\n /** @inheritdoc */\n public getValue() {\n return Promise.resolve(this.sourceElement.nativeElement && (this.sourceElement.nativeElement.value as string));\n }\n\n /** @inheritdoc */\n public setValue(input: string) {\n this.sourceElement.triggerEventHandler('focus', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n input.split('').forEach((key) => {\n this.sourceElement.triggerEventHandler('keydown', { target: this.sourceElement.nativeElement, key, preventDefault: () => {}, stopPropagation: () => {} });\n this.sourceElement.triggerEventHandler('keypress', { target: this.sourceElement.nativeElement, key, preventDefault: () => {}, stopPropagation: () => {} });\n this.sourceElement.triggerEventHandler('keyup', { target: this.sourceElement.nativeElement, key, preventDefault: () => {}, stopPropagation: () => {} });\n });\n this.sourceElement.nativeElement.value = input;\n this.sourceElement.triggerEventHandler('input', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n this.sourceElement.triggerEventHandler('blur', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n\n return Promise.resolve();\n }\n\n /** @inheritdoc */\n public clearValue() {\n this.sourceElement.triggerEventHandler('focus', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n this.sourceElement.nativeElement.value = '';\n this.sourceElement.triggerEventHandler('input', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n this.sourceElement.triggerEventHandler('blur', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n return Promise.resolve();\n }\n}\n\n/**\n * Constructor of a O3rElement\n */\nexport type O3rElementConstructor<T extends ElementProfile> = new (sourceElement: DebugElement | O3rElement) => T;\n"]}
|
@@ -1,34 +1,30 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.O3rCheckboxElement = void 0;
|
4
|
-
|
5
|
-
var element_1 = require("../element");
|
4
|
+
const element_1 = require("../element");
|
6
5
|
/**
|
7
6
|
* Implementation dedicated to angular / TestBed.
|
8
7
|
*/
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
return _super.call(this, sourceElement) || this;
|
8
|
+
class O3rCheckboxElement extends element_1.O3rElement {
|
9
|
+
constructor(sourceElement) {
|
10
|
+
super(sourceElement);
|
13
11
|
}
|
14
12
|
/** @inheritDoc */
|
15
|
-
|
16
|
-
if (value === void 0) { value = true; }
|
13
|
+
check(value = true, _associatedLabel) {
|
17
14
|
if (this.sourceElement.nativeElement) {
|
18
15
|
this.sourceElement.nativeElement.checked = value;
|
19
16
|
}
|
20
|
-
this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault:
|
17
|
+
this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
21
18
|
return Promise.resolve();
|
22
|
-
}
|
19
|
+
}
|
23
20
|
/** @inheritDoc */
|
24
|
-
|
21
|
+
uncheck() {
|
25
22
|
return this.check(false);
|
26
|
-
}
|
23
|
+
}
|
27
24
|
/** @inheritDoc */
|
28
|
-
|
25
|
+
isChecked() {
|
29
26
|
return Promise.resolve(this.sourceElement.nativeElement && this.sourceElement.nativeElement.checked);
|
30
|
-
}
|
31
|
-
|
32
|
-
}(element_1.O3rElement));
|
27
|
+
}
|
28
|
+
}
|
33
29
|
exports.O3rCheckboxElement = O3rCheckboxElement;
|
34
30
|
//# sourceMappingURL=checkbox-element.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"checkbox-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/checkbox-element.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"checkbox-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/checkbox-element.ts"],"names":[],"mappings":";;;AAMA,wCAEoB;AAEpB;;GAEG;AACH,MAAa,kBAAmB,SAAQ,oBAAU;IAChD,YAAY,aAA2B;QACrC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvB,CAAC;IAED,kBAAkB;IACX,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,gBAA6B;QACtD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACpJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB;IACX,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,kBAAkB;IACX,SAAS;QACd,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC;CACF;AAxBD,gDAwBC","sourcesContent":["import {\n DebugElement,\n} from '@angular/core';\nimport {\n CheckboxElementProfile,\n} from '../../elements';\nimport {\n O3rElement,\n} from '../element';\n\n/**\n * Implementation dedicated to angular / TestBed.\n */\nexport class O3rCheckboxElement extends O3rElement implements CheckboxElementProfile {\n constructor(sourceElement: DebugElement) {\n super(sourceElement);\n }\n\n /** @inheritDoc */\n public check(value = true, _associatedLabel?: O3rElement) {\n if (this.sourceElement.nativeElement) {\n this.sourceElement.nativeElement.checked = value;\n }\n\n this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n return Promise.resolve();\n }\n\n /** @inheritDoc */\n public uncheck(): Promise<void> {\n return this.check(false);\n }\n\n /** @inheritDoc */\n public isChecked(): Promise<boolean> {\n return Promise.resolve(this.sourceElement.nativeElement && this.sourceElement.nativeElement.checked);\n }\n}\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
|
3
|
+
const tslib_1 = require("tslib");
|
4
4
|
tslib_1.__exportStar(require("./checkbox-element"), exports);
|
5
5
|
tslib_1.__exportStar(require("./radio-element"), exports);
|
6
6
|
tslib_1.__exportStar(require("./select-element"), exports);
|
@@ -1,34 +1,30 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.O3rRadioElement = void 0;
|
4
|
-
|
5
|
-
var element_1 = require("../element");
|
4
|
+
const element_1 = require("../element");
|
6
5
|
/**
|
7
6
|
* Implementation dedicated to angular / TestBed.
|
8
7
|
*/
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
return _super.call(this, sourceElement) || this;
|
8
|
+
class O3rRadioElement extends element_1.O3rElement {
|
9
|
+
constructor(sourceElement) {
|
10
|
+
super(sourceElement);
|
13
11
|
}
|
14
12
|
/** @inheritDoc */
|
15
|
-
|
16
|
-
if (value === void 0) { value = true; }
|
13
|
+
check(value = true) {
|
17
14
|
if (this.sourceElement.nativeElement) {
|
18
15
|
this.sourceElement.nativeElement.checked = value;
|
19
16
|
}
|
20
|
-
this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault:
|
17
|
+
this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
21
18
|
return Promise.resolve();
|
22
|
-
}
|
19
|
+
}
|
23
20
|
/** @inheritDoc */
|
24
|
-
|
21
|
+
uncheck() {
|
25
22
|
return this.check(false);
|
26
|
-
}
|
23
|
+
}
|
27
24
|
/** @inheritDoc */
|
28
|
-
|
25
|
+
isChecked() {
|
29
26
|
return Promise.resolve(this.sourceElement.nativeElement && this.sourceElement.nativeElement.checked);
|
30
|
-
}
|
31
|
-
|
32
|
-
}(element_1.O3rElement));
|
27
|
+
}
|
28
|
+
}
|
33
29
|
exports.O3rRadioElement = O3rRadioElement;
|
34
30
|
//# sourceMappingURL=radio-element.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"radio-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/radio-element.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"radio-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/radio-element.ts"],"names":[],"mappings":";;;AAMA,wCAEoB;AAEpB;;GAEG;AACH,MAAa,eAAgB,SAAQ,oBAAU;IAC7C,YAAY,aAA2B;QACrC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvB,CAAC;IAED,kBAAkB;IACX,KAAK,CAAC,KAAK,GAAG,IAAI;QACvB,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACpJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB;IACX,OAAO;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,kBAAkB;IACX,SAAS;QACd,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC;CACF;AAxBD,0CAwBC","sourcesContent":["import {\n DebugElement,\n} from '@angular/core';\nimport {\n RadioElementProfile,\n} from '../../elements';\nimport {\n O3rElement,\n} from '../element';\n\n/**\n * Implementation dedicated to angular / TestBed.\n */\nexport class O3rRadioElement extends O3rElement implements RadioElementProfile {\n constructor(sourceElement: DebugElement) {\n super(sourceElement);\n }\n\n /** @inheritDoc */\n public check(value = true) {\n if (this.sourceElement.nativeElement) {\n this.sourceElement.nativeElement.checked = value;\n }\n\n this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n return Promise.resolve();\n }\n\n /** @inheritDoc */\n public uncheck(): Promise<void> {\n return this.check(false);\n }\n\n /** @inheritDoc */\n public isChecked(): Promise<boolean> {\n return Promise.resolve(this.sourceElement.nativeElement && this.sourceElement.nativeElement.checked);\n }\n}\n"]}
|
@@ -1,60 +1,39 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.O3rSelectElement = void 0;
|
4
|
-
|
5
|
-
|
6
|
-
var element_1 = require("../element");
|
4
|
+
const platform_browser_1 = require("@angular/platform-browser");
|
5
|
+
const element_1 = require("../element");
|
7
6
|
/**
|
8
7
|
* Implementation dedicated to angular / TestBed.
|
9
8
|
*/
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
return _super.call(this, sourceElement) || this;
|
9
|
+
class O3rSelectElement extends element_1.O3rElement {
|
10
|
+
constructor(sourceElement) {
|
11
|
+
super(sourceElement);
|
14
12
|
}
|
15
13
|
/** @inheritdoc */
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
return [4 /*yield*/, this.setValue(value)];
|
29
|
-
case 2:
|
30
|
-
_a.sent();
|
31
|
-
this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: function () { }, stopPropagation: function () { } });
|
32
|
-
return [3 /*break*/, 4];
|
33
|
-
case 3: return [2 /*return*/, Promise.reject(new Error("Option with index ".concat(index, " not found in select element.")))];
|
34
|
-
case 4: return [2 /*return*/];
|
35
|
-
}
|
36
|
-
});
|
37
|
-
});
|
38
|
-
};
|
14
|
+
async selectByIndex(index, _timeout) {
|
15
|
+
const options = this.sourceElement.queryAll(platform_browser_1.By.css('option'));
|
16
|
+
if (options[index]) {
|
17
|
+
const option = new element_1.O3rElement(options[index]);
|
18
|
+
const value = await option.getValue();
|
19
|
+
await this.setValue(value);
|
20
|
+
this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
return Promise.reject(new Error(`Option with index ${index} not found in select element.`));
|
24
|
+
}
|
25
|
+
}
|
39
26
|
/** @inheritdoc */
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
return [2 /*return*/, this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: function () { }, stopPropagation: function () { } })];
|
52
|
-
case 2: return [2 /*return*/, Promise.reject(new Error("Option with value '".concat(value, "' not found in select element.")))];
|
53
|
-
}
|
54
|
-
});
|
55
|
-
});
|
56
|
-
};
|
57
|
-
return O3rSelectElement;
|
58
|
-
}(element_1.O3rElement));
|
27
|
+
async selectByValue(value, _timeout) {
|
28
|
+
const option = this.sourceElement.query(platform_browser_1.By.css(`option[value='${value}']`));
|
29
|
+
if (option) {
|
30
|
+
await this.setValue(option.nativeElement.value);
|
31
|
+
return this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => { }, stopPropagation: () => { } });
|
32
|
+
}
|
33
|
+
else {
|
34
|
+
return Promise.reject(new Error(`Option with value '${value}' not found in select element.`));
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
59
38
|
exports.O3rSelectElement = O3rSelectElement;
|
60
39
|
//# sourceMappingURL=select-element.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"select-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/select-element.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"select-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/select-element.ts"],"names":[],"mappings":";;;AAGA,gEAEmC;AAInC,wCAEoB;AAEpB;;GAEG;AACH,MAAa,gBAAiB,SAAQ,oBAAU;IAC9C,YAAY,aAAwC;QAClD,KAAK,CAAC,aAAa,CAAC,CAAC;IACvB,CAAC;IAED,kBAAkB;IACX,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAiB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,qBAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,oBAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAEtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QACtJ,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,KAAK,+BAA+B,CAAC,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,kBAAkB;IACX,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,QAAiB;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,qBAAE,CAAC,GAAG,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QAC7J,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,KAAK,gCAAgC,CAAC,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;CACF;AA7BD,4CA6BC","sourcesContent":["import {\n DebugElement,\n} from '@angular/core';\nimport {\n By,\n} from '@angular/platform-browser';\nimport {\n SelectElementProfile,\n} from '../../elements';\nimport {\n O3rElement,\n} from '../element';\n\n/**\n * Implementation dedicated to angular / TestBed.\n */\nexport class O3rSelectElement extends O3rElement implements SelectElementProfile {\n constructor(sourceElement: DebugElement | O3rElement) {\n super(sourceElement);\n }\n\n /** @inheritdoc */\n public async selectByIndex(index: number, _timeout?: number) {\n const options = this.sourceElement.queryAll(By.css('option'));\n if (options[index]) {\n const option = new O3rElement(options[index]);\n const value = await option.getValue();\n\n await this.setValue(value);\n this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n } else {\n return Promise.reject(new Error(`Option with index ${index} not found in select element.`));\n }\n }\n\n /** @inheritdoc */\n public async selectByValue(value: string, _timeout?: number) {\n const option = this.sourceElement.query(By.css(`option[value='${value}']`));\n if (option) {\n await this.setValue(option.nativeElement.value);\n return this.sourceElement.triggerEventHandler('change', { target: this.sourceElement.nativeElement, preventDefault: () => {}, stopPropagation: () => {} });\n } else {\n return Promise.reject(new Error(`Option with value '${value}' not found in select element.`));\n }\n }\n}\n"]}
|
@@ -1,86 +1,82 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.O3rSliderElement = void 0;
|
4
|
-
|
5
|
-
|
6
|
-
var element_1 = require("../element");
|
4
|
+
const platform_browser_1 = require("@angular/platform-browser");
|
5
|
+
const element_1 = require("../element");
|
7
6
|
/**
|
8
7
|
* Implementation dedicated to angular / TestBed.
|
9
8
|
*/
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
_this.thumbSelector = thumbSelector;
|
16
|
-
return _this;
|
9
|
+
class O3rSliderElement extends element_1.O3rElement {
|
10
|
+
constructor(sourceElement, trackSelector, thumbSelector) {
|
11
|
+
super(sourceElement);
|
12
|
+
this.trackSelector = trackSelector;
|
13
|
+
this.thumbSelector = thumbSelector;
|
17
14
|
}
|
18
|
-
|
15
|
+
getInputElement() {
|
19
16
|
try {
|
20
|
-
|
17
|
+
const subElement = this.sourceElement.query(platform_browser_1.By.css('input[type="range"]'));
|
21
18
|
return subElement || this.sourceElement;
|
22
19
|
}
|
23
|
-
catch
|
20
|
+
catch {
|
24
21
|
return this.sourceElement;
|
25
22
|
}
|
26
|
-
}
|
27
|
-
|
23
|
+
}
|
24
|
+
getTrackElement() {
|
28
25
|
if (!this.trackSelector) {
|
29
26
|
return this.sourceElement;
|
30
27
|
}
|
31
28
|
try {
|
32
|
-
|
29
|
+
const subElement = this.sourceElement.query(platform_browser_1.By.css(this.trackSelector));
|
33
30
|
return subElement || this.sourceElement;
|
34
31
|
}
|
35
|
-
catch
|
32
|
+
catch {
|
36
33
|
return this.sourceElement;
|
37
34
|
}
|
38
|
-
}
|
39
|
-
|
35
|
+
}
|
36
|
+
getThumbElement() {
|
40
37
|
if (!this.thumbSelector) {
|
41
38
|
return this.sourceElement;
|
42
39
|
}
|
43
40
|
try {
|
44
|
-
|
41
|
+
const subElement = this.sourceElement.query(platform_browser_1.By.css(this.thumbSelector));
|
45
42
|
return subElement || this.sourceElement;
|
46
43
|
}
|
47
|
-
catch
|
44
|
+
catch {
|
48
45
|
return this.sourceElement;
|
49
46
|
}
|
50
|
-
}
|
47
|
+
}
|
51
48
|
/**
|
52
49
|
* Set the value in an input.
|
53
50
|
* inspired from https://github.com/angular/components/blob/main/src/material/slider/slider.spec.ts#L1838
|
54
51
|
* @param value
|
55
52
|
*/
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
53
|
+
setValue(value) {
|
54
|
+
const trackNativeElement = this.getTrackElement().nativeElement;
|
55
|
+
const thumbNativeElement = this.getThumbElement().nativeElement;
|
56
|
+
const inputNativeElement = this.getInputElement().nativeElement;
|
57
|
+
const thumbBoundingBox = thumbNativeElement.getBoundingClientRect();
|
58
|
+
const startX = thumbBoundingBox.x + thumbBoundingBox.width / 2;
|
59
|
+
const startY = thumbBoundingBox.y + thumbBoundingBox.height / 2;
|
60
|
+
const max = +(inputNativeElement.max === '' ? '100' : inputNativeElement.max);
|
61
|
+
const min = +(inputNativeElement.min === '' ? '0' : inputNativeElement.min);
|
62
|
+
const sanitizeValue = Math.max(min, Math.min(+value, max));
|
63
|
+
const percent = (sanitizeValue - min) / (max - min);
|
64
|
+
const { top, left, width, height } = trackNativeElement.getBoundingClientRect();
|
65
|
+
const endX = width * percent + left;
|
66
|
+
const endY = top + height / 2;
|
70
67
|
thumbNativeElement.dispatchEvent(new MouseEvent('mousedown', { clientX: startX, clientY: startY }));
|
71
68
|
trackNativeElement.focus();
|
72
69
|
trackNativeElement.dispatchEvent(new MouseEvent('mousemove', { clientX: endX, clientY: endY }));
|
73
|
-
inputNativeElement.value =
|
70
|
+
inputNativeElement.value = `${sanitizeValue}`;
|
74
71
|
inputNativeElement.dispatchEvent(new Event('input'));
|
75
72
|
trackNativeElement.dispatchEvent(new MouseEvent('mouseup', { clientX: endX, clientY: endY }));
|
76
73
|
inputNativeElement.dispatchEvent(new Event('change'));
|
77
74
|
return Promise.resolve();
|
78
|
-
}
|
75
|
+
}
|
79
76
|
/** @inheritdoc */
|
80
|
-
|
77
|
+
getValue() {
|
81
78
|
return (new element_1.O3rElement(this.getInputElement())).getValue();
|
82
|
-
}
|
83
|
-
|
84
|
-
}(element_1.O3rElement));
|
79
|
+
}
|
80
|
+
}
|
85
81
|
exports.O3rSliderElement = O3rSliderElement;
|
86
82
|
//# sourceMappingURL=slider-element.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slider-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/slider-element.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"slider-element.js","sourceRoot":"","sources":["../../../../src/core/angular/elements/slider-element.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DebugElement,\n} from '@angular/core';\nimport {\n By,\n} from '@angular/platform-browser';\nimport type {\n SliderElementProfile,\n} from '../../elements';\nimport {\n O3rElement,\n} from '../element';\n\n/**\n * Implementation dedicated to angular / TestBed.\n */\nexport class O3rSliderElement extends O3rElement implements SliderElementProfile {\n constructor(\n sourceElement: DebugElement,\n private readonly trackSelector?: string,\n private readonly thumbSelector?: string\n ) {\n super(sourceElement);\n }\n\n private getInputElement() {\n try {\n const subElement = this.sourceElement.query(By.css('input[type=\"range\"]'));\n return subElement || this.sourceElement;\n } catch {\n return this.sourceElement;\n }\n }\n\n private getTrackElement() {\n if (!this.trackSelector) {\n return this.sourceElement;\n }\n try {\n const subElement = this.sourceElement.query(By.css(this.trackSelector));\n return subElement || this.sourceElement;\n } catch {\n return this.sourceElement;\n }\n }\n\n private getThumbElement() {\n if (!this.thumbSelector) {\n return this.sourceElement;\n }\n try {\n const subElement = this.sourceElement.query(By.css(this.thumbSelector));\n return subElement || this.sourceElement;\n } catch {\n return this.sourceElement;\n }\n }\n\n /**\n * Set the value in an input.\n * inspired from https://github.com/angular/components/blob/main/src/material/slider/slider.spec.ts#L1838\n * @param value\n */\n public setValue(value: string): Promise<void> {\n const trackNativeElement = this.getTrackElement().nativeElement;\n const thumbNativeElement = this.getThumbElement().nativeElement;\n const inputNativeElement = this.getInputElement().nativeElement;\n const thumbBoundingBox: DOMRect = thumbNativeElement.getBoundingClientRect();\n const startX = thumbBoundingBox.x + thumbBoundingBox.width / 2;\n const startY = thumbBoundingBox.y + thumbBoundingBox.height / 2;\n const max = +(inputNativeElement.max === '' ? '100' : inputNativeElement.max);\n const min = +(inputNativeElement.min === '' ? '0' : inputNativeElement.min);\n const sanitizeValue = Math.max(min, Math.min(+value, max));\n const percent = (sanitizeValue - min) / (max - min);\n const { top, left, width, height } = trackNativeElement.getBoundingClientRect() as DOMRect;\n const endX = width * percent + left;\n const endY = top + height / 2;\n thumbNativeElement.dispatchEvent(new MouseEvent('mousedown', { clientX: startX, clientY: startY }));\n trackNativeElement.focus();\n trackNativeElement.dispatchEvent(new MouseEvent('mousemove', { clientX: endX, clientY: endY }));\n inputNativeElement.value = `${sanitizeValue}`;\n inputNativeElement.dispatchEvent(new Event('input'));\n trackNativeElement.dispatchEvent(new MouseEvent('mouseup', { clientX: endX, clientY: endY }));\n inputNativeElement.dispatchEvent(new Event('change'));\n return Promise.resolve();\n }\n\n /** @inheritdoc */\n public getValue() {\n return (new O3rElement(this.getInputElement())).getValue();\n }\n}\n"]}
|
package/core/angular/group.js
CHANGED
@@ -4,23 +4,18 @@ exports.O3rGroup = void 0;
|
|
4
4
|
/**
|
5
5
|
* Implementation dedicated to angular / TestBed.
|
6
6
|
*/
|
7
|
-
|
8
|
-
|
7
|
+
class O3rGroup {
|
8
|
+
/** @inheritDoc */
|
9
|
+
get items() {
|
10
|
+
return this.sourceElement;
|
11
|
+
}
|
12
|
+
constructor(sourceElement) {
|
9
13
|
this.sourceElement = sourceElement;
|
10
14
|
}
|
11
|
-
Object.defineProperty(O3rGroup.prototype, "items", {
|
12
|
-
/** @inheritDoc */
|
13
|
-
get: function () {
|
14
|
-
return this.sourceElement;
|
15
|
-
},
|
16
|
-
enumerable: false,
|
17
|
-
configurable: true
|
18
|
-
});
|
19
15
|
/** @inheritDoc */
|
20
|
-
|
16
|
+
isValidGroup() {
|
21
17
|
return Promise.resolve(true);
|
22
|
-
}
|
23
|
-
|
24
|
-
}());
|
18
|
+
}
|
19
|
+
}
|
25
20
|
exports.O3rGroup = O3rGroup;
|
26
21
|
//# sourceMappingURL=group.js.map
|