haya-select 1.0.89 → 1.0.91

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.
@@ -0,0 +1,39 @@
1
+ /** @typedef {{systemTest: object, testId: string}} HayaSelectSystemTestHelperOptions */
2
+ /**
3
+ * System test helper for interacting with HayaSelect instances.
4
+ */
5
+ export default class HayaSelectSystemTestHelper {
6
+ /** @param {HayaSelectSystemTestHelperOptions} options */
7
+ constructor(options: HayaSelectSystemTestHelperOptions);
8
+ systemTest: any;
9
+ testId: string;
10
+ rootSelector: string;
11
+ componentSelector: string;
12
+ selectContainerSelector: string;
13
+ searchInputSelector: string;
14
+ /** @returns {Promise<void>} */
15
+ open(): Promise<void>;
16
+ /** @returns {Promise<void>} */
17
+ close(): Promise<void>;
18
+ /** @returns {Promise<boolean>} */
19
+ isOpen(): Promise<boolean>;
20
+ /** @returns {Promise<string>} */
21
+ optionsContainerSelector(): Promise<string>;
22
+ _optionsContainerSelector: any;
23
+ /** @returns {Promise<string[]>} */
24
+ optionTexts(): Promise<string[]>;
25
+ /**
26
+ * @param {{index?: number, text?: string, value?: string|number}} criteria
27
+ * @returns {Promise<void>}
28
+ */
29
+ selectOption({ index, text, value, ...restArgs }?: {
30
+ index?: number;
31
+ text?: string;
32
+ value?: string | number;
33
+ }, ...args: any[]): Promise<void>;
34
+ }
35
+ export type HayaSelectSystemTestHelperOptions = {
36
+ systemTest: object;
37
+ testId: string;
38
+ };
39
+ //# sourceMappingURL=system-test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-test-helpers.d.ts","sourceRoot":"","sources":["../src/system-test-helpers.js"],"names":[],"mappings":"AAEA,wFAAwF;AAExF;;GAEG;AACH;IACE,yDAAyD;IACzD,qBADY,iCAAiC,EAmB5C;IANC,gBAA4B;IAC5B,eAAoB;IACpB,qBAA+C;IAC/C,0BAA8E;IAC9E,gCAAqF;IACrF,4BAAkF;IAGpF,+BAA+B;IAC/B,QADc,OAAO,CAAC,IAAI,CAAC,CAI1B;IAED,+BAA+B;IAC/B,SADc,OAAO,CAAC,IAAI,CAAC,CAU1B;IAED,kCAAkC;IAClC,UADc,OAAO,CAAC,OAAO,CAAC,CAO7B;IAED,iCAAiC;IACjC,4BADc,OAAO,CAAC,MAAM,CAAC,CAe5B;IAHC,+BAA+E;IAKjF,mCAAmC;IACnC,eADc,OAAO,CAAC,MAAM,EAAE,CAAC,CAM9B;IAED;;;OAGG;IACH,mDAHW;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAC,MAAM,CAAA;KAAC,mBACpD,OAAO,CAAC,IAAI,CAAC,CAmDzB;CACF;gDArIa;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC"}
@@ -0,0 +1,108 @@
1
+ import waitFor from "awaitery/build/wait-for.js";
2
+ /** @typedef {{systemTest: object, testId: string}} HayaSelectSystemTestHelperOptions */
3
+ /**
4
+ * System test helper for interacting with HayaSelect instances.
5
+ */
6
+ export default class HayaSelectSystemTestHelper {
7
+ /** @param {HayaSelectSystemTestHelperOptions} options */
8
+ constructor(options) {
9
+ if (!options) {
10
+ throw new Error(`Expected options for HayaSelectSystemTestHelper, got: ${options}`);
11
+ }
12
+ const { systemTest, testId, ...restArgs } = options;
13
+ const extraKeys = Object.keys(restArgs);
14
+ if (extraKeys.length > 0) {
15
+ throw new Error(`Unexpected options for HayaSelectSystemTestHelper: ${extraKeys.join(", ")}`);
16
+ }
17
+ this.systemTest = systemTest;
18
+ this.testId = testId;
19
+ this.rootSelector = `[data-testid='${testId}']`;
20
+ this.componentSelector = `${this.rootSelector} [data-component='haya-select']`;
21
+ this.selectContainerSelector = `${this.rootSelector} [data-class='select-container']`;
22
+ this.searchInputSelector = `${this.rootSelector} [data-class='search-text-input']`;
23
+ }
24
+ /** @returns {Promise<void>} */
25
+ async open() {
26
+ await this.systemTest.click(this.selectContainerSelector);
27
+ await this.systemTest.find(this.searchInputSelector);
28
+ }
29
+ /** @returns {Promise<void>} */
30
+ async close() {
31
+ await this.systemTest.click(this.selectContainerSelector);
32
+ await waitFor({ timeout: 5000 }, async () => {
33
+ const searchInputs = await this.systemTest.all(this.searchInputSelector, { timeout: 0, visible: false });
34
+ if (searchInputs.length > 0) {
35
+ throw new Error("Search input is still visible");
36
+ }
37
+ });
38
+ }
39
+ /** @returns {Promise<boolean>} */
40
+ async isOpen() {
41
+ const scoundrel = await this.systemTest.getScoundrelClient();
42
+ return await scoundrel.evalResult(`
43
+ return Boolean(document.querySelector(${JSON.stringify(this.searchInputSelector)}))
44
+ `);
45
+ }
46
+ /** @returns {Promise<string>} */
47
+ async optionsContainerSelector() {
48
+ if (this._optionsContainerSelector)
49
+ return this._optionsContainerSelector;
50
+ const scoundrel = await this.systemTest.getScoundrelClient();
51
+ const selector = await scoundrel.evalResult(`
52
+ const root = document.querySelector(${JSON.stringify(this.componentSelector)}) ||
53
+ document.querySelector(${JSON.stringify(this.rootSelector)})
54
+ const id = root?.dataset?.id
55
+ return id ? "[data-class='options-container'][data-id='" + id + "']" : null
56
+ `);
57
+ this._optionsContainerSelector = selector || "[data-class='options-container']";
58
+ return this._optionsContainerSelector;
59
+ }
60
+ /** @returns {Promise<string[]>} */
61
+ async optionTexts() {
62
+ const optionsContainerSelector = await this.optionsContainerSelector();
63
+ const options = await this.systemTest.all(`${optionsContainerSelector} [data-class='select-option']`, { useBaseSelector: false });
64
+ return await Promise.all(options.map(async (option) => (await option.getText()).trim()));
65
+ }
66
+ /**
67
+ * @param {{index?: number, text?: string, value?: string|number}} criteria
68
+ * @returns {Promise<void>}
69
+ */
70
+ async selectOption({ index, text, value, ...restArgs } = {}) {
71
+ if (arguments.length === 0) {
72
+ throw new Error("Expected criteria for selectOption, got: undefined");
73
+ }
74
+ const extraKeys = Object.keys(restArgs);
75
+ if (extraKeys.length > 0) {
76
+ throw new Error(`Unexpected selectOption criteria: ${extraKeys.join(", ")}`);
77
+ }
78
+ if (typeof value != "undefined") {
79
+ const optionsContainerSelector = await this.optionsContainerSelector();
80
+ const option = await this.systemTest.find(`${optionsContainerSelector} [data-class='select-option'][data-value='${value}']`, { useBaseSelector: false });
81
+ await this.systemTest.click(option);
82
+ return;
83
+ }
84
+ if (typeof index == "number") {
85
+ const optionsContainerSelector = await this.optionsContainerSelector();
86
+ const options = await this.systemTest.all(`${optionsContainerSelector} [data-class='select-option']`, { useBaseSelector: false });
87
+ const option = options[index];
88
+ if (!option)
89
+ throw new Error(`No option at index: ${index}`);
90
+ await this.systemTest.click(option);
91
+ return;
92
+ }
93
+ if (text) {
94
+ const optionsContainerSelector = await this.optionsContainerSelector();
95
+ const options = await this.systemTest.all(`${optionsContainerSelector} [data-class='select-option']`, { useBaseSelector: false });
96
+ for (const option of options) {
97
+ const optionText = (await option.getText()).trim();
98
+ if (optionText === text) {
99
+ await this.systemTest.click(option);
100
+ return;
101
+ }
102
+ }
103
+ throw new Error(`No option found with text: ${text}`);
104
+ }
105
+ throw new Error("Expected value, text, or index when selecting an option");
106
+ }
107
+ }
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLXRlc3QtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zeXN0ZW0tdGVzdC1oZWxwZXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLDRCQUE0QixDQUFBO0FBRWhELHdGQUF3RjtBQUV4Rjs7R0FFRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sMEJBQTBCO0lBQzdDLHlEQUF5RDtJQUN6RCxZQUFZLE9BQU87UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUNyRixDQUFDO1FBRUQsTUFBTSxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxRQUFRLEVBQUMsR0FBRyxPQUFPLENBQUE7UUFDakQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUV2QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDL0YsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLE1BQU0sSUFBSSxDQUFBO1FBQy9DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLGlDQUFpQyxDQUFBO1FBQzlFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLGtDQUFrQyxDQUFBO1FBQ3JGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLG1DQUFtQyxDQUFBO0lBQ3BG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SSxFQUFFLENBQUM7WUFDVCxNQUFNLHdCQUF3QixHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUE7WUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHdCQUF3QiwrQkFBK0IsRUFBRSxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFBO1lBRS9ILEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtnQkFFbEQsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7b0JBQ25DLE9BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZELENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUE7SUFDNUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdhaXRGb3IgZnJvbSBcImF3YWl0ZXJ5L2J1aWxkL3dhaXQtZm9yLmpzXCJcblxuLyoqIEB0eXBlZGVmIHt7c3lzdGVtVGVzdDogb2JqZWN0LCB0ZXN0SWQ6IHN0cmluZ319IEhheWFTZWxlY3RTeXN0ZW1UZXN0SGVscGVyT3B0aW9ucyAqL1xuXG4vKipcbiAqIFN5c3RlbSB0ZXN0IGhlbHBlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIYXlhU2VsZWN0IGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGF5YVNlbGVjdFN5c3RlbVRlc3RIZWxwZXIge1xuICAvKiogQHBhcmFtIHtIYXlhU2VsZWN0U3lzdGVtVGVzdEhlbHBlck9wdGlvbnN9IG9wdGlvbnMgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBvcHRpb25zIGZvciBIYXlhU2VsZWN0U3lzdGVtVGVzdEhlbHBlciwgZ290OiAke29wdGlvbnN9YClcbiAgICB9XG5cbiAgICBjb25zdCB7c3lzdGVtVGVzdCwgdGVzdElkLCAuLi5yZXN0QXJnc30gPSBvcHRpb25zXG4gICAgY29uc3QgZXh0cmFLZXlzID0gT2JqZWN0LmtleXMocmVzdEFyZ3MpXG5cbiAgICBpZiAoZXh0cmFLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBvcHRpb25zIGZvciBIYXlhU2VsZWN0U3lzdGVtVGVzdEhlbHBlcjogJHtleHRyYUtleXMuam9pbihcIiwgXCIpfWApXG4gICAgfVxuXG4gICAgdGhpcy5zeXN0ZW1UZXN0ID0gc3lzdGVtVGVzdFxuICAgIHRoaXMudGVzdElkID0gdGVzdElkXG4gICAgdGhpcy5yb290U2VsZWN0b3IgPSBgW2RhdGEtdGVzdGlkPScke3Rlc3RJZH0nXWBcbiAgICB0aGlzLmNvbXBvbmVudFNlbGVjdG9yID0gYCR7dGhpcy5yb290U2VsZWN0b3J9IFtkYXRhLWNvbXBvbmVudD0naGF5YS1zZWxlY3QnXWBcbiAgICB0aGlzLnNlbGVjdENvbnRhaW5lclNlbGVjdG9yID0gYCR7dGhpcy5yb290U2VsZWN0b3J9IFtkYXRhLWNsYXNzPSdzZWxlY3QtY29udGFpbmVyJ11gXG4gICAgdGhpcy5zZWFyY2hJbnB1dFNlbGVjdG9yID0gYCR7dGhpcy5yb290U2VsZWN0b3J9IFtkYXRhLWNsYXNzPSdzZWFyY2gtdGV4dC1pbnB1dCddYFxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBhc3luYyBvcGVuKCkge1xuICAgIGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5jbGljayh0aGlzLnNlbGVjdENvbnRhaW5lclNlbGVjdG9yKVxuICAgIGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5maW5kKHRoaXMuc2VhcmNoSW5wdXRTZWxlY3RvcilcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgYXN5bmMgY2xvc2UoKSB7XG4gICAgYXdhaXQgdGhpcy5zeXN0ZW1UZXN0LmNsaWNrKHRoaXMuc2VsZWN0Q29udGFpbmVyU2VsZWN0b3IpXG4gICAgYXdhaXQgd2FpdEZvcih7dGltZW91dDogNTAwMH0sIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaElucHV0cyA9IGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5hbGwodGhpcy5zZWFyY2hJbnB1dFNlbGVjdG9yLCB7dGltZW91dDogMCwgdmlzaWJsZTogZmFsc2V9KVxuXG4gICAgICBpZiAoc2VhcmNoSW5wdXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU2VhcmNoIGlucHV0IGlzIHN0aWxsIHZpc2libGVcIilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAqL1xuICBhc3luYyBpc09wZW4oKSB7XG4gICAgY29uc3Qgc2NvdW5kcmVsID0gYXdhaXQgdGhpcy5zeXN0ZW1UZXN0LmdldFNjb3VuZHJlbENsaWVudCgpXG5cbiAgICByZXR1cm4gYXdhaXQgc2NvdW5kcmVsLmV2YWxSZXN1bHQoYFxuICAgICAgcmV0dXJuIEJvb2xlYW4oZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigke0pTT04uc3RyaW5naWZ5KHRoaXMuc2VhcmNoSW5wdXRTZWxlY3Rvcil9KSlcbiAgICBgKVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59ICovXG4gIGFzeW5jIG9wdGlvbnNDb250YWluZXJTZWxlY3RvcigpIHtcbiAgICBpZiAodGhpcy5fb3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yKSByZXR1cm4gdGhpcy5fb3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yXG5cbiAgICBjb25zdCBzY291bmRyZWwgPSBhd2FpdCB0aGlzLnN5c3RlbVRlc3QuZ2V0U2NvdW5kcmVsQ2xpZW50KClcbiAgICBjb25zdCBzZWxlY3RvciA9IGF3YWl0IHNjb3VuZHJlbC5ldmFsUmVzdWx0KGBcbiAgICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCR7SlNPTi5zdHJpbmdpZnkodGhpcy5jb21wb25lbnRTZWxlY3Rvcil9KSB8fFxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCR7SlNPTi5zdHJpbmdpZnkodGhpcy5yb290U2VsZWN0b3IpfSlcbiAgICAgIGNvbnN0IGlkID0gcm9vdD8uZGF0YXNldD8uaWRcbiAgICAgIHJldHVybiBpZCA/IFwiW2RhdGEtY2xhc3M9J29wdGlvbnMtY29udGFpbmVyJ11bZGF0YS1pZD0nXCIgKyBpZCArIFwiJ11cIiA6IG51bGxcbiAgICBgKVxuXG4gICAgdGhpcy5fb3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yID0gc2VsZWN0b3IgfHwgXCJbZGF0YS1jbGFzcz0nb3B0aW9ucy1jb250YWluZXInXVwiXG5cbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yXG4gIH1cblxuICAvKiogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fSAqL1xuICBhc3luYyBvcHRpb25UZXh0cygpIHtcbiAgICBjb25zdCBvcHRpb25zQ29udGFpbmVyU2VsZWN0b3IgPSBhd2FpdCB0aGlzLm9wdGlvbnNDb250YWluZXJTZWxlY3RvcigpXG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5hbGwoYCR7b3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yfSBbZGF0YS1jbGFzcz0nc2VsZWN0LW9wdGlvbiddYCwge3VzZUJhc2VTZWxlY3RvcjogZmFsc2V9KVxuXG4gICAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKG9wdGlvbnMubWFwKGFzeW5jIChvcHRpb24pID0+IChhd2FpdCBvcHRpb24uZ2V0VGV4dCgpKS50cmltKCkpKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7e2luZGV4PzogbnVtYmVyLCB0ZXh0Pzogc3RyaW5nLCB2YWx1ZT86IHN0cmluZ3xudW1iZXJ9fSBjcml0ZXJpYVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHNlbGVjdE9wdGlvbih7aW5kZXgsIHRleHQsIHZhbHVlLCAuLi5yZXN0QXJnc30gPSB7fSkge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3RlZCBjcml0ZXJpYSBmb3Igc2VsZWN0T3B0aW9uLCBnb3Q6IHVuZGVmaW5lZFwiKVxuICAgIH1cblxuICAgIGNvbnN0IGV4dHJhS2V5cyA9IE9iamVjdC5rZXlzKHJlc3RBcmdzKVxuXG4gICAgaWYgKGV4dHJhS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgc2VsZWN0T3B0aW9uIGNyaXRlcmlhOiAke2V4dHJhS2V5cy5qb2luKFwiLCBcIil9YClcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnNDb250YWluZXJTZWxlY3RvciA9IGF3YWl0IHRoaXMub3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yKClcbiAgICAgIGNvbnN0IG9wdGlvbiA9IGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5maW5kKFxuICAgICAgICBgJHtvcHRpb25zQ29udGFpbmVyU2VsZWN0b3J9IFtkYXRhLWNsYXNzPSdzZWxlY3Qtb3B0aW9uJ11bZGF0YS12YWx1ZT0nJHt2YWx1ZX0nXWAsXG4gICAgICAgIHt1c2VCYXNlU2VsZWN0b3I6IGZhbHNlfVxuICAgICAgKVxuICAgICAgYXdhaXQgdGhpcy5zeXN0ZW1UZXN0LmNsaWNrKG9wdGlvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5kZXggPT0gXCJudW1iZXJcIikge1xuICAgICAgY29uc3Qgb3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yID0gYXdhaXQgdGhpcy5vcHRpb25zQ29udGFpbmVyU2VsZWN0b3IoKVxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5hbGwoYCR7b3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yfSBbZGF0YS1jbGFzcz0nc2VsZWN0LW9wdGlvbiddYCwge3VzZUJhc2VTZWxlY3RvcjogZmFsc2V9KVxuICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9uc1tpbmRleF1cblxuICAgICAgaWYgKCFvcHRpb24pIHRocm93IG5ldyBFcnJvcihgTm8gb3B0aW9uIGF0IGluZGV4OiAke2luZGV4fWApXG5cbiAgICAgIGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5jbGljayhvcHRpb24pXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGV4dCkge1xuICAgICAgY29uc3Qgb3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yID0gYXdhaXQgdGhpcy5vcHRpb25zQ29udGFpbmVyU2VsZWN0b3IoKVxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuc3lzdGVtVGVzdC5hbGwoYCR7b3B0aW9uc0NvbnRhaW5lclNlbGVjdG9yfSBbZGF0YS1jbGFzcz0nc2VsZWN0LW9wdGlvbiddYCwge3VzZUJhc2VTZWxlY3RvcjogZmFsc2V9KVxuXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvblRleHQgPSAoYXdhaXQgb3B0aW9uLmdldFRleHQoKSkudHJpbSgpXG5cbiAgICAgICAgaWYgKG9wdGlvblRleHQgPT09IHRleHQpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnN5c3RlbVRlc3QuY2xpY2sob3B0aW9uKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gb3B0aW9uIGZvdW5kIHdpdGggdGV4dDogJHt0ZXh0fWApXG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgdmFsdWUsIHRleHQsIG9yIGluZGV4IHdoZW4gc2VsZWN0aW5nIGFuIG9wdGlvblwiKVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "haya-select",
3
- "version": "1.0.89",
3
+ "version": "1.0.91",
4
4
  "description": "Just another select component for React Native + Web.",
5
5
  "files": [
6
6
  "build/**"
@@ -39,7 +39,8 @@
39
39
  "debounce": "^3.0.0",
40
40
  "diggerize": "^1.0.4",
41
41
  "fetching-object": "^1.0.1",
42
- "react-native-render-html": "^6.3.4"
42
+ "react-native-render-html": "^6.3.4",
43
+ "ya-use-event-listener": "^0.1.1"
43
44
  },
44
45
  "devDependencies": {
45
46
  "@types/react": "~18.3.12",
@@ -48,10 +49,10 @@
48
49
  "expo-module-scripts": "^4.0.2",
49
50
  "react": "18.3.1",
50
51
  "react-native": "0.76.9",
51
- "scoundrel-remote-eval": "1.0.27",
52
+ "scoundrel-remote-eval": "1.0.29",
52
53
  "sqlite": "^5.1.1",
53
54
  "sqlite3": "^5.1.7",
54
- "system-testing": "^1.0.60",
55
+ "system-testing": "^1.0.62",
55
56
  "velocious": "^1.0.176"
56
57
  },
57
58
  "peerDependencies": {