intelicoreact 0.1.20 → 0.1.23

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 (27) hide show
  1. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +6 -4
  2. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.stories.js +12 -1
  3. package/dist/Atomic/FormElements/CheckboxesLine/partial/AnyOuterClass.scss +5 -0
  4. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +7 -1
  5. package/dist/Atomic/FormElements/RangeList/RangeList.js +158 -250
  6. package/dist/Atomic/FormElements/RangeList/RangeList.scss +25 -0
  7. package/dist/Atomic/FormElements/RangeList/RangeList.stories.js +35 -40
  8. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +54 -0
  9. package/dist/Atomic/FormElements/RangeList/partial/temp.js +150 -0
  10. package/dist/Atomic/FormElements/Switcher/Switcher.stories.js +11 -3
  11. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +8 -1
  12. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +11 -3
  13. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +69 -0
  14. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +166 -0
  15. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +89 -0
  16. package/dist/Functions/useFormTools/functions/General.js +158 -0
  17. package/dist/Functions/useFormTools/functions/RenderFields.js +113 -0
  18. package/dist/Functions/useFormTools/functions/usePrevious.js +19 -0
  19. package/dist/Functions/useFormTools/index.js +759 -0
  20. package/dist/Molecular/SwitcherHide/SwitcherHide.stories.js +11 -3
  21. package/dist/Molecular/SwitcherRadio/SwitcherRadio.stories.js +11 -3
  22. package/dist/Molecular/SwitcherTagsDropdown/SwitcherTagsDropdown.js +7 -3
  23. package/dist/Molecular/SwitcherTagsDropdown/SwitcherTagsDropdown.stories.js +57 -34
  24. package/dist/Molecular/SwitcherTagsDropdown/partial/States.js +158 -0
  25. package/dist/Molecular/SwitcherTextarea/SwitcherTextarea.stories.js +12 -4
  26. package/package.json +2 -2
  27. package/dist/Functions/useFormTools.js +0 -429
@@ -1,429 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = useFormTools;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
- var _react = require("react");
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
-
24
- function useFormTools(_ref) {
25
- var form = _ref.form,
26
- setForm = _ref.setForm,
27
- FormType = _ref.FormType,
28
- FormFields = _ref.FormFields;
29
-
30
- ///////////////////////////////////////////////////////////////
31
- //--- OnChange Observer ---//--- START ---//
32
- var _useState = (0, _react.useState)({}),
33
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
34
- onChangeObservers = _useState2[0],
35
- setOnChangeObservers = _useState2[1];
36
-
37
- var addOnChangeObserver = function addOnChangeObserver(key, cb) {
38
- var observerId = null;
39
- setOnChangeObservers(function (state) {
40
- //Set Default Value
41
- if (!state[key]) state[key] = {};
42
- observerId = state[key].length;
43
- state[key][observerId] = cb;
44
- return state;
45
- });
46
- return observerId;
47
- };
48
-
49
- var removeOnChangeObserver = function removeOnChangeObserver(key, id) {
50
- setOnChangeObservers(function (state) {
51
- //Set Default Value
52
- if (!state[key]) return state;
53
- state[key] = Object.keys(state).filter(function (cbId) {
54
- return cbId !== id;
55
- }).map(function (cbId) {
56
- return state[key][cbId];
57
- });
58
- return state;
59
- });
60
- };
61
-
62
- var onChangeObserver = function onChangeObserver(key, value) {
63
- if (!onChangeObservers[key] || (0, _typeof2.default)(onChangeObservers[key]) !== 'object') return;
64
- var Observers = onChangeObservers[key];
65
- Object.values(Observers).map(function (cb) {
66
- cb({
67
- value: value,
68
- form: form
69
- });
70
- return null;
71
- });
72
- };
73
-
74
- var onFieldChange = function onFieldChange(key, value) {
75
- var _form$fields$key;
76
-
77
- if (value === (form === null || form === void 0 ? void 0 : (_form$fields$key = form.fields[key]) === null || _form$fields$key === void 0 ? void 0 : _form$fields$key.value)) return false;
78
- onChangeObserver(key, value);
79
- setForm(function (form) {
80
- return _objectSpread(_objectSpread({}, form), {}, {
81
- fields: _objectSpread(_objectSpread({}, form.fields), {}, (0, _defineProperty2.default)({}, key, _objectSpread(_objectSpread({}, form.fields[key]), {}, {
82
- error: '',
83
- value: value
84
- })))
85
- });
86
- });
87
- }; //--- OnChange Observer ---//--- END ---//
88
- ///////////////////////////////////////////////////////////////
89
- ///////////////////////////////////////////////////////////////
90
- //--- Form Submit Blocker ---//--- START ---//
91
-
92
-
93
- var _useState3 = (0, _react.useState)([]),
94
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
95
- formSubmitBlockers = _useState4[0],
96
- setFormSubmitBlockers = _useState4[1];
97
-
98
- var toggleFormSubmitBlock = function toggleFormSubmitBlock(key, value) {
99
- setFormSubmitBlockers(function (state) {
100
- return state.includes(key) || !value ? (0, _toConsumableArray2.default)(state.filter(function (k) {
101
- return k !== key;
102
- })) : [].concat((0, _toConsumableArray2.default)(state), [key]);
103
- });
104
- };
105
-
106
- var clearFormSubmitBlockers = function clearFormSubmitBlockers() {
107
- return setFormSubmitBlockers([]);
108
- }; //--- Form Submit Blocker ---//--- END ---//
109
- ///////////////////////////////////////////////////////////////
110
- ///////////////////////////////////////////////////////////////
111
- //--- Property Observer Blocker ---//--- START ---//
112
- // const [propertyObservers, setPropertyObservers] = useState({});
113
- // function addPropertyObserver () {
114
- // };
115
- //--- Property Observer Blocker ---//--- END ---//
116
- ///////////////////////////////////////////////////////////////
117
- ///////////////////////////////////////////////////////////////
118
- //--- Render Fields Controller ---//--- START ---//
119
-
120
-
121
- var _useState5 = (0, _react.useState)([]),
122
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
123
- renderFormFields = _useState6[0],
124
- setRenderFormFields = _useState6[1];
125
-
126
- var addRenderFields = function addRenderFields(fields) {
127
- setForm(function (state) {
128
- return _objectSpread(_objectSpread({}, state), {}, {
129
- fields: _objectSpread(_objectSpread({}, state.fields), fields.reduce(function (result, fieldKey) {
130
- result[fieldKey] = FormFields[fieldKey];
131
- return result;
132
- }, {}))
133
- });
134
- });
135
- setRenderFormFields(function (state) {
136
- return [].concat((0, _toConsumableArray2.default)(state), (0, _toConsumableArray2.default)(fields));
137
- });
138
- };
139
-
140
- var removeRenderFields = function removeRenderFields(fields) {
141
- setRenderFormFields(function (state) {
142
- return state.filter(function (field) {
143
- return !fields.includes(field);
144
- });
145
- });
146
- }; //On Render Fields Change
147
-
148
-
149
- (0, _react.useEffect)(function () {
150
- //Add Form Fields
151
- setForm(function (state) {
152
- var fields = _objectSpread({}, state.fields);
153
-
154
- renderFormFields.forEach(function (key) {
155
- var _FormFields$key2;
156
-
157
- if (!fields[key]) {
158
- var _fields$key$className;
159
-
160
- fields[key] = FormFields[key]; // eslint-disable-next-line no-use-before-define
161
-
162
- if (!fields[key].className || ((_fields$key$className = fields[key].className) === null || _fields$key$className === void 0 ? void 0 : _fields$key$className.indexOf(getFieldClassName(key, FormType))) === -1) {
163
- var _FormFields$key;
164
-
165
- fields[key].className = "".concat((_FormFields$key = FormFields[key]) === null || _FormFields$key === void 0 ? void 0 : _FormFields$key.className, " ").concat(getFieldClassName(key, FormType));
166
- }
167
- }
168
-
169
- if ((0, _typeof2.default)((_FormFields$key2 = FormFields[key]) === null || _FormFields$key2 === void 0 ? void 0 : _FormFields$key2.label) === 'object') {
170
- fields[key].label = FormFields[key].label[FormType] || FormFields[key].label.default;
171
- } // (node, key) => { refs.current[key] = node); }
172
-
173
-
174
- fields[key].ref = /*#__PURE__*/(0, _react.createRef)();
175
- });
176
- return _objectSpread(_objectSpread({}, state), {}, {
177
- fields: fields
178
- });
179
- });
180
- }, [renderFormFields]); //--- Render Fields Controller ---//--- END ---//
181
- ///////////////////////////////////////////////////////////////
182
- ///////////////////////////////////////////////////////////////
183
- //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- START ---//
184
-
185
- var hightliteErrorLabels = function hightliteErrorLabels() {
186
- var filtered = Object.keys(form.fields).reduce(function (result, field) {
187
- var _form$fields$field;
188
-
189
- if ((_form$fields$field = form.fields[field]) !== null && _form$fields$field !== void 0 && _form$fields$field.errorLabelHightlite) {
190
- // eslint-disable-next-line no-use-before-define
191
- result.push(_objectSpread(_objectSpread({}, form.fields[field]), {}, {
192
- className: getFieldClassName(field, FormType)
193
- }));
194
- }
195
-
196
- return result;
197
- }, []);
198
- filtered.map(function (field) {
199
- var formField = document.querySelector(".".concat(field === null || field === void 0 ? void 0 : field.className));
200
- if (!formField) return null;
201
- formField.classList.remove('errorLabelHightlite');
202
-
203
- if (field !== null && field !== void 0 && field.error) {
204
- formField.classList.add('errorLabelHightlite');
205
- }
206
-
207
- return null;
208
- });
209
- };
210
-
211
- (0, _react.useEffect)(function () {
212
- hightliteErrorLabels();
213
- }, [form]); //--- HIGHTLIGHT LABELS IF FIELD WITH ERROR ---//--- END ---//
214
- ///////////////////////////////////////////////////////////////
215
- ///////////////////////////////////////////////////////////////
216
- //--- Fields Focus Controller ---//--- START ---//
217
-
218
- var _useState7 = (0, _react.useState)(false),
219
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
220
- isInitFocused = _useState8[0],
221
- setIsInitFocused = _useState8[1];
222
-
223
- var initFocused = function initFocused() {
224
- return setIsInitFocused(true);
225
- };
226
-
227
- var resetIsInitFocused = function resetIsInitFocused() {
228
- return setIsInitFocused(false);
229
- };
230
-
231
- var setFieldFocus = function setFieldFocus(_ref2) {
232
- var key = _ref2.key,
233
- _ref2$cb = _ref2.cb,
234
- cb = _ref2$cb === void 0 ? function () {} : _ref2$cb,
235
- argForm = _ref2.form;
236
- if (!key) return null;
237
- if (!argForm) argForm = form;
238
- var formField = argForm.fields[key];
239
-
240
- if (!formField || !formField.ref) {
241
- return false;
242
- }
243
-
244
- setTimeout(function () {
245
- formField.ref.current.querySelector((formField === null || formField === void 0 ? void 0 : formField.focusSelector) || 'input').focus();
246
- cb();
247
- }, 1);
248
- };
249
-
250
- var setFirstFieldFocus = function setFirstFieldFocus() {
251
- var _renderFormFields = (0, _slicedToArray2.default)(renderFormFields, 1),
252
- firstField = _renderFormFields[0];
253
-
254
- setFieldFocus({
255
- key: firstField,
256
- cb: initFocused,
257
- form: form
258
- });
259
- };
260
-
261
- var _useState9 = (0, _react.useState)([]),
262
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
263
- focusOnRenderFields = _useState10[0],
264
- setFocusOnRenderFields = _useState10[1];
265
-
266
- var addFocusFieldOnRender = function addFocusFieldOnRender(key) {
267
- setFocusOnRenderFields(function (state) {
268
- return [].concat((0, _toConsumableArray2.default)(state), [key]);
269
- });
270
- };
271
-
272
- var removeFocusFieldOnRender = function removeFocusFieldOnRender(key) {
273
- setFocusOnRenderFields(function (state) {
274
- return state.filter(function (field) {
275
- return field !== key;
276
- });
277
- });
278
- };
279
-
280
- (0, _react.useEffect)(function () {
281
- Object.keys(form === null || form === void 0 ? void 0 : form.fields).map(function (field) {
282
- if (focusOnRenderFields.includes(field)) {
283
- setFieldFocus({
284
- key: field,
285
- form: form,
286
- cb: function cb() {
287
- return removeFocusFieldOnRender(field);
288
- }
289
- });
290
- }
291
-
292
- return null;
293
- });
294
- }, [form.fields]); //--- Fields Focus Controller ---//--- END ---//
295
- ///////////////////////////////////////////////////////////////
296
- ///////////////////////////////////////////////////////////////
297
- //--- OnFieldRendered Observer ---//--- START ---//
298
-
299
- var _useState11 = (0, _react.useState)({}),
300
- _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
301
- onFieldRenderedObservers = _useState12[0],
302
- setOnFieldRenderedObservers = _useState12[1];
303
-
304
- var _useState13 = (0, _react.useState)([]),
305
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
306
- workedOutFieldRenderedObservers = _useState14[0],
307
- setWorkedOutFieldRenderedObservers = _useState14[1];
308
-
309
- var addWorkedOutField = function addWorkedOutField(key) {
310
- return setWorkedOutFieldRenderedObservers(function (state) {
311
- return [].concat((0, _toConsumableArray2.default)(state), [key]);
312
- });
313
- };
314
-
315
- var addOnFieldRenderedObserver = function addOnFieldRenderedObserver(key, cb) {
316
- var isOnceCallable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
317
- var observerId = null;
318
- setOnFieldRenderedObservers(function (state) {
319
- //Set Default Value
320
- if (!state[key]) state[key] = {};
321
- observerId = Object.keys(state[key]).length || 0;
322
- state[key][observerId] = {
323
- f: cb,
324
- isOnceCallable: isOnceCallable
325
- };
326
- return state;
327
- });
328
- return observerId;
329
- };
330
-
331
- var removeOnFieldRenderedObserver = function removeOnFieldRenderedObserver(key, id) {
332
- setOnFieldRenderedObservers(function (state) {
333
- //Set Default Value
334
- if (!state[key]) return state;
335
- state[key] = Object.keys(state).filter(function (cbId) {
336
- return cbId !== id;
337
- }).map(function (cbId) {
338
- return state[key][cbId];
339
- });
340
- return state;
341
- });
342
- };
343
-
344
- var onFieldRenderedObserver = function onFieldRenderedObserver(key) {
345
- if (!onFieldRenderedObservers[key] || (0, _typeof2.default)(onFieldRenderedObservers[key]) !== 'object') return;
346
- var Observers = onFieldRenderedObservers[key];
347
- Object.values(Observers).map(function (_ref3) {
348
- var f = _ref3.f,
349
- isOnceCallable = _ref3.isOnceCallable;
350
- f();
351
- if (isOnceCallable) addWorkedOutField(key);
352
- return null;
353
- });
354
- };
355
-
356
- (0, _react.useEffect)(function () {
357
- Object.keys(form.fields).map(function (key) {
358
- //OnFieldRendered
359
- if (!workedOutFieldRenderedObservers.includes(key)) onFieldRenderedObserver(key);
360
- return null;
361
- });
362
- }, [form.fields]); //--- OnFieldRendered Observer ---//--- END ---//
363
- ///////////////////////////////////////////////////////////////
364
- ///////////////////////////////////////////////////////////////
365
-
366
- var getFieldClassName = function getFieldClassName(key, type) {
367
- return "form-".concat(type, "_field-").concat(key);
368
- }; //Detect What Changed || TRY TO DO
369
- // const compare = async (prev, current) => {
370
- // if (!prev) return current;
371
- // return new Promise((resolve) => {
372
- // Object.keys(current).reduce((result, key, i, arr) => {
373
- // //If PROPERTY is NOT EXISTS BEFORE
374
- // if ([null, undefined].includes(prev[key])) {
375
- // result[key] = current[key];
376
- // }
377
- // //If PROPERTY is AN OBJECT
378
- // else if (typeof current[key] === 'object') {
379
- // //If PROPERTY is EXISTS BEFORE
380
- // const innerCompare = compare(prev[key], current[key]);
381
- // // //If SOMETHING CHANGED
382
- // if (innerCompare?.length) result[key] = innerCompare;
383
- // }
384
- // //If PROPERTY is AN SIMPLE VALUE and PROPERTY CHANGED
385
- // else if (prev[key] !== current[key]) {
386
- // result[key] = current[key];
387
- // }
388
- // if (i === arr.length-1) {
389
- // resolve(result);
390
- // }
391
- // return result;
392
- // }, {});
393
- // });
394
- // };
395
-
396
-
397
- return {
398
- //OnChangeObserver
399
- addOnChangeObserver: addOnChangeObserver,
400
- removeOnChangeObserver: removeOnChangeObserver,
401
- onChangeObservers: onChangeObservers,
402
- //OnChangeHandler
403
- onFieldChange: onFieldChange,
404
- //Form Submit Blocker
405
- toggleFormSubmitBlock: toggleFormSubmitBlock,
406
- clearFormSubmitBlockers: clearFormSubmitBlockers,
407
- isFormSubmitBlocked: Boolean(formSubmitBlockers.length),
408
- //Property Observers
409
- // addPropertyObserver,
410
- //Render Fields
411
- renderFormFields: renderFormFields,
412
- setRenderFormFields: setRenderFormFields,
413
- addRenderFields: addRenderFields,
414
- removeRenderFields: removeRenderFields,
415
- getFieldClassName: getFieldClassName,
416
- //Field Focus Controller
417
- isInitFocused: isInitFocused,
418
- initFocused: initFocused,
419
- resetIsInitFocused: resetIsInitFocused,
420
- setFieldFocus: setFieldFocus,
421
- setFirstFieldFocus: setFirstFieldFocus,
422
- addFocusFieldOnRender: addFocusFieldOnRender,
423
- removeFocusFieldOnRender: removeFocusFieldOnRender,
424
- //Field Render Controller
425
- addOnFieldRenderedObserver: addOnFieldRenderedObserver,
426
- removeOnFieldRenderedObserver: removeOnFieldRenderedObserver,
427
- onFieldRenderedObservers: onFieldRenderedObservers
428
- };
429
- }