react-hook-core 0.5.0 → 0.5.1

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/lib/useSearch.js DELETED
@@ -1,591 +0,0 @@
1
- "use strict"
2
- var __assign =
3
- (this && this.__assign) ||
4
- function () {
5
- __assign =
6
- Object.assign ||
7
- function (t) {
8
- for (var s, i = 1, n = arguments.length; i < n; i++) {
9
- s = arguments[i]
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]
11
- }
12
- return t
13
- }
14
- return __assign.apply(this, arguments)
15
- }
16
- var __spreadArrays =
17
- (this && this.__spreadArrays) ||
18
- function () {
19
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length
20
- for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]
21
- return r
22
- }
23
- Object.defineProperty(exports, "__esModule", { value: true })
24
- var react_1 = require("react")
25
- var common_1 = require("./common")
26
- var core_1 = require("./core")
27
- var reflect_1 = require("./reflect")
28
- var route_1 = require("./route")
29
- var search_1 = require("./search")
30
- var state_1 = require("./state")
31
- var update_1 = require("./update")
32
- function showPaging(com, list, pageSize, total) {
33
- com.total = total
34
- var pageTotal = search_1.getPageTotal(pageSize, total)
35
- com.pages = pageTotal
36
- com.showPaging = !total || com.pages <= 1 || (list && list.length >= total) ? false : true
37
- }
38
- exports.showPaging = showPaging
39
- function removeFormError(u, f) {
40
- if (f && u && u.ui) {
41
- u.ui.removeFormError(f)
42
- }
43
- }
44
- exports.removeFormError = removeFormError
45
- function getValidateForm(u, vf) {
46
- if (vf) {
47
- return vf
48
- }
49
- return u && u.ui ? u.ui.validateForm : undefined
50
- }
51
- exports.getValidateForm = getValidateForm
52
- function getRemoveError(u, rmErr) {
53
- if (rmErr) {
54
- return rmErr
55
- }
56
- return u && u.ui ? u.ui.removeError : undefined
57
- }
58
- exports.getRemoveError = getRemoveError
59
- function getModel(state, modelName, searchable, fields, excluding) {
60
- var obj2 = getModelFromState(state, modelName)
61
- var obj = obj2 ? obj2 : {}
62
- var obj3 = optimizeFilter(obj, searchable, fields)
63
- obj3.excluding = excluding
64
- return obj3
65
- }
66
- exports.getModel = getModel
67
- function optimizeFilter(obj, searchable, fields) {
68
- obj.fields = fields
69
- if (searchable.page && searchable.page > 1) {
70
- obj.page = searchable.page
71
- } else {
72
- delete obj.page
73
- }
74
- obj.limit = searchable.limit
75
- if (searchable.appendMode && searchable.initLimit !== searchable.limit) {
76
- obj.firstLimit = searchable.initLimit
77
- } else {
78
- delete obj.firstLimit
79
- }
80
- if (searchable.sortField && searchable.sortField.length > 0) {
81
- obj.sort = searchable.sortType === "-" ? "-" + searchable.sortField : searchable.sortField
82
- } else {
83
- delete obj.sort
84
- }
85
- if (searchable) {
86
- mapObjects(obj, searchable)
87
- }
88
- return obj
89
- }
90
- exports.optimizeFilter = optimizeFilter
91
- function mapObjects(dest, src) {
92
- var _a
93
- for (var key in dest) {
94
- if (src.hasOwnProperty(key) && src[key] !== null && src[key] !== undefined) {
95
- if (Array.isArray(dest[key]) && typeof src[key] === "string" && src[key].length > 0) {
96
- var arrayObjKeySrc = src[key].length > 0 ? ((_a = src[key]) === null || _a === void 0 ? void 0 : _a.split(",")) : []
97
- if (arrayObjKeySrc && arrayObjKeySrc.length > 1) {
98
- dest[key] = __spreadArrays(arrayObjKeySrc)
99
- } else {
100
- dest[key] = []
101
- dest[key].push(src[key])
102
- }
103
- } else {
104
- dest[key] = src[key]
105
- }
106
- }
107
- }
108
- }
109
- function getModelFromState(state, modelName) {
110
- if (!modelName || modelName.length === 0) {
111
- return state
112
- }
113
- if (!state) {
114
- return state
115
- }
116
- return state[modelName]
117
- }
118
- function getFieldsFromForm(fields, initFields, form) {
119
- if (fields && fields.length > 0) {
120
- return fields
121
- }
122
- if (!initFields) {
123
- if (form) {
124
- return search_1.getFields(form)
125
- }
126
- }
127
- return fields
128
- }
129
- exports.getFieldsFromForm = getFieldsFromForm
130
- function append(list, results) {
131
- if (list && results) {
132
- for (var _i = 0, results_1 = results; _i < results_1.length; _i++) {
133
- var obj = results_1[_i]
134
- list.push(obj)
135
- }
136
- }
137
- if (!list) {
138
- return []
139
- }
140
- return list
141
- }
142
- exports.append = append
143
- function handleAppend(com, list, limit, nextPageToken) {
144
- if (!limit || limit === 0) {
145
- com.appendable = false
146
- } else {
147
- if (!nextPageToken || nextPageToken.length === 0 || list.length < limit) {
148
- com.appendable = false
149
- } else {
150
- com.appendable = true
151
- }
152
- }
153
- if (!list || list.length === 0) {
154
- com.appendable = false
155
- }
156
- }
157
- exports.handleAppend = handleAppend
158
- function formatResults(results, page, limit, initPageSize, sequenceNo, ft, lc) {
159
- if (results && results.length > 0) {
160
- var hasSequencePro = false
161
- if (ft) {
162
- if (sequenceNo && sequenceNo.length > 0) {
163
- for (var _i = 0, results_2 = results; _i < results_2.length; _i++) {
164
- var obj = results_2[_i]
165
- if (obj[sequenceNo]) {
166
- hasSequencePro = true
167
- }
168
- ft(obj, lc)
169
- }
170
- } else {
171
- for (var _a = 0, results_3 = results; _a < results_3.length; _a++) {
172
- var obj = results_3[_a]
173
- ft(obj, lc)
174
- }
175
- }
176
- } else if (sequenceNo && sequenceNo.length > 0) {
177
- for (var _b = 0, results_4 = results; _b < results_4.length; _b++) {
178
- var obj = results_4[_b]
179
- if (obj[sequenceNo]) {
180
- hasSequencePro = true
181
- }
182
- }
183
- }
184
- if (sequenceNo && sequenceNo.length > 0 && !hasSequencePro) {
185
- if (!page) {
186
- page = 1
187
- }
188
- if (limit) {
189
- if (!initPageSize) {
190
- initPageSize = limit
191
- }
192
- if (page <= 1) {
193
- for (var i = 0; i < results.length; i++) {
194
- results[i][sequenceNo] = i - limit + limit * page + 1
195
- }
196
- } else {
197
- for (var i = 0; i < results.length; i++) {
198
- results[i][sequenceNo] = i - limit + limit * page + 1 - (limit - initPageSize)
199
- }
200
- }
201
- } else {
202
- for (var i = 0; i < results.length; i++) {
203
- results[i][sequenceNo] = i + 1
204
- }
205
- }
206
- }
207
- }
208
- }
209
- exports.formatResults = formatResults
210
- function validate(se, callback, form, lc, vf) {
211
- var valid = true
212
- if (form && vf) {
213
- valid = vf(form, lc)
214
- }
215
- if (valid === true) {
216
- callback()
217
- }
218
- }
219
- exports.validate = validate
220
- exports.callSearch = function (se, search3, showResults3, searchError3, lc, nextPageToken) {
221
- var s = reflect_1.clone(se)
222
- var page = se.page
223
- if (!page || page < 1) {
224
- page = 1
225
- }
226
- if (!se.limit || se.limit <= 0) {
227
- se.limit = core_1.resources.defaultLimit
228
- }
229
- var limit = page <= 1 && se.firstLimit && se.firstLimit > 0 ? se.firstLimit : se.limit
230
- var next = nextPageToken && nextPageToken.length > 0 ? nextPageToken : page
231
- var fields = se.fields
232
- delete se["page"]
233
- delete se["fields"]
234
- delete se["firstLimit"]
235
- search3(s, limit, next, fields)
236
- .then(function (sr) {
237
- showResults3(s, sr, lc)
238
- })
239
- .catch(function (err) {
240
- return err && searchError3(err)
241
- })
242
- }
243
- var appendListOfState = function (results, list, setState2) {
244
- var arr = append(list, results)
245
- setState2({ list: arr })
246
- }
247
- var setListOfState = function (list, setState2) {
248
- setState2({ list: list })
249
- }
250
- function mergeParam(p) {
251
- if (p) {
252
- if (!p.sequenceNo) {
253
- p.sequenceNo = "sequenceNo"
254
- }
255
- if (!p.limit) {
256
- p.limit = 24
257
- }
258
- if (!p.pageSizes) {
259
- p.pageSizes = core_1.pageSizes
260
- }
261
- if (!p.pageMaxSize || p.pageMaxSize <= 0) {
262
- p.pageMaxSize = 7
263
- }
264
- if (p.hideFilter === undefined) {
265
- p.hideFilter = true
266
- }
267
- return p
268
- } else {
269
- return {
270
- sequenceNo: "sequenceNo",
271
- limit: 24,
272
- pageSizes: core_1.pageSizes,
273
- pageMaxSize: 7,
274
- hideFilter: true,
275
- }
276
- }
277
- }
278
- exports.mergeParam = mergeParam
279
- exports.useSearch = function (refForm, initialState, service, resource, p2, p) {
280
- var baseProps = exports.useCoreSearch(refForm, initialState, service, resource, p2, p)
281
- react_1.useEffect(function () {
282
- var load = baseProps.load,
283
- setState = baseProps.setState,
284
- component = baseProps.component,
285
- searchError = baseProps.searchError
286
- if (refForm) {
287
- var registerEvents = p2.ui ? p2.ui.registerEvents : undefined
288
- common_1.initForm(refForm.current, registerEvents)
289
- }
290
- if (p && p.initialize) {
291
- p.initialize(load, setState, component)
292
- } else {
293
- var se = p && p.createFilter ? p.createFilter() : undefined
294
- try {
295
- var s = search_1.mergeFilter(route_1.buildFromUrl(se), se, component.pageSizes)
296
- load(s, p2.auto)
297
- } catch (error) {
298
- searchError(error)
299
- }
300
- }
301
- }, [])
302
- return __assign({}, baseProps)
303
- }
304
- exports.useSearchOneProps = function (resource, p) {
305
- return exports.useSearch(p.refForm, p.initialState, p.service, resource, p, p)
306
- }
307
- exports.useSearchOne = function (resource, p) {
308
- return exports.useCoreSearch(p.refForm, p.initialState, p.service, resource, p, p)
309
- }
310
- function getName(d, n) {
311
- return n && n.length > 0 ? n : d
312
- }
313
- exports.getName = getName
314
- exports.useCoreSearch = function (refForm, initialState, service, resource, p1, p2) {
315
- var p = mergeParam(p2)
316
- var _a = react_1.useState(),
317
- running = _a[0],
318
- setRunning = _a[1]
319
- var _getModelName = function () {
320
- return getName("filter", p && p.name ? p.name : undefined)
321
- }
322
- var getModelName = p && p.getModelName ? p.getModelName : _getModelName
323
- var baseProps = update_1.useUpdate(initialState, getModelName, p1.getLocale, getRemoveError(p1))
324
- var state = baseProps.state,
325
- setState = baseProps.setState
326
- var _b = react_1.useState(false),
327
- rerender = _b[0],
328
- setRerender = _b[1]
329
- react_1.useEffect(
330
- function () {
331
- setRerender(!rerender)
332
- },
333
- [state],
334
- )
335
- var _getCurrencyCode = function () {
336
- return refForm && refForm.current ? refForm.current.getAttribute("currency-code") : "USD"
337
- }
338
- var getCurrencyCode = p && p.getCurrencyCode ? p.getCurrencyCode : _getCurrencyCode
339
- var _c = update_1.useMergeState(p),
340
- component = _c[0],
341
- setComponent = _c[1]
342
- var toggleFilter = function (event) {
343
- var hideFilter = search_1.handleToggle(event.target, component.hideFilter)
344
- setComponent({ hideFilter: hideFilter })
345
- }
346
- var _getFields = function () {
347
- var fields = component.fields,
348
- initFields = component.initFields
349
- var fs = getFieldsFromForm(fields, initFields, refForm.current)
350
- setComponent({ fields: fs, initFields: true })
351
- return fs
352
- }
353
- var getFields = p && p.getFields ? p.getFields : _getFields
354
- var _getFilter = function (se) {
355
- if (!se) {
356
- se = component
357
- }
358
- var keys = p && p.keys ? p.keys : undefined
359
- if (!keys && typeof service !== "function" && service.keys) {
360
- keys = service.keys()
361
- }
362
- var n = getModelName()
363
- var fs = p && p.fields
364
- if (!fs || fs.length <= 0) {
365
- fs = getFields()
366
- }
367
- var obj3 = getModel(state, n, se, fs, se.excluding)
368
- return obj3
369
- }
370
- var getFilter = p && p.getFilter ? p.getFilter : _getFilter
371
- var _setFilter = function (s) {
372
- var objSet = {}
373
- var n = getModelName()
374
- objSet[n] = s
375
- setState(objSet)
376
- }
377
- var setFilter = p && p.setFilter ? p.setFilter : _setFilter
378
- var _load = function (s, auto) {
379
- var com = Object.assign({}, component)
380
- var obj2 = search_1.initFilter(s, com)
381
- setComponent(com)
382
- setFilter(obj2)
383
- var runSearch = doSearch
384
- if (auto) {
385
- setTimeout(function () {
386
- runSearch(obj2, true)
387
- }, 0)
388
- }
389
- }
390
- var load = p && p.load ? p.load : _load
391
- var doSearch = function (se, isFirstLoad) {
392
- removeFormError(p1, refForm.current)
393
- var s = getFilter(se)
394
- if (isFirstLoad) {
395
- setState(state)
396
- }
397
- var isStillRunning = running
398
- validateSearch(s, function () {
399
- if (isStillRunning === true) {
400
- return
401
- }
402
- setRunning(true)
403
- common_1.showLoading(p1.loading)
404
- if (p && !p.ignoreUrlParam) {
405
- search_1.addParametersIntoUrl(s, isFirstLoad)
406
- }
407
- var lc = p1.getLocale ? p1.getLocale() : state_1.enLocale
408
- if (typeof service === "function") {
409
- exports.callSearch(s, service, showResults, searchError, lc, se.nextPageToken)
410
- } else {
411
- exports.callSearch(s, service.search, showResults, searchError, lc, se.nextPageToken)
412
- }
413
- })
414
- }
415
- var _validateSearch = function (se, callback) {
416
- validate(se, callback, refForm.current, p1.getLocale ? p1.getLocale() : undefined, getValidateForm(p1))
417
- }
418
- var validateSearch = p && p.validateSearch ? p.validateSearch : _validateSearch
419
- var pageSizeChanged = function (event) {
420
- var size = parseInt(event.currentTarget.value, 10)
421
- component.limit = size
422
- component.page = 1
423
- component.tmpPageIndex = 1
424
- setComponent({
425
- limit: size,
426
- page: 1,
427
- tmpPageIndex: 1,
428
- })
429
- doSearch(component)
430
- }
431
- var clearQ = function (e) {
432
- if (e) {
433
- e.preventDefault()
434
- }
435
- var n = getModelName()
436
- if (n && n.length > 0) {
437
- var m = state[n]
438
- if (m) {
439
- m.q = ""
440
- var setObj = {}
441
- setObj[n] = m
442
- setState(setObj)
443
- return
444
- }
445
- }
446
- }
447
- var search = function (event) {
448
- if (event) {
449
- event.preventDefault()
450
- }
451
- resetAndSearch()
452
- }
453
- var sort = function (event) {
454
- event.preventDefault()
455
- if (event && event.target) {
456
- var target = event.target
457
- var s = search_1.handleSort(target, component.sortTarget, component.sortField, component.sortType)
458
- setComponent({
459
- sortField: s.field,
460
- sortType: s.type,
461
- sortTarget: target,
462
- })
463
- component.sortField = s.field
464
- component.sortType = s.type
465
- component.sortTarget = target
466
- }
467
- if (!component.appendMode) {
468
- doSearch(component)
469
- } else {
470
- resetAndSearch()
471
- }
472
- }
473
- var changeView = function (event, view) {
474
- if (view && view.length > 0) {
475
- setComponent({ view: view })
476
- } else if (event && event.target) {
477
- var target = event.target
478
- var v = target.getAttribute("data-view")
479
- if (v && v.length > 0) {
480
- setComponent({ view: v })
481
- }
482
- }
483
- }
484
- var resetAndSearch = function () {
485
- if (running === true) {
486
- setComponent({ page: 1, triggerSearch: true })
487
- return
488
- }
489
- setComponent({ page: 1, tmpPageIndex: 1 })
490
- search_1.removeSortStatus(component.sortTarget)
491
- setComponent({
492
- sortTarget: undefined,
493
- sortField: undefined,
494
- append: false,
495
- page: 1,
496
- })
497
- component.sortTarget = undefined
498
- component.sortField = undefined
499
- component.append = false
500
- component.page = 1
501
- doSearch(component)
502
- }
503
- var searchError = function (err) {
504
- setComponent({ page: component.tmpPageIndex })
505
- common_1.error(err, resource, p1.showError)
506
- common_1.hideLoading(p1.loading)
507
- }
508
- var appendList = p && p.appendList ? p.appendList : appendListOfState
509
- var setList = p && p.setList ? p.setList : setListOfState
510
- var _showResults = function (s, sr, lc) {
511
- if (sr === undefined) {
512
- return
513
- }
514
- var results = (sr === null || sr === void 0 ? void 0 : sr.list) || []
515
- if (results && results.length > 0) {
516
- formatResults(results, component.page, component.limit, component.limit, p ? p.sequenceNo : undefined, p ? p.format : undefined, lc)
517
- }
518
- var am = component.appendMode
519
- var pi = s.page && s.page >= 1 ? s.page : 1
520
- setComponent({ total: sr.total, page: pi, nextPageToken: sr.next })
521
- if (am) {
522
- var limit = s.limit
523
- if ((!s.page || s.page <= 1) && s.firstLimit && s.firstLimit > 0) {
524
- limit = s.firstLimit
525
- }
526
- handleAppend(component, sr.list, limit, sr.next)
527
- if (component.append && s.page && s.page > 1) {
528
- appendList(results, component.list, setState)
529
- } else {
530
- setList(results, setState)
531
- }
532
- } else {
533
- showPaging(component, sr.list, s.limit, sr.total)
534
- setList(results, setState)
535
- setComponent({ tmpPageIndex: s.page })
536
- if (s.limit) {
537
- var m1 = search_1.buildMessage(resource, sr.list, s.limit, s.page, sr.total)
538
- p1.showMessage(m1)
539
- }
540
- }
541
- setRunning(false)
542
- common_1.hideLoading(p1.loading)
543
- if (component.triggerSearch) {
544
- setComponent({ triggerSearch: false })
545
- resetAndSearch()
546
- }
547
- }
548
- var showResults = p && p.showResults ? p.showResults : _showResults
549
- var showMore = function (event) {
550
- event.preventDefault()
551
- var n = component.page ? component.page + 1 : 2
552
- var m = component.page
553
- setComponent({ tmpPageIndex: m, page: n, append: true })
554
- component.tmpPageIndex = m
555
- component.page = n
556
- component.append = true
557
- doSearch(component)
558
- }
559
- var pageChanged = function (data) {
560
- var page = data.page,
561
- size = data.size
562
- setComponent({ page: page, limit: size, append: false })
563
- component.page = page
564
- component.limit = size
565
- component.append = false
566
- doSearch(component)
567
- }
568
- return __assign(__assign({}, baseProps), {
569
- running: running,
570
- setRunning: setRunning,
571
- getCurrencyCode: getCurrencyCode,
572
- setComponent: setComponent,
573
- component: component,
574
- showMessage: p1.showMessage,
575
- load: load,
576
- search: search,
577
- sort: sort,
578
- changeView: changeView,
579
- showMore: showMore,
580
- toggleFilter: toggleFilter,
581
- doSearch: doSearch,
582
- pageChanged: pageChanged,
583
- pageSizeChanged: pageSizeChanged,
584
- clearQ: clearQ,
585
- showResults: showResults,
586
- getFields: getFields,
587
- getModelName: getModelName,
588
- format: p ? p.format : undefined,
589
- searchError: searchError,
590
- })
591
- }
package/src/formutil.ts DELETED
@@ -1,69 +0,0 @@
1
- export function setReadOnly(form?: HTMLFormElement | null, ...args: string[]): void {
2
- if (!form) {
3
- return
4
- }
5
- const len = form.length
6
- for (let i = 0; i < len; i++) {
7
- const ctrl = form[i] as HTMLInputElement
8
- const name = ctrl.getAttribute("name")
9
- let skip = false
10
- if (name != null && name.length > 0 && name !== "btnBack") {
11
- if (arguments.length > 1) {
12
- for (let j = 1; j < arguments.length; j++) {
13
- if (arguments[j] === name) {
14
- skip = true
15
- // continue; has bugs => why?
16
- }
17
- }
18
- }
19
- if (skip === false) {
20
- let nodeName = ctrl.nodeName
21
- const type = ctrl.getAttribute("type")
22
- if (nodeName === "INPUT" && type !== null) {
23
- nodeName = type.toUpperCase()
24
- }
25
- if (nodeName !== "BUTTON" && nodeName !== "RESET" && nodeName !== "SUBMIT" && nodeName !== "SELECT") {
26
- switch (type) {
27
- case "checkbox":
28
- ctrl.disabled = true
29
- break
30
- case "radio":
31
- ctrl.disabled = true
32
- break
33
- default:
34
- ctrl.readOnly = true
35
- }
36
- } else {
37
- ctrl.disabled = true
38
- }
39
- }
40
- }
41
- }
42
- }
43
- export function focusFirstError(form?: HTMLFormElement | null, className?: string): void {
44
- if (!form) {
45
- return
46
- }
47
- const len = form.length
48
- if (className && className.length > 0) {
49
- for (let i = 0; i < len; i++) {
50
- const ctrl = form[i] as HTMLInputElement
51
- const parent = ctrl.parentElement
52
- if (ctrl.classList.contains(className) || (parent && parent.classList.contains(className))) {
53
- ctrl.focus()
54
- ctrl.scrollIntoView()
55
- return
56
- }
57
- }
58
- } else {
59
- for (let i = 0; i < len; i++) {
60
- const ctrl = form[i] as HTMLInputElement
61
- const parent = ctrl.parentElement
62
- if (ctrl.classList.contains("invalid") || ctrl.classList.contains(".ng-invalid") || (parent && parent.classList.contains("invalid"))) {
63
- ctrl.focus()
64
- ctrl.scrollIntoView()
65
- return
66
- }
67
- }
68
- }
69
- }