datasync-dynamic-form 1.2.2 → 1.3.0

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.
@@ -8,10 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
- import { Component } from "react";
11
+ import React, { Component } from "react";
12
12
  import Multiselect from 'multiselect-react-dropdown';
13
13
  import { CTimeStamp, Randomize, SaveDataTierToDatasync, WScrollTo } from "datasync-core";
14
14
  import { DsBlob } from "datasync-blob";
15
+ import { DsPdf } from "datasync-pdf";
15
16
  // reactstrap components
16
17
  import { Button, Label, FormGroup, Input, InputGroupText, InputGroup, Row as ReactstrapRow, Col as ReactstrapCol, } from "reactstrap";
17
18
  const debugging = false;
@@ -42,13 +43,20 @@ export class DsDynamicForm extends Component {
42
43
  */
43
44
  this.updatePageDomElement = (p_pageIndex, p_page_isVisible) => {
44
45
  let pageObject = document.getElementById(`dsdf_page_${p_pageIndex}`);
45
- console.log(`updatePageDomElement = (${p_pageIndex}, ${p_page_isVisible ? "show" : "hide"})`);
46
- console.log("pageObject.classList(before)->", pageObject.classList);
46
+ if (globals.parameters.debugging)
47
+ console.log(`updatePageDomElement = (${p_pageIndex}, ${p_page_isVisible ? "show" : "hide"})`);
48
+ if (!pageObject) {
49
+ console.error(`Page element with id 'dsdf_page_${p_pageIndex}' not found`);
50
+ return;
51
+ }
52
+ if (globals.parameters.debugging)
53
+ console.log("pageObject.classList(before)->", pageObject.classList);
47
54
  if (p_page_isVisible)
48
55
  pageObject.classList.add("page_visible");
49
56
  else
50
57
  pageObject.classList.remove("page_visible");
51
- console.log("pageObject.classList(after)->", pageObject.classList);
58
+ if (globals.parameters.debugging)
59
+ console.log("pageObject.classList(after)->", pageObject.classList);
52
60
  };
53
61
  /**
54
62
  * Prototype : clearForm
@@ -408,6 +416,8 @@ export class DsDynamicForm extends Component {
408
416
  return (_jsxs("div", { children: [this.getFieldLabelTitle(field), _jsx(Multiselect, { showArrow: true, options: ["Oui", "Non"], isObject: false, displayValue: "key", selectedValues: this.getFieldData(field.name) ? this.getFieldData(field.name).split(";") : [], placeholder: field.placeholder, emptyRecordMsg: "", onSelect: (selectedList, selectedItem) => { this.setFieldData(field.name, selectedList.join(";")); }, onRemove: (selectedList, selectedItem) => { this.setFieldData(field.name, selectedList.join(";")); }, disable: this.props.read_only, singleSelect: true }), this._error_label(field)] }));
409
417
  case "blob":
410
418
  return (_jsxs(_Fragment, { children: [this.getFieldLabelTitle(field), _jsxs("div", { className: "col-md-10", children: [_jsx(DsBlob, { item_id: field.name, readOnly: this.props.read_only ? this.props.read_only : false, Caption: `${this.getFieldPrompt(field)} ...`, data: this.getFieldData(field.name), uploadPicture: (UploadFile) => { this.setFieldData(field.name, UploadFile.data); this.checkValidation(field); }, pictureStyle: "pic", buttonStyle: "btn btn-secondary", width: field.width ? field.width : undefined, height: field.height ? field.height : undefined, maxWidth: field.maxWidth ? field.maxWidth : undefined, maxHeight: field.maxHeight ? field.maxHeight : undefined, reduceImage: field.reduceImage ? field.reduceImage : undefined }), this._error_label(field)] })] }));
419
+ case "pdf":
420
+ return (_jsxs(_Fragment, { children: [this.getFieldLabelTitle(field), _jsxs("div", { className: "col-md-10", children: [_jsx(DsPdf, { item_id: field.name, readOnly: this.props.read_only ? this.props.read_only : false, Caption: `${this.getFieldPrompt(field)} ...`, data: this.getFieldData(field.name), uploadPdf: (UploadFile) => { this.setFieldData(field.name, UploadFile.data); this.checkValidation(field); }, pictureStyle: "pic", buttonStyle: "btn btn-secondary" }), this._error_label(field)] })] }));
411
421
  case "email":
412
422
  return this._email_field(field);
413
423
  case "text":
@@ -473,13 +483,14 @@ export class DsDynamicForm extends Component {
473
483
  };
474
484
  this.render = () => {
475
485
  return (_jsxs(_Fragment, { children: [_jsx(_Fragment, { children: console.log('form->', this.props.form) }), !this.state.form &&
476
- _jsxs("div", { children: [console.log('Pages->'), _jsx("h1", { children: "Form loading..." })] }), !(this.state.form &&
486
+ _jsx("div", { children: _jsx("h1", { children: "Form loading..." }) }), !(this.state.form &&
477
487
  this.state.form.Pages) &&
478
488
  _jsx("div", { children: _jsx("h1", { children: "Form Missing Pages !!!" }) }), _jsx("form", { children: this.state.form &&
479
489
  this.state.form.Pages &&
480
490
  this.state.form.Pages.map((page, pageIndex) => {
481
- console.log(`Rendering page ${pageIndex}:`, page);
482
- return (_jsx("div", { id: `dsdf_page_${pageIndex}`, className: `form-page ${pageIndex == this.state.active_page ? "page_visible" : ""}`, children: page.Rows.map((row, rowIndex) => {
491
+ if (globals.parameters.debugging)
492
+ console.log(`Rendering page ${pageIndex}:`, page);
493
+ return (_jsx("div", { id: `dsdf_page_${pageIndex}`, className: `form-page ${((pageIndex == this.state.active_page) || this.props.read_only) ? "page_visible" : ""}`, children: page.Rows.map((row, rowIndex) => {
483
494
  return (_jsx("div", { children: this._rowRendering(row) }, rowIndex));
484
495
  }) }, pageIndex));
485
496
  }) }), _jsxs(ReactstrapRow, { id: "dsdf_buttons_container", className: "buttons-row", children: [this._cancelButton(), this._submitButton(), this.props.custom_button_caption &&
@@ -506,15 +517,20 @@ export class DsDynamicForm extends Component {
506
517
  this.clearForm();
507
518
  }
508
519
  if (this.props.active_page != prevProps.active_page) {
509
- console.log("active_page has changed !");
520
+ if (globals.parameters.debugging)
521
+ console.log("active_page has changed !");
510
522
  try {
511
- this.updatePageDomElement(prevProps.active_page, false);
523
+ if (prevProps.active_page !== undefined) {
524
+ this.updatePageDomElement(prevProps.active_page, false);
525
+ }
512
526
  }
513
527
  catch (error) {
514
528
  this.updatePageDomElement(0, false);
515
529
  }
516
530
  try {
517
- this.updatePageDomElement(this.props.active_page, true);
531
+ if (this.props.active_page !== undefined) {
532
+ this.updatePageDomElement(this.props.active_page, true);
533
+ }
518
534
  }
519
535
  catch (error) {
520
536
  this.updatePageDomElement(1, true);
@@ -96,6 +96,7 @@ interface DsDynamicFormProps {
96
96
  custom_button_caption2?: string;
97
97
  custom_button_handler2?: (form: Form) => void;
98
98
  show_hidden?: boolean;
99
+ active_page?: number;
99
100
  }
100
101
  interface DsDynamicFormState {
101
102
  form: Form;
@@ -104,6 +105,7 @@ interface DsDynamicFormState {
104
105
  };
105
106
  captcha1?: number;
106
107
  captcha2?: number;
108
+ active_page?: number;
107
109
  }
108
110
  export declare class DsDynamicForm extends Component<DsDynamicFormProps, DsDynamicFormState> {
109
111
  private local_data_blob;
@@ -113,7 +115,7 @@ export declare class DsDynamicForm extends Component<DsDynamicFormProps, DsDynam
113
115
  /**
114
116
  * Prototype : updateElement
115
117
  */
116
- updatePageDomElement: (p_pageIndex: any, p_page_isVisible: any) => void;
118
+ updatePageDomElement: (p_pageIndex: number, p_page_isVisible: boolean) => void;
117
119
  /**
118
120
  * Prototype : clearForm
119
121
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "datasync-dynamic-form",
3
3
  "description": "Datasync Dynamic Form component",
4
- "version": "1.2.2",
4
+ "version": "1.3.0",
5
5
  "main": "dist/DsDynamicForm.js",
6
6
  "module": "dist/DsDynamicForm.js",
7
7
  "types": "dist/types/DsDynamicForm.d.ts",
@@ -35,6 +35,7 @@
35
35
  "license": "ISC",
36
36
  "dependencies": {
37
37
  "axios": "^1.7.2",
38
- "datasync-blob": "^1.1.7"
38
+ "datasync-blob": "^1.1.7",
39
+ "datasync-pdf": "^0.0.1"
39
40
  }
40
41
  }