@nyris/nyris-webapp 0.3.5 → 0.3.6

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 (203) hide show
  1. package/build/asset-manifest.json +18 -32
  2. package/build/index.html +1 -1
  3. package/build/{precache-manifest.bbb31f2ce7710d7eb3175b1b48241d24.js → precache-manifest.bffed513ca17d8ac16af1cc3aaa7d908.js} +13 -89
  4. package/build/service-worker.js +1 -1
  5. package/build/static/css/2.43a1c8b7.chunk.css +2 -0
  6. package/build/static/css/2.43a1c8b7.chunk.css.map +1 -0
  7. package/build/static/css/main.2a76dc8a.chunk.css +2 -0
  8. package/build/static/css/main.2a76dc8a.chunk.css.map +1 -0
  9. package/build/static/js/2.4e9a4ce1.chunk.js +3 -0
  10. package/build/static/js/2.4e9a4ce1.chunk.js.LICENSE.txt +79 -0
  11. package/build/static/js/2.4e9a4ce1.chunk.js.map +1 -0
  12. package/build/static/js/main.ec93aa4d.chunk.js +2 -0
  13. package/build/static/js/main.ec93aa4d.chunk.js.map +1 -0
  14. package/build/static/js/{runtime-main.b418ff16.js → runtime-main.f5553a9b.js} +1 -1
  15. package/build/static/js/{runtime-main.b418ff16.js.map → runtime-main.f5553a9b.js.map} +1 -1
  16. package/package.json +7 -30
  17. package/src/App.css +64 -20
  18. package/src/App.test.tsx +49 -0
  19. package/src/App.tsx +253 -15
  20. package/src/AppMD.tsx +320 -0
  21. package/src/Demo2.tsx +220 -0
  22. package/src/actions/nyrisAppActions.ts +76 -0
  23. package/src/actions/searchActions.ts +218 -0
  24. package/src/components/ExampleImages.tsx +17 -32
  25. package/src/components/Feedback.tsx +48 -87
  26. package/src/components/FiltersList.tsx +69 -0
  27. package/src/components/Header.tsx +17 -32
  28. package/src/components/Result.tsx +113 -186
  29. package/src/components/Sidebar.tsx +40 -0
  30. package/src/defaults.ts +3 -4
  31. package/src/epics/feedback.ts +59 -0
  32. package/src/epics/index.ts +154 -0
  33. package/src/epics/search.ts +203 -0
  34. package/src/epics/types.ts +12 -0
  35. package/src/{common/assets/fonts → fonts}/roboto-bold-webfont.woff +0 -0
  36. package/src/{common/assets/fonts → fonts}/roboto-bold-webfont.woff2 +0 -0
  37. package/src/{common/assets/fonts → fonts}/roboto-italic-webfont.woff +0 -0
  38. package/src/{common/assets/fonts → fonts}/roboto-italic-webfont.woff2 +0 -0
  39. package/src/{common/assets/fonts → fonts}/roboto-regular-webfont.woff +0 -0
  40. package/src/{common/assets/fonts → fonts}/roboto-regular-webfont.woff2 +0 -0
  41. package/src/{common/assets/fonts → fonts}/robotocondensed-bold-webfont.woff +0 -0
  42. package/src/{common/assets/fonts → fonts}/robotocondensed-bold-webfont.woff2 +0 -0
  43. package/src/{common/assets/fonts → fonts}/robotocondensed-bolditalic-webfont.woff +0 -0
  44. package/src/{common/assets/fonts → fonts}/robotocondensed-bolditalic-webfont.woff2 +0 -0
  45. package/src/{common/assets/images → images}/fav/android-icon-192x192.png +0 -0
  46. package/src/{common/assets/images → images}/fav/apple-icon-114x114.png +0 -0
  47. package/src/{common/assets/images → images}/fav/apple-icon-120x120.png +0 -0
  48. package/src/{common/assets/images → images}/fav/apple-icon-144x144.png +0 -0
  49. package/src/{common/assets/images → images}/fav/apple-icon-152x152.png +0 -0
  50. package/src/{common/assets/images → images}/fav/apple-icon-180x180.png +0 -0
  51. package/src/{common/assets/images → images}/fav/apple-icon-57x57.png +0 -0
  52. package/src/{common/assets/images → images}/fav/apple-icon-60x60.png +0 -0
  53. package/src/{common/assets/images → images}/fav/apple-icon-72x72.png +0 -0
  54. package/src/{common/assets/images → images}/fav/apple-icon-76x76.png +0 -0
  55. package/src/{common/assets/images → images}/fav/browserconfig.xml +0 -0
  56. package/src/{common/assets/images → images}/fav/favicon-16x16.png +0 -0
  57. package/src/{common/assets/images → images}/fav/favicon-32x32.png +0 -0
  58. package/src/{common/assets/images → images}/fav/favicon-96x96.png +0 -0
  59. package/src/{common/assets/images → images}/fav/manifest.json +0 -0
  60. package/src/{common/assets/images → images}/ic_cam.png +0 -0
  61. package/src/{common/assets/images → images}/ic_cam.svg +0 -0
  62. package/src/{common/assets/images → images}/ic_cam_large.png +0 -0
  63. package/src/{common/assets/images → images}/ic_cam_large.svg +0 -0
  64. package/src/{common/assets/images → images}/ic_cam_large_noimage.png +0 -0
  65. package/src/{common/assets/images → images}/ic_close_feedback.png +0 -0
  66. package/src/{common/assets/images → images}/ic_close_feedback.svg +0 -0
  67. package/src/{common/assets/images → images}/ic_shopNow.png +0 -0
  68. package/src/{common/assets/images → images}/ic_shopNow.svg +0 -0
  69. package/src/{common/assets/images → images}/ic_shopNowLight.png +0 -0
  70. package/src/{common/assets/images → images}/ic_shopNowLight.svg +0 -0
  71. package/src/{common/assets/images → images}/nyris_logo.png +0 -0
  72. package/src/{common/assets/images → images}/rewe.svg +0 -0
  73. package/src/{common/assets/images → images}/sectionTransBack.png +0 -0
  74. package/src/{common/assets/images → images}/sectionTransBack.svg +0 -0
  75. package/src/{common/assets/images → images}/sectionTransTop.png +0 -0
  76. package/src/{common/assets/images → images}/sectionTransTop.svg +0 -0
  77. package/src/index.css +416 -573
  78. package/src/index.tsx +189 -39
  79. package/src/types.ts +7 -51
  80. package/tsconfig.json +8 -3
  81. package/build/js/settings.example.js +0 -31
  82. package/build/js/test.js +0 -56
  83. package/build/static/css/2.8285176a.chunk.css +0 -2
  84. package/build/static/css/2.8285176a.chunk.css.map +0 -1
  85. package/build/static/css/main.6676fe1f.chunk.css +0 -2
  86. package/build/static/css/main.6676fe1f.chunk.css.map +0 -1
  87. package/build/static/js/2.4a55bc61.chunk.js +0 -3
  88. package/build/static/js/2.4a55bc61.chunk.js.LICENSE.txt +0 -124
  89. package/build/static/js/2.4a55bc61.chunk.js.map +0 -1
  90. package/build/static/js/main.2660f94a.chunk.js +0 -2
  91. package/build/static/js/main.2660f94a.chunk.js.map +0 -1
  92. package/build/static/media/Fill.37094b44.svg +0 -3
  93. package/build/static/media/Montserrat-Bold.5a052e98.otf +0 -0
  94. package/build/static/media/Montserrat-Light.21789e89.otf +0 -0
  95. package/build/static/media/Montserrat-Medium.a53e0373.otf +0 -0
  96. package/build/static/media/Montserrat-Regular.71cdc681.otf +0 -0
  97. package/build/static/media/Montserrat-SemiBold.f613d915.otf +0 -0
  98. package/build/static/media/Rectangle.4dd8b747.png +0 -0
  99. package/build/static/media/admin.9529c7f6.svg +0 -3
  100. package/build/static/media/bg-support-page.6ac55268.svg +0 -9
  101. package/build/static/media/book_mark.8e294c0b.svg +0 -3
  102. package/build/static/media/icon_dislike.94607ca6.svg +0 -3
  103. package/build/static/media/icon_like.a4fb1b18.svg +0 -3
  104. package/build/static/media/icon_modal_image.3068d0ea.svg +0 -21
  105. package/build/static/media/icon_search_image.c2c728c0.svg +0 -3
  106. package/build/static/media/nyris_logo.22d8f250.svg +0 -3
  107. package/build/static/media/reload_icon.4b579a74.svg +0 -3
  108. package/build/static/media/save_search.bebaeebf.svg +0 -3
  109. package/build/static/media/support.289c3a3c.svg +0 -3
  110. package/build/static/media/translate_icon.f0492297.svg +0 -3
  111. package/public/js/settings.example.js +0 -31
  112. package/public/js/test.js +0 -56
  113. package/src/Router.tsx +0 -97
  114. package/src/Store/Auth.ts +0 -44
  115. package/src/Store/Nyris.ts +0 -77
  116. package/src/Store/Search.ts +0 -243
  117. package/src/Store/Store.ts +0 -53
  118. package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Bold.otf +0 -0
  119. package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Light.otf +0 -0
  120. package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Medium.otf +0 -0
  121. package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Regular.otf +0 -0
  122. package/src/common/assets/fonts/Montserrat_OTF/Montserrat-SemiBold.otf +0 -0
  123. package/src/common/assets/icons/Fill.png +0 -0
  124. package/src/common/assets/icons/Fill.svg +0 -3
  125. package/src/common/assets/icons/Icon_wechat.png +0 -0
  126. package/src/common/assets/icons/Icon_whatsapp.png +0 -0
  127. package/src/common/assets/icons/admin.png +0 -0
  128. package/src/common/assets/icons/admin.svg +0 -3
  129. package/src/common/assets/icons/book_mark.png +0 -0
  130. package/src/common/assets/icons/book_mark.svg +0 -3
  131. package/src/common/assets/icons/icon_barcode.png +0 -0
  132. package/src/common/assets/icons/icon_camera.png +0 -0
  133. package/src/common/assets/icons/icon_dislike.svg +0 -3
  134. package/src/common/assets/icons/icon_disslike.png +0 -0
  135. package/src/common/assets/icons/icon_email.png +0 -0
  136. package/src/common/assets/icons/icon_like.png +0 -0
  137. package/src/common/assets/icons/icon_like.svg +0 -3
  138. package/src/common/assets/icons/icon_modal_image.png +0 -0
  139. package/src/common/assets/icons/icon_modal_image.svg +0 -21
  140. package/src/common/assets/icons/icon_picture.png +0 -0
  141. package/src/common/assets/icons/icon_search_image.png +0 -0
  142. package/src/common/assets/icons/icon_search_image.svg +0 -3
  143. package/src/common/assets/icons/nyris_logo.svg +0 -3
  144. package/src/common/assets/icons/reload_icon.png +0 -0
  145. package/src/common/assets/icons/reload_icon.svg +0 -3
  146. package/src/common/assets/icons/save_search.png +0 -0
  147. package/src/common/assets/icons/save_search.svg +0 -3
  148. package/src/common/assets/icons/setting_search_icon.png +0 -0
  149. package/src/common/assets/icons/support.png +0 -0
  150. package/src/common/assets/icons/support.svg +0 -3
  151. package/src/common/assets/icons/translate_icon.png +0 -0
  152. package/src/common/assets/icons/translate_icon.svg +0 -3
  153. package/src/common/assets/icons/view_off.png +0 -0
  154. package/src/common/assets/images/Rectangle.png +0 -0
  155. package/src/common/assets/images/bg-support-page.svg +0 -9
  156. package/src/common/assets/images/image_test.png +0 -0
  157. package/src/components/CustomHits/index.tsx +0 -57
  158. package/src/components/DetailItem.tsx +0 -175
  159. package/src/components/DragDropFile.tsx +0 -192
  160. package/src/components/FilterComponent.tsx +0 -33
  161. package/src/components/Footer.tsx +0 -29
  162. package/src/components/FooterMD.tsx +0 -54
  163. package/src/components/FooterNewVersion.tsx +0 -12
  164. package/src/components/FooterResult.tsx +0 -47
  165. package/src/components/HeaderMd.tsx +0 -38
  166. package/src/components/HeaderNewVersion.tsx +0 -92
  167. package/src/components/Layout.tsx +0 -46
  168. package/src/components/LoadingScreen/index.tsx +0 -29
  169. package/src/components/Navigation.tsx +0 -34
  170. package/src/components/Panigation/Pagination.tsx +0 -140
  171. package/src/components/Panigation/cx.js +0 -3
  172. package/src/components/Panigation/isModifierClick.js +0 -10
  173. package/src/components/Saved/AllItem.tsx +0 -32
  174. package/src/components/Saved/Category.tsx +0 -16
  175. package/src/components/carousel/DefaultCarousel.tsx +0 -48
  176. package/src/components/common.d.ts +0 -9
  177. package/src/components/common.scss +0 -54
  178. package/src/components/default-select.tsx +0 -44
  179. package/src/components/hitItem/hits.tsx +0 -50
  180. package/src/components/hitItem/infinitiHits.tsx +0 -33
  181. package/src/components/input/inputSearch.tsx +0 -77
  182. package/src/components/modal/DefaultModal.tsx +0 -28
  183. package/src/components/results/ItemResult.tsx +0 -155
  184. package/src/components/search/ListSearch.tsx +0 -209
  185. package/src/modules/LandingPage/App.tsx +0 -318
  186. package/src/modules/LandingPage/AppMD.tsx +0 -399
  187. package/src/modules/LandingPage/common.scss +0 -1304
  188. package/src/modules/LandingPage/index.tsx +0 -169
  189. package/src/modules/LandingPage/indexNewVersion.tsx +0 -110
  190. package/src/modules/LandingPage/propsType.ts +0 -43
  191. package/src/page/Auth/login.tsx +0 -7
  192. package/src/page/Exception/404.tsx +0 -11
  193. package/src/page/History/index.tsx +0 -76
  194. package/src/page/Profile/index.tsx +0 -87
  195. package/src/page/Saved/MockData.ts +0 -223
  196. package/src/page/Saved/index.tsx +0 -166
  197. package/src/page/Support/index.tsx +0 -160
  198. package/src/page/result/MockData.ts +0 -36
  199. package/src/page/result/index.tsx +0 -418
  200. package/src/services/Feedback.ts +0 -64
  201. package/src/services/image.ts +0 -40
  202. package/src/services/session.ts +0 -17
  203. package/src/services/types.ts +0 -50
package/src/index.tsx CHANGED
@@ -1,53 +1,203 @@
1
1
  // Some people are still using internet explorer
2
- import "react-app-polyfill/ie11";
3
- import "react-app-polyfill/stable";
4
- import React from "react";
5
- import ReactDOM from "react-dom";
6
- import * as serviceWorker from "./serviceWorker";
7
- import { Provider } from "react-redux";
8
- import { AppSettings, MDSettings } from "./types";
9
- import { MuiThemeProvider } from "@material-ui/core";
10
- import "typeface-roboto";
11
- import { defaultMdSettings } from "./defaults";
12
- import { HashRouter } from "react-router-dom";
13
- import Router from "Router";
14
- import { store } from "Store/Store";
15
- import "react-responsive-carousel/lib/styles/carousel.min.css";
16
- import { createTheme } from "@material-ui/core/styles";
2
+ import 'react-app-polyfill/ie11';
3
+ import 'react-app-polyfill/stable';
4
+
5
+ import React from 'react';
6
+ import ReactDOM from 'react-dom';
7
+ import './index.css';
8
+ import AppMD from './AppMD';
9
+ import * as serviceWorker from './serviceWorker';
10
+
11
+ import {connect, Provider} from 'react-redux';
12
+ import {applyMiddleware, bindActionCreators, combineReducers, createStore, Dispatch} from 'redux';
13
+ import {
14
+ loadCanvas,
15
+ loadFile,
16
+ loadUrl,
17
+ loadFilters,
18
+ reducer as searchReducer,
19
+ selectionChanged, submitNegativeFeedback, submitPositiveFeedback
20
+ } from './actions/searchActions';
21
+ import {
22
+ hideFeedback,
23
+ reducer as nyrisReducer,
24
+ showCamera,
25
+ showStart
26
+ } from './actions/nyrisAppActions';
27
+ import { getUrlParam } from "./utils";
28
+ import {composeWithDevTools} from "redux-devtools-extension";
29
+ import {AppAction, AppSettings, AppState, MDSettings} from "./types";
30
+ import {createEpicMiddleware} from "redux-observable";
31
+ import NyrisAPI from "@nyris/nyris-api";
32
+ import {createMuiTheme, MuiThemeProvider} from "@material-ui/core";
33
+ import 'typeface-roboto';
34
+ import {defaultMdSettings, defaultSettings} from "./defaults";
35
+ import rootEpic from "./epics";
36
+ import { createHashHistory } from 'history';
37
+ import Demo2 from './Demo2';
38
+
39
+
17
40
  declare var settings: AppSettings;
18
41
 
19
- document.title = window.location.host;
20
42
 
21
- let md: MDSettings = {
22
- ...defaultMdSettings,
23
- ...settings.themePage.materialDesign,
43
+ function scrollTop() {
44
+ // TODO might require polyfill for ios and edge
45
+ window.scrollTo({top: 0, left: 0, behavior: "smooth"});
46
+ }
47
+
48
+
49
+
50
+ let normalizedSettings : AppSettings = {
51
+ ...defaultSettings,
52
+ ...settings,
24
53
  };
25
54
 
55
+ normalizedSettings = {
56
+ ...normalizedSettings,
57
+ apiKey: getUrlParam('apiKey') as string || normalizedSettings.apiKey,
58
+ xOptions: getUrlParam('xOptions') as string || normalizedSettings.xOptions,
59
+ regions: getUrlParam('use.regions') as boolean || normalizedSettings.regions,
60
+ preview: getUrlParam('use.preview') as boolean || normalizedSettings.preview,
61
+
62
+ };
63
+
64
+ document.title = window.location.host;
65
+
66
+ const api = new NyrisAPI(normalizedSettings);
67
+ const history = createHashHistory();
68
+
69
+ const epicMiddleware = createEpicMiddleware<AppAction, AppAction, AppState>({
70
+ dependencies: {api, history}
71
+ });
72
+
73
+ const rootReducer = combineReducers({
74
+ settings: () => normalizedSettings as AppSettings,
75
+ nyrisDesign: nyrisReducer,
76
+ search: searchReducer
77
+ });
78
+
79
+
80
+ const store = createStore(rootReducer, composeWithDevTools(
81
+ applyMiddleware(epicMiddleware)
82
+ ));
83
+ epicMiddleware.run(rootEpic);
84
+
26
85
 
27
- let theme = createTheme({
28
- typography: {
29
- fontFamily: md.customFontFamily,
30
- },
31
- palette: {
32
- primary: {
33
- main: md.primaryColor,
86
+ history.listen((location, action) => {
87
+ console.log('history', location, action)
88
+ if (action === 'PUSH') {
89
+ return;
90
+ }
91
+ switch (location.pathname) {
92
+ case '/results':
93
+ store.dispatch({type: 'SHOW_RESULTS'});
94
+ break;
95
+ case '/':
96
+ store.dispatch({type: 'SHOW_START'});
97
+ break;
98
+ }
99
+ });
100
+
101
+
102
+ // Here comes the really dirty code of the composition-root
103
+
104
+ const mapStateToProps = (state: AppState) => ({
105
+ showPart: state.nyrisDesign.showPart,
106
+ search: {
107
+ results: state.search.results,
108
+ categoryPredictions: state.search.categoryPredictions,
109
+ codes: state.search.codes,
110
+ filterOptions: state.search.filterOptions,
111
+ previewSelection: state.search.selectedRegion,
112
+ regions: state.search.regions,
113
+ duration: state.search.duration,
114
+ requestId: state.search.requestId,
115
+ toastErrorMessage: state.search.errorMessage,
116
+ filters: state.search.filters
34
117
  },
35
- secondary: {
36
- main: md.secondaryColor,
118
+ settings: state.settings,
119
+ previewImage: state.search.requestImage,
120
+ loading: state.search.fetchingRegions || state.search.fetchingResults,
121
+ feedbackState: state.nyrisDesign.feedbackState,
122
+ mdSettings: state.settings.materialDesign || defaultMdSettings,
123
+ });
124
+
125
+
126
+ const mapDispatchToProps = (dispatch: Dispatch<AppAction>) => {
127
+ return {
128
+ handlers: {
129
+ ...bindActionCreators({
130
+ onPositiveFeedback: submitPositiveFeedback,
131
+ onNegativeFeedback: submitNegativeFeedback,
132
+ onCameraClick: showCamera,
133
+ onCaptureCanceled: showStart,
134
+ onCaptureComplete: loadCanvas,
135
+ onSelectFile: loadFile,
136
+ onExampleImageClick: loadUrl,
137
+ onFileDropped: loadFile,
138
+ onSelectionChange: selectionChanged,
139
+ onCloseFeedback: hideFeedback
140
+ }, dispatch),
141
+ onImageClick: (position: number, url: string) => {
142
+ dispatch({ type: "RESULT_IMAGE_CLICKED", position, url});
143
+ dispatch(loadUrl(url));
144
+ },
145
+ onLinkClick: (position: number, url: string) => {
146
+ dispatch({type: 'RESULT_LINK_CLICKED', position, url});
147
+ if (url) {
148
+ window.open(url);
149
+ }
150
+ },
151
+ onShowStart: () => {
152
+ dispatch(showStart());
153
+ dispatch({type: "CLEAR_SELECTED_FILTERS"});
154
+ dispatch(loadFilters());
155
+ scrollTop();
156
+ },
157
+ }
158
+ };
159
+ };
160
+
161
+
162
+ // chrome plugin communication
163
+ function onMessage(evt: MessageEvent) {
164
+ let msg = evt.data;
165
+ if (msg.type === "image") {
166
+ store.dispatch(loadUrl(msg.image));
167
+ }
168
+ }
169
+ window.addEventListener('message', onMessage);
170
+
171
+
172
+
173
+
174
+ let useMd = settings.materialDesign !== undefined;
175
+ let md: MDSettings = {
176
+ ...defaultMdSettings,
177
+ ...settings.materialDesign
178
+ };
179
+ let theme = createMuiTheme({
180
+ typography: {
181
+ fontFamily: md.customFontFamily,
37
182
  },
38
- },
183
+ palette: {
184
+ primary: {
185
+ main: md.primaryColor,
186
+ },
187
+ secondary: {
188
+ main: md.secondaryColor
189
+ }
190
+ }
39
191
  });
192
+ const SelectedApp = useMd ? AppMD : Demo2;
193
+ const ConnectedApp = connect(mapStateToProps, mapDispatchToProps)(SelectedApp);
194
+
195
+ ReactDOM.render(<Provider store={store}><MuiThemeProvider
196
+ theme={theme}><ConnectedApp/></MuiThemeProvider></Provider>, document.getElementById('root'));
197
+
198
+
199
+
40
200
 
41
- ReactDOM.render(
42
- <Provider store={store}>
43
- <MuiThemeProvider theme={theme}>
44
- <HashRouter>
45
- <Router />
46
- </HashRouter>
47
- </MuiThemeProvider>
48
- </Provider>,
49
- document.getElementById("root")
50
- );
51
201
 
52
202
  // If you want your app to work offline and load faster, you can change
53
203
  // unregister() to register() below. Note this comes with some pitfalls.
package/src/types.ts CHANGED
@@ -1,6 +1,6 @@
1
+ import {SearchAction, SearchState} from "./actions/searchActions";
2
+ import {NyrisAction, NyrisAppState} from "./actions/nyrisAppActions";
1
3
  import {NyrisAPISettings} from "@nyris/nyris-api";
2
- import { NyrisAppState } from "Store/Nyris";
3
- import { SearchState } from "Store/Search";
4
4
 
5
5
  export interface MDSettings {
6
6
  customFontFamily?: string,
@@ -17,13 +17,6 @@ export interface MDSettings {
17
17
 
18
18
  resultLinkText?: string,
19
19
  resultLinkIcon?: string,
20
- active?: boolean
21
- }
22
-
23
- export interface AlgoliaSettings {
24
- apiKey: string,
25
- appId: string,
26
- indexName: string
27
20
  }
28
21
 
29
22
  export interface AppSettings extends NyrisAPISettings {
@@ -33,23 +26,8 @@ export interface AppSettings extends NyrisAPISettings {
33
26
  noImageUrl?: string,
34
27
  resultTemplate?: string,
35
28
  regions: boolean,
36
- instantRedirectPatterns: string[],
37
- themePage: ThemeChoice,
38
- algolia?: AlgoliaSettings
39
- }
40
-
41
- export interface DefaultThemeSettings {
42
- active: boolean
43
- }
44
-
45
- export interface SearchSuiteSettings {
46
- active: boolean
47
- }
48
-
49
- export type ThemeChoice = {
50
- default?: DefaultThemeSettings,
51
29
  materialDesign?: MDSettings,
52
- searchSuite?: SearchSuiteSettings
30
+ instantRedirectPatterns: string[]
53
31
  }
54
32
 
55
33
  export type AppState = {
@@ -58,34 +36,12 @@ export type AppState = {
58
36
  nyrisDesign: NyrisAppState
59
37
  };
60
38
 
39
+ export type AppAction =
40
+ | SearchAction
41
+ | NyrisAction
42
+
61
43
  export interface CanvasWithId {
62
44
  canvas: HTMLCanvasElement
63
45
  id: string
64
46
  }
65
47
 
66
- export interface SearchServiceSettings {
67
- xOptions: boolean | string,
68
- customSearchRequest?: ((file: Blob, client: any) => Promise<any>),
69
- responseHook?: ((response: any) => any),
70
- apiKey: string,
71
- imageMatchingUrl?: string,
72
- imageMatchingUrlBySku?: string,
73
- imageMatchingSubmitManualUrl?: string,
74
- regionProposalUrl?: string,
75
- responseFormat?: string,
76
- feedbackUrl?: string,
77
- exampleImages: string[],
78
- resultTemplate?: string,
79
- noImageUrl?: string,
80
- materialDesign?: MDSettings,
81
- preview: boolean,
82
- regions: boolean,
83
- jpegQuality: number,
84
- maxWidth: number,
85
- maxHeight: number,
86
- useRecommendations: boolean
87
- }
88
-
89
- export interface AlgoliaResult {
90
- sku: string
91
- }
package/tsconfig.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "target": "es5",
4
- "baseUrl": "src",
5
- "lib": ["dom", "dom.iterable", "esnext"],
4
+ "lib": [
5
+ "dom",
6
+ "dom.iterable",
7
+ "esnext"
8
+ ],
6
9
  "noErrorTruncation": true,
7
10
  "allowJs": true,
8
11
  "skipLibCheck": true,
@@ -17,5 +20,7 @@
17
20
  "noEmit": true,
18
21
  "jsx": "react"
19
22
  },
20
- "include": ["src"]
23
+ "include": [
24
+ "src"
25
+ ]
21
26
  }
@@ -1,31 +0,0 @@
1
-
2
- var settings = {
3
- "apiKey": "xxx",
4
- "maxWidth": 500,
5
- "maxHeight": 500,
6
- "jpegQuality": 0.9,
7
- "regions": true,
8
- "preview": true,
9
- "baseUrl": "https://api.nyris.io",
10
- "xOptions": "",
11
- "exampleImages": [
12
- "https://img.nyris.io/demo/everybag/kissen.jpg",
13
- "https://img.nyris.io/demo/everybag/aspirin.jpg",
14
- "https://img.nyris.io/demo/everybag/lego.jpg",
15
- "https://img.nyris.io/demo/everybag/wdr_add_2.jpg",
16
- "https://img.nyris.io/demo/everybag/mb-dle-4.jpg",
17
- "https://img.nyris.io/demo/everybag/1.jpg",
18
- "https://img.nyris.io/demo/everybag/5.jpg",
19
- "https://img.nyris.io/demo/everybag/6.jpg"
20
- ],
21
- "instantRedirectPatterns": [
22
- '^https?://(www.)?youtube.com/',
23
- '^https?://(www.)?youtu.be/',
24
- '^https?://(www.)?vimeo.com/',
25
- '^https?://(www.)?dailymotion.com/',
26
- '^https?://(www.)?dai.ly/'
27
- ]
28
- };
29
- settings["customSearchRequest"] = null;
30
- settings["responseHook"] = null;
31
-
package/build/js/test.js DELETED
@@ -1,56 +0,0 @@
1
- var settings = {
2
- apiKey: "I94rtHQGbVAtXJ8fFYnccJTsepp2XzfU",
3
- maxWidth: 300,
4
- maxHeight: 300,
5
- jpegQuality: 0.9,
6
- regions: true,
7
- preview: true,
8
- useRecommendations: false,
9
- xOptions:
10
- "default +estimated-category similarity.threshold=0.05 similarity.threshold.discard=0.05 exact.threshold.perfect=200 similarity.threshold.perfect=2 scoring.indicative-min-hits=1 scoring.promo-min-hits=20 scoring.interpolation-cutoff=0 +barcode +barcode-detection",
11
- baseUrl: "https://api.nyris.io",
12
- resultTemplate: "default",
13
- responseFormat: "application/offers.complete+json",
14
- exampleImages: [
15
- "https://storage.googleapis.com/nyris/share/examples_search/example_1.jpg",
16
- "https://storage.googleapis.com/nyris/share/examples_search/example_2.jpg",
17
- "https://storage.googleapis.com/nyris/share/examples_search/example_3.jpg",
18
- "https://storage.googleapis.com/nyris/share/examples_search/example_4.jpg",
19
- ],
20
- deactivated: false,
21
- cadSearch: false,
22
- themePage: {
23
- default: {
24
- active: false,
25
- },
26
- materialDesign: {
27
- active: false,
28
- materialDesign: {
29
- appBarLogoUrl: "https://nyris.io/wp-content/themes/nyris/img/logo.svg",
30
- appBarTitle: "",
31
- appBarCustomBackgroundColor: "black",
32
- appBarCustomTextColor: "white",
33
-
34
- primaryColor: "#e31b5d",
35
- secondaryColor: "#ccc",
36
- resultFirstRowProperty: "title",
37
- resultSecondRowProperty: "price",
38
- resultLinkText: "show",
39
- resultLinkIcon: "eye",
40
- },
41
- },
42
- newVersion: {
43
- active: true,
44
- },
45
- },
46
- imageMatchingUrl: "https://api.nyris.io/find/v1",
47
- imageMatchingUrlBySku: "https://api.nyris.io/recommend/v1",
48
- imageMatchingSubmitManualUrl: "https://api.nyris.io/find/v1/manual",
49
- regionProposalUrl: "https://api.nyris.io/find/v1/regions",
50
- feedbackUrl: "https://api.nyris.io/feedback/v1",
51
- appIdAlgolia: "HBDJYUK5G4",
52
- indexNameAlgolia: "Normparts",
53
- apiKeyAlgolia: "f6a833ff662086f362b93064b9de6f02",
54
- };
55
- settings["customSearchRequest"] = null;
56
- settings["responseHook"] = null;
@@ -1,2 +0,0 @@
1
- @font-face{font-family:"Roboto";font-style:normal;font-display:swap;font-weight:100;src:local("Roboto Thin "),local("Roboto-Thin"),url(../../static/media/roboto-latin-100.7370c367.woff2) format("woff2"),url(../../static/media/roboto-latin-100.5cb7edfc.woff) format("woff")}@font-face{font-family:"Roboto";font-style:italic;font-display:swap;font-weight:100;src:local("Roboto Thin italic"),local("Roboto-Thinitalic"),url(../../static/media/roboto-latin-100italic.f8b1df51.woff2) format("woff2"),url(../../static/media/roboto-latin-100italic.f9e8e590.woff) format("woff")}@font-face{font-family:"Roboto";font-style:normal;font-display:swap;font-weight:300;src:local("Roboto Light "),local("Roboto-Light"),url(../../static/media/roboto-latin-300.ef7c6637.woff2) format("woff2"),url(../../static/media/roboto-latin-300.b00849e0.woff) format("woff")}@font-face{font-family:"Roboto";font-style:italic;font-display:swap;font-weight:300;src:local("Roboto Light italic"),local("Roboto-Lightitalic"),url(../../static/media/roboto-latin-300italic.14286f3b.woff2) format("woff2"),url(../../static/media/roboto-latin-300italic.4df32891.woff) format("woff")}@font-face{font-family:"Roboto";font-style:normal;font-display:swap;font-weight:400;src:local("Roboto Regular "),local("Roboto-Regular"),url(../../static/media/roboto-latin-400.479970ff.woff2) format("woff2"),url(../../static/media/roboto-latin-400.60fa3c06.woff) format("woff")}@font-face{font-family:"Roboto";font-style:italic;font-display:swap;font-weight:400;src:local("Roboto Regular italic"),local("Roboto-Regularitalic"),url(../../static/media/roboto-latin-400italic.51521a2a.woff2) format("woff2"),url(../../static/media/roboto-latin-400italic.fe65b833.woff) format("woff")}@font-face{font-family:"Roboto";font-style:normal;font-display:swap;font-weight:500;src:local("Roboto Medium "),local("Roboto-Medium"),url(../../static/media/roboto-latin-500.020c97dc.woff2) format("woff2"),url(../../static/media/roboto-latin-500.87284894.woff) format("woff")}@font-face{font-family:"Roboto";font-style:italic;font-display:swap;font-weight:500;src:local("Roboto Medium italic"),local("Roboto-Mediumitalic"),url(../../static/media/roboto-latin-500italic.db4a2a23.woff2) format("woff2"),url(../../static/media/roboto-latin-500italic.288ad9c6.woff) format("woff")}@font-face{font-family:"Roboto";font-style:normal;font-display:swap;font-weight:700;src:local("Roboto Bold "),local("Roboto-Bold"),url(../../static/media/roboto-latin-700.2735a3a6.woff2) format("woff2"),url(../../static/media/roboto-latin-700.adcde98f.woff) format("woff")}@font-face{font-family:"Roboto";font-style:italic;font-display:swap;font-weight:700;src:local("Roboto Bold italic"),local("Roboto-Bolditalic"),url(../../static/media/roboto-latin-700italic.da0e7178.woff2) format("woff2"),url(../../static/media/roboto-latin-700italic.81f57861.woff) format("woff")}@font-face{font-family:"Roboto";font-style:normal;font-display:swap;font-weight:900;src:local("Roboto Black "),local("Roboto-Black"),url(../../static/media/roboto-latin-900.9b3766ef.woff2) format("woff2"),url(../../static/media/roboto-latin-900.bb1e4dc6.woff) format("woff")}@font-face{font-family:"Roboto";font-style:italic;font-display:swap;font-weight:900;src:local("Roboto Black italic"),local("Roboto-Blackitalic"),url(../../static/media/roboto-latin-900italic.ebf6d164.woff2) format("woff2"),url(../../static/media/roboto-latin-900italic.28f91510.woff) format("woff")}.carousel.carousel-slider .control-arrow,.carousel .control-arrow{transition:all .25s ease-in;opacity:.4;filter:alpha(opacity=40);position:absolute;z-index:2;top:20px;background:none;border:0;font-size:32px;cursor:pointer}.carousel .control-arrow:focus,.carousel .control-arrow:hover{opacity:1;filter:alpha(opacity=100)}.carousel.carousel-slider .control-arrow:before,.carousel .control-arrow:before{margin:0 5px;display:inline-block;border-top:8px solid transparent;border-bottom:8px solid transparent;content:""}.carousel .control-disabled.control-arrow{opacity:0;filter:alpha(opacity=0);cursor:inherit;display:none}.carousel .control-prev.control-arrow{left:0}.carousel .control-prev.control-arrow:before{border-right:8px solid #fff}.carousel .control-next.control-arrow{right:0}.carousel .control-next.control-arrow:before{border-left:8px solid #fff}.carousel-root{outline:none}.carousel{position:relative;width:100%}.carousel *{box-sizing:border-box}.carousel img{width:100%;display:inline-block;pointer-events:none}.carousel .carousel{position:relative}.carousel .control-arrow{outline:0;border:0;background:none;top:50%;margin-top:-13px;font-size:18px}.carousel .thumbs-wrapper{margin:20px;overflow:hidden}.carousel .thumbs{transition:all .15s ease-in;-webkit-transform:translateZ(0);transform:translateZ(0);position:relative;list-style:none;white-space:nowrap}.carousel .thumb{transition:border .15s ease-in;display:inline-block;margin-right:6px;white-space:nowrap;overflow:hidden;border:3px solid #fff;padding:2px}.carousel .thumb:focus{border:3px solid #ccc;outline:none}.carousel .thumb.selected,.carousel .thumb:hover{border:3px solid #333}.carousel .thumb img{vertical-align:top}.carousel.carousel-slider{position:relative;margin:0;overflow:hidden}.carousel.carousel-slider .control-arrow{top:0;color:#fff;font-size:26px;bottom:0;margin-top:0;padding:5px}.carousel.carousel-slider .control-arrow:hover{background:rgba(0,0,0,.2)}.carousel .slider-wrapper{overflow:hidden;margin:auto;width:100%;transition:height .15s ease-in}.carousel .slider-wrapper.axis-horizontal .slider{-ms-box-orient:horizontal;display:-moz-flex;display:flex}.carousel .slider-wrapper.axis-horizontal .slider .slide{flex-direction:column;flex-flow:column}.carousel .slider-wrapper.axis-vertical{-ms-box-orient:horizontal;display:-moz-flex;display:flex}.carousel .slider-wrapper.axis-vertical .slider{flex-direction:column}.carousel .slider{margin:0;padding:0;position:relative;list-style:none;width:100%}.carousel .slider.animated{transition:all .35s ease-in-out}.carousel .slide{min-width:100%;margin:0;position:relative;text-align:center}.carousel .slide img{width:100%;vertical-align:top;border:0}.carousel .slide iframe{display:inline-block;width:calc(100% - 80px);margin:0 40px 40px;border:0}.carousel .slide .legend{transition:all .5s ease-in-out;position:absolute;bottom:40px;left:50%;margin-left:-45%;width:90%;border-radius:10px;background:#000;color:#fff;padding:10px;font-size:12px;text-align:center;opacity:.25;transition:opacity .35s ease-in-out}.carousel .control-dots{position:absolute;bottom:0;margin:10px 0;padding:0;text-align:center;width:100%;z-index:1}@media (min-width:960px){.carousel .control-dots{bottom:0}}.carousel .control-dots .dot{transition:opacity .25s ease-in;opacity:.3;filter:alpha(opacity=30);box-shadow:1px 1px 2px rgba(0,0,0,.9);background:#fff;border-radius:50%;width:8px;height:8px;cursor:pointer;display:inline-block;margin:0 8px}.carousel .control-dots .dot.selected,.carousel .control-dots .dot:hover{opacity:1;filter:alpha(opacity=100)}.carousel .carousel-status{position:absolute;top:0;right:0;padding:5px;font-size:10px;text-shadow:1px 1px 1px rgba(0,0,0,.9);color:#fff}.carousel:hover .slide .legend{opacity:1}
2
- /*# sourceMappingURL=2.8285176a.chunk.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.css","carousel.min.css"],"names":[],"mappings":"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","file":"2.8285176a.chunk.css","sourcesContent":["/* roboto-100normal - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 100;\n src:\n local('Roboto Thin '),\n local('Roboto-Thin'),\n url('./files/roboto-latin-100.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-100.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-100italic - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n font-weight: 100;\n src:\n local('Roboto Thin italic'),\n local('Roboto-Thinitalic'),\n url('./files/roboto-latin-100italic.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-100italic.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-300normal - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 300;\n src:\n local('Roboto Light '),\n local('Roboto-Light'),\n url('./files/roboto-latin-300.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-300.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-300italic - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n font-weight: 300;\n src:\n local('Roboto Light italic'),\n local('Roboto-Lightitalic'),\n url('./files/roboto-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-300italic.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-400normal - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src:\n local('Roboto Regular '),\n local('Roboto-Regular'),\n url('./files/roboto-latin-400.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-400.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-400italic - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n font-weight: 400;\n src:\n local('Roboto Regular italic'),\n local('Roboto-Regularitalic'),\n url('./files/roboto-latin-400italic.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-400italic.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-500normal - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 500;\n src:\n local('Roboto Medium '),\n local('Roboto-Medium'),\n url('./files/roboto-latin-500.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-500.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-500italic - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n font-weight: 500;\n src:\n local('Roboto Medium italic'),\n local('Roboto-Mediumitalic'),\n url('./files/roboto-latin-500italic.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-500italic.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-700normal - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src:\n local('Roboto Bold '),\n local('Roboto-Bold'),\n url('./files/roboto-latin-700.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-700.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-700italic - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n font-weight: 700;\n src:\n local('Roboto Bold italic'),\n local('Roboto-Bolditalic'),\n url('./files/roboto-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-700italic.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-900normal - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n font-weight: 900;\n src:\n local('Roboto Black '),\n local('Roboto-Black'),\n url('./files/roboto-latin-900.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-900.woff') format('woff'); /* Modern Browsers */\n}\n\n/* roboto-900italic - latin */\n@font-face {\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n font-weight: 900;\n src:\n local('Roboto Black italic'),\n local('Roboto-Blackitalic'),\n url('./files/roboto-latin-900italic.woff2') format('woff2'), /* Super Modern Browsers */\n url('./files/roboto-latin-900italic.woff') format('woff'); /* Modern Browsers */\n}\n\n",".carousel .control-arrow,.carousel.carousel-slider .control-arrow{-webkit-transition:all .25s ease-in;-moz-transition:all .25s ease-in;-ms-transition:all .25s ease-in;-o-transition:all .25s ease-in;transition:all .25s ease-in;opacity:.4;filter:alpha(opacity=40);position:absolute;z-index:2;top:20px;background:none;border:0;font-size:32px;cursor:pointer}.carousel .control-arrow:focus,.carousel .control-arrow:hover{opacity:1;filter:alpha(opacity=100)}.carousel .control-arrow:before,.carousel.carousel-slider .control-arrow:before{margin:0 5px;display:inline-block;border-top:8px solid transparent;border-bottom:8px solid transparent;content:''}.carousel .control-disabled.control-arrow{opacity:0;filter:alpha(opacity=0);cursor:inherit;display:none}.carousel .control-prev.control-arrow{left:0}.carousel .control-prev.control-arrow:before{border-right:8px solid #fff}.carousel .control-next.control-arrow{right:0}.carousel .control-next.control-arrow:before{border-left:8px solid #fff}.carousel-root{outline:none}.carousel{position:relative;width:100%}.carousel *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.carousel img{width:100%;display:inline-block;pointer-events:none}.carousel .carousel{position:relative}.carousel .control-arrow{outline:0;border:0;background:none;top:50%;margin-top:-13px;font-size:18px}.carousel .thumbs-wrapper{margin:20px;overflow:hidden}.carousel .thumbs{-webkit-transition:all .15s ease-in;-moz-transition:all .15s ease-in;-ms-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);position:relative;list-style:none;white-space:nowrap}.carousel .thumb{-webkit-transition:border .15s ease-in;-moz-transition:border .15s ease-in;-ms-transition:border .15s ease-in;-o-transition:border .15s ease-in;transition:border .15s ease-in;display:inline-block;margin-right:6px;white-space:nowrap;overflow:hidden;border:3px solid #fff;padding:2px}.carousel .thumb:focus{border:3px solid #ccc;outline:none}.carousel .thumb.selected,.carousel .thumb:hover{border:3px solid #333}.carousel .thumb img{vertical-align:top}.carousel.carousel-slider{position:relative;margin:0;overflow:hidden}.carousel.carousel-slider .control-arrow{top:0;color:#fff;font-size:26px;bottom:0;margin-top:0;padding:5px}.carousel.carousel-slider .control-arrow:hover{background:rgba(0,0,0,0.2)}.carousel .slider-wrapper{overflow:hidden;margin:auto;width:100%;-webkit-transition:height .15s ease-in;-moz-transition:height .15s ease-in;-ms-transition:height .15s ease-in;-o-transition:height .15s ease-in;transition:height .15s ease-in}.carousel .slider-wrapper.axis-horizontal .slider{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex}.carousel .slider-wrapper.axis-horizontal .slider .slide{flex-direction:column;flex-flow:column}.carousel .slider-wrapper.axis-vertical{-ms-box-orient:horizontal;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex}.carousel .slider-wrapper.axis-vertical .slider{-webkit-flex-direction:column;flex-direction:column}.carousel .slider{margin:0;padding:0;position:relative;list-style:none;width:100%}.carousel .slider.animated{-webkit-transition:all .35s ease-in-out;-moz-transition:all .35s ease-in-out;-ms-transition:all .35s ease-in-out;-o-transition:all .35s ease-in-out;transition:all .35s ease-in-out}.carousel .slide{min-width:100%;margin:0;position:relative;text-align:center}.carousel .slide img{width:100%;vertical-align:top;border:0}.carousel .slide iframe{display:inline-block;width:calc(100% - 80px);margin:0 40px 40px;border:0}.carousel .slide .legend{-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-ms-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out;position:absolute;bottom:40px;left:50%;margin-left:-45%;width:90%;border-radius:10px;background:#000;color:#fff;padding:10px;font-size:12px;text-align:center;opacity:0.25;-webkit-transition:opacity .35s ease-in-out;-moz-transition:opacity .35s ease-in-out;-ms-transition:opacity .35s ease-in-out;-o-transition:opacity .35s ease-in-out;transition:opacity .35s ease-in-out}.carousel .control-dots{position:absolute;bottom:0;margin:10px 0;padding:0;text-align:center;width:100%;z-index:1}@media (min-width: 960px){.carousel .control-dots{bottom:0}}.carousel .control-dots .dot{-webkit-transition:opacity .25s ease-in;-moz-transition:opacity .25s ease-in;-ms-transition:opacity .25s ease-in;-o-transition:opacity .25s ease-in;transition:opacity .25s ease-in;opacity:.3;filter:alpha(opacity=30);box-shadow:1px 1px 2px rgba(0,0,0,0.9);background:#fff;border-radius:50%;width:8px;height:8px;cursor:pointer;display:inline-block;margin:0 8px}.carousel .control-dots .dot.selected,.carousel .control-dots .dot:hover{opacity:1;filter:alpha(opacity=100)}.carousel .carousel-status{position:absolute;top:0;right:0;padding:5px;font-size:10px;text-shadow:1px 1px 1px rgba(0,0,0,0.9);color:#fff}.carousel:hover .slide .legend{opacity:1}\n"]}