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.
- package/dist/DsDynamicForm.js +26 -10
- package/dist/types/DsDynamicForm.d.ts +3 -1
- package/package.json +3 -2
package/dist/DsDynamicForm.js
CHANGED
|
@@ -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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
482
|
-
|
|
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
|
-
|
|
520
|
+
if (globals.parameters.debugging)
|
|
521
|
+
console.log("active_page has changed !");
|
|
510
522
|
try {
|
|
511
|
-
|
|
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
|
-
|
|
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:
|
|
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.
|
|
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
|
}
|