@clxmedia/clxforms-client 1.0.14 → 1.0.16

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.
@@ -0,0 +1,22 @@
1
+ import { CLXContactCard, CLXFormResponseBooleanValue, CLXFormResponseCompoundValue, CLXFormResponseContactArrayValue, CLXFormResponseContactValue, CLXFormResponseDateValue, CLXFormResponseFileValue, CLXFormResponseNumberValue, CLXFormResponseScheduleValue, CLXFormResponseSingleCompoundValue, CLXFormResponseStringArrayValue, CLXFormResponseStringValue, CLXFormResponseType, CLXFormResponseValue } from "@clxmedia/types/core/clxforms";
2
+ export declare const CLXFormHelpers: {
3
+ valueBoolean: (value?: boolean) => CLXFormResponseBooleanValue;
4
+ valueString: (value?: string) => CLXFormResponseStringValue;
5
+ valueSingleCompound: () => CLXFormResponseSingleCompoundValue;
6
+ valueCompound: () => CLXFormResponseCompoundValue;
7
+ valueContact: (value?: CLXContactCard) => CLXFormResponseContactValue;
8
+ valueContactArray: (value?: CLXContactCard[]) => CLXFormResponseContactArrayValue;
9
+ valueDate: () => CLXFormResponseDateValue;
10
+ valueFile: () => CLXFormResponseFileValue;
11
+ valueSchedule: () => CLXFormResponseScheduleValue;
12
+ valueStringArray: (value?: string[]) => CLXFormResponseStringArrayValue;
13
+ valueNumber: (value?: number) => CLXFormResponseNumberValue;
14
+ defaultValue: (type: CLXFormResponseType) => CLXFormResponseValue;
15
+ convertBooleanResponse: (original: CLXFormResponseBooleanValue, targetType: CLXFormResponseType) => CLXFormResponseValue;
16
+ convertStringResponse: (original: CLXFormResponseStringValue, targetType: CLXFormResponseType) => CLXFormResponseValue;
17
+ convertNumberResponse: (original: CLXFormResponseNumberValue, targetType: CLXFormResponseType) => CLXFormResponseValue;
18
+ convertStringArrayResponse: (original: CLXFormResponseStringArrayValue, targetType: CLXFormResponseType) => CLXFormResponseValue;
19
+ convertContactArrayResponse: (original: CLXFormResponseContactArrayValue, targetType: CLXFormResponseType) => CLXFormResponseValue;
20
+ convertContactResponse: (original: CLXFormResponseContactValue, targetType: CLXFormResponseType) => CLXFormResponseValue;
21
+ convertResponse: (original: CLXFormResponseValue, targetType: CLXFormResponseType) => CLXFormResponseValue;
22
+ };
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CLXFormHelpers = void 0;
4
+ exports.CLXFormHelpers = {
5
+ valueBoolean: (value) => {
6
+ return {
7
+ type: 'BOOLEAN',
8
+ value
9
+ };
10
+ },
11
+ valueString: (value) => {
12
+ return {
13
+ type: 'STRING',
14
+ value: value || null
15
+ };
16
+ },
17
+ valueSingleCompound: () => {
18
+ return {
19
+ type: 'COMPOUND',
20
+ value: null
21
+ };
22
+ },
23
+ valueCompound: () => {
24
+ return {
25
+ type: 'MULTI_COMPOUND',
26
+ value: null
27
+ };
28
+ },
29
+ valueContact: (value) => {
30
+ return {
31
+ type: 'CONTACT',
32
+ value: value || null
33
+ };
34
+ },
35
+ valueContactArray: (value) => {
36
+ return {
37
+ type: 'CONTACT_ARRAY',
38
+ value: value || []
39
+ };
40
+ },
41
+ valueDate: () => {
42
+ return {
43
+ type: 'DATE',
44
+ value: null
45
+ };
46
+ },
47
+ valueFile: () => {
48
+ return {
49
+ type: 'FILE',
50
+ value: null
51
+ };
52
+ },
53
+ valueSchedule: () => {
54
+ return {
55
+ type: 'SCHEDULE',
56
+ value: null
57
+ };
58
+ },
59
+ valueStringArray: (value) => {
60
+ return {
61
+ type: 'STRING_ARRAY',
62
+ value
63
+ };
64
+ },
65
+ valueNumber: (value) => {
66
+ return {
67
+ type: 'NUMBER',
68
+ value
69
+ };
70
+ },
71
+ defaultValue: (type) => {
72
+ switch (type) {
73
+ case 'BOOLEAN':
74
+ return exports.CLXFormHelpers.valueBoolean();
75
+ case 'STRING':
76
+ return exports.CLXFormHelpers.valueString();
77
+ case 'NUMBER':
78
+ return exports.CLXFormHelpers.valueNumber();
79
+ case 'COMPOUND':
80
+ return exports.CLXFormHelpers.valueSingleCompound();
81
+ case 'MULTI_COMPOUND':
82
+ return exports.CLXFormHelpers.valueCompound();
83
+ case 'CONTACT':
84
+ return exports.CLXFormHelpers.valueContact();
85
+ case 'CONTACT_ARRAY':
86
+ return exports.CLXFormHelpers.valueContactArray();
87
+ case 'DATE':
88
+ return exports.CLXFormHelpers.valueDate();
89
+ case 'FILE':
90
+ return exports.CLXFormHelpers.valueFile();
91
+ case 'SCHEDULE':
92
+ return exports.CLXFormHelpers.valueSchedule();
93
+ case 'STRING_ARRAY':
94
+ return exports.CLXFormHelpers.valueStringArray([]);
95
+ case 'ANY':
96
+ default:
97
+ return exports.CLXFormHelpers.valueString();
98
+ }
99
+ },
100
+ convertBooleanResponse: (original, targetType) => {
101
+ switch (targetType) {
102
+ case 'BOOLEAN':
103
+ return original;
104
+ case 'STRING':
105
+ return exports.CLXFormHelpers.valueString(original.value ? 'Yes' : 'No');
106
+ case 'NUMBER':
107
+ return exports.CLXFormHelpers.valueNumber(original.value ? 1 : 0);
108
+ case 'STRING_ARRAY':
109
+ return exports.CLXFormHelpers.valueStringArray(original.value ? ['Yes'] : ['No']);
110
+ default:
111
+ return exports.CLXFormHelpers.defaultValue(targetType);
112
+ }
113
+ },
114
+ convertStringResponse: (original, targetType) => {
115
+ switch (targetType) {
116
+ case 'BOOLEAN':
117
+ return exports.CLXFormHelpers.valueBoolean(original.value === 'Yes');
118
+ case 'STRING':
119
+ return original;
120
+ case 'NUMBER':
121
+ return exports.CLXFormHelpers.valueNumber(Number(original.value));
122
+ case 'STRING_ARRAY':
123
+ return exports.CLXFormHelpers.valueStringArray(original.value ? [original.value] : []);
124
+ default:
125
+ return exports.CLXFormHelpers.defaultValue(targetType);
126
+ }
127
+ },
128
+ convertNumberResponse: (original, targetType) => {
129
+ switch (targetType) {
130
+ case 'BOOLEAN':
131
+ return exports.CLXFormHelpers.valueBoolean(original.value > 0);
132
+ case 'STRING':
133
+ return exports.CLXFormHelpers.valueString(`${original.value}`);
134
+ case 'NUMBER':
135
+ return original;
136
+ case 'STRING_ARRAY':
137
+ return exports.CLXFormHelpers.valueStringArray(original.value ? [`${original.value}`] : []);
138
+ default:
139
+ return exports.CLXFormHelpers.defaultValue(targetType);
140
+ }
141
+ },
142
+ convertStringArrayResponse: (original, targetType) => {
143
+ switch (targetType) {
144
+ case 'BOOLEAN':
145
+ return exports.CLXFormHelpers.valueBoolean(false);
146
+ case 'STRING':
147
+ return exports.CLXFormHelpers.valueString(original.value ? original.value.join(', ') : '');
148
+ case 'NUMBER':
149
+ return exports.CLXFormHelpers.valueNumber(Number(original.value));
150
+ case 'STRING_ARRAY':
151
+ return original;
152
+ default:
153
+ return exports.CLXFormHelpers.defaultValue(targetType);
154
+ }
155
+ },
156
+ convertContactArrayResponse: (original, targetType) => {
157
+ switch (targetType) {
158
+ case 'CONTACT':
159
+ return original.value && original.value.length > 0 ? exports.CLXFormHelpers.valueContact(original.value[0]) : exports.CLXFormHelpers.valueContact();
160
+ case 'CONTACT_ARRAY':
161
+ return original;
162
+ default:
163
+ return exports.CLXFormHelpers.defaultValue(targetType);
164
+ }
165
+ },
166
+ convertContactResponse: (original, targetType) => {
167
+ switch (targetType) {
168
+ case 'CONTACT':
169
+ return original;
170
+ case 'CONTACT_ARRAY':
171
+ return original.value ? exports.CLXFormHelpers.valueContactArray([original.value]) : exports.CLXFormHelpers.valueContactArray();
172
+ default:
173
+ return exports.CLXFormHelpers.defaultValue(targetType);
174
+ }
175
+ },
176
+ convertResponse: (original, targetType) => {
177
+ if (!original || original.type === targetType) {
178
+ return original;
179
+ }
180
+ switch (original.type) {
181
+ case 'BOOLEAN':
182
+ return exports.CLXFormHelpers.convertBooleanResponse(original, targetType);
183
+ case 'STRING':
184
+ return exports.CLXFormHelpers.convertStringResponse(original, targetType);
185
+ case 'NUMBER':
186
+ return exports.CLXFormHelpers.convertNumberResponse(original, targetType);
187
+ case 'STRING_ARRAY':
188
+ return exports.CLXFormHelpers.convertStringArrayResponse(original, targetType);
189
+ case 'CONTACT_ARRAY':
190
+ return exports.CLXFormHelpers.convertContactArrayResponse(original, targetType);
191
+ case 'CONTACT':
192
+ return exports.CLXFormHelpers.convertContactResponse(original, targetType);
193
+ default:
194
+ return exports.CLXFormHelpers.defaultValue(targetType);
195
+ }
196
+ }
197
+ };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { CLXFormLayoutProcessor, ProcessedCLXFormSection, ProcessedCLXFormStep, ProcessedCLXFormLayout } from './layout-processor';
2
2
  export { CLXFormLayoutFilter, FilteredCLXFormLayout, } from './layout-filter';
3
+ export { CLXFormHelpers } from './form-helpers';
3
4
  export { CLXRulesetProcessor } from './rules-processor';
4
5
  export { CLXRulesEngine } from './rules-engine';
5
6
  export { CLXFormConstants } from './constants';
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CLXFormConstants = exports.CLXRulesEngine = exports.CLXRulesetProcessor = exports.CLXFormLayoutFilter = exports.CLXFormLayoutProcessor = void 0;
3
+ exports.CLXFormConstants = exports.CLXRulesEngine = exports.CLXRulesetProcessor = exports.CLXFormHelpers = exports.CLXFormLayoutFilter = exports.CLXFormLayoutProcessor = void 0;
4
4
  var layout_processor_1 = require("./layout-processor");
5
5
  Object.defineProperty(exports, "CLXFormLayoutProcessor", { enumerable: true, get: function () { return layout_processor_1.CLXFormLayoutProcessor; } });
6
6
  var layout_filter_1 = require("./layout-filter");
7
7
  Object.defineProperty(exports, "CLXFormLayoutFilter", { enumerable: true, get: function () { return layout_filter_1.CLXFormLayoutFilter; } });
8
+ var form_helpers_1 = require("./form-helpers");
9
+ Object.defineProperty(exports, "CLXFormHelpers", { enumerable: true, get: function () { return form_helpers_1.CLXFormHelpers; } });
8
10
  var rules_processor_1 = require("./rules-processor");
9
11
  Object.defineProperty(exports, "CLXRulesetProcessor", { enumerable: true, get: function () { return rules_processor_1.CLXRulesetProcessor; } });
10
12
  var rules_engine_1 = require("./rules-engine");
@@ -39,9 +39,6 @@ const CLXFormLayoutProcessor = ({ mode, responseData, formRights }) => {
39
39
  };
40
40
  const questionLayoutProcessor = (questionLayout, response) => {
41
41
  const is_enabled = isQuestionLayoutEnabled(questionLayout);
42
- if (!is_enabled) {
43
- responseData[questionLayout.form_question_slug] = undefined;
44
- }
45
42
  return Object.assign(Object.assign({}, questionLayout), { is_enabled, is_complete: is_enabled ? isResponseSaved(response) : false });
46
43
  };
47
44
  const sectionProcessor = (section) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clxmedia/clxforms-client",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "CLXperience Forms Client",
5
5
  "author": "Brandon Thompson <brandont@clxmedia.com>",
6
6
  "license": "MIT",
@@ -16,7 +16,9 @@
16
16
  "import": "./dist/index.js",
17
17
  "require": "./dist/index.js"
18
18
  },
19
+ "./layout-filter": "./dist/layout-filter.js",
19
20
  "./layout-processor": "./dist/layout-processor.js",
21
+ "./form-helpers": "./dist/form-helpers.js",
20
22
  "./constants": "./dist/constants.js",
21
23
  "./rules-engine": "./dist/rules-engine.js",
22
24
  "./rules-processor": "./dist/rules-processor.js"
@@ -42,7 +44,7 @@
42
44
  "bugs": "https://github.com/adsupnow/xperience-library/clxforms-client",
43
45
  "peerDependencies": {},
44
46
  "dependencies": {
45
- "@clxmedia/types": "1.0.161",
47
+ "@clxmedia/types": "1.0.162",
46
48
  "luxon": "3.4.4"
47
49
  },
48
50
  "devDependencies": {