@nyris/nyris-webapp 0.3.3 → 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.
- package/build/asset-manifest.json +18 -32
- package/build/index.html +1 -1
- package/build/{precache-manifest.01ce682577e62add75aa397b2a944b75.js → precache-manifest.bffed513ca17d8ac16af1cc3aaa7d908.js} +13 -89
- package/build/service-worker.js +1 -1
- package/build/static/css/2.43a1c8b7.chunk.css +2 -0
- package/build/static/css/2.43a1c8b7.chunk.css.map +1 -0
- package/build/static/css/main.2a76dc8a.chunk.css +2 -0
- package/build/static/css/main.2a76dc8a.chunk.css.map +1 -0
- package/build/static/js/2.4e9a4ce1.chunk.js +3 -0
- package/build/static/js/2.4e9a4ce1.chunk.js.LICENSE.txt +79 -0
- package/build/static/js/2.4e9a4ce1.chunk.js.map +1 -0
- package/build/static/js/main.ec93aa4d.chunk.js +2 -0
- package/build/static/js/main.ec93aa4d.chunk.js.map +1 -0
- package/build/static/js/{runtime-main.b418ff16.js → runtime-main.f5553a9b.js} +1 -1
- package/build/static/js/{runtime-main.b418ff16.js.map → runtime-main.f5553a9b.js.map} +1 -1
- package/package.json +7 -30
- package/src/App.css +64 -20
- package/src/App.tsx +253 -19
- package/src/AppMD.tsx +320 -0
- package/src/Demo2.tsx +220 -0
- package/src/actions/nyrisAppActions.ts +76 -0
- package/src/actions/searchActions.ts +218 -0
- package/src/components/ExampleImages.tsx +17 -32
- package/src/components/Feedback.tsx +48 -87
- package/src/components/FiltersList.tsx +69 -0
- package/src/components/Header.tsx +17 -32
- package/src/components/Result.tsx +113 -186
- package/src/components/Sidebar.tsx +40 -0
- package/src/defaults.ts +3 -4
- package/src/{Store/epics → epics}/feedback.ts +0 -0
- package/src/epics/index.ts +154 -0
- package/src/epics/search.ts +203 -0
- package/src/{Store/epics → epics}/types.ts +1 -1
- package/src/{common/assets/fonts → fonts}/roboto-bold-webfont.woff +0 -0
- package/src/{common/assets/fonts → fonts}/roboto-bold-webfont.woff2 +0 -0
- package/src/{common/assets/fonts → fonts}/roboto-italic-webfont.woff +0 -0
- package/src/{common/assets/fonts → fonts}/roboto-italic-webfont.woff2 +0 -0
- package/src/{common/assets/fonts → fonts}/roboto-regular-webfont.woff +0 -0
- package/src/{common/assets/fonts → fonts}/roboto-regular-webfont.woff2 +0 -0
- package/src/{common/assets/fonts → fonts}/robotocondensed-bold-webfont.woff +0 -0
- package/src/{common/assets/fonts → fonts}/robotocondensed-bold-webfont.woff2 +0 -0
- package/src/{common/assets/fonts → fonts}/robotocondensed-bolditalic-webfont.woff +0 -0
- package/src/{common/assets/fonts → fonts}/robotocondensed-bolditalic-webfont.woff2 +0 -0
- package/src/{common/assets/images → images}/fav/android-icon-192x192.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-114x114.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-120x120.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-144x144.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-152x152.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-180x180.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-57x57.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-60x60.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-72x72.png +0 -0
- package/src/{common/assets/images → images}/fav/apple-icon-76x76.png +0 -0
- package/src/{common/assets/images → images}/fav/browserconfig.xml +0 -0
- package/src/{common/assets/images → images}/fav/favicon-16x16.png +0 -0
- package/src/{common/assets/images → images}/fav/favicon-32x32.png +0 -0
- package/src/{common/assets/images → images}/fav/favicon-96x96.png +0 -0
- package/src/{common/assets/images → images}/fav/manifest.json +0 -0
- package/src/{common/assets/images → images}/ic_cam.png +0 -0
- package/src/{common/assets/images → images}/ic_cam.svg +0 -0
- package/src/{common/assets/images → images}/ic_cam_large.png +0 -0
- package/src/{common/assets/images → images}/ic_cam_large.svg +0 -0
- package/src/{common/assets/images → images}/ic_cam_large_noimage.png +0 -0
- package/src/{common/assets/images → images}/ic_close_feedback.png +0 -0
- package/src/{common/assets/images → images}/ic_close_feedback.svg +0 -0
- package/src/{common/assets/images → images}/ic_shopNow.png +0 -0
- package/src/{common/assets/images → images}/ic_shopNow.svg +0 -0
- package/src/{common/assets/images → images}/ic_shopNowLight.png +0 -0
- package/src/{common/assets/images → images}/ic_shopNowLight.svg +0 -0
- package/src/{common/assets/images → images}/nyris_logo.png +0 -0
- package/src/{common/assets/images → images}/rewe.svg +0 -0
- package/src/{common/assets/images → images}/sectionTransBack.png +0 -0
- package/src/{common/assets/images → images}/sectionTransBack.svg +0 -0
- package/src/{common/assets/images → images}/sectionTransTop.png +0 -0
- package/src/{common/assets/images → images}/sectionTransTop.svg +0 -0
- package/src/index.css +416 -573
- package/src/index.tsx +190 -39
- package/src/types.ts +3 -43
- package/tsconfig.json +8 -3
- package/build/js/settings.example.js +0 -31
- package/build/js/test.js +0 -56
- package/build/static/css/2.8285176a.chunk.css +0 -2
- package/build/static/css/2.8285176a.chunk.css.map +0 -1
- package/build/static/css/main.6676fe1f.chunk.css +0 -2
- package/build/static/css/main.6676fe1f.chunk.css.map +0 -1
- package/build/static/js/2.d1562c08.chunk.js +0 -3
- package/build/static/js/2.d1562c08.chunk.js.LICENSE.txt +0 -133
- package/build/static/js/2.d1562c08.chunk.js.map +0 -1
- package/build/static/js/main.5c08aba4.chunk.js +0 -2
- package/build/static/js/main.5c08aba4.chunk.js.map +0 -1
- package/build/static/media/Fill.37094b44.svg +0 -3
- package/build/static/media/Montserrat-Bold.5a052e98.otf +0 -0
- package/build/static/media/Montserrat-Light.21789e89.otf +0 -0
- package/build/static/media/Montserrat-Medium.a53e0373.otf +0 -0
- package/build/static/media/Montserrat-Regular.71cdc681.otf +0 -0
- package/build/static/media/Montserrat-SemiBold.f613d915.otf +0 -0
- package/build/static/media/Rectangle.4dd8b747.png +0 -0
- package/build/static/media/admin.9529c7f6.svg +0 -3
- package/build/static/media/bg-support-page.6ac55268.svg +0 -9
- package/build/static/media/book_mark.8e294c0b.svg +0 -3
- package/build/static/media/icon_dislike.94607ca6.svg +0 -3
- package/build/static/media/icon_like.a4fb1b18.svg +0 -3
- package/build/static/media/icon_modal_image.3068d0ea.svg +0 -21
- package/build/static/media/icon_search_image.c2c728c0.svg +0 -3
- package/build/static/media/nyris_logo.22d8f250.svg +0 -3
- package/build/static/media/reload_icon.4b579a74.svg +0 -3
- package/build/static/media/save_search.bebaeebf.svg +0 -3
- package/build/static/media/support.289c3a3c.svg +0 -3
- package/build/static/media/translate_icon.f0492297.svg +0 -3
- package/public/js/settings.example.js +0 -31
- package/public/js/test.js +0 -56
- package/src/Router.tsx +0 -97
- package/src/Store/Auth.ts +0 -44
- package/src/Store/Nyris.ts +0 -77
- package/src/Store/Search.ts +0 -269
- package/src/Store/Store.ts +0 -46
- package/src/Store/common.d.ts +0 -10
- package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Bold.otf +0 -0
- package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Light.otf +0 -0
- package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Medium.otf +0 -0
- package/src/common/assets/fonts/Montserrat_OTF/Montserrat-Regular.otf +0 -0
- package/src/common/assets/fonts/Montserrat_OTF/Montserrat-SemiBold.otf +0 -0
- package/src/common/assets/icons/Fill.png +0 -0
- package/src/common/assets/icons/Fill.svg +0 -3
- package/src/common/assets/icons/Icon_wechat.png +0 -0
- package/src/common/assets/icons/Icon_whatsapp.png +0 -0
- package/src/common/assets/icons/admin.png +0 -0
- package/src/common/assets/icons/admin.svg +0 -3
- package/src/common/assets/icons/book_mark.png +0 -0
- package/src/common/assets/icons/book_mark.svg +0 -3
- package/src/common/assets/icons/icon_barcode.png +0 -0
- package/src/common/assets/icons/icon_camera.png +0 -0
- package/src/common/assets/icons/icon_dislike.svg +0 -3
- package/src/common/assets/icons/icon_disslike.png +0 -0
- package/src/common/assets/icons/icon_email.png +0 -0
- package/src/common/assets/icons/icon_like.png +0 -0
- package/src/common/assets/icons/icon_like.svg +0 -3
- package/src/common/assets/icons/icon_modal_image.png +0 -0
- package/src/common/assets/icons/icon_modal_image.svg +0 -21
- package/src/common/assets/icons/icon_picture.png +0 -0
- package/src/common/assets/icons/icon_search_image.png +0 -0
- package/src/common/assets/icons/icon_search_image.svg +0 -3
- package/src/common/assets/icons/nyris_logo.svg +0 -3
- package/src/common/assets/icons/reload_icon.png +0 -0
- package/src/common/assets/icons/reload_icon.svg +0 -3
- package/src/common/assets/icons/save_search.png +0 -0
- package/src/common/assets/icons/save_search.svg +0 -3
- package/src/common/assets/icons/setting_search_icon.png +0 -0
- package/src/common/assets/icons/support.png +0 -0
- package/src/common/assets/icons/support.svg +0 -3
- package/src/common/assets/icons/translate_icon.png +0 -0
- package/src/common/assets/icons/translate_icon.svg +0 -3
- package/src/common/assets/icons/view_off.png +0 -0
- package/src/common/assets/images/Rectangle.png +0 -0
- package/src/common/assets/images/bg-support-page.svg +0 -9
- package/src/common/assets/images/image_test.png +0 -0
- package/src/components/CustomHits/index.tsx +0 -57
- package/src/components/DetailItem.tsx +0 -175
- package/src/components/DragDropFile.tsx +0 -188
- package/src/components/FilterComponent.tsx +0 -33
- package/src/components/Footer.tsx +0 -29
- package/src/components/FooterMD.tsx +0 -54
- package/src/components/FooterNewVersion.tsx +0 -12
- package/src/components/FooterResult.tsx +0 -47
- package/src/components/HeaderMd.tsx +0 -39
- package/src/components/HeaderNewVersion.tsx +0 -92
- package/src/components/Layout.tsx +0 -46
- package/src/components/LoadingScreen/index.tsx +0 -29
- package/src/components/Navigation.tsx +0 -34
- package/src/components/Panigation/Pagination.tsx +0 -140
- package/src/components/Panigation/cx.js +0 -3
- package/src/components/Panigation/isModifierClick.js +0 -10
- package/src/components/Saved/AllItem.tsx +0 -32
- package/src/components/Saved/Category.tsx +0 -16
- package/src/components/carousel/DefaultCarousel.tsx +0 -48
- package/src/components/common.d.ts +0 -9
- package/src/components/common.scss +0 -54
- package/src/components/default-select.tsx +0 -44
- package/src/components/hitItem/hits.tsx +0 -50
- package/src/components/hitItem/infinitiHits.tsx +0 -33
- package/src/components/input/inputSearch.tsx +0 -77
- package/src/components/modal/DefaultModal.tsx +0 -28
- package/src/components/preview/preview.tsx +0 -433
- package/src/components/results/ItemResult.tsx +0 -155
- package/src/components/search/ListSearch.tsx +0 -209
- package/src/modules/LandingPage/common.scss +0 -1304
- package/src/modules/LandingPage/indexApp.tsx +0 -492
- package/src/modules/LandingPage/indexAppMD.tsx +0 -501
- package/src/modules/LandingPage/indexNewVersion.tsx +0 -117
- package/src/page/Auth/login.tsx +0 -7
- package/src/page/Exception/404.tsx +0 -11
- package/src/page/History/index.tsx +0 -76
- package/src/page/Profile/index.tsx +0 -87
- package/src/page/Saved/MockData.ts +0 -223
- package/src/page/Saved/index.tsx +0 -166
- package/src/page/Support/index.tsx +0 -160
- package/src/page/result/MockData.ts +0 -36
- package/src/page/result/index.tsx +0 -473
- package/src/services/Feedback.ts +0 -65
- package/src/services/findByImage.ts +0 -24
- package/src/services/findRegionsCustom.ts +0 -212
- package/src/services/image.ts +0 -110
- package/src/services/nyris.ts +0 -123
- package/src/services/session.ts +0 -20
- package/src/services/types.ts +0 -96
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import {EpicConf} from "./types";
|
|
2
|
+
import {combineEpics, ofType} from "redux-observable";
|
|
3
|
+
import {switchMap, withLatestFrom} from "rxjs/operators";
|
|
4
|
+
import {AppAction} from "../types";
|
|
5
|
+
import {ImageSearchOptions, urlOrBlobToCanvas, isCadFile, isImageFile, Filter } from "@nyris/nyris-api";
|
|
6
|
+
import {imageLoaded, cadFileLoaded} from "../actions/searchActions";
|
|
7
|
+
|
|
8
|
+
const imageSearch: EpicConf = (action$, state$, {api}) => action$.pipe(
|
|
9
|
+
ofType('SEARCH_REQUEST_START'),
|
|
10
|
+
withLatestFrom(state$),
|
|
11
|
+
switchMap(async ([action, state]) : Promise<AppAction> => {
|
|
12
|
+
if (action.type !== 'SEARCH_REQUEST_START') {
|
|
13
|
+
throw new Error(`Wrong action type ${action.type}`);
|
|
14
|
+
}
|
|
15
|
+
console.log("state search ");
|
|
16
|
+
console.log(state.search.selectedFilters);
|
|
17
|
+
|
|
18
|
+
if ('image' in action) {
|
|
19
|
+
let { image, normalizedRect} = action;
|
|
20
|
+
console.log("Selected Filters");
|
|
21
|
+
let selectedFilters = new Array<Filter>();
|
|
22
|
+
if(state.search.selectedFilters.size > 0 ){
|
|
23
|
+
state.search.selectedFilters.forEach((values, key) => {
|
|
24
|
+
let filterObj: Filter ={
|
|
25
|
+
key : key,
|
|
26
|
+
values : values
|
|
27
|
+
}
|
|
28
|
+
selectedFilters.push(filterObj);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
let options : ImageSearchOptions = {
|
|
33
|
+
cropRect: normalizedRect
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
try {
|
|
37
|
+
if(selectedFilters && selectedFilters.length> 0)
|
|
38
|
+
{
|
|
39
|
+
console.log("With Filters");
|
|
40
|
+
const {results, duration, requestId, categoryPredictions, codes} = await api.findByImageWithFilters(image, options, selectedFilters);
|
|
41
|
+
return ({ type: 'SEARCH_REQUEST_SUCCEED', results, requestId, duration, categoryPredictions, codes });
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
else{
|
|
45
|
+
console.log("Without Filters");
|
|
46
|
+
const {results, duration, requestId, categoryPredictions, codes} = await api.findByImage(image, options);
|
|
47
|
+
return ({ type: 'SEARCH_REQUEST_SUCCEED', results, requestId, duration, categoryPredictions, codes });
|
|
48
|
+
}
|
|
49
|
+
} catch (e) {
|
|
50
|
+
console.warn('search failed', e);
|
|
51
|
+
return ({ type: 'SEARCH_REQUEST_FAIL', reason: e.message, exception: e });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if ('file' in action) {
|
|
56
|
+
console.log('file');
|
|
57
|
+
let { file } = action;
|
|
58
|
+
|
|
59
|
+
let options : ImageSearchOptions = { };
|
|
60
|
+
|
|
61
|
+
try {
|
|
62
|
+
const {results, duration, requestId, categoryPredictions, codes} = await api.findByCad(file, options);
|
|
63
|
+
return ({ type: 'SEARCH_REQUEST_SUCCEED', results, requestId, duration, categoryPredictions, codes });
|
|
64
|
+
} catch (e) {
|
|
65
|
+
console.warn('search failed', e);
|
|
66
|
+
return ({ type: 'SEARCH_REQUEST_FAIL', reason: e.message, exception: e });
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
throw new Error(`Wrong action content ${action}`);
|
|
70
|
+
})
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
const regionSearch: EpicConf = (action$, state$, {api}) => action$.pipe(
|
|
74
|
+
ofType('REGION_REQUEST_START'),
|
|
75
|
+
withLatestFrom(state$),
|
|
76
|
+
switchMap(async ([action, {settings}]) : Promise<AppAction> => {
|
|
77
|
+
if (action.type !== 'REGION_REQUEST_START') {
|
|
78
|
+
throw new Error(`Wrong action type ${action.type}`);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
let { image } = action;
|
|
82
|
+
|
|
83
|
+
try {
|
|
84
|
+
let regions = await api.findRegions(image);
|
|
85
|
+
return {type: 'REGION_REQUEST_SUCCEED', regions };
|
|
86
|
+
|
|
87
|
+
} catch (e) {
|
|
88
|
+
console.error(e);
|
|
89
|
+
return {type: 'REGION_REQUEST_FAIL', reason: e.message, exception: e};
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
const loadFile: EpicConf = (action$) => action$.pipe(
|
|
95
|
+
ofType('LOAD_FILE'),
|
|
96
|
+
switchMap(async (action) : Promise<AppAction> => {
|
|
97
|
+
if (action.type !== 'LOAD_FILE') {
|
|
98
|
+
throw new Error(`Wrong action type ${action.type}`);
|
|
99
|
+
}
|
|
100
|
+
const randomId = Math.random().toString();
|
|
101
|
+
if ('file' in action) {
|
|
102
|
+
const file = action.file;
|
|
103
|
+
if (isImageFile(file)) {
|
|
104
|
+
return imageLoaded(await urlOrBlobToCanvas(file), randomId);
|
|
105
|
+
}
|
|
106
|
+
if (isCadFile(file)) {
|
|
107
|
+
return cadFileLoaded(file, randomId);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
throw new Error(`LOAD_FILE action wrong properties ${Object.keys(action).join(',')}`);
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
const loadImage: EpicConf = (action$) => action$.pipe(
|
|
115
|
+
ofType('LOAD_IMAGE'),
|
|
116
|
+
switchMap(async (action) : Promise<AppAction> => {
|
|
117
|
+
if (action.type !== 'LOAD_IMAGE') {
|
|
118
|
+
throw new Error(`Wrong action type ${action.type}`);
|
|
119
|
+
}
|
|
120
|
+
const randomId = Math.random().toString();
|
|
121
|
+
if ('url' in action) {
|
|
122
|
+
return imageLoaded(await urlOrBlobToCanvas(action.url), randomId);
|
|
123
|
+
}
|
|
124
|
+
if ('file' in action) {
|
|
125
|
+
return imageLoaded(await urlOrBlobToCanvas(action.file), randomId);
|
|
126
|
+
}
|
|
127
|
+
if ('image' in action) {
|
|
128
|
+
return imageLoaded(action.image, randomId);
|
|
129
|
+
}
|
|
130
|
+
throw new Error(`LOAD_IMAGE action wrong properties ${Object.keys(action).join(',')}`);
|
|
131
|
+
})
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
const loadFilters: EpicConf = (action$, state$, {api}) => action$.pipe(
|
|
136
|
+
ofType('LOAD_FILTERS'),
|
|
137
|
+
withLatestFrom(state$),
|
|
138
|
+
switchMap(async ([action, state]) : Promise<AppAction> => {
|
|
139
|
+
if(action.type !== 'LOAD_FILTERS'){
|
|
140
|
+
throw new Error(`Wrong action type ${action.type}`);
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
// use find filters
|
|
144
|
+
|
|
145
|
+
let filters = await api.getFilters();
|
|
146
|
+
|
|
147
|
+
filters= filters.slice(0, 3);
|
|
148
|
+
console.log(filters);
|
|
149
|
+
// let filters : Filter[] = [
|
|
150
|
+
// {
|
|
151
|
+
// filterType: 'MachineType',
|
|
152
|
+
// filterValues : [
|
|
153
|
+
// "MachineType1",
|
|
154
|
+
// "MachineType2",
|
|
155
|
+
// "MachineType3",
|
|
156
|
+
// "MachineType4",
|
|
157
|
+
// "MachineType5"
|
|
158
|
+
// ]
|
|
159
|
+
// },
|
|
160
|
+
// {
|
|
161
|
+
// filterType: 'Color',
|
|
162
|
+
// filterValues :[
|
|
163
|
+
// "Red",
|
|
164
|
+
// "Green",
|
|
165
|
+
// "Blue",
|
|
166
|
+
// "Yellow",
|
|
167
|
+
// "Black"
|
|
168
|
+
// ]
|
|
169
|
+
// }];
|
|
170
|
+
return {type: 'LOAD_FILTERS_SUCCESS', filters };
|
|
171
|
+
|
|
172
|
+
} catch (e) {
|
|
173
|
+
console.error(e);
|
|
174
|
+
return {type: 'LOAD_FILTERS_FAIL', reason: e.message, exception: e};
|
|
175
|
+
}
|
|
176
|
+
})
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
const addToSelectedFilters: EpicConf = (action$) => action$.pipe(
|
|
180
|
+
ofType('ADD_TO_SELECTEDFILTERS'),
|
|
181
|
+
switchMap(async (action) : Promise<AppAction> => {
|
|
182
|
+
|
|
183
|
+
if(action.type !== 'ADD_TO_SELECTEDFILTERS'){
|
|
184
|
+
throw new Error(`Wrong action type ${action.type}`);
|
|
185
|
+
}
|
|
186
|
+
if('key' in action && 'value' in action){
|
|
187
|
+
|
|
188
|
+
let {key, value} = action;
|
|
189
|
+
console.log(key);
|
|
190
|
+
console.log(action);
|
|
191
|
+
return {type : 'ADD_TO_SELECTEDFILTERS_SUCCESS', key , value }
|
|
192
|
+
}
|
|
193
|
+
throw new Error(`Change filters action wrong properties ${Object.keys(action).join(',')}`);
|
|
194
|
+
})
|
|
195
|
+
);
|
|
196
|
+
|
|
197
|
+
export default combineEpics(
|
|
198
|
+
imageSearch,
|
|
199
|
+
regionSearch,
|
|
200
|
+
loadFile,
|
|
201
|
+
loadImage,
|
|
202
|
+
loadFilters,
|
|
203
|
+
addToSelectedFilters);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|