@inseefr/lunatic 3.8.1-rc.0 → 3.9.0
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/README.md +7 -13
- package/components/Suggester/Suggester.js +12 -16
- package/components/Suggester/Suggester.js.map +1 -1
- package/components/Suggester/Suggester.spec.js +68 -25
- package/components/Suggester/Suggester.spec.js.map +1 -1
- package/components/Suggester/useSuggestions.js +2 -2
- package/components/Suggester/useSuggestions.js.map +1 -1
- package/esm/components/Suggester/Suggester.js +13 -17
- package/esm/components/Suggester/Suggester.js.map +1 -1
- package/esm/components/Suggester/Suggester.spec.js +71 -25
- package/esm/components/Suggester/Suggester.spec.js.map +1 -1
- package/esm/components/Suggester/useSuggestions.js +3 -3
- package/esm/components/Suggester/useSuggestions.js.map +1 -1
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.js +23 -23
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +95 -0
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
- package/package.json +4 -2
- package/src/components/Suggester/Suggester.spec.tsx +86 -26
- package/src/components/Suggester/Suggester.tsx +11 -16
- package/src/components/Suggester/useSuggestions.ts +2 -2
- package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +106 -0
- package/src/use-lunatic/commons/variables/lunatic-variables-store.ts +24 -29
- package/tsconfig.build.tsbuildinfo +1 -1
- package/use-lunatic/commons/variables/lunatic-variables-store.js +21 -25
- package/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
- package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +95 -0
- package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ Lunatic is a front-end library in the form of a React hook and component librari
|
|
|
39
39
|
To get started, you need to install Lunatic:
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
|
|
42
|
+
pnpm add @inseefr/lunatic
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
### The useLunatic Hook
|
|
@@ -172,7 +172,6 @@ To facilitate expression execution, an `executeExpression()` method is exposed i
|
|
|
172
172
|
- Files containing JSX should use the .jsx (or .tsx) extension.
|
|
173
173
|
- Commits follow the specification [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
174
174
|
- Pull Requests should be prefixed in the same convention as commits:
|
|
175
|
-
|
|
176
175
|
- `test(XXX?)`: XXX for adding tests.
|
|
177
176
|
- `feat(XXX?)`: XXX for adding new features.
|
|
178
177
|
- `fix(XXX?)`: XXX for bug fixes.
|
|
@@ -211,30 +210,25 @@ Assuming `you/my-app` have `@inseefr/lunatic` as a dependency.
|
|
|
211
210
|
cd ~/github
|
|
212
211
|
git clone https://github.com/you/my-app
|
|
213
212
|
cd my-app
|
|
214
|
-
|
|
213
|
+
pnpm install
|
|
215
214
|
|
|
216
215
|
cd ~/github
|
|
217
216
|
git clone https://github.com/InseeFr/Lunatic
|
|
218
217
|
cd Lunatic
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
yarn link-in-app my-app
|
|
218
|
+
pnpm install
|
|
219
|
+
pnpm run build
|
|
222
220
|
npx tsc -w
|
|
223
221
|
|
|
224
222
|
# Open another terminal
|
|
225
223
|
|
|
226
224
|
cd ~/github/my-app
|
|
227
|
-
|
|
228
|
-
|
|
225
|
+
pnpm link ../lunatic # assuming both project are in the same folder
|
|
226
|
+
pnpm run start # Or whatever my-app is using for starting the project
|
|
229
227
|
```
|
|
230
228
|
|
|
231
229
|
You don't have to use `~/github` as reference path. Just make sure `my-app` and `@inseefr/lunatic`
|
|
232
230
|
are in the same directory.
|
|
233
231
|
|
|
234
|
-
> Note for the maintainer: You might run into issues if you do not list all your singleton dependencies in
|
|
235
|
-
> `src/link-in-app.js -> singletonDependencies`. A singleton dependency is a dependency that can
|
|
236
|
-
> only be present once in an App. Singleton dependencies are usually listed as peerDependencies example `react`, `@emotion/*`.
|
|
237
|
-
|
|
238
232
|
### Releasing
|
|
239
233
|
|
|
240
234
|
For releasing a new version on GitHub and NPM you don't need to create a tag.
|
|
@@ -272,7 +266,7 @@ or with UI (launched in your local browser):
|
|
|
272
266
|
|
|
273
267
|
To have real time test (refreshed when you're coding), you need to run storybook in a separate command prompt and launch test.
|
|
274
268
|
|
|
275
|
-
- `
|
|
269
|
+
- `pnpm run storybook`
|
|
276
270
|
- `npx playwright test`
|
|
277
271
|
|
|
278
272
|
The inconvenient is that “dev” mode can be too slow to display storybook pages and fails test. (timeout exceeded)..
|
|
@@ -26,7 +26,7 @@ function WrappedSuggester({ storeName, id, className, optionRenderer, labelRende
|
|
|
26
26
|
// so we can break the rule of hooks here
|
|
27
27
|
const computeSelectedOptions = () => {
|
|
28
28
|
if (arbitraryValue) {
|
|
29
|
-
return [{ id:
|
|
29
|
+
return [{ id: useSuggestions_1.OTHER_VALUE, label: arbitraryValue, value: useSuggestions_1.OTHER_VALUE }];
|
|
30
30
|
}
|
|
31
31
|
if (!value) {
|
|
32
32
|
return [];
|
|
@@ -41,13 +41,7 @@ function WrappedSuggester({ storeName, id, className, optionRenderer, labelRende
|
|
|
41
41
|
if (typeof label !== 'string') {
|
|
42
42
|
return [{ id: value, label: value, value: value }];
|
|
43
43
|
}
|
|
44
|
-
return [
|
|
45
|
-
{
|
|
46
|
-
id: value,
|
|
47
|
-
label: label,
|
|
48
|
-
value: value,
|
|
49
|
-
},
|
|
50
|
-
];
|
|
44
|
+
return [{ id: value, label: label, value: value }];
|
|
51
45
|
};
|
|
52
46
|
const [selectedOptions, setSelectedOptions] = (0, react_2.useState)(computeSelectedOptions);
|
|
53
47
|
const { state, options, search, setSearch, onFocus, onBlur } = (0, useSuggestions_1.useSuggestions)({
|
|
@@ -120,15 +114,17 @@ function WrappedSuggester({ storeName, id, className, optionRenderer, labelRende
|
|
|
120
114
|
};
|
|
121
115
|
(0, react_2.useEffect)(() => {
|
|
122
116
|
// Fix display issue (when handleChanges is called outside this component (in management mode, return to FORCED value by example)
|
|
123
|
-
// "value"
|
|
124
|
-
if (
|
|
117
|
+
// "value" doesn't match selectedOption's "id"
|
|
118
|
+
if (selectedOptions[0]?.id !== value) {
|
|
125
119
|
const actualSelection = computeSelectedOptions();
|
|
126
|
-
const selectedOptionsWithLabel =
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
120
|
+
const selectedOptionsWithLabel = actualSelection.map((selection) => {
|
|
121
|
+
if (selection.id === useSuggestions_1.OTHER_VALUE)
|
|
122
|
+
return selection;
|
|
123
|
+
return {
|
|
124
|
+
...selection,
|
|
125
|
+
label: getLabelById(selection.id),
|
|
126
|
+
};
|
|
127
|
+
});
|
|
132
128
|
setSelectedOptions(selectedOptionsWithLabel);
|
|
133
129
|
}
|
|
134
130
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":";;;;;AAQA,8BAOC;AAED,
|
|
1
|
+
{"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":";;;;;AAQA,8BAOC;AAED,4CA0KC;;;AA3LD,iCAA4C;AAE5C,uDAAoD;AACpD,+EAA+E;AAC/E,qDAAyE;AACzE,sDAA2B;AAG3B,SAAgB,SAAS,CAAC,KAAyC;IAClE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEhC,yIAAyI;IACzI,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,SAAS,EAAE,CAAC;IAE1C,OAAO,2BAAC,gBAAgB,OAAK,KAAK,EAAE,GAAG,EAAE,YAAY,GAAI,CAAC;AAC3D,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAChC,SAAS,EACT,EAAE,EACF,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,eAAe,GAAG,EAAE,EACpB,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,cAAc,GACsB;IACpC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAA,yBAAQ,EAAC;QACnE,SAAS;KACT,CAAC,CAAC;IAEH,mDAAmD;IACnD,yCAAyC;IACzC,MAAM,sBAAsB,GAAG,GAA+B,EAAE;QAC/D,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,EAAE,EAAE,4BAAW,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,4BAAW,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACX,CAAC;QACD,MAAM,aAAa,GAAG,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,KAAK,GAAG,iBAAiB,CAC9B,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAC1C;YACC,SAAS;SACT,CACD,CAAC;QACF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAEpD,sBAAsB,CAAC,CAAC;IAE1B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAc,EAC5E;QACC,KAAK;QACL,UAAU;QACV,aAAa;QACb,cAAc,EAAE,CAAC,CAAC,SAAS;QAC3B,eAAe,EAAE,eAAe;KAChC,CACD,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,CAA6B,EAAE,EAAE;QAClD,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,8BAA8B;QAC9B,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,4BAAW,EAAE,CAAC;YACnC,MAAM,YAAY,GAAwC;gBACzD,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;aACpC,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI;oBAC7B,KAAK,EAAE,IAAI;iBACX,CAAC,CAAC;YACJ,CAAC;YACD,8BAA8B;YAC9B,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC9C,IAAI,cAAc,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;oBACnC,YAAY,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,cAAc,CAAC,IAAI;wBACzB,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;qBAClC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YACD,aAAa,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO;QACR,CAAC;QAED,uCAAuC;QACvC,MAAM,YAAY,GAAwC;YACzD,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;SACpC,CAAC;QACF,oDAAoD;QACpD,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI;gBAC7B,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,4BAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;aAC5C,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC9C,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,EAAE,CAAC;IACV,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,oCAAkB,EAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACvB,eAAe,CAAC,IAAI,CAAC;YACpB,EAAE,EAAE,WAAW;YACf,YAAY,EAAE,cAAC,CAAC,eAAe;YAC/B,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,QAAQ;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;QACtC,IAAI,KAAK,KAAK,EAAE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,SAAS,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACxB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,SAAS,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,iIAAiI;QACjI,8CAA8C;QAC9C,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,sBAAsB,EAAE,CAAC;YACjD,MAAM,wBAAwB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClE,IAAI,SAAS,CAAC,EAAE,KAAK,4BAAW;oBAAE,OAAO,SAAS,CAAC;gBACnD,OAAO;oBACN,GAAG,SAAS;oBACZ,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;iBACjC,CAAC;YACH,CAAC,CAA0B,CAAC;YAC5B,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,uDAAuD;IACxD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACN,uBAAC,iCAAe,IACf,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,eAAe,GACtB,CACF,CAAC;AACH,CAAC"}
|
|
@@ -13,7 +13,6 @@ vitest_1.vi.mock('./useSuggestions', () => ({
|
|
|
13
13
|
setSearch: vitest_1.vi.fn(),
|
|
14
14
|
onFocus: vitest_1.vi.fn(),
|
|
15
15
|
onBlur: vitest_1.vi.fn(),
|
|
16
|
-
getSelectedLabelById: vitest_1.vi.fn(),
|
|
17
16
|
})),
|
|
18
17
|
useStore: vitest_1.vi.fn(() => ({
|
|
19
18
|
store: {},
|
|
@@ -21,45 +20,89 @@ vitest_1.vi.mock('./useSuggestions', () => ({
|
|
|
21
20
|
setStoreState: vitest_1.vi.fn(),
|
|
22
21
|
getLabelById: vitest_1.vi.fn(),
|
|
23
22
|
})),
|
|
23
|
+
OTHER_VALUE: 'OTHER',
|
|
24
24
|
}));
|
|
25
|
+
const FAKE_PLACE_HOLDER = 'place holder...';
|
|
25
26
|
// Mock of CustomSuggester
|
|
26
27
|
vitest_1.vi.mock('./CustomSuggester', () => ({
|
|
27
|
-
CustomSuggester: vitest_1.vi.fn(({ value }) => ((0, jsx_runtime_1.jsx)("div", { "data-testid": "custom-suggester", children:
|
|
28
|
+
CustomSuggester: vitest_1.vi.fn(({ value }) => ((0, jsx_runtime_1.jsx)("div", { "data-testid": "custom-suggester", children: Array.isArray(value) && value.length > 0
|
|
29
|
+
? (value[0].value ?? FAKE_PLACE_HOLDER)
|
|
30
|
+
: FAKE_PLACE_HOLDER }))),
|
|
28
31
|
}));
|
|
29
32
|
(0, vitest_1.describe)('WrappedSuggester useEffect', () => {
|
|
33
|
+
// Given initial props
|
|
34
|
+
const initialProps = {
|
|
35
|
+
storeName: 'store',
|
|
36
|
+
id: 'suggester-1',
|
|
37
|
+
className: '',
|
|
38
|
+
handleChanges: vitest_1.vi.fn(),
|
|
39
|
+
disabled: false,
|
|
40
|
+
value: 'initialValue',
|
|
41
|
+
label: 'Label',
|
|
42
|
+
declarations: [],
|
|
43
|
+
description: '',
|
|
44
|
+
errors: {},
|
|
45
|
+
readOnly: false,
|
|
46
|
+
response: { name: 'response' },
|
|
47
|
+
optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
|
|
48
|
+
executeExpression: vitest_1.vi.fn(),
|
|
49
|
+
iteration: 1,
|
|
50
|
+
arbitrary: { response: { name: 'ARBITRARY' } },
|
|
51
|
+
optionRenderer: vitest_1.vi.fn(),
|
|
52
|
+
labelRenderer: vitest_1.vi.fn(),
|
|
53
|
+
focused: false,
|
|
54
|
+
};
|
|
55
|
+
(0, vitest_1.it)('should display place holder when no value is set', () => {
|
|
56
|
+
// Given the composant initialize
|
|
57
|
+
const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps, value: null }));
|
|
58
|
+
const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
59
|
+
(0, vitest_1.expect)(suggesterValue).toContain(FAKE_PLACE_HOLDER);
|
|
60
|
+
const forcedValue = 'FORCED value';
|
|
61
|
+
// When we change the value
|
|
62
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
63
|
+
rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
|
|
64
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
65
|
+
const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
66
|
+
(0, vitest_1.expect)(updatedValue).toContain('FORCED value');
|
|
67
|
+
});
|
|
30
68
|
(0, vitest_1.it)('should update selectedOptions when value prop changes', () => {
|
|
31
|
-
// Given initial props
|
|
32
|
-
const initialProps = {
|
|
33
|
-
storeName: 'store',
|
|
34
|
-
id: 'suggester-1',
|
|
35
|
-
className: '',
|
|
36
|
-
handleChanges: vitest_1.vi.fn(),
|
|
37
|
-
disabled: false,
|
|
38
|
-
value: 'initialValue',
|
|
39
|
-
label: 'Label',
|
|
40
|
-
declarations: [],
|
|
41
|
-
description: '',
|
|
42
|
-
errors: {},
|
|
43
|
-
readOnly: false,
|
|
44
|
-
response: { name: 'response' },
|
|
45
|
-
optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
|
|
46
|
-
executeExpression: vitest_1.vi.fn(),
|
|
47
|
-
iteration: 1,
|
|
48
|
-
arbitrary: { response: { name: 'ARBITRARY' } },
|
|
49
|
-
optionRenderer: vitest_1.vi.fn(),
|
|
50
|
-
labelRenderer: vitest_1.vi.fn(),
|
|
51
|
-
focused: false,
|
|
52
|
-
};
|
|
53
69
|
// Given the composant initialize
|
|
54
70
|
const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps }));
|
|
55
71
|
const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
56
72
|
(0, vitest_1.expect)(suggesterValue).toContain('initialValue');
|
|
73
|
+
const forcedValue = 'FORCED value';
|
|
57
74
|
// When we change the value
|
|
58
|
-
const newProps = { ...initialProps, value:
|
|
75
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
59
76
|
rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
|
|
60
77
|
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
61
78
|
const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
62
79
|
(0, vitest_1.expect)(updatedValue).toContain('FORCED value');
|
|
63
80
|
});
|
|
81
|
+
(0, vitest_1.it)('should update selectedOptions when value prop is set to null', () => {
|
|
82
|
+
// Given the composant initialize
|
|
83
|
+
const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps }));
|
|
84
|
+
const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
85
|
+
(0, vitest_1.expect)(suggesterValue).toContain('initialValue');
|
|
86
|
+
const forcedValue = null;
|
|
87
|
+
// When we change the value
|
|
88
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
89
|
+
rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
|
|
90
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
91
|
+
const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
92
|
+
(0, vitest_1.expect)(updatedValue).toContain(FAKE_PLACE_HOLDER);
|
|
93
|
+
});
|
|
94
|
+
(0, vitest_1.it)('should update selectedOptions when value prop is set to an empty string ("")', () => {
|
|
95
|
+
// Given the composant initialize
|
|
96
|
+
const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps }));
|
|
97
|
+
const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
98
|
+
(0, vitest_1.expect)(suggesterValue).toContain('initialValue');
|
|
99
|
+
const forcedValue = '';
|
|
100
|
+
// When we change the value
|
|
101
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
102
|
+
rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
|
|
103
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
104
|
+
const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
105
|
+
(0, vitest_1.expect)(updatedValue).toContain(FAKE_PLACE_HOLDER);
|
|
106
|
+
});
|
|
64
107
|
});
|
|
65
108
|
//# sourceMappingURL=Suggester.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":";;;AAAA,kDAAwD;AACxD,mCAAkD;AAClD,2CAA+C;AAE/C,yBAAyB;AACzB,WAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,WAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,WAAE,CAAC,EAAE,EAAE;QAClB,OAAO,EAAE,WAAE,CAAC,EAAE,EAAE;QAChB,MAAM,EAAE,WAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ function useStore({ storeName }) {
|
|
|
13
13
|
const searchIndexRef = (0, useRefSync_1.useRefSync)(store.index);
|
|
14
14
|
const [state, setState] = (0, react_1.useState)(store.error !== null
|
|
15
15
|
? 'error'
|
|
16
|
-
: store
|
|
16
|
+
: store.search.isIndexed()
|
|
17
17
|
? 'success'
|
|
18
18
|
: 'loading');
|
|
19
19
|
// Index the data when the component is loaded
|
|
@@ -37,7 +37,7 @@ function useStore({ storeName }) {
|
|
|
37
37
|
getLabelById: (id) => {
|
|
38
38
|
if (!id)
|
|
39
39
|
return '';
|
|
40
|
-
return store.search?.getFieldsById(id)
|
|
40
|
+
return store.search?.getFieldsById(id)?.label ?? '';
|
|
41
41
|
},
|
|
42
42
|
};
|
|
43
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSuggestions.js","sourceRoot":"","sources":["../../src/components/Suggester/useSuggestions.ts"],"names":[],"mappings":";;;AAqBA,4BAmCC;AAED,wCA2EC;AArID,iCAA4C;AAE5C,yDAA6D;AAC7D,8EAG+C;AAC/C,uDAAoD;AAUvC,QAAA,WAAW,GAAG,OAAO,CAAC;AAInC,SAAgB,QAAQ,CAAC,EAAE,SAAS,EAAyB;IAC5D,MAAM,KAAK,GAAG,IAAA,sCAAiB,EAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EACjC,KAAK,CAAC,KAAK,KAAK,IAAI;QACnB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"useSuggestions.js","sourceRoot":"","sources":["../../src/components/Suggester/useSuggestions.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export function WrappedSuggester({ storeName, id, className, optionRenderer, lab
|
|
|
20
20
|
// so we can break the rule of hooks here
|
|
21
21
|
const computeSelectedOptions = () => {
|
|
22
22
|
if (arbitraryValue) {
|
|
23
|
-
return [{ id:
|
|
23
|
+
return [{ id: OTHER_VALUE, label: arbitraryValue, value: OTHER_VALUE }];
|
|
24
24
|
}
|
|
25
25
|
if (!value) {
|
|
26
26
|
return [];
|
|
@@ -35,13 +35,7 @@ export function WrappedSuggester({ storeName, id, className, optionRenderer, lab
|
|
|
35
35
|
if (typeof label !== 'string') {
|
|
36
36
|
return [{ id: value, label: value, value: value }];
|
|
37
37
|
}
|
|
38
|
-
return [
|
|
39
|
-
{
|
|
40
|
-
id: value,
|
|
41
|
-
label: label,
|
|
42
|
-
value: value,
|
|
43
|
-
},
|
|
44
|
-
];
|
|
38
|
+
return [{ id: value, label: label, value: value }];
|
|
45
39
|
};
|
|
46
40
|
const [selectedOptions, setSelectedOptions] = useState(computeSelectedOptions);
|
|
47
41
|
const { state, options, search, setSearch, onFocus, onBlur } = useSuggestions({
|
|
@@ -113,17 +107,19 @@ export function WrappedSuggester({ storeName, id, className, optionRenderer, lab
|
|
|
113
107
|
setSearch('');
|
|
114
108
|
};
|
|
115
109
|
useEffect(() => {
|
|
116
|
-
var _a
|
|
110
|
+
var _a;
|
|
117
111
|
// Fix display issue (when handleChanges is called outside this component (in management mode, return to FORCED value by example)
|
|
118
|
-
// "value"
|
|
119
|
-
if (
|
|
112
|
+
// "value" doesn't match selectedOption's "id"
|
|
113
|
+
if (((_a = selectedOptions[0]) === null || _a === void 0 ? void 0 : _a.id) !== value) {
|
|
120
114
|
const actualSelection = computeSelectedOptions();
|
|
121
|
-
const selectedOptionsWithLabel =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
115
|
+
const selectedOptionsWithLabel = actualSelection.map((selection) => {
|
|
116
|
+
if (selection.id === OTHER_VALUE)
|
|
117
|
+
return selection;
|
|
118
|
+
return {
|
|
119
|
+
...selection,
|
|
120
|
+
label: getLabelById(selection.id),
|
|
121
|
+
};
|
|
122
|
+
});
|
|
127
123
|
setSelectedOptions(selectedOptionsWithLabel);
|
|
128
124
|
}
|
|
129
125
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":";;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,CAAC,MAAM,YAAY,CAAC;AAG3B,MAAM,UAAU,SAAS,CAAC,KAAyC;IAClE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEhC,yIAAyI;IACzI,MAAM,YAAY,GAAG,GAAG,EAAE,IAAI,SAAS,EAAE,CAAC;IAE1C,OAAO,eAAC,gBAAgB,OAAK,KAAK,EAAE,GAAG,EAAE,YAAY,GAAI,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAChC,SAAS,EACT,EAAE,EACF,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,QAAQ,EACR,KAAK,EACL,KAAK,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,eAAe,GAAG,EAAE,EACpB,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,cAAc,GACsB;;IACpC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;QACnE,SAAS;KACT,CAAC,CAAC;IAEH,mDAAmD;IACnD,yCAAyC;IACzC,MAAM,sBAAsB,GAAG,GAA+B,EAAE;QAC/D,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"Suggester.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ vi.mock('./useSuggestions', () => ({
|
|
|
11
11
|
setSearch: vi.fn(),
|
|
12
12
|
onFocus: vi.fn(),
|
|
13
13
|
onBlur: vi.fn(),
|
|
14
|
-
getSelectedLabelById: vi.fn(),
|
|
15
14
|
})),
|
|
16
15
|
useStore: vi.fn(() => ({
|
|
17
16
|
store: {},
|
|
@@ -19,45 +18,92 @@ vi.mock('./useSuggestions', () => ({
|
|
|
19
18
|
setStoreState: vi.fn(),
|
|
20
19
|
getLabelById: vi.fn(),
|
|
21
20
|
})),
|
|
21
|
+
OTHER_VALUE: 'OTHER',
|
|
22
22
|
}));
|
|
23
|
+
const FAKE_PLACE_HOLDER = 'place holder...';
|
|
23
24
|
// Mock of CustomSuggester
|
|
24
25
|
vi.mock('./CustomSuggester', () => ({
|
|
25
|
-
CustomSuggester: vi.fn(({ value }) =>
|
|
26
|
+
CustomSuggester: vi.fn(({ value }) => {
|
|
27
|
+
var _a;
|
|
28
|
+
return (_jsx("div", { "data-testid": "custom-suggester", children: Array.isArray(value) && value.length > 0
|
|
29
|
+
? ((_a = value[0].value) !== null && _a !== void 0 ? _a : FAKE_PLACE_HOLDER)
|
|
30
|
+
: FAKE_PLACE_HOLDER }));
|
|
31
|
+
}),
|
|
26
32
|
}));
|
|
27
33
|
describe('WrappedSuggester useEffect', () => {
|
|
34
|
+
// Given initial props
|
|
35
|
+
const initialProps = {
|
|
36
|
+
storeName: 'store',
|
|
37
|
+
id: 'suggester-1',
|
|
38
|
+
className: '',
|
|
39
|
+
handleChanges: vi.fn(),
|
|
40
|
+
disabled: false,
|
|
41
|
+
value: 'initialValue',
|
|
42
|
+
label: 'Label',
|
|
43
|
+
declarations: [],
|
|
44
|
+
description: '',
|
|
45
|
+
errors: {},
|
|
46
|
+
readOnly: false,
|
|
47
|
+
response: { name: 'response' },
|
|
48
|
+
optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
|
|
49
|
+
executeExpression: vi.fn(),
|
|
50
|
+
iteration: 1,
|
|
51
|
+
arbitrary: { response: { name: 'ARBITRARY' } },
|
|
52
|
+
optionRenderer: vi.fn(),
|
|
53
|
+
labelRenderer: vi.fn(),
|
|
54
|
+
focused: false,
|
|
55
|
+
};
|
|
56
|
+
it('should display place holder when no value is set', () => {
|
|
57
|
+
// Given the composant initialize
|
|
58
|
+
const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps, value: null }));
|
|
59
|
+
const suggesterValue = screen.getByTestId('custom-suggester').textContent;
|
|
60
|
+
expect(suggesterValue).toContain(FAKE_PLACE_HOLDER);
|
|
61
|
+
const forcedValue = 'FORCED value';
|
|
62
|
+
// When we change the value
|
|
63
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
64
|
+
rerender(_jsx(WrappedSuggester, { ...newProps }));
|
|
65
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
66
|
+
const updatedValue = screen.getByTestId('custom-suggester').textContent;
|
|
67
|
+
expect(updatedValue).toContain('FORCED value');
|
|
68
|
+
});
|
|
28
69
|
it('should update selectedOptions when value prop changes', () => {
|
|
29
|
-
// Given initial props
|
|
30
|
-
const initialProps = {
|
|
31
|
-
storeName: 'store',
|
|
32
|
-
id: 'suggester-1',
|
|
33
|
-
className: '',
|
|
34
|
-
handleChanges: vi.fn(),
|
|
35
|
-
disabled: false,
|
|
36
|
-
value: 'initialValue',
|
|
37
|
-
label: 'Label',
|
|
38
|
-
declarations: [],
|
|
39
|
-
description: '',
|
|
40
|
-
errors: {},
|
|
41
|
-
readOnly: false,
|
|
42
|
-
response: { name: 'response' },
|
|
43
|
-
optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
|
|
44
|
-
executeExpression: vi.fn(),
|
|
45
|
-
iteration: 1,
|
|
46
|
-
arbitrary: { response: { name: 'ARBITRARY' } },
|
|
47
|
-
optionRenderer: vi.fn(),
|
|
48
|
-
labelRenderer: vi.fn(),
|
|
49
|
-
focused: false,
|
|
50
|
-
};
|
|
51
70
|
// Given the composant initialize
|
|
52
71
|
const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps }));
|
|
53
72
|
const suggesterValue = screen.getByTestId('custom-suggester').textContent;
|
|
54
73
|
expect(suggesterValue).toContain('initialValue');
|
|
74
|
+
const forcedValue = 'FORCED value';
|
|
55
75
|
// When we change the value
|
|
56
|
-
const newProps = { ...initialProps, value:
|
|
76
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
57
77
|
rerender(_jsx(WrappedSuggester, { ...newProps }));
|
|
58
78
|
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
59
79
|
const updatedValue = screen.getByTestId('custom-suggester').textContent;
|
|
60
80
|
expect(updatedValue).toContain('FORCED value');
|
|
61
81
|
});
|
|
82
|
+
it('should update selectedOptions when value prop is set to null', () => {
|
|
83
|
+
// Given the composant initialize
|
|
84
|
+
const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps }));
|
|
85
|
+
const suggesterValue = screen.getByTestId('custom-suggester').textContent;
|
|
86
|
+
expect(suggesterValue).toContain('initialValue');
|
|
87
|
+
const forcedValue = null;
|
|
88
|
+
// When we change the value
|
|
89
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
90
|
+
rerender(_jsx(WrappedSuggester, { ...newProps }));
|
|
91
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
92
|
+
const updatedValue = screen.getByTestId('custom-suggester').textContent;
|
|
93
|
+
expect(updatedValue).toContain(FAKE_PLACE_HOLDER);
|
|
94
|
+
});
|
|
95
|
+
it('should update selectedOptions when value prop is set to an empty string ("")', () => {
|
|
96
|
+
// Given the composant initialize
|
|
97
|
+
const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps }));
|
|
98
|
+
const suggesterValue = screen.getByTestId('custom-suggester').textContent;
|
|
99
|
+
expect(suggesterValue).toContain('initialValue');
|
|
100
|
+
const forcedValue = '';
|
|
101
|
+
// When we change the value
|
|
102
|
+
const newProps = { ...initialProps, value: forcedValue };
|
|
103
|
+
rerender(_jsx(WrappedSuggester, { ...newProps }));
|
|
104
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
105
|
+
const updatedValue = screen.getByTestId('custom-suggester').textContent;
|
|
106
|
+
expect(updatedValue).toContain(FAKE_PLACE_HOLDER);
|
|
107
|
+
});
|
|
62
108
|
});
|
|
63
109
|
//# sourceMappingURL=Suggester.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,yBAAyB;AACzB,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export function useStore({ storeName }) {
|
|
|
8
8
|
const searchIndexRef = useRefSync(store.index);
|
|
9
9
|
const [state, setState] = useState(store.error !== null
|
|
10
10
|
? 'error'
|
|
11
|
-
:
|
|
11
|
+
: store.search.isIndexed()
|
|
12
12
|
? 'success'
|
|
13
13
|
: 'loading');
|
|
14
14
|
// Index the data when the component is loaded
|
|
@@ -30,10 +30,10 @@ export function useStore({ storeName }) {
|
|
|
30
30
|
storeState: state,
|
|
31
31
|
setStoreState: setState,
|
|
32
32
|
getLabelById: (id) => {
|
|
33
|
-
var _a, _b;
|
|
33
|
+
var _a, _b, _c;
|
|
34
34
|
if (!id)
|
|
35
35
|
return '';
|
|
36
|
-
return (_b = (_a = store.search) === null || _a === void 0 ? void 0 : _a.getFieldsById(id).label) !== null &&
|
|
36
|
+
return (_c = (_b = (_a = store.search) === null || _a === void 0 ? void 0 : _a.getFieldsById(id)) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : '';
|
|
37
37
|
},
|
|
38
38
|
};
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSuggestions.js","sourceRoot":"","sources":["../../../src/components/Suggester/useSuggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACN,iBAAiB,GAEjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUpD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAInC,MAAM,UAAU,QAAQ,CAAC,EAAE,SAAS,EAAyB;IAC5D,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CACjC,KAAK,CAAC,KAAK,KAAK,IAAI;QACnB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"useSuggestions.js","sourceRoot":"","sources":["../../../src/components/Suggester/useSuggestions.ts"],"names":[],"mappings":"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"}
|