sr-npm 1.2.44 → 1.2.46
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/backend/careersMultiBoxesPageIds.js +1 -0
- package/package.json +1 -1
- package/pages/careersMultiBoxesPage.js +14 -15
- package/pages/pagesUtils.js +194 -181
package/package.json
CHANGED
|
@@ -5,7 +5,18 @@ const { window } = require('@wix/site-window');
|
|
|
5
5
|
const { queryParams,onChange} = require('wix-location-frontend');
|
|
6
6
|
const { location } = require("@wix/site-location");
|
|
7
7
|
const {CAREERS_MULTI_BOXES_PAGE_CONSTS,FiltersIds,fieldTitlesInCMS,possibleUrlParams} = require('../backend/careersMultiBoxesPageIds');
|
|
8
|
-
const { groupValuesByField,
|
|
8
|
+
const { groupValuesByField,
|
|
9
|
+
debounce,
|
|
10
|
+
getAllRecords,
|
|
11
|
+
getFieldById,
|
|
12
|
+
getFieldByTitle,
|
|
13
|
+
getCorrectOption,
|
|
14
|
+
getOptionIndexFromCheckBox,
|
|
15
|
+
loadPrimarySearchRepeater,
|
|
16
|
+
bindPrimarySearch,
|
|
17
|
+
primarySearch,
|
|
18
|
+
getAllDatasetItems
|
|
19
|
+
} = require('./pagesUtils');
|
|
9
20
|
|
|
10
21
|
|
|
11
22
|
let dontUpdateThisCheckBox;
|
|
@@ -134,21 +145,9 @@ async function handleUrlParams(_$w,urlParams,handleBackAndForth=false) {
|
|
|
134
145
|
if(urlParams.keyword) {
|
|
135
146
|
applyFiltering = await primarySearch(_$w, decodeURIComponent(urlParams.keyword));
|
|
136
147
|
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value = decodeURIComponent(urlParams.keyword);
|
|
137
|
-
let items = [];
|
|
138
|
-
let data;
|
|
139
|
-
_$w("#jobsDataset").onReady(async () => {
|
|
140
|
-
try {
|
|
141
|
-
data = await _$w("#jobsDataset").getItems(0, 1000);
|
|
142
|
-
} catch (error) {
|
|
143
|
-
console.error('Failed to get items:', error);
|
|
144
|
-
}
|
|
145
|
-
items.push(...data.items);
|
|
146
148
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
items.push(...nextItems);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
149
|
+
const items = await getAllDatasetItems(_$w, CAREERS_MULTI_BOXES_PAGE_CONSTS.JOBS_DATASET);
|
|
150
|
+
|
|
152
151
|
currentJobs = items;
|
|
153
152
|
keywordAllJobs = items;
|
|
154
153
|
}
|
package/pages/pagesUtils.js
CHANGED
|
@@ -16,248 +16,261 @@ function groupValuesByField(values, refKey) {
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
return map;
|
|
19
|
-
|
|
19
|
+
}
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
21
|
+
const debounce = (fn, ms = 150) => {
|
|
22
|
+
let t;
|
|
23
|
+
return (...args) => {
|
|
24
|
+
clearTimeout(t);
|
|
25
|
+
t = setTimeout(() => fn(...args), ms);
|
|
27
26
|
};
|
|
27
|
+
};
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
items.push(...res.items);
|
|
40
|
-
}
|
|
41
|
-
return items;
|
|
29
|
+
async function getAllDatasetItems(_$w, datasetSelector) {
|
|
30
|
+
await _$w(datasetSelector).onReadyAsync();
|
|
31
|
+
|
|
32
|
+
let items = [];
|
|
33
|
+
let data = await _$w(datasetSelector).getItems(0, 1000);
|
|
34
|
+
items.push(...data.items);
|
|
35
|
+
|
|
36
|
+
while (_$w(datasetSelector).hasNextPage()) {
|
|
37
|
+
const nextItems = await _$w(datasetSelector).nextPage();
|
|
38
|
+
items.push(...nextItems);
|
|
42
39
|
}
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
return items;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async function getAllRecords(collectionId) {
|
|
45
|
+
const q = wixData.query(collectionId).include(JOBS_COLLECTION_FIELDS.MULTI_REF_JOBS_CUSTOM_VALUES)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
const items = [];
|
|
49
|
+
let res = await q.limit(1000).find();
|
|
50
|
+
items.push(...res.items);
|
|
51
|
+
|
|
52
|
+
while (res.hasNext()) {
|
|
53
|
+
res = await res.next();
|
|
50
54
|
items.push(...res.items);
|
|
51
|
-
|
|
52
|
-
while (res.hasNext()) {
|
|
53
|
-
res = await res.next();
|
|
54
|
-
items.push(...res.items);
|
|
55
|
-
}
|
|
56
|
-
return items;
|
|
57
55
|
}
|
|
56
|
+
return items;
|
|
57
|
+
}
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
59
|
+
async function getAllRecordsWithoutMultiRef(collectionId) {
|
|
60
|
+
const q = wixData.query(collectionId)
|
|
62
61
|
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
|
|
63
|
+
const items = [];
|
|
64
|
+
let res = await q.limit(1000).find();
|
|
65
|
+
items.push(...res.items);
|
|
66
|
+
|
|
67
|
+
while (res.hasNext()) {
|
|
68
|
+
res = await res.next();
|
|
69
|
+
items.push(...res.items);
|
|
65
70
|
}
|
|
71
|
+
return items;
|
|
72
|
+
}
|
|
66
73
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
function getFieldById(fieldId,allFields) {
|
|
75
|
+
return allFields.find(field=>field._id===fieldId);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function getFieldByTitle(title,allFields) {
|
|
79
|
+
return allFields.find(field=>field.title===title);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function getCorrectOption(value,options,param) {
|
|
83
|
+
const standardizedValue = normalizeString(value.toLowerCase())
|
|
84
|
+
if(param==="employmenttype") //employmenttype have a problematic value
|
|
85
|
+
{
|
|
86
|
+
return options.find(option=>normalizeString(option.value.toLowerCase())===standardizedValue);
|
|
74
87
|
}
|
|
88
|
+
return options.find(option=>normalizeString(option.label.toLowerCase())===standardizedValue);
|
|
89
|
+
}
|
|
75
90
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
91
|
+
function getOptionIndexFromCheckBox(options,value) {
|
|
92
|
+
const normalizedValue=normalizeString(value.toLowerCase());
|
|
93
|
+
for(let index=0;index<options.length;index++) {
|
|
94
|
+
if(normalizeString(options[index].value.toLowerCase())===normalizedValue) {
|
|
95
|
+
return index;
|
|
82
96
|
}
|
|
83
97
|
}
|
|
98
|
+
}
|
|
84
99
|
|
|
85
100
|
function loadPrimarySearchRepeater(_$w) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
);
|
|
101
|
+
|
|
102
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER_ITEM).onClick((event) => {
|
|
103
|
+
const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.JOB_RESULTS_REPEATER).data;
|
|
104
|
+
const clickedItemData = data.find(
|
|
105
|
+
(item) => item._id === event.context.itemId,
|
|
93
106
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
// 'link-jobs-title' or 'link-copy-of-jobs-title'
|
|
110
|
+
const linkKey = Object.keys(clickedItemData).find(
|
|
111
|
+
key => key.startsWith('link') && key.includes('jobs') && key.includes('title')
|
|
112
|
+
);
|
|
113
|
+
if (linkKey && clickedItemData[linkKey] ) {
|
|
114
|
+
if(clickedItemData[linkKey].includes("copy-of-jobs")) {
|
|
115
|
+
clickedItemData[linkKey]=clickedItemData[linkKey].replace("copy-of-jobs","jobs")
|
|
103
116
|
}
|
|
117
|
+
location.to(clickedItemData[linkKey]);
|
|
118
|
+
}
|
|
104
119
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
120
|
+
});
|
|
121
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).onItemReady(async ($item, itemData) => {
|
|
122
|
+
$item(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_CATEGORY_BUTTON).label = itemData.title || '';
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER_ITEM).onClick(async (event) => {
|
|
126
|
+
const data = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data;
|
|
127
|
+
const clickedItemData = data.find(
|
|
128
|
+
(item) => item._id === event.context.itemId,
|
|
129
|
+
);
|
|
130
|
+
const baseUrl = await location.baseUrl();
|
|
131
|
+
const encodedCategory=encodeURIComponent(clickedItemData._id);
|
|
132
|
+
location.to(`${baseUrl}/search?category=${encodedCategory}`);
|
|
133
|
+
});
|
|
119
134
|
|
|
120
135
|
}
|
|
121
136
|
|
|
122
137
|
function bindPrimarySearch(_$w, allvaluesobjects) {
|
|
123
138
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
139
|
+
const handleSearchInput = async () => {
|
|
140
|
+
const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
|
|
141
|
+
await primarySearch(_$w, query);
|
|
142
|
+
}
|
|
128
143
|
|
|
129
|
-
|
|
144
|
+
const primarySearchDebounced = debounce(() => handleSearchInput(), 400);
|
|
130
145
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
146
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onInput(async () => {
|
|
147
|
+
await primarySearchDebounced();
|
|
148
|
+
});
|
|
134
149
|
|
|
135
|
-
|
|
136
|
-
|
|
150
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onClick(async () => {
|
|
151
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
|
|
137
152
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
|
|
148
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
149
|
-
});
|
|
150
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
|
|
151
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
|
|
155
|
-
if( event.key === 'Enter') {
|
|
156
|
-
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
157
|
-
// _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
158
|
-
const baseUrl = await location.baseUrl();
|
|
159
|
-
location.to(`${baseUrl}/search`);
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
164
|
-
const baseUrl = await location.baseUrl();
|
|
165
|
-
location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
});
|
|
153
|
+
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()!=='') {
|
|
154
|
+
const query = _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value?.toLowerCase().trim() || '';
|
|
155
|
+
await primarySearch(_$w, query);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
await loadCategoriesListPrimarySearch(_$w,allvaluesobjects);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
169
161
|
|
|
170
|
-
|
|
162
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).onMouseOut(async () => {
|
|
163
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).onKeyPress(async (event) => {
|
|
167
|
+
if( event.key === 'Enter') {
|
|
171
168
|
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
169
|
+
// _$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).collapse();
|
|
172
170
|
const baseUrl = await location.baseUrl();
|
|
173
171
|
location.to(`${baseUrl}/search`);
|
|
174
|
-
|
|
172
|
+
|
|
173
|
+
}
|
|
175
174
|
else {
|
|
176
175
|
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
177
176
|
const baseUrl = await location.baseUrl();
|
|
178
177
|
location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
179
178
|
}
|
|
180
|
-
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_BUTTON).onClick(async () => {
|
|
183
|
+
if(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value.trim()==='') {
|
|
184
|
+
const baseUrl = await location.baseUrl();
|
|
185
|
+
location.to(`${baseUrl}/search`);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
let encodedKeyWord=encodeURIComponent(_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_INPUT).value);
|
|
189
|
+
const baseUrl = await location.baseUrl();
|
|
190
|
+
location.to(`${baseUrl}/search?keyword=${encodedKeyWord}`);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
181
193
|
}
|
|
182
194
|
|
|
183
195
|
async function loadCategoriesListPrimarySearch(_$w, allvaluesobjects) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
196
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
|
|
197
|
+
|
|
198
|
+
let categoryValues=[]
|
|
199
|
+
for(const value of allvaluesobjects) {
|
|
200
|
+
if(value.customField === CATEGORY_CUSTOM_FIELD_ID_IN_CMS) {
|
|
201
|
+
categoryValues.push({title: value.title+` (${value.count})` , _id: value.valueId});
|
|
191
202
|
}
|
|
192
|
-
|
|
203
|
+
}
|
|
204
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.CATEGORY_RESULTS_REPEATER).data = categoryValues;
|
|
193
205
|
}
|
|
194
206
|
|
|
195
207
|
async function primarySearch(_$w, query) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
208
|
+
if(query === undefined || query === '') {
|
|
209
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("categoryResults");
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
const searchByTitle = [{field: 'title', searchTerm: query}];
|
|
214
|
+
const searchByCity = [{field: 'location.fullLocation', searchTerm: query}];
|
|
215
|
+
|
|
216
|
+
let filter = await getFilter(searchByTitle);
|
|
200
217
|
|
|
201
|
-
|
|
202
|
-
|
|
218
|
+
await _$w('#jobsDataset').setFilter(filter);
|
|
219
|
+
await _$w('#jobsDataset').refresh();
|
|
203
220
|
|
|
204
|
-
|
|
221
|
+
let count = _$w('#jobsDataset').getTotalCount();
|
|
205
222
|
|
|
223
|
+
if( count > 0 ) {
|
|
224
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
|
|
225
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
filter = await getFilter(searchByCity);
|
|
206
229
|
await _$w('#jobsDataset').setFilter(filter);
|
|
207
230
|
await _$w('#jobsDataset').refresh();
|
|
208
231
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if( count > 0 ) {
|
|
232
|
+
count = _$w('#jobsDataset').getTotalCount();
|
|
233
|
+
if (count > 0) {
|
|
212
234
|
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
|
|
213
235
|
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
|
|
214
236
|
}
|
|
215
|
-
else
|
|
216
|
-
|
|
217
|
-
await _$w('#jobsDataset').setFilter(filter);
|
|
218
|
-
await _$w('#jobsDataset').refresh();
|
|
219
|
-
|
|
220
|
-
count = _$w('#jobsDataset').getTotalCount();
|
|
221
|
-
if (count > 0) {
|
|
222
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.RESULTS_CONTAINER).expand();
|
|
223
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("jobResults");
|
|
224
|
-
}
|
|
225
|
-
else{
|
|
226
|
-
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
|
|
227
|
-
}
|
|
237
|
+
else{
|
|
238
|
+
_$w(CAREERS_MULTI_BOXES_PAGE_CONSTS.PRIMARY_SEARCH_MULTI_BOX).changeState("noResults");
|
|
228
239
|
}
|
|
240
|
+
}
|
|
229
241
|
|
|
230
|
-
|
|
242
|
+
return count > 0;
|
|
231
243
|
}
|
|
232
244
|
|
|
233
245
|
async function getValueFromValueId(valueId) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
246
|
+
const result = await getAllRecords(COLLECTIONS.CUSTOM_VALUES);
|
|
247
|
+
console.log("result: ",result);
|
|
248
|
+
console.log("valueId: ",valueId);
|
|
237
249
|
|
|
238
|
-
|
|
250
|
+
return result.find(value => value.valueId === valueId);
|
|
239
251
|
}
|
|
240
252
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
253
|
+
async function getLatestJobsByValue(Value) {
|
|
254
|
+
const jobs=Value.multiRefJobsCustomValues;
|
|
255
|
+
const latestJobs = jobs
|
|
256
|
+
.sort((a, b) => new Date(b.releasedDate) - new Date(a.releasedDate))
|
|
257
|
+
.slice(0, 5);
|
|
258
|
+
return latestJobs;
|
|
259
|
+
}
|
|
248
260
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
261
|
+
module.exports = {
|
|
262
|
+
groupValuesByField,
|
|
263
|
+
debounce,
|
|
264
|
+
getAllRecords,
|
|
265
|
+
getFieldById,
|
|
266
|
+
getFieldByTitle,
|
|
267
|
+
getCorrectOption,
|
|
268
|
+
getOptionIndexFromCheckBox,
|
|
269
|
+
loadPrimarySearchRepeater,
|
|
270
|
+
bindPrimarySearch,
|
|
271
|
+
primarySearch,
|
|
272
|
+
getLatestJobsByValue,
|
|
273
|
+
getValueFromValueId,
|
|
274
|
+
getAllRecordsWithoutMultiRef,
|
|
275
|
+
getAllDatasetItems
|
|
263
276
|
}
|