datasync-dynamic-form 1.0.26 → 1.0.28

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.
@@ -15,6 +15,8 @@ var _multiselectReactDropdown = _interopRequireDefault(require("multiselect-reac
15
15
  var _datasyncCore = require("datasync-core");
16
16
  var _datasyncCommonLibrary = require("datasync-common-library");
17
17
  var _datasyncBlob = require("datasync-blob");
18
+ var _reactDatepicker = _interopRequireWildcard(require("react-datepicker"));
19
+ require("react-datepicker/dist/react-datepicker.css");
18
20
  var _reactstrap = require("reactstrap");
19
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -70,48 +72,6 @@ class DsDynamicForm extends _react.Component {
70
72
  this.clearForm();
71
73
  }
72
74
  }
73
- clearForm_OBSOLETE = () => {
74
- console.log("27:ClearForm");
75
- /** Duplicate props.form */
76
- let clearObject2 = JSON.parse(JSON.stringify(this.props.form));
77
-
78
- /** set data_tier with (props.foreign_keys + props.data_tier) */
79
- if (this.props.data_blob) {
80
- //Set internal data_tier component property
81
- //OBSOLETE this.data_tier = this.props.data_blob.data_tier
82
- if (globals.parameters.debugging) console.log("01:this.props.data_blob ->", this.props.data_blob);
83
- clearObject2.data_tier = this.props.data_blob.data_tier;
84
- } else {
85
- if (globals.parameters.debugging) console.log("01:this.props.data_blob.data_tier unDefined");
86
- clearObject2.data_tier = {}; //Set empty data_tier
87
- }
88
-
89
- /** Override data with foreign keys wne props.foreign_key is available */
90
- if (this.props.foreign_keys) {
91
- clearObject2.data_tier = Object.assign(clearObject2.data_tier, this.props.foreign_keys); //Dead code to be checked !!!
92
- this.local_data_blob.data_tier = Object.assign(clearObject2.data_tier, this.props.foreign_keys); //Dead code to be checked !!!
93
- }
94
- if (globals.parameters.debugging) {
95
- console.log("01:----- clearForm -----");
96
- console.log("01:clearForm::this.props.form->", this.props.form);
97
- console.log("01:clearForm::clearObject2 mixed with data_tier ->", clearObject2);
98
- console.log("01:clearForm::internal this.data_blob ->", this.local_data_blob);
99
- }
100
- this.setState({
101
- fieldError: [],
102
- form: {},
103
- captcha1: (0, _datasyncCommonLibrary.Randomize)(0, 5),
104
- captcha2: (0, _datasyncCommonLibrary.Randomize)(0, 5)
105
- },
106
- //Clear forced
107
- () => {
108
- if (globals.parameters.debugging) console.log("09/07:DynamicForm3Tiers2 state cleansed 2:", this.state);
109
- this.setState({
110
- fieldError: [],
111
- form: clearObject2
112
- });
113
- });
114
- };
115
75
 
116
76
  /**
117
77
  * Prototype : clearForm
@@ -143,25 +103,28 @@ class DsDynamicForm extends _react.Component {
143
103
  data_tier: {}
144
104
  };
145
105
  //this.local_data_blob.data_tier = Object.assign({}, duplicate_data_tier);
106
+
107
+ //Ensure props.foreign_keys is a json object - PMAB on 2025-04-10
108
+ if (this.props.foreign_keys && typeof this.props.foreign_keys !== "object") throw new Error("foreign_keys must be a json object !");
146
109
  this.local_data_blob.data_tier = Object.assign(this.props.foreign_keys ? this.props.foreign_keys : {}, duplicate_data_tier);
147
- console.log("28:this.local_data_blob.data_tier ->", this.local_data_blob.data_tier);
148
- console.log("28:this.props.data_blob.data_tier ->", this.props.data_blob && this.props.data_blob.data_tier ? this.props.data_blob.data_tier : "props data_blob not set");
110
+ console.log("this.local_data_blob.data_tier ->", this.local_data_blob.data_tier);
111
+ console.log("this.props.data_blob.data_tier ->", this.props.data_blob && this.props.data_blob.data_tier ? this.props.data_blob.data_tier : "props data_blob not set");
149
112
  };
150
- getFieldData = pFieldObject => {
113
+ getFieldData = fieldName => {
151
114
  /** Return data value form field object */
152
- let nextFieldData = this.local_data_blob.data_tier[pFieldObject.name] ? this.local_data_blob.data_tier[pFieldObject.name] : "";
153
- if (globals.parameters.debugging) console.log("01:getFieldData[", pFieldObject.name, "] nextFieldData->", nextFieldData);
115
+ let nextFieldData = this.local_data_blob.data_tier[fieldName] ? this.local_data_blob.data_tier[fieldName] : "";
116
+ if (globals.parameters.debugging) console.log("getFieldData[", fieldName, "] nextFieldData->", nextFieldData);
154
117
  return nextFieldData;
155
118
  };
156
- setFieldData = (pFieldObject, value) => {
157
- this.local_data_blob.data_tier[pFieldObject.name] = value;
119
+ setFieldData = (fieldName, value) => {
120
+ this.local_data_blob.data_tier[fieldName] = value;
158
121
 
159
- //onFormChange handler return current form value to caller - PMAB onn 2025-02-03
122
+ //onFormChange handler return current form value to caller - PMAB on 2025-02-03
160
123
  if (this.props.onFormChange) this.props.onFormChange(this.local_data_blob.data_tier);
161
124
  if (globals.parameters.debugging) {
162
- console.log("01:setFieldData[", pFieldObject.name, "] value->", value);
163
- console.log("01:setFieldData[", pFieldObject.name, "] this.local_data_blob.data_tier ->", this.local_data_blob.data_tier);
164
- console.log("01:setFieldData[", pFieldObject.name, "] this.data_blob ->", this.local_data_blob);
125
+ console.log("setFieldData[", fieldName, "] value->", value);
126
+ console.log("setFieldData[", fieldName, "] this.local_data_blob.data_tier ->", this.local_data_blob.data_tier);
127
+ console.log("setFieldData[", fieldName, "] this.data_blob ->", this.local_data_blob);
165
128
  }
166
129
  };
167
130
  getSelectedFieldValues_V1 = pFieldObject => {
@@ -223,7 +186,7 @@ class DsDynamicForm extends _react.Component {
223
186
  }, /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
224
187
  readOnly: this.props.read_only ? this.props.read_only : false,
225
188
  type: field.input_type,
226
- value: this.getFieldData(field),
189
+ value: this.getFieldData(field.name),
227
190
  placeholder: field.placeholder,
228
191
  autocomplete: "on",
229
192
  id: field.name,
@@ -247,7 +210,7 @@ class DsDynamicForm extends _react.Component {
247
210
  }, /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
248
211
  readOnly: this.props.read_only ? this.props.read_only : false,
249
212
  type: field.input_type,
250
- value: this.getFieldData(field),
213
+ value: this.getFieldData(field.name),
251
214
  placeholder: field.placeholder,
252
215
  autocomplete: "on",
253
216
  id: field.name,
@@ -265,7 +228,7 @@ class DsDynamicForm extends _react.Component {
265
228
  return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
266
229
  readOnly: this.props.read_only ? this.props.read_only : false,
267
230
  type: field.input_type,
268
- value: this.getFieldData(field),
231
+ value: this.getFieldData(field.name),
269
232
  placeholder: field.placeholder,
270
233
  autocomplete: "off",
271
234
  onChange: e => {
@@ -281,7 +244,7 @@ class DsDynamicForm extends _react.Component {
281
244
  return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
282
245
  readOnly: this.props.read_only ? this.props.read_only : false,
283
246
  type: field.input_type,
284
- value: this.getFieldData(field),
247
+ value: this.getFieldData(field.name),
285
248
  placeholder: field.placeholder,
286
249
  pattern: "[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$",
287
250
  autocomplete: "on",
@@ -301,7 +264,7 @@ class DsDynamicForm extends _react.Component {
301
264
  className: "form-control",
302
265
  readOnly: this.props.read_only ? this.props.read_only : false,
303
266
  type: field.input_type,
304
- value: this.getFieldData(field),
267
+ value: this.getFieldData(field.name),
305
268
  placeholder: field.placeholder,
306
269
  rows: field.rows,
307
270
  onChange: e => {
@@ -319,14 +282,14 @@ class DsDynamicForm extends _react.Component {
319
282
  options: field.combo_list,
320
283
  isObject: false,
321
284
  displayValue: "key",
322
- selectedValues: this.getFieldData(field) ? this.getFieldData(field).split(";") : [],
285
+ selectedValues: this.getFieldData(field.name) ? this.getFieldData(field.name.name).split(";") : [],
323
286
  placeholder: field.placeholder,
324
287
  emptyRecordMsg: "",
325
288
  onSelect: (selectedList, selectedItem) => {
326
- this.setFieldData(field, selectedList.join(";"));
289
+ this.setFieldData(field.name, selectedList.join(";"));
327
290
  },
328
291
  onRemove: (selectedList, selectedItem) => {
329
- this.setFieldData(field, selectedList.join(";"));
292
+ this.setFieldData(field.name, selectedList.join(";"));
330
293
  },
331
294
  disable: this.props.read_only,
332
295
  singleSelect: true
@@ -338,19 +301,110 @@ class DsDynamicForm extends _react.Component {
338
301
  options: field.combo_list,
339
302
  isObject: false,
340
303
  displayValue: "key",
341
- selectedValues: this.getFieldData(field) ? this.getFieldData(field).split(";") : [],
304
+ selectedValues: this.getFieldData(field.name) ? this.getFieldData(field.name).split(";") : [],
342
305
  placeholder: field.placeholder,
343
306
  emptyRecordMsg: "",
344
307
  onSelect: (selectedList, selectedItem) => {
345
- this.setFieldData(field, selectedList.join(";"));
308
+ this.setFieldData(field.name, selectedList.join(";"));
346
309
  },
347
310
  onRemove: (selectedList, selectedItem) => {
348
- this.setFieldData(field, selectedList.join(";"));
311
+ this.setFieldData(field.name, selectedList.join(";"));
349
312
  },
350
313
  disable: this.props.read_only,
351
314
  singleSelect: false
352
315
  }), this._error_label(field));
353
316
  };
317
+ _date_field = field => {
318
+ return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(_reactDatepicker.default
319
+ //locale="fr"
320
+ , {
321
+ value: this.getFieldData(field.name),
322
+ placeholder: "dd-mm-yyyy",
323
+ onChange: p_oDate => {
324
+ this.handle_date_picker({
325
+ selection: p_oDate,
326
+ fieldObject: field
327
+ });
328
+ }
329
+ }), this._error_label(field));
330
+ };
331
+ _time_field = field => {
332
+ return /*#__PURE__*/_react.default.createElement("div", {
333
+ className: "time-div"
334
+ }, /*#__PURE__*/_react.default.createElement("div", {
335
+ className: "time-hour-div"
336
+ }, /*#__PURE__*/_react.default.createElement(_multiselectReactDropdown.default, {
337
+ showArrow: true,
338
+ options: ["07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22"],
339
+ isObject: false,
340
+ displayValue: "key",
341
+ selectedValues: this.getFieldData(field.name + "__hour") ? this.getFieldData(field.name + "__hour").split(";") : [],
342
+ placeholder: field.placeholder,
343
+ emptyRecordMsg: "",
344
+ onSelect: (selectedList, selectedItem) => {
345
+ this.handle_time_picker({
346
+ fieldObject: field,
347
+ name: field.name,
348
+ sub_name: "__hour",
349
+ value: selectedList.join(";")
350
+ });
351
+ },
352
+ onRemove: (selectedList, selectedItem) => {
353
+ this.handle_time_picker({
354
+ fieldObject: field,
355
+ name: field.name,
356
+ sub_name: "__hour",
357
+ value: selectedList.join(";")
358
+ });
359
+ },
360
+ disable: this.props.read_only,
361
+ singleSelect: true
362
+ })), /*#__PURE__*/_react.default.createElement("div", {
363
+ className: "time-min-div"
364
+ }, /*#__PURE__*/_react.default.createElement(_multiselectReactDropdown.default, {
365
+ showArrow: false,
366
+ options: ["00", "15", "20", "25", "30", "35", "40", "45", "50", "55"],
367
+ isObject: false,
368
+ displayValue: "key",
369
+ selectedValues: this.getFieldData(field.name + "__min") ? this.getFieldData(field.name + "__min").split(";") : [],
370
+ placeholder: field.placeholder,
371
+ emptyRecordMsg: "",
372
+ onSelect: (selectedList, selectedItem) => {
373
+ this.handle_time_picker({
374
+ fieldObject: field,
375
+ name: field.name,
376
+ sub_name: "__min",
377
+ value: selectedList.join(";")
378
+ });
379
+ },
380
+ onRemove: (selectedList, selectedItem) => {
381
+ this.handle_time_picker({
382
+ fieldObject: field,
383
+ name: field.name,
384
+ sub_name: "__min",
385
+ value: selectedList.join(";")
386
+ });
387
+ },
388
+ disable: this.props.read_only,
389
+ singleSelect: true
390
+ })), this._error_label(field));
391
+ };
392
+ _time_field_DISABLED = field => {
393
+ return /*#__PURE__*/_react.default.createElement("div", null, this.getFieldLabelTitle(field), /*#__PURE__*/_react.default.createElement(TimePickerPackage, {
394
+ hour_title: "heure",
395
+ hour_placeholder: "heure",
396
+ minutes_title: "minutes",
397
+ minutes_placeholder: "minutes",
398
+ required: false,
399
+ onChange: timeValuePack => {
400
+ console.log("valuepack in EventForm ==>", timeValuePack);
401
+ this.setState({
402
+ hour: timeValuePack.hour,
403
+ minutes: timeValuePack.minutes
404
+ });
405
+ }
406
+ }), this._error_label(field));
407
+ };
354
408
  saveFormToDatasyncProcess = () => {
355
409
  //Everything sounds ok in Form, Go ahead
356
410
  let hasDataGuid = this.props.datasync_object && this.props.datasync_object.data_guid;
@@ -434,7 +488,7 @@ class DsDynamicForm extends _react.Component {
434
488
  /** Get field properties */
435
489
  let min = pFieldObject.min_length;
436
490
  let max = pFieldObject.max_length;
437
- let fieldValue = this.getFieldData(pFieldObject);
491
+ let fieldValue = this.getFieldData(pFieldObject.name);
438
492
  console.log("d3t3:checkValidation fieldValue->", fieldValue);
439
493
  let errorsFieldName = `err_${fieldName}`; /** Error data displayed in dedicated error label, beside input field in Form */
440
494
  let nextErrors = [];
@@ -453,6 +507,11 @@ class DsDynamicForm extends _react.Component {
453
507
  if (pFieldObject.input_type.toLowerCase() == "email") {
454
508
  if (!fieldValue.match(/^([\w.%+-]+)@([\w-]+\.)+([\w]{2,})$/i)) nextErrors.push(`Format de mail incorrect !`);
455
509
  }
510
+
511
+ //Date check
512
+ if (pFieldObject.input_type.toLowerCase() == "date") {
513
+ if (!fieldValue.match(/^(\d{2}\/\d{2}\/\d{4})$/i)) nextErrors.push(`Format de date incorrect !`);
514
+ }
456
515
  if (max > 0 && fieldValue.trim().length > max) nextErrors.push(`trop long, ${fieldValue.trim().length - max} caractères en trop.`);
457
516
  /* Special validation handlers
458
517
  if (parseInt(this.state[fieldName]) !== (this.state.v1 + this.state.v2))
@@ -485,7 +544,7 @@ class DsDynamicForm extends _react.Component {
485
544
  dynamicInputTextChangeHandler = eventObject => {
486
545
  if (eventObject && eventObject.event) eventObject.event.preventDefault();
487
546
  if (globals.parameters.debugging) console.log(`d3t:dynamicInputTextChangeHandler eventObject -> `, eventObject);
488
- this.setFieldData(eventObject.fieldObject, eventObject.event.target.value);
547
+ this.setFieldData(eventObject.fieldObject.name, eventObject.event.target.value);
489
548
 
490
549
  //Validate field
491
550
  this.checkValidation(eventObject.fieldObject);
@@ -493,12 +552,61 @@ class DsDynamicForm extends _react.Component {
493
552
  dynamicInputNumericChangeHandler = eventObject => {
494
553
  if (eventObject && eventObject.event) eventObject.event.preventDefault();
495
554
  if (globals.parameters.debugging) console.log(`d3t:dynamicInputNumericChangeHandler ${eventObject.fieldObject.name} Input field has changed`);
496
- if (eventObject.event.target.value.length == 0 || !isNaN(eventObject.event.target.value) && !isNaN(parseFloat(eventObject.event.target.value))) this.setFieldData(eventObject.fieldObject, eventObject.event.target.value);else {
555
+ if (eventObject.event.target.value.length == 0 || !isNaN(eventObject.event.target.value) && !isNaN(parseFloat(eventObject.event.target.value))) this.setFieldData(eventObject.fieldObject.name, eventObject.event.target.value);else {
497
556
  if (globals.parameters.debugging) console.log(`d3t:Value rejected -> ${eventObject.event.target.value}`);
498
557
  }
499
558
 
500
559
  //Validate field
501
- if (globals.parameters.debugging) console.log(`#${eventObject.fieldObject.name} => ${this.getFieldData(eventObject.fieldObject)}`);
560
+ if (globals.parameters.debugging) console.log(`#${eventObject.fieldObject.name} => ${this.getFieldData(eventObject.fieldObject.name)}`);
561
+ this.checkValidation(eventObject.fieldObject);
562
+ };
563
+ convertDate = p_o_day_month_year => {
564
+ function pad(s) {
565
+ return s < 10 ? '0' + s : s;
566
+ }
567
+ return {
568
+ asString: [pad(p_o_day_month_year.day), pad(p_o_day_month_year.month), p_o_day_month_year.year].join('/'),
569
+ asDate: {
570
+ day: p_o_day_month_year.day,
571
+ month: p_o_day_month_year.month,
572
+ year: p_o_day_month_year.year
573
+ }
574
+ };
575
+ };
576
+ handle_date_picker = eventObject => {
577
+ let p_oDate = eventObject.selection;
578
+ //Convert date picker string as day month year object
579
+ let dateConvertedObject = this.convertDate({
580
+ day: p_oDate.getDate(),
581
+ month: 1 + p_oDate.getMonth(),
582
+ year: p_oDate.getFullYear()
583
+ });
584
+ if (globals.parameters.debugging) {
585
+ console.log("p_oDate =>", p_oDate);
586
+ console.log("dateConvertedObject =>", dateConvertedObject);
587
+ console.log("dateConvertedObject.asString =>", dateConvertedObject.asString);
588
+ }
589
+ this.setFieldData(eventObject.fieldObject.name, dateConvertedObject.asString);
590
+ this.setFieldData(eventObject.fieldObject.name + "__day", dateConvertedObject.asDate.day);
591
+ this.setFieldData(eventObject.fieldObject.name + "__month", dateConvertedObject.asDate.month);
592
+ this.setFieldData(eventObject.fieldObject.name + "__year", dateConvertedObject.asDate.year);
593
+
594
+ //Validate field
595
+ this.checkValidation(eventObject.fieldObject);
596
+ };
597
+ handle_time_picker = eventObject => {
598
+ //Set hour or min
599
+ this.setFieldData(eventObject.name + eventObject.sub_name, eventObject.value);
600
+ //update fulll time field
601
+ this.setFieldData(eventObject.name, this.getFieldData(eventObject.name + "__hour") + ":" + this.getFieldData(eventObject.name + "__min"));
602
+ if (true) {
603
+ console.clear();
604
+ console.log("__hour ->", this.getFieldData(eventObject.name + "__hour"));
605
+ console.log("__min ->", this.getFieldData(eventObject.name + "__min"));
606
+ console.log(eventObject.name, " ->", this.getFieldData(eventObject.name));
607
+ }
608
+
609
+ //Validate field
502
610
  this.checkValidation(eventObject.fieldObject);
503
611
  };
504
612
  _colRendering = col => {
@@ -527,7 +635,7 @@ class DsDynamicForm extends _react.Component {
527
635
  data_tier_migration = (field, ii) => {
528
636
  if (!this.props.data_blob) return; //Discard migration
529
637
  return;
530
- //data_tier_migration disbled
638
+ //data_tier_migration disabled
531
639
  console.log("09/07:data_tier_migration ### Migration check !!!");
532
640
  console.log("09/07:this.data_blob.modified ->", this.local_data_blob && this.local_data_blob.modified ? this.local_data_blob.modified : "null");
533
641
  //Check if migration required
@@ -575,7 +683,7 @@ class DsDynamicForm extends _react.Component {
575
683
  console.log("09/07:_fieldRendering -> data_tier_migration call");
576
684
  this.data_tier_migration(field, ii);
577
685
  //Do not display field if empty in read only mode
578
- if (this.props.read_only && (this.getFieldData(field) == null || !this.getFieldData(field) || this.getFieldData(field).trim().length == 0)) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
686
+ if (this.props.read_only && (this.getFieldData(field.name) == null || !this.getFieldData(field.name) || this.getFieldData(field.name).trim().length == 0)) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
579
687
 
580
688
  //Do not display hidden field
581
689
  if (field.hidden && !this.props.show_hidden) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
@@ -600,14 +708,14 @@ class DsDynamicForm extends _react.Component {
600
708
  options: ["Oui", "Non"],
601
709
  isObject: false,
602
710
  displayValue: "key",
603
- selectedValues: this.getFieldData(field) ? this.getFieldData(field).split(";") : [],
711
+ selectedValues: this.getFieldData(field.name) ? this.getFieldData(field.name).split(";") : [],
604
712
  placeholder: field.placeholder,
605
713
  emptyRecordMsg: "",
606
714
  onSelect: (selectedList, selectedItem) => {
607
- this.setFieldData(field, selectedList.join(";"));
715
+ this.setFieldData(field.name, selectedList.join(";"));
608
716
  },
609
717
  onRemove: (selectedList, selectedItem) => {
610
- this.setFieldData(field, selectedList.join(";"));
718
+ this.setFieldData(field.name, selectedList.join(";"));
611
719
  },
612
720
  disable: this.props.read_only,
613
721
  singleSelect: true
@@ -618,9 +726,9 @@ class DsDynamicForm extends _react.Component {
618
726
  }, /*#__PURE__*/_react.default.createElement(_datasyncBlob.DsBlob, {
619
727
  readOnly: this.props.read_only ? this.props.read_only : false,
620
728
  Caption: `${this.getFieldPrompt(field)} ...`,
621
- data: this.getFieldData(field),
729
+ data: this.getFieldData(field.name),
622
730
  uploadPicture: UploadFile => {
623
- this.setFieldData(field, UploadFile.data);
731
+ this.setFieldData(field.name, UploadFile.data);
624
732
  this.checkValidation(field);
625
733
  },
626
734
  pictureStyle: "pic",
@@ -642,6 +750,10 @@ class DsDynamicForm extends _react.Component {
642
750
  return this._combo_field(field);
643
751
  case "multi":
644
752
  return this._multi_field(field);
753
+ case "date":
754
+ return this._date_field(field);
755
+ case "time":
756
+ return this._time_field(field);
645
757
  case "numeric":
646
758
  return this._numeric_field_with_add_on(field, "*");
647
759
  case "amount":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datasync-dynamic-form",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "description": "Datasync Dynamic Form component",
5
5
  "main": "./dist/components/DsDynamicForm",
6
6
  "types": "./dist/components/DsDynamicForm",
@@ -45,6 +45,8 @@
45
45
  "datasync-blob": "^1.0.2",
46
46
  "datasync-common-library": "^1.0.5",
47
47
  "datasync-core": "^1.0.28",
48
+ "datasync-dynamic-form": "^1.0.27",
49
+ "react-datepicker": "^8.3.0",
48
50
  "universal-cookie": "^7.2.2"
49
51
  }
50
52
  }