diginet-core-ui 1.3.78 → 1.3.79

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 (209) hide show
  1. package/components/accordion/details.js +2 -6
  2. package/components/accordion/group.js +2 -9
  3. package/components/accordion/index.js +2 -15
  4. package/components/accordion/summary.js +4 -27
  5. package/components/alert/index.js +98 -137
  6. package/components/alert/notify.js +97 -166
  7. package/components/avatar/index.js +4 -63
  8. package/components/badge/index.js +7 -34
  9. package/components/button/icon.js +120 -186
  10. package/components/button/index.js +136 -205
  11. package/components/button/more.js +0 -12
  12. package/components/button/ripple-effect.js +46 -44
  13. package/components/card/body.js +2 -7
  14. package/components/card/extra.js +2 -7
  15. package/components/card/footer.js +2 -7
  16. package/components/card/header.js +2 -7
  17. package/components/card/index.js +2 -22
  18. package/components/chart/Pie/Circle.js +0 -1
  19. package/components/chart/Pie/Sector.js +0 -17
  20. package/components/chart/Pie/Sectors.js +0 -10
  21. package/components/chart/Pie/index.js +4 -36
  22. package/components/chart/Pie-v2/Circle.js +0 -1
  23. package/components/chart/Pie-v2/Sector.js +0 -13
  24. package/components/chart/Pie-v2/Sectors.js +0 -20
  25. package/components/chart/Pie-v2/index.js +11 -38
  26. package/components/chart/bar/Axis.js +0 -12
  27. package/components/chart/bar/Bar.js +13 -35
  28. package/components/chart/bar/Grid.js +0 -18
  29. package/components/chart/bar/Labels.js +0 -18
  30. package/components/chart/bar/Points.js +0 -17
  31. package/components/chart/bar/index.js +6 -26
  32. package/components/chart/bar-v2/Axis.js +0 -12
  33. package/components/chart/bar-v2/Bar.js +15 -36
  34. package/components/chart/bar-v2/Grid.js +0 -18
  35. package/components/chart/bar-v2/Labels.js +0 -18
  36. package/components/chart/bar-v2/Points.js +0 -17
  37. package/components/chart/bar-v2/index.js +6 -26
  38. package/components/chart/line/Axis.js +4 -16
  39. package/components/chart/line/Grid.js +2 -19
  40. package/components/chart/line/Labels.js +0 -18
  41. package/components/chart/line/Path.js +23 -33
  42. package/components/chart/line/Point.js +6 -40
  43. package/components/chart/line/Title.js +0 -3
  44. package/components/chart/line/index.js +12 -35
  45. package/components/chart/line-v2/Axis.js +0 -13
  46. package/components/chart/line-v2/Grid.js +0 -18
  47. package/components/chart/line-v2/Labels.js +0 -18
  48. package/components/chart/line-v2/Path.js +23 -33
  49. package/components/chart/line-v2/Point.js +6 -35
  50. package/components/chart/line-v2/Title.js +0 -3
  51. package/components/chart/line-v2/index.js +12 -30
  52. package/components/check-text/index.js +0 -8
  53. package/components/check-text/interview-confirmation.js +0 -7
  54. package/components/check-text/interview-status.js +0 -7
  55. package/components/chip/attach.js +4 -17
  56. package/components/chip/index.js +6 -33
  57. package/components/collapse/index.js +0 -13
  58. package/components/divider/index.js +0 -8
  59. package/components/form-control/attachment/index.js +24 -202
  60. package/components/form-control/calendar/function.js +40 -94
  61. package/components/form-control/calendar/index.js +5 -30
  62. package/components/form-control/calendar/range.js +11 -28
  63. package/components/form-control/checkbox/index.js +4 -37
  64. package/components/form-control/control/index.js +3 -13
  65. package/components/form-control/date-picker/index-old.js +18 -0
  66. package/components/form-control/date-picker/index.js +23 -99
  67. package/components/form-control/date-range-picker/index.js +86 -221
  68. package/components/form-control/dropdown/index.js +72 -289
  69. package/components/form-control/dropdown-box/index.js +6 -35
  70. package/components/form-control/form/index.js +0 -2
  71. package/components/form-control/form-group/index.js +1 -6
  72. package/components/form-control/helper-text/index.js +2 -9
  73. package/components/form-control/input-base/index.js +218 -399
  74. package/components/form-control/label/index.js +2 -12
  75. package/components/form-control/money-input/index.js +43 -132
  76. package/components/form-control/number-input/index.js +15 -113
  77. package/components/form-control/number-input/index2.js +78 -119
  78. package/components/form-control/phone-input/index.js +16 -78
  79. package/components/form-control/radio/index.js +4 -23
  80. package/components/form-control/text-input/index.js +33 -256
  81. package/components/form-control/time-picker/index.js +14 -71
  82. package/components/form-control/time-picker/swiper.js +21 -73
  83. package/components/form-control/toggle/index.js +4 -19
  84. package/components/form-view/helper-text.js +2 -2
  85. package/components/form-view/index.js +0 -14
  86. package/components/form-view/input.js +2 -13
  87. package/components/form-view/label.js +0 -2
  88. package/components/grid/Col.js +2 -15
  89. package/components/grid/Container.js +2 -21
  90. package/components/grid/Row.js +2 -21
  91. package/components/grid/index.js +2 -43
  92. package/components/image/index.js +2 -22
  93. package/components/index.js +62 -31
  94. package/components/list/list-item-action.js +0 -9
  95. package/components/list/list-item-icon.js +0 -9
  96. package/components/list/list-item-text.js +0 -5
  97. package/components/list/list-item.js +0 -11
  98. package/components/list/list.js +0 -13
  99. package/components/list/sub-header.js +0 -4
  100. package/components/modal/body.js +2 -6
  101. package/components/modal/footer.js +2 -11
  102. package/components/modal/header.js +2 -12
  103. package/components/modal/index.js +2 -10
  104. package/components/modal/modal.js +11 -52
  105. package/components/others/extra/index.js +3 -10
  106. package/components/others/import/index.js +0 -7
  107. package/components/others/option-wrapper/index.js +4 -7
  108. package/components/others/scrollbar/index.js +0 -3
  109. package/components/paging/page-info.js +39 -101
  110. package/components/paging/page-selector.js +7 -35
  111. package/components/paging/page-selector2.js +35 -74
  112. package/components/paper/index.js +0 -11
  113. package/components/popover/body.js +2 -6
  114. package/components/popover/footer.js +2 -11
  115. package/components/popover/header.js +2 -7
  116. package/components/popover/index.js +39 -123
  117. package/components/popup/danger_popup.js +0 -19
  118. package/components/popup/index.js +2 -48
  119. package/components/popup/proposals_popup.js +10 -49
  120. package/components/popup/v2/index.js +0 -31
  121. package/components/progress/circular.js +19 -81
  122. package/components/progress/linear.js +4 -20
  123. package/components/rating/index.js +0 -24
  124. package/components/slider/slider-container.js +3 -40
  125. package/components/slider/slider-item.js +10 -25
  126. package/components/status/index.js +2 -16
  127. package/components/tab/tab-container.js +2 -16
  128. package/components/tab/tab-header.js +4 -24
  129. package/components/tab/tab-panel.js +4 -16
  130. package/components/tab/tab.js +4 -28
  131. package/components/tooltip/index.js +12 -97
  132. package/components/tooltip/portal.js +0 -2
  133. package/components/transfer/index.js +22 -67
  134. package/components/tree-view/index.js +62 -202
  135. package/components/typography/index.js +3 -31
  136. package/global/index.js +0 -8
  137. package/icons/basic.js +0 -48
  138. package/icons/effect.js +17 -29
  139. package/icons/general/clock/clock.js +0 -2
  140. package/icons/general/color-handler/background.js +0 -2
  141. package/icons/general/color-handler/text.js +0 -2
  142. package/icons/general/emoji/emoji.js +0 -2
  143. package/icons/general/font-properties/bold.js +0 -2
  144. package/icons/general/font-properties/font-family.js +0 -2
  145. package/icons/general/font-properties/font-size.js +0 -2
  146. package/icons/general/font-properties/italic.js +0 -2
  147. package/icons/general/font-properties/underline.js +0 -2
  148. package/icons/general/hyperlink/hyperlink.js +0 -2
  149. package/icons/general/indent/decrease.js +0 -2
  150. package/icons/general/indent/increase.js +0 -2
  151. package/icons/general/list/bullets.js +0 -2
  152. package/icons/general/list/numbering.js +0 -2
  153. package/icons/general/picture/picture.js +0 -2
  154. package/icons/general/steps/redo.js +0 -2
  155. package/icons/general/steps/undo.js +0 -2
  156. package/icons/general/text-align/center.js +0 -2
  157. package/icons/general/text-align/justify.js +0 -2
  158. package/icons/general/text-align/left.js +0 -2
  159. package/icons/general/text-align/right.js +0 -2
  160. package/icons/menu/dhr.js +2 -1
  161. package/icons/menu/index.js +2 -2
  162. package/icons/menu/v2/index.js +0 -10
  163. package/package.json +1 -1
  164. package/readme.md +11 -1
  165. package/styles/animation.js +15 -58
  166. package/styles/color-helper.js +24 -54
  167. package/styles/colors.js +17 -9
  168. package/styles/general.js +6 -2
  169. package/styles/typography.js +4 -4
  170. package/styles/utils.js +2 -2
  171. package/theme/createBreakpoints.js +7 -18
  172. package/theme/make-styles.js +2 -5
  173. package/theme/set-theme.js +3 -6
  174. package/theme/settings.js +3 -2
  175. package/theme/theme-provider.js +0 -1
  176. package/utils/array/array.js +14 -23
  177. package/utils/classNames.js +0 -5
  178. package/utils/console.js +0 -6
  179. package/utils/date.js +13 -82
  180. package/utils/error/error.js +1 -9
  181. package/utils/error/errors.js +1 -48
  182. package/utils/getFileType.js +0 -9
  183. package/utils/handleBreakpoints.js +0 -5
  184. package/utils/intersectionObserver.js +0 -5
  185. package/utils/iterator.js +0 -9
  186. package/utils/map-parent.js +3 -10
  187. package/utils/object/extend.js +0 -10
  188. package/utils/object/object.js +12 -11
  189. package/utils/parseHTML.js +0 -1
  190. package/utils/promisify.js +0 -5
  191. package/utils/randomString.js +0 -7
  192. package/utils/remove-unicode.js +0 -1
  193. package/utils/render-portal.js +1 -9
  194. package/utils/renderHTML.js +4 -6
  195. package/utils/renderIcon.js +4 -14
  196. package/utils/sb-template.js +6 -5
  197. package/utils/string/capitalize.js +0 -1
  198. package/utils/string/capitalizeSentenceCase.js +0 -2
  199. package/utils/string/string.js +0 -13
  200. package/utils/type.js +0 -21
  201. package/utils/updatePosition.js +4 -5
  202. package/utils/useDelayUnmount.js +0 -4
  203. package/utils/useElementSize.js +9 -3
  204. package/utils/useEventListener.js +12 -6
  205. package/utils/useInput.js +0 -6
  206. package/utils/useMediaQuery.js +8 -10
  207. package/utils/useOnClickOutside.js +0 -2
  208. package/utils/usePortal.js +3 -10
  209. package/utils/validate.js +6 -20
@@ -1,10 +1,10 @@
1
1
  import { extend } from '../object/extend';
2
2
  import { logger } from '../console';
3
3
  import { format } from '../string/string';
4
+
4
5
  /**
5
6
  * future
6
7
  */
7
-
8
8
  const ERROR_URL = 'http://core.diginet.com.vn/ui/error/';
9
9
  export default function (baseErrors, errors) {
10
10
  const exports = {
@@ -14,32 +14,26 @@ export default function (baseErrors, errors) {
14
14
  },
15
15
  log: function (id) {
16
16
  let method = 'log';
17
-
18
17
  if (/^E\d+$/.test(id)) {
19
18
  method = 'error';
20
19
  } else if (/^W\d+$/.test(id)) {
21
20
  method = 'warn';
22
21
  }
23
-
24
22
  logger[method](method === 'log' ? id : combineMessage([].slice.call(arguments)));
25
23
  }
26
24
  };
27
-
28
25
  function combineMessage(args) {
29
26
  const id = args[0];
30
27
  args = args.slice(1);
31
28
  return formatMessage(id, formatDetails(id, args));
32
29
  }
33
-
34
30
  function formatDetails(id, args) {
35
31
  args = [exports.ERROR_MESSAGES[id]].concat(args);
36
32
  return format.apply(this, args).replace(/\.*\s*?$/, '');
37
33
  }
38
-
39
34
  function formatMessage(id, details) {
40
35
  return format.apply(this, ['{0} - {1}. See:\n{2}', id, details, getErrorUrl(id)]);
41
36
  }
42
-
43
37
  function makeError(args) {
44
38
  const id = args[0];
45
39
  args = args.slice(1);
@@ -52,10 +46,8 @@ export default function (baseErrors, errors) {
52
46
  url: url
53
47
  });
54
48
  }
55
-
56
49
  function getErrorUrl(id) {
57
50
  return ERROR_URL + id;
58
51
  }
59
-
60
52
  return exports;
61
53
  }
@@ -1,245 +1,198 @@
1
1
  import errorUtils from './error';
2
+
2
3
  /**
3
4
  * @docid
4
5
  * @name ErrorsCore
5
6
  */
6
-
7
7
  export default errorUtils({
8
8
  /**
9
9
  * @name ErrorsCore.E0001
10
10
  */
11
11
  E0001: 'Method is not implemented',
12
-
13
12
  /**
14
13
  * @name ErrorsCore.E0002
15
14
  */
16
15
  E0002: 'Member name collision: {0}',
17
-
18
16
  /**
19
17
  * @name ErrorsCore.E0003
20
18
  */
21
19
  E0003: 'A class must be instantiated using the \'new\' keyword',
22
-
23
20
  /**
24
21
  * @name ErrorsCore.E0004
25
22
  */
26
23
  E0004: 'The NAME property of the component is not specified',
27
-
28
24
  /**
29
25
  * @name ErrorsCore.E0005
30
26
  */
31
27
  E0005: 'Unknown device',
32
-
33
28
  /**
34
29
  * @name ErrorsCore.E0006
35
30
  */
36
31
  E0006: 'Unknown endpoint key is requested',
37
-
38
32
  /**
39
33
  * @name ErrorsCore.E0007
40
34
  */
41
35
  E0007: '\'Invalidate\' method is called outside the update transaction',
42
-
43
36
  /**
44
37
  * @name ErrorsCore.E0008
45
38
  */
46
39
  E0008: 'Type of the option name is not appropriate to create an action',
47
-
48
40
  /**
49
41
  * @name ErrorsCore.E0009
50
42
  */
51
43
  E0009: 'Component \'{0}\' has not been initialized for an element',
52
-
53
44
  /**
54
45
  * @name ErrorsCore.E0010
55
46
  */
56
47
  E0010: 'Animation configuration with the \'{0}\' type requires \'{1}\' configuration as {2}',
57
-
58
48
  /**
59
49
  * @name ErrorsCore.E0011
60
50
  */
61
51
  E0011: 'Unknown animation type \'{0}\'',
62
-
63
52
  /**
64
53
  * @name ErrorsCore.E0012
65
54
  */
66
55
  E0012: 'jQuery version is too old. Please upgrade jQuery to 1.10.0 or later',
67
-
68
56
  /**
69
57
  * @name ErrorsCore.E0013
70
58
  */
71
59
  E0013: 'KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later',
72
-
73
60
  /**
74
61
  * @name ErrorsCore.E0014
75
62
  */
76
63
  E0014: 'The \'release\' method shouldn\'t be called for an unlocked Lock object',
77
-
78
64
  /**
79
65
  * @name ErrorsCore.E0015
80
66
  */
81
67
  E0015: 'Queued task returned an unexpected result',
82
-
83
68
  /**
84
69
  * @name ErrorsCore.E0017
85
70
  */
86
71
  E0017: 'Event namespace is not defined',
87
-
88
72
  /**
89
73
  * @name ErrorsCore.E0018
90
74
  */
91
75
  E0018: 'DGN-UI-Popup widget is required',
92
-
93
76
  /**
94
77
  * @name ErrorsCore.E0020
95
78
  */
96
79
  E0020: 'Template engine \'{0}\' is not supported',
97
-
98
80
  /**
99
81
  * @name ErrorsCore.E0021
100
82
  */
101
83
  E0021: 'Unknown theme is set: {0}',
102
-
103
84
  /**
104
85
  * @name ErrorsCore.E0022
105
86
  */
106
87
  E0022: 'LINK[rel=DGN-UI-theme] tags must go before DGN-UI included scripts',
107
-
108
88
  /**
109
89
  * @name ErrorsCore.E0023
110
90
  */
111
91
  E0023: 'Template name is not specified',
112
-
113
92
  /**
114
93
  * @name ErrorsCore.E0024
115
94
  */
116
95
  E0024: 'DGN-UI bundle already included',
117
-
118
96
  /**
119
97
  * @name ErrorsCore.E0025
120
98
  */
121
99
  E0025: 'Unexpected argument type',
122
-
123
100
  /**
124
101
  * @name ErrorsCore.E0100
125
102
  */
126
103
  E0100: 'Unknown validation type is detected',
127
-
128
104
  /**
129
105
  * @name ErrorsCore.E0101
130
106
  */
131
107
  E0101: 'Misconfigured range validation rule is detected',
132
-
133
108
  /**
134
109
  * @name ErrorsCore.E0102
135
110
  */
136
111
  E0102: 'Misconfigured comparison validation rule is detected',
137
-
138
112
  /**
139
113
  * @name ErrorsCore.E0103
140
114
  */
141
115
  E0103: 'validationCallback of an asynchronous rule should return a jQuery or a native promise',
142
-
143
116
  /**
144
117
  * @name ErrorsCore.E0110
145
118
  */
146
119
  E0110: 'Unknown validation group is detected',
147
-
148
120
  /**
149
121
  * @name ErrorsCore.E0120
150
122
  */
151
123
  E0120: 'Adapter for a DGN-UI-Validator component cannot be configured',
152
-
153
124
  /**
154
125
  * @name ErrorsCore.E0121
155
126
  */
156
127
  E0121: 'The \'customItem\' field of the \'onCustomItemCreating\' function\'s parameter should contain a custom item or Promise that is resolved after the item is created.',
157
-
158
128
  /**
159
129
  * @name ErrorsCore.W0000
160
130
  */
161
131
  W0000: '\'{0}\' is deprecated in {1}. {2}',
162
-
163
132
  /**
164
133
  * @name ErrorsCore.W0001
165
134
  */
166
135
  W0001: '{0} - \'{1}\' option is deprecated in {2}. {3}',
167
-
168
136
  /**
169
137
  * @name ErrorsCore.W0002
170
138
  */
171
139
  W0002: '{0} - \'{1}\' method is deprecated in {2}. {3}',
172
-
173
140
  /**
174
141
  * @name ErrorsCore.W0003
175
142
  */
176
143
  W0003: '{0} - \'{1}\' property is deprecated in {2}. {3}',
177
-
178
144
  /**
179
145
  * @name ErrorsCore.W0004
180
146
  */
181
147
  W0004: 'Timeout for theme loading is over: {0}',
182
-
183
148
  /**
184
149
  * @name ErrorsCore.W0005
185
150
  */
186
151
  W0005: '\'{0}\' event is deprecated in {1}. {2}',
187
-
188
152
  /**
189
153
  * @name ErrorsCore.W0006
190
154
  */
191
155
  W0006: 'Invalid recurrence rule: \'{0}\'',
192
-
193
156
  /**
194
157
  * @name ErrorsCore.W0007
195
158
  */
196
159
  W0007: '\'{0}\' Globalize culture is not defined',
197
-
198
160
  /**
199
161
  * @name ErrorsCore.W0008
200
162
  */
201
163
  W0008: 'Invalid view name: \'{0}\'',
202
-
203
164
  /**
204
165
  * @name ErrorsCore.W0009
205
166
  */
206
167
  W0009: 'Invalid time zone name: \'{0}\'',
207
-
208
168
  /**
209
169
  * @name ErrorsCore.W0010
210
170
  */
211
171
  W0010: '{0} is deprecated in {1}. {2}',
212
-
213
172
  /**
214
173
  * @name ErrorsCore.W0011
215
174
  */
216
175
  W0011: 'Number parsing is invoked while the parser is not defined',
217
-
218
176
  /**
219
177
  * @name ErrorsCore.W0012
220
178
  */
221
179
  W0012: 'Date parsing is invoked while the parser is not defined',
222
-
223
180
  /**
224
181
  * @name ErrorsCore.W0013
225
182
  */
226
183
  W0013: '\'{0}\' file is deprecated in {1}. {2}',
227
-
228
184
  /**
229
185
  * @name ErrorsCore.W0014
230
186
  */
231
187
  W0014: '{0} - \'{1}\' type is deprecated in {2}. {3}',
232
-
233
188
  /**
234
189
  * @name ErrorsCore.W0015
235
190
  */
236
191
  W0015: 'Instead of returning a value from the \'{0}\' function, write it into the \'{1}\' field of the function\'s parameter.',
237
-
238
192
  /**
239
193
  * @name ErrorsCore.W0016
240
194
  */
241
195
  W0016: 'The "{0}" option does not accept the "{1}" value since v.{2}. {3}.',
242
-
243
196
  /**
244
197
  * @name ErrorsCore.W0017
245
198
  */
@@ -1,32 +1,23 @@
1
1
  const getFileType = (FileExt, defaultValue = 'another', onlyExt = true) => {
2
2
  if (!FileExt) return FileExt;
3
-
4
3
  if (onlyExt && FileExt.includes('.')) {
5
4
  FileExt = FileExt.slice(FileExt.lastIndexOf('.') + 1);
6
5
  }
7
-
8
6
  switch (true) {
9
7
  case /jpg|png|jpeg|gif|bmp|tiff|svg|image/i.test(FileExt):
10
8
  return 'image';
11
-
12
9
  case /doc|word/i.test(FileExt):
13
10
  return 'word';
14
-
15
11
  case /xls|sheet/i.test(FileExt):
16
12
  return 'sheet';
17
-
18
13
  case /ppt|presentation/i.test(FileExt):
19
14
  return 'presentation';
20
-
21
15
  case /zip|rar|compressed/i.test(FileExt):
22
16
  return 'compressed';
23
-
24
17
  case /pdf/i.test(FileExt):
25
18
  return 'pdf';
26
-
27
19
  default:
28
20
  return defaultValue;
29
21
  }
30
22
  };
31
-
32
23
  export default getFileType;
@@ -3,17 +3,14 @@ import theme from '../theme/settings';
3
3
  const {
4
4
  breakpoints: themeBreakpoints
5
5
  } = theme;
6
-
7
6
  const handleBreakpoints = (propValue, cssFromPropValue) => {
8
7
  let output = '';
9
-
10
8
  if (Array.isArray(propValue)) {
11
9
  propValue.map((_, index) => {
12
10
  output = output.concat([themeBreakpoints.up(breakpointKeys[index])]).concat(`{${cssFromPropValue(propValue[index])}} `);
13
11
  });
14
12
  return output;
15
13
  }
16
-
17
14
  if (typeof propValue === 'object') {
18
15
  Object.keys(propValue).map(item => {
19
16
  if (breakpointKeys.includes(item)) {
@@ -22,9 +19,7 @@ const handleBreakpoints = (propValue, cssFromPropValue) => {
22
19
  });
23
20
  return output;
24
21
  }
25
-
26
22
  output = cssFromPropValue(propValue);
27
23
  return output;
28
24
  };
29
-
30
25
  export default handleBreakpoints;
@@ -1,12 +1,10 @@
1
1
  import { useEffect } from 'react';
2
2
  let listenerCallbacks = new WeakMap();
3
3
  let observer;
4
-
5
4
  const handleIntersections = entries => {
6
5
  entries.forEach(entry => {
7
6
  if (listenerCallbacks.has(entry.target)) {
8
7
  let cb = listenerCallbacks.get(entry.target);
9
-
10
8
  if (entry.isIntersecting || entry.intersectionRatio > 0) {
11
9
  observer.unobserve(entry.target);
12
10
  listenerCallbacks.delete(entry.target);
@@ -15,7 +13,6 @@ const handleIntersections = entries => {
15
13
  }
16
14
  });
17
15
  };
18
-
19
16
  const getIntersectionObserver = () => {
20
17
  if (observer === undefined) {
21
18
  observer = new IntersectionObserver(handleIntersections, {
@@ -23,10 +20,8 @@ const getIntersectionObserver = () => {
23
20
  threshold: '0.15'
24
21
  });
25
22
  }
26
-
27
23
  return observer;
28
24
  };
29
-
30
25
  export const useIntersection = (elem, callback) => {
31
26
  useEffect(() => {
32
27
  let target = elem.current;
package/utils/iterator.js CHANGED
@@ -2,19 +2,14 @@ const map = (values, callback) => {
2
2
  if (Array.isArray(values)) {
3
3
  return values.map(callback);
4
4
  }
5
-
6
5
  const result = [];
7
-
8
6
  for (const key in values) {
9
7
  result.push(callback(values[key], key));
10
8
  }
11
-
12
9
  return result;
13
10
  };
14
-
15
11
  const each = (values, callback) => {
16
12
  if (!values) return;
17
-
18
13
  if ('length' in values) {
19
14
  for (let i = 0; i < values.length; i++) {
20
15
  if (callback.call(values[i], i, values[i]) === false) {
@@ -28,18 +23,14 @@ const each = (values, callback) => {
28
23
  }
29
24
  }
30
25
  }
31
-
32
26
  return values;
33
27
  };
34
-
35
28
  const reverseEach = (array, callback) => {
36
29
  if (!array || !('length' in array) || array.length === 0) return;
37
-
38
30
  for (let i = array.length - 1; i >= 0; i--) {
39
31
  if (callback.call(array[i], i, array[i]) === false) {
40
32
  break;
41
33
  }
42
34
  }
43
35
  };
44
-
45
36
  export { map, each, reverseEach };
@@ -1,20 +1,17 @@
1
1
  const mapParent = (data, id, parentID, sort = false) => {
2
2
  // Sort follow level
3
3
  let sortedData,
4
- remainData = JSON.parse(JSON.stringify(data));
5
-
4
+ remainData = JSON.parse(JSON.stringify(data));
6
5
  if (sort) {
7
6
  let temp = [];
8
7
  sortedData = remainData.filter(item => {
9
8
  if (!item[parentID] || item[parentID] === item[id]) {
10
9
  return true;
11
10
  }
12
-
13
11
  temp.push(item);
14
12
  return false;
15
13
  });
16
14
  let remainLength = 0;
17
-
18
15
  while (temp.length && temp.length !== remainLength) {
19
16
  remainLength = temp.length;
20
17
  remainData = [...temp];
@@ -31,23 +28,19 @@ const mapParent = (data, id, parentID, sort = false) => {
31
28
  }
32
29
  } else {
33
30
  sortedData = remainData;
34
- } // Mapping follow parent
35
-
31
+ }
36
32
 
33
+ // Mapping follow parent
37
34
  for (let i = sortedData.length - 1; i > -1; i--) {
38
35
  const index = sortedData.findIndex(item => item[id] === sortedData[i][parentID]);
39
-
40
36
  if (index !== -1 && i !== index) {
41
37
  if (!sortedData[index].childItems) {
42
38
  sortedData[index].childItems = [];
43
39
  }
44
-
45
40
  sortedData[index].childItems.unshift(sortedData[i]);
46
41
  sortedData.splice(i, 1);
47
42
  }
48
43
  }
49
-
50
44
  return sortedData;
51
45
  };
52
-
53
46
  export default mapParent;
@@ -3,55 +3,45 @@ export const extendFromObject = (target = {}, source, overrideExistingValues) =>
3
3
  for (const prop in source) {
4
4
  if (Object.prototype.hasOwnProperty.call(source, prop)) {
5
5
  const value = source[prop];
6
-
7
6
  if (!(prop in target) || overrideExistingValues) {
8
7
  target[prop] = value;
9
8
  }
10
9
  }
11
10
  }
12
-
13
11
  return target;
14
12
  };
15
13
  export const extend = function (target = {}) {
16
14
  let i = 1;
17
15
  let deep = false;
18
-
19
16
  if (typeof target === 'boolean') {
20
17
  deep = target;
21
18
  target = arguments[1] || {};
22
19
  i++;
23
20
  }
24
-
25
21
  for (; i < arguments.length; i++) {
26
22
  const source = arguments[i];
27
-
28
23
  if (source == null) {
29
24
  continue;
30
25
  }
31
-
32
26
  for (const key in source) {
33
27
  const targetValue = target[key];
34
28
  const sourceValue = source[key];
35
29
  let sourceValueIsArray = false;
36
30
  let clone;
37
-
38
31
  if (key === '__proto__' || key === 'constructor' || target === sourceValue) {
39
32
  continue;
40
33
  }
41
-
42
34
  if (deep && sourceValue && (isPlainObject(sourceValue) || (sourceValueIsArray = Array.isArray(sourceValue)))) {
43
35
  if (sourceValueIsArray) {
44
36
  clone = targetValue && Array.isArray(targetValue) ? targetValue : [];
45
37
  } else {
46
38
  clone = targetValue && isPlainObject(targetValue) ? targetValue : {};
47
39
  }
48
-
49
40
  target[key] = extend(deep, clone, sourceValue);
50
41
  } else if (sourceValue !== undefined) {
51
42
  target[key] = sourceValue;
52
43
  }
53
44
  }
54
45
  }
55
-
56
46
  return target;
57
47
  };
@@ -1,26 +1,23 @@
1
- import { isNumeric } from '../type'; // import { isNumeric, isPlainObject, isObject } from './type';
1
+ import { isNumeric } from '../type';
2
+ // import { isNumeric, isPlainObject, isObject } from './type';
2
3
  // import variableWrapper from './variable_wrapper';
3
4
 
4
5
  const clone = (() => {
5
6
  function Clone() {}
6
-
7
7
  return obj => {
8
8
  Clone.prototype = obj;
9
9
  return new Clone();
10
10
  };
11
11
  })();
12
-
13
12
  const orderEach = function (map, func) {
14
13
  const keys = [];
15
14
  let key;
16
15
  let i;
17
-
18
16
  for (key in map) {
19
17
  if (Object.prototype.hasOwnProperty.call(map, key)) {
20
18
  keys.push(key);
21
19
  }
22
20
  }
23
-
24
21
  keys.sort((x, y) => {
25
22
  const isNumberX = isNumeric(x);
26
23
  const isNumberY = isNumeric(y);
@@ -31,38 +28,42 @@ const orderEach = function (map, func) {
31
28
  if (x > y) return 1;
32
29
  return 0;
33
30
  });
34
-
35
31
  for (i = 0; i < keys.length; i++) {
36
32
  key = keys[i];
37
33
  func(key, map[key]);
38
34
  }
39
- }; // const assignValueToProperty = ( target, property, value, assignByReference ) => {
35
+ };
36
+
37
+ // const assignValueToProperty = ( target, property, value, assignByReference ) => {
40
38
  // if (!assignByReference && variableWrapper.isWrapped(target[property])) {
41
39
  // variableWrapper.assign(target[property], value);
42
40
  // } else {
43
41
  // target[property] = value;
44
42
  // }
45
43
  // };
44
+
46
45
  // // B239679, http://bugs.jquery.com/ticket/9477
47
46
  // const deepExtendArraySafe = ( target, changes, extendComplexObject, assignByReference ) => {
48
47
  // let prevValue;
49
48
  // let newValue;
49
+
50
50
  // for (const name in changes) {
51
51
  // prevValue = target[name];
52
52
  // newValue = changes[name];
53
+
53
54
  // if ( name === '__proto__' || name === 'constructor' || target === newValue ) { continue; }
55
+
54
56
  // if (isPlainObject(newValue)) {
55
57
  // const goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);
56
58
  // newValue = deepExtendArraySafe( goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference );
57
59
  // }
60
+
58
61
  // if (newValue !== undefined && prevValue !== newValue) {
59
62
  // assignValueToProperty(target, name, newValue, assignByReference);
60
63
  // }
61
64
  // }
65
+
62
66
  // return target;
63
67
  // };
64
68
 
65
-
66
- export { clone, orderEach
67
- /**, deepExtendArraySafe */
68
- };
69
+ export { clone, orderEach /**, deepExtendArraySafe */ };
@@ -4,5 +4,4 @@ const parseHTML = (text, output = 'innerHTML') => {
4
4
  const result = DOM[output];
5
5
  return result && result.trim ? result.trim() : result;
6
6
  };
7
-
8
7
  export default parseHTML;
@@ -1,21 +1,17 @@
1
1
  /* eslint-disable no-undef */
2
2
  const slice = Array.prototype.slice;
3
3
  let Promise;
4
-
5
4
  if (typeof window !== 'undefined') {
6
5
  Promise = window.Promise;
7
6
  }
8
-
9
7
  if (typeof global !== 'undefined') {
10
8
  Promise = global.Promise;
11
9
  }
12
-
13
10
  function promisify(func) {
14
11
  if (Promise) {
15
12
  return function () {
16
13
  const args = slice.call(arguments);
17
14
  const ctx = this;
18
-
19
15
  if (typeof args.slice(-1) === 'function') {
20
16
  return func.apply(ctx, args);
21
17
  } else {
@@ -35,5 +31,4 @@ function promisify(func) {
35
31
  return func;
36
32
  }
37
33
  }
38
-
39
34
  export default promisify;
@@ -6,28 +6,21 @@ export default function getRandomString(length = 10, options = {}) {
6
6
  allowSymbol = true
7
7
  } = options;
8
8
  let string = '';
9
-
10
9
  if (allowNumber) {
11
10
  string += '0123456789';
12
11
  }
13
-
14
12
  if (allowLowercase) {
15
13
  string += 'abcdefghijklmnopqrstuvwxyz';
16
14
  }
17
-
18
15
  if (allowUppercase) {
19
16
  string += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
20
17
  }
21
-
22
18
  if (allowSymbol) {
23
19
  string += '@$%^&*_+-';
24
20
  }
25
-
26
21
  let newString = '';
27
-
28
22
  for (let i = 0; i < length; i++) {
29
23
  newString += string[Math.floor(Math.random() * string.length)];
30
24
  }
31
-
32
25
  return newString;
33
26
  }
@@ -2,5 +2,4 @@ const removeUnicode = (str, spaceTo = ' ') => {
2
2
  if (!str || typeof str !== 'string') return str;
3
3
  return str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/gi, "a").replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/gi, "e").replace(/ì|í|ị|ỉ|ĩ/gi, "i").replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/gi, "o").replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/gi, "u").replace(/ỳ|ý|ỵ|ỷ|ỹ/gi, "y").replace(/đ/gi, "d").replaceAll(' ', spaceTo);
4
4
  };
5
-
6
5
  export default removeUnicode;