@nyris/nyris-webapp 0.3.23 → 0.3.25

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.
Files changed (117) hide show
  1. package/README.md +1 -1
  2. package/build/asset-manifest.json +12 -18
  3. package/build/index.html +1 -1
  4. package/build/{precache-manifest.550e76235499efc131a68c80392f6bfc.js → precache-manifest.3eed67031bd288eaf7ff98cd02aef6d7.js} +11 -35
  5. package/build/service-worker.js +1 -1
  6. package/build/static/css/main.0d30f026.chunk.css +2 -0
  7. package/build/static/css/main.0d30f026.chunk.css.map +1 -0
  8. package/build/static/js/2.ad8c5320.chunk.js +3 -0
  9. package/build/static/js/{2.f0507df9.chunk.js.LICENSE.txt → 2.ad8c5320.chunk.js.LICENSE.txt} +0 -15
  10. package/build/static/js/2.ad8c5320.chunk.js.map +1 -0
  11. package/build/static/js/main.7c54ad4d.chunk.js +3 -0
  12. package/build/static/js/main.7c54ad4d.chunk.js.map +1 -0
  13. package/package.json +5 -3
  14. package/src/App.tsx +24 -15
  15. package/src/Router.tsx +6 -41
  16. package/src/Store/Store.ts +14 -23
  17. package/src/Store/{Auth.ts → auth/Auth.ts} +6 -17
  18. package/src/Store/auth/types.ts +11 -0
  19. package/src/Store/constants.ts +21 -0
  20. package/src/Store/nyris/Nyris.ts +67 -0
  21. package/src/Store/nyris/types.ts +11 -0
  22. package/src/Store/{Search.ts → search/Search.ts} +3 -63
  23. package/src/Store/search/search.initialState.ts +28 -0
  24. package/src/Store/search/types.ts +34 -0
  25. package/src/components/DetailItem.tsx +29 -25
  26. package/src/components/DragDropFile.tsx +8 -3
  27. package/src/components/Feedback.tsx +11 -14
  28. package/src/components/FooterMobile.tsx +3 -51
  29. package/src/components/FooterResult.tsx +1 -1
  30. package/src/components/Header.tsx +29 -30
  31. package/src/components/HeaderMobile.tsx +14 -21
  32. package/src/components/Layout.tsx +11 -27
  33. package/src/components/PanelResult/index.tsx +1 -1
  34. package/src/components/{LoadingScreen → ProductList}/index.tsx +3 -3
  35. package/src/components/appMobile.scss +2 -21
  36. package/src/components/carousel/ImagePreviewCarousel.tsx +2 -1
  37. package/src/components/clear-refinements/clear-refinements.tsx +1 -1
  38. package/src/components/common.scss +2 -0
  39. package/src/components/drawer/cameraCustom.tsx +7 -14
  40. package/src/components/input/inputSearch.tsx +9 -8
  41. package/src/components/pre-filter/{desktop/index.tsx → index.tsx} +5 -5
  42. package/src/components/results/ItemResult.tsx +40 -34
  43. package/src/constants.ts +12 -0
  44. package/src/hooks/useVisualSearch.tsx +2 -2
  45. package/src/i18n.ts +10 -0
  46. package/src/index.css +13 -0
  47. package/src/index.tsx +0 -20
  48. package/src/{modules/LandingPage/indexNewVersion.tsx → page/landingPage/AppMD.tsx} +2 -4
  49. package/src/{modules/LandingPage → page/landingPage}/AppMobile.tsx +4 -5
  50. package/src/{modules/LandingPage → page/landingPage}/common.scss +2 -8
  51. package/src/page/result/index.tsx +8 -10
  52. package/src/services/Feedback.ts +48 -71
  53. package/src/services/{filter.tsx → filter.ts} +1 -1
  54. package/src/services/types.ts +30 -39
  55. package/src/translations.ts +22 -0
  56. package/src/types.ts +13 -66
  57. package/build/js/test.js +0 -84
  58. package/build/static/css/main.c956b74c.chunk.css +0 -2
  59. package/build/static/css/main.c956b74c.chunk.css.map +0 -1
  60. package/build/static/js/2.f0507df9.chunk.js +0 -3
  61. package/build/static/js/2.f0507df9.chunk.js.map +0 -1
  62. package/build/static/js/main.247c7b7e.chunk.js +0 -3
  63. package/build/static/js/main.247c7b7e.chunk.js.map +0 -1
  64. package/build/static/media/Rectangle.4dd8b747.png +0 -0
  65. package/build/static/media/icon_company.2b2a0a61.svg +0 -3
  66. package/build/static/media/icon_email.132d632b.svg +0 -3
  67. package/build/static/media/icon_phone.09335da9.svg +0 -3
  68. package/build/static/media/icon_textArea.f6d78b61.svg +0 -3
  69. package/build/static/media/icon_users.2013c76e.svg +0 -3
  70. package/public/js/test.js +0 -84
  71. package/src/App.css +0 -65
  72. package/src/Store/Nyris.ts +0 -77
  73. package/src/components/AppContainer.tsx +0 -126
  74. package/src/components/CategoryFilter.tsx +0 -17
  75. package/src/components/Codes.tsx +0 -20
  76. package/src/components/CustomHits/index.tsx +0 -47
  77. package/src/components/Footer.tsx +0 -96
  78. package/src/components/FooterMD.tsx +0 -54
  79. package/src/components/FooterNewVersion.tsx +0 -12
  80. package/src/components/HeaderMd.tsx +0 -38
  81. package/src/components/HeaderNewVersion.tsx +0 -112
  82. package/src/components/Navigation.tsx +0 -34
  83. package/src/components/PredictedCategories.tsx +0 -14
  84. package/src/components/Refine.tsx +0 -28
  85. package/src/components/RelevantSort.tsx +0 -12
  86. package/src/components/Result.tsx +0 -210
  87. package/src/components/Saved/AllItem.tsx +0 -32
  88. package/src/components/Saved/Category.tsx +0 -16
  89. package/src/components/auto-complete/basic.tsx +0 -153
  90. package/src/components/autocomplete/plugins/popular-searches/popular-searches.css +0 -3
  91. package/src/components/autocomplete/plugins/popular-searches/popular-searches.tsx +0 -75
  92. package/src/components/button/clear-fillter.tsx +0 -30
  93. package/src/components/camera/screenshot.tsx +0 -33
  94. package/src/components/count/count.tsx +0 -20
  95. package/src/components/hitItem/hits.tsx +0 -50
  96. package/src/components/hitItem/infinitiHits.tsx +0 -33
  97. package/src/components/icon/icon.tsx +0 -13
  98. package/src/components/icon_textArea.svg +0 -3
  99. package/src/components/refinement-list/index.tsx +0 -42
  100. package/src/components/results/pagination.tsx +0 -34
  101. package/src/components/search/ListSearch.tsx +0 -209
  102. package/src/defaults.ts +0 -37
  103. package/src/modules/LandingPage/App.tsx +0 -318
  104. package/src/modules/LandingPage/AppMD.tsx +0 -399
  105. package/src/modules/LandingPage/index.tsx +0 -186
  106. package/src/modules/LandingPage/propsType.ts +0 -43
  107. package/src/page/Auth/login.tsx +0 -7
  108. package/src/page/Exception/404.tsx +0 -11
  109. package/src/page/History/index.tsx +0 -76
  110. package/src/page/Profile/index.tsx +0 -140
  111. package/src/page/ResultMobile/index.tsx +0 -12
  112. package/src/page/Saved/MockData.ts +0 -223
  113. package/src/page/Saved/index.tsx +0 -166
  114. package/src/page/Support/MockData.ts +0 -45
  115. package/src/page/Support/index.tsx +0 -492
  116. package/src/page/result/MockData.ts +0 -50
  117. /package/build/static/js/{main.247c7b7e.chunk.js.LICENSE.txt → main.7c54ad4d.chunk.js.LICENSE.txt} +0 -0
@@ -1,186 +0,0 @@
1
- import React, { useCallback, useEffect, useState } from 'react';
2
- import { RectCoords, cadExtensions, isCadFile } from '@nyris/nyris-api';
3
-
4
- import { useAppDispatch, useAppSelector } from 'Store/Store';
5
- import {
6
- setSearchResults,
7
- loadingActionResults,
8
- searchFileImageNonRegion,
9
- selectionChanged,
10
- setRequestImage,
11
- setRegions,
12
- setSelectedRegion,
13
- setError,
14
- } from 'Store/Search';
15
- import {
16
- feedbackNegative,
17
- feedbackSubmitPositive,
18
- hideFeedback,
19
- showCamera,
20
- showFeedback,
21
- showResults,
22
- showStart,
23
- } from 'Store/Nyris';
24
- import {
25
- createImage,
26
- findByCadFile,
27
- findByImage,
28
- findRegions,
29
- } from 'services/image';
30
- import { debounce } from 'lodash';
31
- import {
32
- feedbackClickEpic,
33
- feedbackRegionEpic,
34
- feedbackSuccessEpic,
35
- } from 'services/Feedback';
36
- import AppMD from './AppMD';
37
- import App from './App';
38
- import { AppHandlers, AppProps } from './propsType';
39
- import { defaultMdSettings } from '../../defaults';
40
- import { useMediaQuery } from 'react-responsive';
41
- import AppMobile from './AppMobile';
42
-
43
- const defaultSelection = { x1: 0.1, x2: 0.9, y1: 0.1, y2: 0.9 };
44
-
45
- const LandingPageApp = () => {
46
- const dispatch = useAppDispatch();
47
- const searchState = useAppSelector(state => state);
48
- const [selection, setSelection] = useState<RectCoords>(defaultSelection);
49
- const { settings, search, nyris } = searchState;
50
- const { fetchingRegions, fetchingResults, requestImage, selectedRegion } =
51
- search;
52
- const { showPart } = nyris;
53
- const isMobile = useMediaQuery({ query: '(max-width: 776px)' });
54
- // update selection, if it is not the default one
55
- useEffect(() => {
56
- if (selectedRegion) {
57
- setSelection(selectedRegion);
58
- } else {
59
- setSelection(defaultSelection);
60
- }
61
- }, [selectedRegion]);
62
-
63
- const acceptTypes = ['image/*']
64
- .concat(settings.cadSearch ? cadExtensions : [])
65
- .join(',');
66
-
67
- function scrollTop() {
68
- // TODO might require polyfill for ios and edge
69
- window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
70
- }
71
-
72
- const onLinkClick = (_position: number, url: string) => {
73
- feedbackClickEpic(searchState, _position).catch(console.warn);
74
- if (url) {
75
- window.open(url);
76
- }
77
- };
78
-
79
- const startSearch = async (file: File | HTMLCanvasElement | string) => {
80
- try {
81
- dispatch(loadingActionResults());
82
- dispatch(showResults());
83
- if (file instanceof File && isCadFile(file)) {
84
- let res = await findByCadFile(file, settings);
85
- dispatch(setSearchResults(res));
86
- } else {
87
- let image = await createImage(file);
88
- dispatch(setRequestImage(image));
89
- let searchRegion: RectCoords | undefined;
90
- if (settings.regions) {
91
- let { regions: foundRegions, selectedRegion: suggestedRegion } =
92
- await findRegions(image, settings);
93
- searchRegion = suggestedRegion;
94
- dispatch(setRegions(foundRegions));
95
- dispatch(setSelectedRegion(searchRegion));
96
- }
97
- return findByImage({ image, settings, region: searchRegion }).then(
98
- res => {
99
- dispatch(setSearchResults(res));
100
- dispatch(showFeedback());
101
- },
102
- );
103
- }
104
- } catch (e) {
105
- // TODO show error messages
106
- dispatch(
107
- setError(
108
- 'There was an error while performing the request. Please try again later.',
109
- ),
110
- );
111
- }
112
- };
113
-
114
- const debouncedSetRectCoords = useCallback(
115
- debounce(value => {
116
- dispatch(selectionChanged(value));
117
- feedbackRegionEpic(searchState, value);
118
- dispatch(loadingActionResults());
119
- findByImage({ image: requestImage!!.canvas, settings, region: value })
120
- .then(res => {
121
- dispatch(searchFileImageNonRegion(res));
122
- dispatch(showFeedback());
123
- })
124
- .catch(e => console.warn('catch', e));
125
- }, 1200),
126
- [requestImage, searchState],
127
- );
128
-
129
- const handlers: AppHandlers = {
130
- onExampleImageClick: url => {
131
- startSearch(url);
132
- },
133
- onCameraClick: () => dispatch(showCamera),
134
- onCaptureCanceled: () => dispatch(showStart),
135
- onCaptureComplete: i => startSearch(i),
136
- onCloseFeedback: () => dispatch(hideFeedback),
137
- onFileDropped: f => startSearch(f),
138
- onImageClick: (position, url) => {
139
- startSearch(url);
140
- feedbackClickEpic(searchState, position);
141
- },
142
- onLinkClick: onLinkClick,
143
- onPositiveFeedback: () => {
144
- dispatch(feedbackSubmitPositive());
145
- feedbackSuccessEpic(searchState, true);
146
- },
147
- onNegativeFeedback: () => {
148
- dispatch(feedbackNegative());
149
- feedbackSuccessEpic(searchState, false);
150
- },
151
- onSelectFile: f => startSearch(f),
152
- onSelectionChange: r => {
153
- setSelection(r);
154
- debouncedSetRectCoords(r);
155
- },
156
- onShowStart: () => {
157
- dispatch(showStart());
158
- scrollTop();
159
- },
160
- };
161
-
162
- let props: AppProps = {
163
- search: {
164
- ...search,
165
- previewSelection: selection,
166
- },
167
- settings,
168
- previewImage: search?.requestImage,
169
- acceptTypes,
170
- showPart,
171
- handlers,
172
- loading: fetchingRegions || fetchingResults,
173
- mdSettings: settings.themePage.materialDesign || defaultMdSettings,
174
- feedbackState: nyris.feedbackState,
175
- };
176
-
177
- return isMobile ? (
178
- <AppMobile {...props} />
179
- ) : settings.themePage.materialDesign?.active ? (
180
- <AppMD {...props} />
181
- ) : (
182
- <App {...props} />
183
- );
184
- };
185
-
186
- export default LandingPageApp;
@@ -1,43 +0,0 @@
1
- import {CategoryPrediction, Code, RectCoords, Region} from "@nyris/nyris-api";
2
- import {AppSettings, CanvasWithId, MDSettings} from "../../types";
3
- import {NyrisAppPart, NyrisFeedbackState} from "../../Store/Nyris";
4
-
5
- export interface AppHandlers {
6
- onExampleImageClick: (url: string) => void;
7
- onImageClick: (position: number, url: string) => void;
8
- onLinkClick: (position: number, url: string) => void;
9
- onFileDropped: (file: File) => void;
10
- onCaptureComplete: (image: HTMLCanvasElement) => void;
11
- onCaptureCanceled: () => void;
12
- onSelectFile: (f: File) => void;
13
- onCameraClick: () => void;
14
- onShowStart: () => void;
15
- onSelectionChange: (r: RectCoords) => void;
16
- onPositiveFeedback: () => void;
17
- onNegativeFeedback: () => void;
18
- onCloseFeedback: () => void;
19
- }
20
-
21
-
22
- export interface AppProps {
23
- search: {
24
- results: any[];
25
- requestId?: string;
26
- duration?: number;
27
- categoryPredictions: CategoryPrediction[];
28
- codes: Code[];
29
- filterOptions: string[];
30
- errorMessage?: string;
31
- regions: Region[];
32
- previewSelection: RectCoords;
33
- toastErrorMessage?: string;
34
- };
35
- acceptTypes: string,
36
- previewImage?: CanvasWithId;
37
- settings: AppSettings;
38
- loading: boolean;
39
- showPart: NyrisAppPart;
40
- feedbackState: NyrisFeedbackState;
41
- handlers: AppHandlers;
42
- mdSettings: MDSettings;
43
- }
@@ -1,7 +0,0 @@
1
- import React from "react";
2
-
3
- function Login(): JSX.Element {
4
- return <div>page login</div>;
5
- }
6
-
7
- export default Login;
@@ -1,11 +0,0 @@
1
- import React from "react";
2
-
3
- interface Props {}
4
-
5
- function NotFound(props: Props): JSX.Element {
6
- const {} = props;
7
-
8
- return <div>NotFound</div>;
9
- }
10
-
11
- export default NotFound;
@@ -1,76 +0,0 @@
1
- import { Box, Button, Typography } from "@material-ui/core";
2
- import React from "react";
3
- import ListSearch from "components/search/ListSearch";
4
-
5
- interface Option {
6
- readonly label: string;
7
- readonly value: string;
8
- }
9
-
10
- function SearchHistory(): JSX.Element {
11
- return (
12
- <Box className="wrap-main-search-history">
13
- <Box className="box-main-top">
14
- <Box className="box-input">
15
- {/* <InputSearch
16
- inputValueInputSearch={inputValueInputSearch}
17
- handleChange={handleChangeInputSearch}
18
- handleKeyDown={handleKeyDown}
19
- handleInputChange={handleInputChange}
20
- valueInputSearch={valueInputSearch}
21
- styleControl={{
22
- width: 640,
23
- background: "#FFFFFF",
24
- boxShadow: "0px 0px 6.66667px rgba(0, 0, 0, 0.2)",
25
- borderRadius: 21,
26
- minHeight: 42,
27
- display: "flex",
28
- alignItems: "center",
29
- paddingLeft: "16px",
30
- }}
31
- placeholder={"Search"}
32
- customComponent={{
33
- DropdownIndicator: () => {
34
- return (
35
- <Box mr={1}>
36
- <button
37
- className="btn-input-search"
38
- onClick={() => {
39
- console.log("321");
40
- }}
41
- >
42
- <img src={IconSetting} alt="icon_search" />
43
- </button>
44
- </Box>
45
- );
46
- },
47
- }}
48
- /> */}
49
- </Box>
50
- </Box>
51
-
52
- <Box className="box-main-bottom">
53
- <Box className="col-left">
54
- <ul className="box-time">
55
- <li>
56
- <Button>
57
- <Typography className="text-f9 active">2021</Typography>
58
- </Button>
59
- </li>
60
- <li>
61
- <Button>
62
- <Typography className="text-f9">2020</Typography>
63
- </Button>
64
- </li>
65
- </ul>
66
- </Box>
67
- <Box className="col-right">
68
- <ListSearch />
69
- <ListSearch />
70
- </Box>
71
- </Box>
72
- </Box>
73
- );
74
- }
75
-
76
- export default SearchHistory;
@@ -1,140 +0,0 @@
1
- import React, { useLayoutEffect } from 'react';
2
- import {
3
- Box,
4
- Button,
5
- FormControlLabel,
6
- Grid,
7
- Typography,
8
- } from '@material-ui/core';
9
- import BgColor from 'common/assets/images/Rectangle.png';
10
- import { useMediaQuery } from 'react-responsive';
11
- import { useHistory } from 'react-router-dom';
12
-
13
- interface Props {}
14
-
15
- function Profile(props: Props) {
16
- const isMobile = useMediaQuery({ query: '(max-width: 776px)' });
17
- const history = useHistory();
18
- useLayoutEffect(() => {
19
- history.push({
20
- pathname: '/',
21
- });
22
- }, [history]);
23
-
24
- return (
25
- <Box className="wrap-main-profile">
26
- <Grid container>
27
- <Grid item lg={6} xs={12} sm={12} className="box-col-left">
28
- {!isMobile ? (
29
- <Box className="box-top">
30
- <Typography className="text-f40 fw-600 text-dark">
31
- Jose Luis Reyes
32
- </Typography>
33
- <Typography className="text-f13 text-dark2 fw-600">
34
- Nyris GmbH
35
- </Typography>
36
- </Box>
37
- ) : (
38
- <Box className="box-top">
39
- <Typography className="text-f40 fw-600 text-dark">
40
- My Account
41
- </Typography>
42
- </Box>
43
- )}
44
-
45
- <Box className="box-bottom">
46
- <Box className="box-content">
47
- {!isMobile && (
48
- <Typography className="text-f12 text-dark fw-700">
49
- Profile
50
- </Typography>
51
- )}
52
-
53
- <Box mt={1}>
54
- <FormControlLabel
55
- labelPlacement="top"
56
- control={<input />}
57
- label="Name"
58
- className="w-100"
59
- style={{ alignItems: 'flex-start', margin: 0 }}
60
- />
61
- </Box>
62
- <Box mt={1}>
63
- <FormControlLabel
64
- labelPlacement="top"
65
- control={<input />}
66
- label="E-mail"
67
- style={{ alignItems: 'flex-start', margin: 0 }}
68
- className="w-100"
69
- />
70
- </Box>
71
- <Box mt={1}>
72
- <FormControlLabel
73
- labelPlacement="top"
74
- control={<input />}
75
- label="Password"
76
- style={{ alignItems: 'flex-start', margin: 0 }}
77
- className="w-100"
78
- />
79
- </Box>
80
- {!isMobile && (
81
- <>
82
- <Box className="w-100" mt={2}>
83
- <Typography className="text-f12 text-dark fw-700">
84
- Account
85
- </Typography>
86
- </Box>
87
- <Box mt={1}>
88
- <FormControlLabel
89
- labelPlacement="top"
90
- control={<input />}
91
- label="Company"
92
- style={{ alignItems: 'flex-start', margin: 0 }}
93
- className="w-100"
94
- />
95
- </Box>
96
- <Box mt={1}>
97
- <FormControlLabel
98
- labelPlacement="top"
99
- control={<input />}
100
- label="Role"
101
- style={{ alignItems: 'flex-start', margin: 0 }}
102
- className="w-100"
103
- />
104
- </Box>
105
- </>
106
- )}
107
-
108
- <Box mt={2}>
109
- {isMobile && (
110
- <Box style={{ marginBottom: 10 }}>
111
- <a
112
- href="/#"
113
- style={{
114
- fontSize: 12,
115
- fontWeight: 500,
116
- color: '#3E36DC',
117
- }}
118
- >
119
- Reset password
120
- </a>
121
- </Box>
122
- )}
123
- <Button className="btn-log-out">Log out</Button>
124
- </Box>
125
- </Box>
126
- </Box>
127
- </Grid>
128
- {!isMobile && (
129
- <Grid item xs={6} className="box-col-right">
130
- <Box className="box-bg-image">
131
- <img src={BgColor} alt="" />
132
- </Box>
133
- </Grid>
134
- )}
135
- </Grid>
136
- </Box>
137
- );
138
- }
139
-
140
- export default Profile;
@@ -1,12 +0,0 @@
1
- import { Box } from "@material-ui/core";
2
- import React from "react";
3
-
4
- interface Props {}
5
-
6
- function ResultComponentMobile(props: Props) {
7
- const {} = props;
8
-
9
- return <Box>day la component result mobile</Box>;
10
- }
11
-
12
- export default ResultComponentMobile;
@@ -1,223 +0,0 @@
1
- export const dataItem = [
2
- {
3
- av: {
4
- t: "INVALID",
5
- },
6
- id: "9c5c2eeb72895300bdd3b4ff8e6b67c4",
7
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
8
- mer: "demo.nyris.io",
9
- title: "HOYA",
10
- desc: "Pflanze",
11
- var: [],
12
- img: {
13
- id: "46ffb718a24bf47125c09db0bb0643074a119f2eb14939863665414afd306c3e",
14
- ifid: "",
15
- url: "https://img.nyris.io/46f/46ffb718a24bf47125c09db0bb0643074a119f2eb14939863665414afd306c3e.jpg",
16
- h: false,
17
- },
18
- cc: ["Dekoration", "Blumentöpfe, Pflanzen & Blumenständer", "Pflanzen"],
19
- sku: "60392745",
20
- position: 0,
21
- },
22
- {
23
- av: {
24
- t: "INVALID",
25
- },
26
- id: "65f857e9779856e18cd67a809fd9e23c",
27
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
28
- mer: "demo.nyris.io",
29
- title: "FEJKA",
30
- desc: "Kunstpflanze",
31
- var: [],
32
- img: {
33
- id: "25f72fedd3cc0ef399bf88086157df643638e5b6e755a08b20c61221b1186c49",
34
- ifid: "",
35
- url: "https://img.nyris.io/25f/25f72fedd3cc0ef399bf88086157df643638e5b6e755a08b20c61221b1186c49.jpg",
36
- h: false,
37
- },
38
- cc: [
39
- "Dekoration",
40
- "Blumentöpfe, Pflanzen & Blumenständer",
41
- "Kunstpflanzen & -blumen",
42
- ],
43
- sku: "20349532",
44
- position: 1,
45
- },
46
- {
47
- av: {
48
- t: "INVALID",
49
- },
50
- id: "c66fd178c8125ae198089caff89245a9",
51
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
52
- mer: "demo.nyris.io",
53
- title: "BEGÄRLIG",
54
- desc: "Vase",
55
- var: [],
56
- img: {
57
- id: "3b99e5300504273d8b363a501344c7d06b7fb5a29b5e0a50caf1d3d036a015b7",
58
- ifid: "",
59
- url: "https://img.nyris.io/3b9/3b99e5300504273d8b363a501344c7d06b7fb5a29b5e0a50caf1d3d036a015b7.jpg",
60
- h: false,
61
- },
62
- cc: ["Dekoration", "Vasen & Schalen", "Vasen"],
63
- sku: "30309781",
64
- position: 2,
65
- },
66
- {
67
- av: {
68
- t: "INVALID",
69
- },
70
- id: "9ffd0e329cc15d5489a6f2e2fc3f7497",
71
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
72
- mer: "demo.nyris.io",
73
- title: "INDUSTRIELL",
74
- desc: "Teller",
75
- var: [],
76
- img: {
77
- id: "60bd1dfa0229b9a9065ee6d74b969718c75a55383e830a627fb0f9decf407925",
78
- ifid: "",
79
- url: "https://img.nyris.io/60b/60bd1dfa0229b9a9065ee6d74b969718c75a55383e830a627fb0f9decf407925.jpg",
80
- h: false,
81
- },
82
- cc: ["Essen", "Essgeschirr", "Teller"],
83
- sku: "90387078",
84
- position: 3,
85
- },
86
- {
87
- av: {
88
- t: "INVALID",
89
- },
90
- id: "939e4f8f643156cf81c14804174a9efd",
91
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
92
- mer: "demo.nyris.io",
93
- title: "CITRUS",
94
- desc: "Topfpflanze",
95
- var: [],
96
- img: {
97
- id: "a3bcf8cb031effb87e3d412a51cc218860a064543a39e4cd6b368ccda4e44b5f",
98
- ifid: "",
99
- url: "https://img.nyris.io/a3b/a3bcf8cb031effb87e3d412a51cc218860a064543a39e4cd6b368ccda4e44b5f.jpg",
100
- h: false,
101
- },
102
- cc: ["Dekoration", "Blumentöpfe, Pflanzen & Blumenständer", "Pflanzen"],
103
- sku: "60392665",
104
- position: 4,
105
- },
106
- {
107
- p: {
108
- c: "EUR",
109
- vi: 3199,
110
- ve: 3198,
111
- t: 0,
112
- },
113
- av: {
114
- t: "INVALID",
115
- },
116
- l: "https://www.impressionen.de/de/Weihnachten/Weihnachtsbeleuchtung/LED-Kranz-mit-Tannenzapfen-und-Blumen/produkt/246278?fromSearch=Suche&ctp=cG9zPTIxODEmc2ltaT05Ni4w",
117
- id: "116e947ef4685a8e941f0b7b6d06753c",
118
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
119
- mer: "demo.nyris.io",
120
- title: "LED-Kranz mit Tannenzapfen und Blumen",
121
- desc: "",
122
- var: [],
123
- img: {
124
- id: "a6b41a30d15214450fb33cc39f29519a0dec354b266901c199d4467bb605d1c0",
125
- ifid: "",
126
- url: "https://img.nyris.io/a6b/a6b41a30d15214450fb33cc39f29519a0dec354b266901c199d4467bb605d1c0.jpg",
127
- h: false,
128
- },
129
- cc: ["Weihnachten", "Weihnachtsbeleuchtung"],
130
- sku: "246278",
131
- position: 5,
132
- },
133
- {
134
- av: {
135
- t: "INVALID",
136
- },
137
- id: "19543b4d71e5591892cb36f0cc45918f",
138
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
139
- mer: "demo.nyris.io",
140
- title: "SMYCKA",
141
- desc: "Kunstblatt",
142
- var: [],
143
- img: {
144
- id: "af4a0c55b0d9a7a8ac96ca85f8302ee7f97f01a133f51dc5126ede9a5969b86e",
145
- ifid: "",
146
- url: "https://img.nyris.io/af4/af4a0c55b0d9a7a8ac96ca85f8302ee7f97f01a133f51dc5126ede9a5969b86e.jpg",
147
- h: false,
148
- },
149
- cc: [
150
- "Dekoration",
151
- "Blumentöpfe, Pflanzen & Blumenständer",
152
- "Kunstpflanzen & -blumen",
153
- ],
154
- sku: "80335773",
155
- position: 6,
156
- },
157
- {
158
- av: {
159
- t: "INVALID",
160
- },
161
- id: "8342509d872959efa36170e1ed933243",
162
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
163
- mer: "demo.nyris.io",
164
- title: "STILREN",
165
- desc: "Vase",
166
- var: [],
167
- img: {
168
- id: "f1df581ba7e1ac05058a450ff1d222c8c1443e8582b515e447546e48e8ea5f6f",
169
- ifid: "",
170
- url: "https://img.nyris.io/f1d/f1df581ba7e1ac05058a450ff1d222c8c1443e8582b515e447546e48e8ea5f6f.jpg",
171
- h: false,
172
- },
173
- cc: ["Dekoration", "Vasen & Schalen", "Vasen"],
174
- sku: "10442045",
175
- position: 7,
176
- },
177
- {
178
- av: {
179
- t: "INVALID",
180
- },
181
- id: "cbf502eb20d454e086e21ffe0d6dd474",
182
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
183
- mer: "demo.nyris.io",
184
- title: "STILREN",
185
- desc: "Vase",
186
- var: [],
187
- img: {
188
- id: "40b1a22c8610bfcd52e3acb59b39ee7a8c9a547db288344b0a9978d7f7353798",
189
- ifid: "",
190
- url: "https://img.nyris.io/40b/40b1a22c8610bfcd52e3acb59b39ee7a8c9a547db288344b0a9978d7f7353798.jpg",
191
- h: false,
192
- },
193
- cc: ["Dekoration", "Vasen & Schalen", "Vasen"],
194
- sku: "60442043",
195
- position: 8,
196
- },
197
- {
198
- p: {
199
- c: "EUR",
200
- vi: 795,
201
- ve: 794,
202
- t: 0,
203
- },
204
- av: {
205
- t: "INVALID",
206
- },
207
- l: "https://www.dm.de/183-days-by-trend-it-up-lidschatten-cream-square-eyeshadow-palette-020-p4058172080852.html",
208
- id: "cb6039515188564eac24d7b4c1c19e79",
209
- mid: "3ab221c77f2058efb4dc4f9a4255f270",
210
- mer: "demo.nyris.io",
211
- title: "Lidschatten Cream Square Eyeshadow Palette 020, 8,1 g",
212
- desc: "",
213
- var: [],
214
- img: {
215
- id: "80abb67003ea310765db1dcadb3f7a65769ba0e5f2555397964b054e6a6d6a82",
216
- ifid: "",
217
- url: "https://img.nyris.io/80a/80abb67003ea310765db1dcadb3f7a65769ba0e5f2555397964b054e6a6d6a82.jpg",
218
- h: false,
219
- },
220
- sku: "4058172080852",
221
- position: 9,
222
- },
223
- ];