@flusys/nestjs-form-builder 0.1.0-beta.3

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 (82) hide show
  1. package/cjs/config/form-builder-config.service.js +79 -0
  2. package/cjs/config/form-builder.constants.js +22 -0
  3. package/cjs/config/index.js +19 -0
  4. package/cjs/controllers/form-result.controller.js +131 -0
  5. package/cjs/controllers/form.controller.js +177 -0
  6. package/cjs/controllers/index.js +19 -0
  7. package/cjs/dtos/form-result.dto.js +309 -0
  8. package/cjs/dtos/form.dto.js +396 -0
  9. package/cjs/dtos/index.js +19 -0
  10. package/cjs/entities/form-base.entity.js +113 -0
  11. package/cjs/entities/form-result.entity.js +106 -0
  12. package/cjs/entities/form-with-company.entity.js +55 -0
  13. package/cjs/entities/form.entity.js +25 -0
  14. package/cjs/entities/index.js +40 -0
  15. package/cjs/enums/form-access-type.enum.js +19 -0
  16. package/cjs/enums/index.js +18 -0
  17. package/cjs/index.js +26 -0
  18. package/cjs/interfaces/form-builder-module.interface.js +4 -0
  19. package/cjs/interfaces/form-result.interface.js +9 -0
  20. package/cjs/interfaces/form.interface.js +4 -0
  21. package/cjs/interfaces/index.js +20 -0
  22. package/cjs/modules/form-builder.module.js +162 -0
  23. package/cjs/modules/index.js +18 -0
  24. package/cjs/services/form-builder-datasource.provider.js +213 -0
  25. package/cjs/services/form-result.service.js +252 -0
  26. package/cjs/services/form.service.js +335 -0
  27. package/cjs/services/index.js +20 -0
  28. package/config/form-builder-config.service.d.ts +10 -0
  29. package/config/form-builder.constants.d.ts +2 -0
  30. package/config/index.d.ts +2 -0
  31. package/controllers/form-result.controller.d.ts +24 -0
  32. package/controllers/form.controller.d.ts +23 -0
  33. package/controllers/index.d.ts +2 -0
  34. package/dtos/form-result.dto.d.ts +48 -0
  35. package/dtos/form.dto.d.ts +63 -0
  36. package/dtos/index.d.ts +2 -0
  37. package/entities/form-base.entity.d.ts +13 -0
  38. package/entities/form-result.entity.d.ts +11 -0
  39. package/entities/form-with-company.entity.d.ts +4 -0
  40. package/entities/form.entity.d.ts +3 -0
  41. package/entities/index.d.ts +5 -0
  42. package/enums/form-access-type.enum.d.ts +5 -0
  43. package/enums/index.d.ts +1 -0
  44. package/fesm/config/form-builder-config.service.js +69 -0
  45. package/fesm/config/form-builder.constants.js +6 -0
  46. package/fesm/config/index.js +2 -0
  47. package/fesm/controllers/form-result.controller.js +121 -0
  48. package/fesm/controllers/form.controller.js +167 -0
  49. package/fesm/controllers/index.js +2 -0
  50. package/fesm/dtos/form-result.dto.js +281 -0
  51. package/fesm/dtos/form.dto.js +370 -0
  52. package/fesm/dtos/index.js +2 -0
  53. package/fesm/entities/form-base.entity.js +106 -0
  54. package/fesm/entities/form-result.entity.js +96 -0
  55. package/fesm/entities/form-with-company.entity.js +45 -0
  56. package/fesm/entities/form.entity.js +15 -0
  57. package/fesm/entities/index.js +29 -0
  58. package/fesm/enums/form-access-type.enum.js +9 -0
  59. package/fesm/enums/index.js +1 -0
  60. package/fesm/index.js +16 -0
  61. package/fesm/interfaces/form-builder-module.interface.js +3 -0
  62. package/fesm/interfaces/form-result.interface.js +6 -0
  63. package/fesm/interfaces/form.interface.js +3 -0
  64. package/fesm/interfaces/index.js +3 -0
  65. package/fesm/modules/form-builder.module.js +152 -0
  66. package/fesm/modules/index.js +1 -0
  67. package/fesm/services/form-builder-datasource.provider.js +162 -0
  68. package/fesm/services/form-result.service.js +242 -0
  69. package/fesm/services/form.service.js +325 -0
  70. package/fesm/services/index.js +3 -0
  71. package/index.d.ts +8 -0
  72. package/interfaces/form-builder-module.interface.d.ts +23 -0
  73. package/interfaces/form-result.interface.d.ts +18 -0
  74. package/interfaces/form.interface.d.ts +29 -0
  75. package/interfaces/index.d.ts +3 -0
  76. package/modules/form-builder.module.d.ts +9 -0
  77. package/modules/index.d.ts +1 -0
  78. package/package.json +84 -0
  79. package/services/form-builder-datasource.provider.d.ts +25 -0
  80. package/services/form-result.service.d.ts +41 -0
  81. package/services/form.service.d.ts +45 -0
  82. package/services/index.d.ts +3 -0
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./form.dto"), exports);
6
+ _export_star(require("./form-result.dto"), exports);
7
+ function _export_star(from, to) {
8
+ Object.keys(from).forEach(function(k) {
9
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
10
+ Object.defineProperty(to, k, {
11
+ enumerable: true,
12
+ get: function() {
13
+ return from[k];
14
+ }
15
+ });
16
+ }
17
+ });
18
+ return from;
19
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "FormBase", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return FormBase;
9
+ }
10
+ });
11
+ const _nestjsshared = require("@flusys/nestjs-shared");
12
+ const _typeorm = require("typeorm");
13
+ const _formaccesstypeenum = require("../enums/form-access-type.enum");
14
+ function _define_property(obj, key, value) {
15
+ if (key in obj) {
16
+ Object.defineProperty(obj, key, {
17
+ value: value,
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true
21
+ });
22
+ } else {
23
+ obj[key] = value;
24
+ }
25
+ return obj;
26
+ }
27
+ function _ts_decorate(decorators, target, key, desc) {
28
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
32
+ }
33
+ function _ts_metadata(k, v) {
34
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
35
+ }
36
+ let FormBase = class FormBase extends _nestjsshared.Identity {
37
+ constructor(...args){
38
+ super(...args), _define_property(this, "name", void 0), _define_property(this, "description", void 0), _define_property(this, "slug", void 0), _define_property(this, "schema", void 0), _define_property(this, "schemaVersion", void 0), _define_property(this, "accessType", void 0), _define_property(this, "actionGroups", void 0), _define_property(this, "isActive", void 0), _define_property(this, "metadata", void 0);
39
+ }
40
+ };
41
+ _ts_decorate([
42
+ (0, _typeorm.Column)({
43
+ type: 'varchar',
44
+ length: 255,
45
+ nullable: false
46
+ }),
47
+ _ts_metadata("design:type", String)
48
+ ], FormBase.prototype, "name", void 0);
49
+ _ts_decorate([
50
+ (0, _typeorm.Column)({
51
+ type: 'varchar',
52
+ length: 500,
53
+ nullable: true
54
+ }),
55
+ _ts_metadata("design:type", Object)
56
+ ], FormBase.prototype, "description", void 0);
57
+ _ts_decorate([
58
+ (0, _typeorm.Column)({
59
+ type: 'varchar',
60
+ length: 255,
61
+ nullable: true,
62
+ unique: true
63
+ }),
64
+ _ts_metadata("design:type", Object)
65
+ ], FormBase.prototype, "slug", void 0);
66
+ _ts_decorate([
67
+ (0, _typeorm.Column)({
68
+ type: 'json',
69
+ nullable: false
70
+ }),
71
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
72
+ ], FormBase.prototype, "schema", void 0);
73
+ _ts_decorate([
74
+ (0, _typeorm.Column)({
75
+ type: 'int',
76
+ nullable: false,
77
+ default: 1,
78
+ name: 'schema_version'
79
+ }),
80
+ _ts_metadata("design:type", Number)
81
+ ], FormBase.prototype, "schemaVersion", void 0);
82
+ _ts_decorate([
83
+ (0, _typeorm.Column)({
84
+ type: 'enum',
85
+ enum: _formaccesstypeenum.FormAccessType,
86
+ default: _formaccesstypeenum.FormAccessType.AUTHENTICATED,
87
+ name: 'access_type'
88
+ }),
89
+ _ts_metadata("design:type", typeof _formaccesstypeenum.FormAccessType === "undefined" ? Object : _formaccesstypeenum.FormAccessType)
90
+ ], FormBase.prototype, "accessType", void 0);
91
+ _ts_decorate([
92
+ (0, _typeorm.Column)({
93
+ type: 'simple-array',
94
+ nullable: true,
95
+ name: 'action_groups'
96
+ }),
97
+ _ts_metadata("design:type", Object)
98
+ ], FormBase.prototype, "actionGroups", void 0);
99
+ _ts_decorate([
100
+ (0, _typeorm.Column)({
101
+ type: 'boolean',
102
+ nullable: false,
103
+ default: true,
104
+ name: 'is_active'
105
+ }),
106
+ _ts_metadata("design:type", Boolean)
107
+ ], FormBase.prototype, "isActive", void 0);
108
+ _ts_decorate([
109
+ (0, _typeorm.Column)('simple-json', {
110
+ nullable: true
111
+ }),
112
+ _ts_metadata("design:type", Object)
113
+ ], FormBase.prototype, "metadata", void 0);
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "FormResult", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return FormResult;
9
+ }
10
+ });
11
+ const _nestjsshared = require("@flusys/nestjs-shared");
12
+ const _typeorm = require("typeorm");
13
+ function _define_property(obj, key, value) {
14
+ if (key in obj) {
15
+ Object.defineProperty(obj, key, {
16
+ value: value,
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true
20
+ });
21
+ } else {
22
+ obj[key] = value;
23
+ }
24
+ return obj;
25
+ }
26
+ function _ts_decorate(decorators, target, key, desc) {
27
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31
+ }
32
+ function _ts_metadata(k, v) {
33
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
+ }
35
+ let FormResult = class FormResult extends _nestjsshared.Identity {
36
+ constructor(...args){
37
+ super(...args), _define_property(this, "formId", void 0), _define_property(this, "schemaVersionSnapshot", void 0), _define_property(this, "schemaVersion", void 0), _define_property(this, "data", void 0), _define_property(this, "submittedById", void 0), _define_property(this, "submittedAt", void 0), _define_property(this, "isDraft", void 0), _define_property(this, "metadata", void 0);
38
+ }
39
+ };
40
+ _ts_decorate([
41
+ (0, _typeorm.Index)(),
42
+ (0, _typeorm.Column)({
43
+ type: 'uuid',
44
+ nullable: false,
45
+ name: 'form_id'
46
+ }),
47
+ _ts_metadata("design:type", String)
48
+ ], FormResult.prototype, "formId", void 0);
49
+ _ts_decorate([
50
+ (0, _typeorm.Column)({
51
+ type: 'json',
52
+ nullable: false,
53
+ name: 'schema_version_snapshot'
54
+ }),
55
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
56
+ ], FormResult.prototype, "schemaVersionSnapshot", void 0);
57
+ _ts_decorate([
58
+ (0, _typeorm.Column)({
59
+ type: 'int',
60
+ nullable: false,
61
+ name: 'schema_version'
62
+ }),
63
+ _ts_metadata("design:type", Number)
64
+ ], FormResult.prototype, "schemaVersion", void 0);
65
+ _ts_decorate([
66
+ (0, _typeorm.Column)({
67
+ type: 'json',
68
+ nullable: false
69
+ }),
70
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
71
+ ], FormResult.prototype, "data", void 0);
72
+ _ts_decorate([
73
+ (0, _typeorm.Column)({
74
+ type: 'uuid',
75
+ nullable: true,
76
+ name: 'submitted_by_id'
77
+ }),
78
+ _ts_metadata("design:type", Object)
79
+ ], FormResult.prototype, "submittedById", void 0);
80
+ _ts_decorate([
81
+ (0, _typeorm.Column)({
82
+ type: 'timestamp',
83
+ nullable: false,
84
+ name: 'submitted_at'
85
+ }),
86
+ _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
87
+ ], FormResult.prototype, "submittedAt", void 0);
88
+ _ts_decorate([
89
+ (0, _typeorm.Column)({
90
+ type: 'boolean',
91
+ default: false,
92
+ name: 'is_draft'
93
+ }),
94
+ _ts_metadata("design:type", Boolean)
95
+ ], FormResult.prototype, "isDraft", void 0);
96
+ _ts_decorate([
97
+ (0, _typeorm.Column)('simple-json', {
98
+ nullable: true
99
+ }),
100
+ _ts_metadata("design:type", Object)
101
+ ], FormResult.prototype, "metadata", void 0);
102
+ FormResult = _ts_decorate([
103
+ (0, _typeorm.Entity)({
104
+ name: 'form_result'
105
+ })
106
+ ], FormResult);
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "FormWithCompany", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return FormWithCompany;
9
+ }
10
+ });
11
+ const _typeorm = require("typeorm");
12
+ const _formbaseentity = require("./form-base.entity");
13
+ function _define_property(obj, key, value) {
14
+ if (key in obj) {
15
+ Object.defineProperty(obj, key, {
16
+ value: value,
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true
20
+ });
21
+ } else {
22
+ obj[key] = value;
23
+ }
24
+ return obj;
25
+ }
26
+ function _ts_decorate(decorators, target, key, desc) {
27
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
30
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31
+ }
32
+ function _ts_metadata(k, v) {
33
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
34
+ }
35
+ let FormWithCompany = class FormWithCompany extends _formbaseentity.FormBase {
36
+ constructor(...args){
37
+ super(...args), _define_property(this, "companyId", void 0);
38
+ }
39
+ };
40
+ _ts_decorate([
41
+ (0, _typeorm.Column)({
42
+ type: 'uuid',
43
+ nullable: true,
44
+ name: 'company_id'
45
+ }),
46
+ _ts_metadata("design:type", Object)
47
+ ], FormWithCompany.prototype, "companyId", void 0);
48
+ FormWithCompany = _ts_decorate([
49
+ (0, _typeorm.Entity)({
50
+ name: 'form'
51
+ }),
52
+ (0, _typeorm.Index)([
53
+ 'companyId'
54
+ ])
55
+ ], FormWithCompany);
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Form", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Form;
9
+ }
10
+ });
11
+ const _typeorm = require("typeorm");
12
+ const _formbaseentity = require("./form-base.entity");
13
+ function _ts_decorate(decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ }
19
+ let Form = class Form extends _formbaseentity.FormBase {
20
+ };
21
+ Form = _ts_decorate([
22
+ (0, _typeorm.Entity)({
23
+ name: 'form'
24
+ })
25
+ ], Form);
@@ -0,0 +1,40 @@
1
+ // Form Entities
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "getFormBuilderEntitiesByConfig", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return getFormBuilderEntitiesByConfig;
10
+ }
11
+ });
12
+ _export_star(require("./form-base.entity"), exports);
13
+ const _formentity = _export_star(require("./form.entity"), exports);
14
+ const _formwithcompanyentity = _export_star(require("./form-with-company.entity"), exports);
15
+ const _formresultentity = _export_star(require("./form-result.entity"), exports);
16
+ function _export_star(from, to) {
17
+ Object.keys(from).forEach(function(k) {
18
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
19
+ Object.defineProperty(to, k, {
20
+ enumerable: true,
21
+ get: function() {
22
+ return from[k];
23
+ }
24
+ });
25
+ }
26
+ });
27
+ return from;
28
+ }
29
+ function getFormBuilderEntitiesByConfig(enableCompanyFeature) {
30
+ if (enableCompanyFeature) {
31
+ return [
32
+ _formwithcompanyentity.FormWithCompany,
33
+ _formresultentity.FormResult
34
+ ];
35
+ }
36
+ return [
37
+ _formentity.Form,
38
+ _formresultentity.FormResult
39
+ ];
40
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Form Access Type Enum
3
+ * Defines who can submit the form
4
+ */ "use strict";
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "FormAccessType", {
9
+ enumerable: true,
10
+ get: function() {
11
+ return FormAccessType;
12
+ }
13
+ });
14
+ var FormAccessType = /*#__PURE__*/ function(FormAccessType) {
15
+ /** No authentication required - anyone can submit */ FormAccessType["PUBLIC"] = "public";
16
+ /** Any authenticated user can submit */ FormAccessType["AUTHENTICATED"] = "authenticated";
17
+ /** Only users with specific action permissions can submit */ FormAccessType["ACTION_GROUP"] = "action_group";
18
+ return FormAccessType;
19
+ }({});
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./form-access-type.enum"), exports);
6
+ function _export_star(from, to) {
7
+ Object.keys(from).forEach(function(k) {
8
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
+ Object.defineProperty(to, k, {
10
+ enumerable: true,
11
+ get: function() {
12
+ return from[k];
13
+ }
14
+ });
15
+ }
16
+ });
17
+ return from;
18
+ }
package/cjs/index.js ADDED
@@ -0,0 +1,26 @@
1
+ // Config
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ _export_star(require("./config/index"), exports);
7
+ _export_star(require("./controllers/index"), exports);
8
+ _export_star(require("./dtos/index"), exports);
9
+ _export_star(require("./entities/index"), exports);
10
+ _export_star(require("./enums/index"), exports);
11
+ _export_star(require("./interfaces/index"), exports);
12
+ _export_star(require("./modules/index"), exports);
13
+ _export_star(require("./services/index"), exports);
14
+ function _export_star(from, to) {
15
+ Object.keys(from).forEach(function(k) {
16
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
17
+ Object.defineProperty(to, k, {
18
+ enumerable: true,
19
+ get: function() {
20
+ return from[k];
21
+ }
22
+ });
23
+ }
24
+ });
25
+ return from;
26
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Form Result Interface
3
+ * Represents a form submission in responses
4
+ *
5
+ * Note: No companyId field - company context is derived from the linked Form via formId
6
+ */ "use strict";
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./form.interface"), exports);
6
+ _export_star(require("./form-result.interface"), exports);
7
+ _export_star(require("./form-builder-module.interface"), exports);
8
+ function _export_star(from, to) {
9
+ Object.keys(from).forEach(function(k) {
10
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
11
+ Object.defineProperty(to, k, {
12
+ enumerable: true,
13
+ get: function() {
14
+ return from[k];
15
+ }
16
+ });
17
+ }
18
+ });
19
+ return from;
20
+ }
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "FormBuilderModule", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return FormBuilderModule;
9
+ }
10
+ });
11
+ const _modules = require("@flusys/nestjs-shared/modules");
12
+ const _common = require("@nestjs/common");
13
+ const _formbuilderconfigservice = require("../config/form-builder-config.service");
14
+ const _formbuilderconstants = require("../config/form-builder.constants");
15
+ const _controllers = require("../controllers");
16
+ const _services = require("../services");
17
+ function _ts_decorate(decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ }
23
+ let FormBuilderModule = class FormBuilderModule {
24
+ /**
25
+ * Register FormBuilderModule synchronously
26
+ */ static forRoot(options) {
27
+ const controllers = this.getControllers(options);
28
+ const providers = this.getProviders(options);
29
+ return {
30
+ module: FormBuilderModule,
31
+ global: options.global ?? false,
32
+ imports: [
33
+ _modules.CacheModule,
34
+ _modules.UtilsModule
35
+ ],
36
+ controllers: options.includeController !== false ? controllers : [],
37
+ providers,
38
+ exports: [
39
+ _formbuilderconfigservice.FormBuilderConfigService,
40
+ _services.FormBuilderDataSourceProvider,
41
+ _services.FormService,
42
+ _services.FormResultService
43
+ ]
44
+ };
45
+ }
46
+ /**
47
+ * Register FormBuilderModule asynchronously
48
+ */ static forRootAsync(options) {
49
+ const controllers = this.getControllers(options);
50
+ const asyncProviders = this.createAsyncProviders(options);
51
+ return {
52
+ module: FormBuilderModule,
53
+ global: options.global ?? false,
54
+ imports: [
55
+ ...options.imports || [],
56
+ _modules.CacheModule,
57
+ _modules.UtilsModule
58
+ ],
59
+ controllers: options.includeController !== false ? controllers : [],
60
+ providers: [
61
+ ...asyncProviders,
62
+ ...this.getProviders(options, false)
63
+ ],
64
+ exports: [
65
+ _formbuilderconfigservice.FormBuilderConfigService,
66
+ _services.FormBuilderDataSourceProvider,
67
+ _services.FormService,
68
+ _services.FormResultService
69
+ ]
70
+ };
71
+ }
72
+ // ==================== Private Helper Methods ====================
73
+ /**
74
+ * Get controllers
75
+ */ static getControllers(options) {
76
+ return [
77
+ _controllers.FormController,
78
+ _controllers.FormResultController
79
+ ];
80
+ }
81
+ /**
82
+ * Get providers
83
+ * @param options Module options
84
+ * @param includeOptionsProvider Whether to include the FORM_BUILDER_MODULE_OPTIONS provider
85
+ */ static getProviders(options, includeOptionsProvider = true) {
86
+ const providers = [
87
+ _formbuilderconfigservice.FormBuilderConfigService,
88
+ _services.FormBuilderDataSourceProvider,
89
+ _services.FormService,
90
+ _services.FormResultService
91
+ ];
92
+ // Only include options provider for sync registration
93
+ if (includeOptionsProvider) {
94
+ providers.unshift({
95
+ provide: _formbuilderconstants.FORM_BUILDER_MODULE_OPTIONS,
96
+ useValue: options
97
+ });
98
+ }
99
+ return providers;
100
+ }
101
+ /**
102
+ * Create async providers for forRootAsync
103
+ */ static createAsyncProviders(options) {
104
+ if (options.useFactory) {
105
+ return [
106
+ {
107
+ provide: _formbuilderconstants.FORM_BUILDER_MODULE_OPTIONS,
108
+ useFactory: async (...args)=>{
109
+ const config = await options.useFactory(...args);
110
+ return {
111
+ ...options,
112
+ config
113
+ };
114
+ },
115
+ inject: options.inject || []
116
+ }
117
+ ];
118
+ }
119
+ if (options.useClass) {
120
+ return [
121
+ {
122
+ provide: _formbuilderconstants.FORM_BUILDER_MODULE_OPTIONS,
123
+ useFactory: async (optionsFactory)=>{
124
+ const config = await optionsFactory.createFormBuilderOptions();
125
+ return {
126
+ ...options,
127
+ config
128
+ };
129
+ },
130
+ inject: [
131
+ options.useClass
132
+ ]
133
+ },
134
+ {
135
+ provide: options.useClass,
136
+ useClass: options.useClass
137
+ }
138
+ ];
139
+ }
140
+ if (options.useExisting) {
141
+ return [
142
+ {
143
+ provide: _formbuilderconstants.FORM_BUILDER_MODULE_OPTIONS,
144
+ useFactory: async (optionsFactory)=>{
145
+ const config = await optionsFactory.createFormBuilderOptions();
146
+ return {
147
+ ...options,
148
+ config
149
+ };
150
+ },
151
+ inject: [
152
+ options.useExisting
153
+ ]
154
+ }
155
+ ];
156
+ }
157
+ return [];
158
+ }
159
+ };
160
+ FormBuilderModule = _ts_decorate([
161
+ (0, _common.Module)({})
162
+ ], FormBuilderModule);
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./form-builder.module"), exports);
6
+ function _export_star(from, to) {
7
+ Object.keys(from).forEach(function(k) {
8
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
+ Object.defineProperty(to, k, {
10
+ enumerable: true,
11
+ get: function() {
12
+ return from[k];
13
+ }
14
+ });
15
+ }
16
+ });
17
+ return from;
18
+ }