@mindful-web/marko-web-identity-x 1.31.2 → 1.32.1

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.
@@ -80,13 +80,16 @@
80
80
  :source="loginSource"
81
81
  :redirect="redirect"
82
82
  :endpoints="endpoints"
83
+ :custom-select-field-answers="loginCustomSelectFieldAnswers"
84
+ :custom-boolean-field-answers="loginCustomBooleanFieldAnswers"
85
+ :custom-text-field-answers="loginCustomTextFieldAnswers"
83
86
  :app-context-id="appContextId"
84
87
  :consent-policy="consentPolicy"
85
88
  :consent-policy-enabled="consentPolicyEnabled"
86
89
  :email-consent-request="emailConsentRequest"
87
90
  :email-consent-request-enabled="emailConsentRequestEnabled"
88
91
  :regional-consent-policies="regionalConsentPolicies"
89
- :required-create-fields="requiredCreateFields"
92
+ :required-create-field-rows="requiredCreateFieldRows"
90
93
  :default-field-labels="defaultFieldLabels"
91
94
  :button-labels="loginButtonLabels"
92
95
  :lang="lang"
@@ -164,7 +167,7 @@ export default {
164
167
  type: Object,
165
168
  default: () => ({}),
166
169
  },
167
- requiredCreateFields: {
170
+ requiredCreateFieldRows: {
168
171
  type: Array,
169
172
  default: () => [],
170
173
  },
@@ -220,6 +223,18 @@ export default {
220
223
  type: Object,
221
224
  default: null,
222
225
  },
226
+ loginCustomBooleanFieldAnswers: {
227
+ type: Array,
228
+ default: () => [],
229
+ },
230
+ loginCustomSelectFieldAnswers: {
231
+ type: Array,
232
+ default: () => [],
233
+ },
234
+ loginCustomTextFieldAnswers: {
235
+ type: Array,
236
+ default: () => [],
237
+ },
223
238
  lang: {
224
239
  type: String,
225
240
  default: 'en',
@@ -253,6 +253,7 @@ export default {
253
253
  const customAnswerIds = [
254
254
  ...data.user.customBooleanFieldAnswers,
255
255
  ...data.user.customSelectFieldAnswers,
256
+ ...data.user.customTextFieldAnswers,
256
257
  ].filter((field) => field.hasAnswered).map((field) => field.id);
257
258
 
258
259
  this.isProfileComplete = this.requiredFields
@@ -36,13 +36,15 @@
36
36
  :class="element('login-form')"
37
37
  :additional-event-data="additionalEventData"
38
38
  :source="loginSource"
39
- :active-user="activeUser"
40
39
  :endpoints="endpoints"
40
+ :custom-select-field-answers="loginCustomSelectFieldAnswers"
41
+ :custom-boolean-field-answers="loginCustomBooleanFieldAnswers"
42
+ :custom-text-field-answers="loginCustomTextFieldAnswers"
41
43
  :consent-policy="consentPolicy"
42
44
  :app-context-id="appContextId"
43
45
  :regional-consent-policies="regionalConsentPolicies"
44
46
  :button-labels="loginButtonLabels"
45
- :required-create-fields="requiredCreateFields"
47
+ :required-create-field-rows="requiredCreateFieldRows"
46
48
  :default-field-labels="defaultFieldLabels"
47
49
  :login-email-label="defaultFieldLabels.email"
48
50
  @login-link-sent="showLoginMessage = false"
@@ -215,7 +217,7 @@ export default {
215
217
  type: Array,
216
218
  default: () => [],
217
219
  },
218
- requiredCreateFields: {
220
+ requiredCreateFieldRows: {
219
221
  type: Array,
220
222
  default: () => [],
221
223
  },
@@ -223,6 +225,18 @@ export default {
223
225
  type: Object,
224
226
  default: () => ({}),
225
227
  },
228
+ loginCustomBooleanFieldAnswers: {
229
+ type: Array,
230
+ default: () => [],
231
+ },
232
+ loginCustomSelectFieldAnswers: {
233
+ type: Array,
234
+ default: () => [],
235
+ },
236
+ loginCustomTextFieldAnswers: {
237
+ type: Array,
238
+ default: () => [],
239
+ },
226
240
  lang: {
227
241
  type: String,
228
242
  default: 'en',
@@ -121,7 +121,7 @@
121
121
  <custom-select
122
122
  v-else-if="type === 'custom-select' && customField"
123
123
  :id="fieldId"
124
- :label="label"
124
+ :label="customField.field.label || label"
125
125
  :required="required"
126
126
  :multiple="customField.field.multiple"
127
127
  :selected="customField.answers"
@@ -132,17 +132,16 @@
132
132
  <custom-boolean
133
133
  v-else-if="type === 'custom-boolean' && customField"
134
134
  :id="fieldId"
135
- :label="label"
136
- :message="label"
135
+ :message="customField.field.label || label"
137
136
  :required="required"
138
137
  :value="customField.answer"
139
- @input="onCustomBooleanChange(customField.id, $event)"
138
+ @input="onCustomBooleanChange(customField, $event)"
140
139
  />
141
140
  <custom-text
142
141
  v-else-if="type === 'custom-text' && customField"
143
142
  :id="fieldId"
144
143
  :class-name="className"
145
- :label="label"
144
+ :label="customField.field.label || label"
146
145
  :required="required"
147
146
  :value="customField.value"
148
147
  @change="onCustomTextChange(customField, $event)"
@@ -203,6 +202,18 @@ export default {
203
202
  *
204
203
  */
205
204
  props: {
205
+ customBooleanFieldAnswers: {
206
+ type: Array,
207
+ default: () => [],
208
+ },
209
+ customSelectFieldAnswers: {
210
+ type: Array,
211
+ default: () => [],
212
+ },
213
+ customTextFieldAnswers: {
214
+ type: Array,
215
+ default: () => [],
216
+ },
206
217
  label: {
207
218
  type: String,
208
219
  required: true,
@@ -276,23 +287,20 @@ export default {
276
287
  *
277
288
  */
278
289
  customField() {
279
- const { fieldId, user, type } = this;
290
+ const { fieldId, type } = this;
280
291
 
281
- let key = 'customSelectFieldAnswers';
292
+ const finder = (ans) => ans.id === fieldId;
282
293
 
283
294
  switch (type) {
284
- case 'custom-text':
285
- key = 'customTextFieldAnswers';
286
- break;
287
295
  case 'custom-boolean':
288
- key = 'customBooleanFieldAnswers';
289
- break;
290
- // ... more cases
296
+ return this.customBooleanFieldAnswers.find(finder);
297
+ case 'custom-select':
298
+ return this.customSelectFieldAnswers.find(finder);
299
+ case 'custom-text':
300
+ return this.customTextFieldAnswers.find(finder);
291
301
  default:
292
- // Code to execute if no case matches the expression
302
+ return null;
293
303
  }
294
- const found = user[key].find((ans) => ans.id === fieldId);
295
- return found;
296
304
  },
297
305
  /**
298
306
  *
@@ -345,11 +353,11 @@ export default {
345
353
  /**
346
354
  *
347
355
  */
348
- onCustomBooleanChange(id) {
349
- const objIndex = this.customBooleanFieldAnswers.findIndex(((obj) => obj.id === id));
350
- const answer = !this.customBooleanFieldAnswers[objIndex].answer;
351
- this.customBooleanFieldAnswers[objIndex].answer = answer;
352
- this.customBooleanFieldAnswers[objIndex].hasAnswered = true;
356
+ onCustomBooleanChange(field) {
357
+ // eslint-disable-next-line no-param-reassign
358
+ field.value = !field.value;
359
+ // eslint-disable-next-line no-param-reassign
360
+ field.hasAnswered = true;
353
361
  this.user.customBooleanFieldAnswers = this.customBooleanFieldAnswers;
354
362
  },
355
363
 
@@ -358,12 +366,13 @@ export default {
358
366
  */
359
367
  onCustomSelectChange(field, $event) {
360
368
  const ids = Array.isArray($event) ? [...$event] : [...($event ? [$event] : [])];
361
- field.answers.splice(0);
369
+ field.answers.splice(0); // @todo this will break multi-selects...they don't work anyway
370
+ // eslint-disable-next-line no-param-reassign
371
+ field.hasAnswered = Boolean(ids.length);
362
372
  if (ids.length) {
363
- // eslint-disable-next-line no-param-reassign
364
- field.hasAnswered = true;
365
373
  field.answers.push(...ids.map((id) => ({ id })));
366
374
  }
375
+ this.user.customSelectFieldAnswers = this.customSelectFieldAnswers;
367
376
  },
368
377
 
369
378
  /**
@@ -373,10 +382,11 @@ export default {
373
382
  // hack to prevent on focus out with no value from resetting value
374
383
  // @todo find a better solution!!!
375
384
  const value = $event === '' && field.value !== '' ? field.value : $event;
376
- this.customField.value = $event;
377
- // eslint-disable-next-line max-len
378
- const customTextFieldAnswers = this.user.customTextFieldAnswers.map((obj) => (obj.id === field.id ? { ...obj, value, hasAnswered: value !== '' } : obj));
379
- this.user.customTextFieldAnswers = customTextFieldAnswers;
385
+ // eslint-disable-next-line no-param-reassign
386
+ field.value = value;
387
+ // eslint-disable-next-line no-param-reassign
388
+ field.hasAnswered = value !== '';
389
+ this.user.customTextFieldAnswers = this.customTextFieldAnswers;
380
390
  },
381
391
  },
382
392
  };
@@ -78,6 +78,9 @@
78
78
  :additional-event-data="additionalEventData"
79
79
  :source="loginSource"
80
80
  :endpoints="endpoints"
81
+ :custom-select-field-answers="loginCustomSelectFieldAnswers"
82
+ :custom-boolean-field-answers="loginCustomBooleanFieldAnswers"
83
+ :custom-text-field-answers="loginCustomTextFieldAnswers"
81
84
  :redirect="redirect"
82
85
  :app-context-id="appContextId"
83
86
  :consent-policy="consentPolicy"
@@ -85,7 +88,7 @@
85
88
  :email-consent-request="emailConsentRequest"
86
89
  :email-consent-request-enabled="emailConsentRequestEnabled"
87
90
  :regional-consent-policies="regionalConsentPolicies"
88
- :required-create-fields="requiredCreateFields"
91
+ :required-create-field-rows="requiredCreateFieldRows"
89
92
  :default-field-labels="defaultFieldLabels"
90
93
  :button-labels="loginButtonLabels"
91
94
  :login-email-label="defaultFieldLabels.email"
@@ -176,7 +179,7 @@ export default {
176
179
  type: Object,
177
180
  default: () => ({}),
178
181
  },
179
- requiredCreateFields: {
182
+ requiredCreateFieldRows: {
180
183
  type: Array,
181
184
  default: () => [],
182
185
  },
@@ -232,6 +235,18 @@ export default {
232
235
  type: Object,
233
236
  default: null,
234
237
  },
238
+ loginCustomBooleanFieldAnswers: {
239
+ type: Array,
240
+ default: () => [],
241
+ },
242
+ loginCustomSelectFieldAnswers: {
243
+ type: Array,
244
+ default: () => [],
245
+ },
246
+ loginCustomTextFieldAnswers: {
247
+ type: Array,
248
+ default: () => [],
249
+ },
235
250
  lang: {
236
251
  type: String,
237
252
  default: 'en',
package/browser/login.vue CHANGED
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div v-if="hasActiveUser">
3
- <p>{{ youAreCurrentlyLoggedInAs }} {{ activeUser.email }}.</p>
3
+ <p>{{ youAreCurrentlyLoggedInAs }} {{ user.email }}.</p>
4
4
  <a
5
5
  :href="endpoints.profile"
6
6
  class="btn btn-secondary mb-2 mr-2"
@@ -31,20 +31,23 @@
31
31
  <p v-if="requiresUserInput">
32
32
  Thanks! Additional information is required to continue:
33
33
  </p>
34
- <fieldset v-if="requiresUserInput" :disabled="loading" class="form-group">
35
- <div v-for="(row, ridx) in requiredCreateFieldRows" :key="ridx" class="row">
34
+ <fieldset v-if="requiresUserInput" :disabled="loading" class="">
35
+ <div v-for="(row, ridx) in requiredCreateFieldRows" :key="ridx" class="form-group row">
36
36
  <custom-column
37
37
  v-for="(col, cidx) in row"
38
38
  :key="`${ridx}_${cidx}`"
39
- :label="col.label || defaultFieldLabels[col.key]"
40
- :field-key="col.key"
39
+ :custom-boolean-field-answers="customBooleanFieldAnswers"
40
+ :custom-select-field-answers="customSelectFieldAnswers"
41
+ :custom-text-field-answers="customTextFieldAnswers"
42
+ :endpoints="endpoints"
41
43
  :field-id="col.id"
42
- :type="col.type"
44
+ :field-key="col.key"
45
+ :label="col.label || defaultFieldLabels[col.key]"
46
+ :lang="lang"
43
47
  :required="col.required"
48
+ :type="col.type"
49
+ :user="user"
44
50
  :width="col.width || 1"
45
- :user="activeUser"
46
- :endpoints="endpoints"
47
- :lang="lang"
48
51
  />
49
52
  </div>
50
53
  </fieldset>
@@ -112,6 +115,18 @@ export default {
112
115
  type: Object,
113
116
  default: () => {},
114
117
  },
118
+ customBooleanFieldAnswers: {
119
+ type: Array,
120
+ default: () => [],
121
+ },
122
+ customSelectFieldAnswers: {
123
+ type: Array,
124
+ default: () => [],
125
+ },
126
+ customTextFieldAnswers: {
127
+ type: Array,
128
+ default: () => [],
129
+ },
115
130
  endpoints: {
116
131
  type: Object,
117
132
  required: true,
@@ -202,6 +217,14 @@ export default {
202
217
  error: null,
203
218
  loading: false,
204
219
  requiresUserInput: false,
220
+ user: {
221
+ // ...this.activeUser,
222
+ ...(this.activeUser && { ...this.activeUser }),
223
+ // ...(this.defaultCountryCode
224
+ // && !this.activeUser.countryCode
225
+ // && { countryCode: this.defaultCountryCode }
226
+ // ),
227
+ },
205
228
  }),
206
229
 
207
230
  /**
@@ -306,7 +329,7 @@ export default {
306
329
  this.error = null;
307
330
  this.loading = true;
308
331
  const res = await post('/login', {
309
- ...this.activeUser,
332
+ ...this.user,
310
333
  email: this.email,
311
334
  source: this.source,
312
335
  redirectTo: this.redirectTo,
@@ -237,8 +237,12 @@
237
237
  :additional-event-data="additionalEventData"
238
238
  :source="loginSource"
239
239
  :endpoints="endpoints"
240
+ :custom-select-field-answers="loginCustomSelectFieldAnswers"
241
+ :custom-boolean-field-answers="loginCustomBooleanFieldAnswers"
242
+ :custom-text-field-answers="loginCustomTextFieldAnswers"
240
243
  :app-context-id="appContextId"
241
244
  :consent-policy="consentPolicy"
245
+ :required-create-field-rows="requiredCreateFieldRows"
242
246
  :consent-policy-enabled="consentPolicyEnabled"
243
247
  :email-consent-request="emailConsentRequest"
244
248
  :email-consent-request-enabled="emailConsentRequestEnabled"
@@ -329,7 +333,7 @@ export default {
329
333
  type: Array,
330
334
  default: () => [],
331
335
  },
332
- requiredCreateFields: {
336
+ requiredCreateFieldRows: {
333
337
  type: Array,
334
338
  default: () => [],
335
339
  },
@@ -399,7 +403,19 @@ export default {
399
403
  },
400
404
  loginButtonLabels: {
401
405
  type: Object,
402
- default: null,
406
+ default: () => ({}),
407
+ },
408
+ loginCustomBooleanFieldAnswers: {
409
+ type: Array,
410
+ default: () => [],
411
+ },
412
+ loginCustomSelectFieldAnswers: {
413
+ type: Array,
414
+ default: () => [],
415
+ },
416
+ loginCustomTextFieldAnswers: {
417
+ type: Array,
418
+ default: () => [],
403
419
  },
404
420
  lang: {
405
421
  type: String,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/access.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/access.marko",
6
6
  marko_component = require("./access.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -53,7 +53,7 @@ marko_template._ = marko_renderer(render, {
53
53
  }, marko_component);
54
54
 
55
55
  marko_template.meta = {
56
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/access.marko",
56
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/access.marko",
57
57
  component: "./access.marko",
58
58
  tags: [
59
59
  "@mindful-web/marko-core/components/resolve.marko"
@@ -1,6 +1,8 @@
1
1
  import { get } from "@mindful-web/object-path";
2
2
  import defaultValue from "@mindful-web/marko-core/utils/default-value";
3
3
 
4
+ import getCreateUserCustomFields from '../utils/get-create-user-custom-fields'
5
+
4
6
  $ const { req, site } = out.global;
5
7
  $ const { identityX } = req;
6
8
  $ const additionalEventData = defaultValue(input.additionalEventData, {});
@@ -8,11 +10,15 @@ $ const lang = input.lang || defaultValue(site.config.lang, "en");
8
10
  $ const dateFormat = input.dateFormat || defaultValue(site.config.dateFormat, "MMM Do, YYYY h:mma")
9
11
 
10
12
  <if(identityX)>
11
- <marko-web-identity-x-context|{ user, isEnabled, application }|>
13
+ <marko-web-identity-x-context|{ user, isEnabled, application, fields }| with-fields=true>
14
+ $ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
12
15
  $ const props = {
13
16
  additionalEventData: additionalEventData,
14
17
  loginSource: input.loginSource,
15
18
  activeUser: user,
19
+ loginCustomSelectFieldAnswers: customSelectFieldAnswers,
20
+ loginCustomBooleanFieldAnswers: customBooleanFieldAnswers,
21
+ loginCustomTextFieldAnswers: customTextFieldAnswers,
16
22
  identifier: `${input.identifier}`,
17
23
  title: input.title,
18
24
  description: input.description,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/comment-stream.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/comment-stream.marko",
6
6
  marko_component = require("./comment-stream.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -10,6 +10,8 @@ var marko_template = module.exports = require("marko/dist/html").t(__filename),
10
10
  get = module_objectPath_module.get,
11
11
  module_defaultValue = require("@mindful-web/marko-core/utils/default-value"),
12
12
  defaultValue = module_defaultValue.default || module_defaultValue,
13
+ module_getCreateUserCustomFields = require("../utils/get-create-user-custom-fields"),
14
+ getCreateUserCustomFields = module_getCreateUserCustomFields.default || module_getCreateUserCustomFields,
13
15
  marko_web_browser_component_template = require("@mindful-web/marko-web/components/browser-component.marko"),
14
16
  marko_loadTag = require("marko/dist/runtime/helpers/load-tag"),
15
17
  marko_web_browser_component_tag = marko_loadTag(marko_web_browser_component_template),
@@ -31,11 +33,17 @@ function render(input, out, __component, component, state) {
31
33
 
32
34
  if (identityX) {
33
35
  marko_web_identity_x_context_tag({
34
- renderBody: function(out, { user, isEnabled, application }) {
36
+ withFields: true,
37
+ renderBody: function(out, { user, isEnabled, application, fields }) {
38
+ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
39
+
35
40
  const props = {
36
41
  additionalEventData: additionalEventData,
37
42
  loginSource: input.loginSource,
38
43
  activeUser: user,
44
+ loginCustomSelectFieldAnswers: customSelectFieldAnswers,
45
+ loginCustomBooleanFieldAnswers: customBooleanFieldAnswers,
46
+ loginCustomTextFieldAnswers: customTextFieldAnswers,
39
47
  identifier: `${input.identifier}`,
40
48
  title: input.title,
41
49
  description: input.description,
@@ -77,7 +85,7 @@ marko_template._ = marko_renderer(render, {
77
85
  }, marko_component);
78
86
 
79
87
  marko_template.meta = {
80
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/comment-stream.marko",
88
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/comment-stream.marko",
81
89
  component: "./comment-stream.marko",
82
90
  tags: [
83
91
  "@mindful-web/marko-web/components/browser-component.marko",
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/context.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/context.marko",
6
6
  marko_component = require("./context.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  marko_dynamicTag = require("marko/dist/runtime/helpers/dynamic-tag"),
@@ -49,7 +49,7 @@ marko_template._ = marko_renderer(render, {
49
49
  }, marko_component);
50
50
 
51
51
  marko_template.meta = {
52
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/context.marko",
52
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/context.marko",
53
53
  component: "./context.marko",
54
54
  tags: [
55
55
  "@mindful-web/marko-core/components/resolve.marko"
@@ -1,6 +1,8 @@
1
1
 
2
2
  import defaultValue from "@mindful-web/marko-core/utils/default-value";
3
- import { get, getAsObject } from "@mindful-web/object-path";
3
+ import { get, getAsArray, getAsObject } from "@mindful-web/object-path";
4
+
5
+ import getCreateUserCustomFields from '../utils/get-create-user-custom-fields'
4
6
 
5
7
  $ const { req: { identityX }, site, i18n } = out.global;
6
8
  $ const { content, formId, user, application } = input;
@@ -22,6 +24,8 @@ $ const loginButtonLabels = defaultValue(input.loginButtonLabels, {
22
24
  profile: i18n("Modify Profile"),
23
25
  });
24
26
 
27
+ $ const fields = getAsArray(input, 'fields');
28
+ $ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
25
29
 
26
30
  <if(identityX && form.fieldRows, displayForm)>
27
31
  <div class="content-survey-access-idx__wrapper">
@@ -40,6 +44,9 @@ $ const loginButtonLabels = defaultValue(input.loginButtonLabels, {
40
44
 
41
45
  // Login props
42
46
  activeUser: user,
47
+ loginCustomSelectFieldAnswers: customSelectFieldAnswers,
48
+ loginCustomBooleanFieldAnswers: customBooleanFieldAnswers,
49
+ loginCustomTextFieldAnswers: customTextFieldAnswers,
43
50
  additionalEventData: additionalEventData,
44
51
  appContextId: identityX.config.get("appContextId"),
45
52
  buttonLabel: buttonLabel,
@@ -2,14 +2,17 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/form-access.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/form-access.marko",
6
6
  marko_renderer = require("marko/dist/runtime/components/renderer"),
7
7
  module_defaultValue = require("@mindful-web/marko-core/utils/default-value"),
8
8
  defaultValue = module_defaultValue.default || module_defaultValue,
9
9
  module_objectPath_module = require("@mindful-web/object-path"),
10
10
  objectPath_module = module_objectPath_module.default || module_objectPath_module,
11
11
  get = module_objectPath_module.get,
12
+ getAsArray = module_objectPath_module.getAsArray,
12
13
  getAsObject = module_objectPath_module.getAsObject,
14
+ module_getCreateUserCustomFields = require("../utils/get-create-user-custom-fields"),
15
+ getCreateUserCustomFields = module_getCreateUserCustomFields.default || module_getCreateUserCustomFields,
13
16
  marko_web_browser_component_template = require("@mindful-web/marko-web/components/browser-component.marko"),
14
17
  marko_loadTag = require("marko/dist/runtime/helpers/load-tag"),
15
18
  marko_web_browser_component_tag = marko_loadTag(marko_web_browser_component_template),
@@ -54,6 +57,10 @@ function render(input, out, __component, component, state) {
54
57
  profile: i18n("Modify Profile"),
55
58
  });
56
59
 
60
+ const fields = getAsArray(input, 'fields');
61
+
62
+ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
63
+
57
64
  if (identityX && form.fieldRows, displayForm) {
58
65
  out.w("<div class=\"content-survey-access-idx__wrapper\">");
59
66
 
@@ -72,6 +79,9 @@ function render(input, out, __component, component, state) {
72
79
 
73
80
  // Login props
74
81
  activeUser: user,
82
+ loginCustomSelectFieldAnswers: customSelectFieldAnswers,
83
+ loginCustomBooleanFieldAnswers: customBooleanFieldAnswers,
84
+ loginCustomTextFieldAnswers: customTextFieldAnswers,
75
85
  additionalEventData: additionalEventData,
76
86
  appContextId: identityX.config.get("appContextId"),
77
87
  buttonLabel: buttonLabel,
@@ -114,7 +124,7 @@ marko_template._ = marko_renderer(render, {
114
124
  });
115
125
 
116
126
  marko_template.meta = {
117
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/form-access.marko",
127
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/form-access.marko",
118
128
  tags: [
119
129
  "@mindful-web/marko-web/components/browser-component.marko"
120
130
  ]
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/form-authenticate.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/form-authenticate.marko",
6
6
  marko_component = require("./form-authenticate.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -68,7 +68,7 @@ marko_template._ = marko_renderer(render, {
68
68
  }, marko_component);
69
69
 
70
70
  marko_template.meta = {
71
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/form-authenticate.marko",
71
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/form-authenticate.marko",
72
72
  component: "./form-authenticate.marko",
73
73
  tags: [
74
74
  "@mindful-web/marko-web/components/browser-component.marko",
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/form-change-email.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/form-change-email.marko",
6
6
  marko_component = require("./form-change-email.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -59,7 +59,7 @@ marko_template._ = marko_renderer(render, {
59
59
  }, marko_component);
60
60
 
61
61
  marko_template.meta = {
62
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/form-change-email.marko",
62
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/form-change-email.marko",
63
63
  component: "./form-change-email.marko",
64
64
  tags: [
65
65
  "@mindful-web/marko-web/components/browser-component.marko",
@@ -1,6 +1,8 @@
1
1
  import { get } from "@mindful-web/object-path";
2
2
  import defaultValue from "@mindful-web/marko-core/utils/default-value";
3
3
 
4
+ import getCreateUserCustomFields from '../utils/get-create-user-custom-fields'
5
+
4
6
  $ const { req, site } = out.global;
5
7
  $ const { identityX } = req;
6
8
  $ const additionalEventData = defaultValue(input.additionalEventData, {});
@@ -11,21 +13,11 @@ $ const withFields = defaultValue(input.withFields, false);
11
13
 
12
14
  <if(Boolean(identityX))>
13
15
  <marko-web-identity-x-context|{ user, isEnabled, application, fields }| with-fields=true>
14
- $ const customBooleanFieldAnswers = fields.filter((f) => f.__typename === 'BooleanField').map((f) => {
15
- return { id: f.id, hasAnswered: false, answer: null, value: null, field: f };
16
- });
17
- $ const customSelectFieldAnswers = fields.filter((f) => f['__typename'] == 'SelectField').map((f) => {
18
- return { id: f.id, hasAnswered: false, answers: [], field: f };
19
- });
20
- $ const customTextFieldAnswers = fields.filter((f) => f['__typename'] == 'TextField').map((f) => {
21
- return { id: f.id, hasAnswered: false, value: null, field: f };
22
- });
16
+ $ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
17
+
23
18
  $ const activeUser = user ? user : {
24
19
  email: null,
25
- customSelectFieldAnswers,
26
- customBooleanFieldAnswers,
27
- customTextFieldAnswers,
28
- }
20
+ }
29
21
  $ const props = {
30
22
  additionalEventData,
31
23
  source: input.source,
@@ -34,6 +26,9 @@ $ const withFields = defaultValue(input.withFields, false);
34
26
  endpoints: identityX.config.getEndpoints(),
35
27
  buttonLabels: input.buttonLabels,
36
28
  redirect: input.redirect,
29
+ customSelectFieldAnswers,
30
+ customBooleanFieldAnswers,
31
+ customTextFieldAnswers,
37
32
  loginEmailLabel: input.loginEmailLabel,
38
33
  loginEmailPlaceholder: input.loginEmailPlaceholder,
39
34
  defaultFieldLabels: identityX.config.get("defaultFieldLabels"),
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/form-login.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/form-login.marko",
6
6
  marko_component = require("./form-login.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -10,6 +10,8 @@ var marko_template = module.exports = require("marko/dist/html").t(__filename),
10
10
  get = module_objectPath_module.get,
11
11
  module_defaultValue = require("@mindful-web/marko-core/utils/default-value"),
12
12
  defaultValue = module_defaultValue.default || module_defaultValue,
13
+ module_getCreateUserCustomFields = require("../utils/get-create-user-custom-fields"),
14
+ getCreateUserCustomFields = module_getCreateUserCustomFields.default || module_getCreateUserCustomFields,
13
15
  marko_web_browser_component_template = require("@mindful-web/marko-web/components/browser-component.marko"),
14
16
  marko_loadTag = require("marko/dist/runtime/helpers/load-tag"),
15
17
  marko_web_browser_component_tag = marko_loadTag(marko_web_browser_component_template),
@@ -33,24 +35,11 @@ function render(input, out, __component, component, state) {
33
35
  marko_web_identity_x_context_tag({
34
36
  withFields: true,
35
37
  renderBody: function(out, { user, isEnabled, application, fields }) {
36
- const customBooleanFieldAnswers = fields.filter((f) => f.__typename === 'BooleanField').map((f) => {
37
- return { id: f.id, hasAnswered: false, answer: null, value: null, field: f };
38
- });
39
-
40
- const customSelectFieldAnswers = fields.filter((f) => f['__typename'] == 'SelectField').map((f) => {
41
- return { id: f.id, hasAnswered: false, answers: [], field: f };
42
- });
43
-
44
- const customTextFieldAnswers = fields.filter((f) => f['__typename'] == 'TextField').map((f) => {
45
- return { id: f.id, hasAnswered: false, value: null, field: f };
46
- });
38
+ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
47
39
 
48
40
  const activeUser = user ? user : {
49
41
  email: null,
50
- customSelectFieldAnswers,
51
- customBooleanFieldAnswers,
52
- customTextFieldAnswers,
53
- }
42
+ }
54
43
 
55
44
  const props = {
56
45
  additionalEventData,
@@ -60,6 +49,9 @@ function render(input, out, __component, component, state) {
60
49
  endpoints: identityX.config.getEndpoints(),
61
50
  buttonLabels: input.buttonLabels,
62
51
  redirect: input.redirect,
52
+ customSelectFieldAnswers,
53
+ customBooleanFieldAnswers,
54
+ customTextFieldAnswers,
63
55
  loginEmailLabel: input.loginEmailLabel,
64
56
  loginEmailPlaceholder: input.loginEmailPlaceholder,
65
57
  defaultFieldLabels: identityX.config.get("defaultFieldLabels"),
@@ -87,7 +79,7 @@ marko_template._ = marko_renderer(render, {
87
79
  }, marko_component);
88
80
 
89
81
  marko_template.meta = {
90
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/form-login.marko",
82
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/form-login.marko",
91
83
  component: "./form-login.marko",
92
84
  tags: [
93
85
  "@mindful-web/marko-web/components/browser-component.marko",
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/form-logout.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/form-logout.marko",
6
6
  marko_renderer = require("marko/dist/runtime/components/renderer"),
7
7
  module_defaultValue = require("@mindful-web/marko-core/utils/default-value"),
8
8
  defaultValue = module_defaultValue.default || module_defaultValue,
@@ -29,7 +29,7 @@ marko_template._ = marko_renderer(render, {
29
29
  });
30
30
 
31
31
  marko_template.meta = {
32
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/form-logout.marko",
32
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/form-logout.marko",
33
33
  tags: [
34
34
  "@mindful-web/marko-web/components/browser-component.marko"
35
35
  ]
@@ -1,17 +1,23 @@
1
1
  import { get } from "@mindful-web/object-path";
2
2
  import defaultValue from "@mindful-web/marko-core/utils/default-value";
3
3
 
4
+ import getCreateUserCustomFields from '../utils/get-create-user-custom-fields'
5
+
4
6
  $ const { req, site } = out.global;
5
7
  $ const { identityX, query } = req;
6
8
  $ const additionalEventData = defaultValue(input.additionalEventData, {});
7
9
  $ const lang = input.lang || defaultValue(site.config.lang, "en");
8
10
 
9
11
  <if(Boolean(identityX))>
10
- <marko-web-identity-x-context|{ user, isEnabled, application }|>
12
+ <marko-web-identity-x-context|{ user, isEnabled, application, fields }| with-fields=true>
13
+ $ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
11
14
  $ const props = {
12
15
  additionalEventData: additionalEventData,
13
16
  loginSource: input.loginSource,
14
17
  activeUser: user,
18
+ loginCustomSelectFieldAnswers: customSelectFieldAnswers,
19
+ loginCustomBooleanFieldAnswers: customBooleanFieldAnswers,
20
+ loginCustomTextFieldAnswers: customTextFieldAnswers,
15
21
  requiredServerFields: identityX.config.getRequiredServerFields(),
16
22
  requiredClientFields: identityX.config.getRequiredClientFields(),
17
23
  requiredCreateFieldRows: identityX.config.getRequiredCreateFieldRows(),
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/form-profile.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/form-profile.marko",
6
6
  marko_component = require("./form-profile.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -10,6 +10,8 @@ var marko_template = module.exports = require("marko/dist/html").t(__filename),
10
10
  get = module_objectPath_module.get,
11
11
  module_defaultValue = require("@mindful-web/marko-core/utils/default-value"),
12
12
  defaultValue = module_defaultValue.default || module_defaultValue,
13
+ module_getCreateUserCustomFields = require("../utils/get-create-user-custom-fields"),
14
+ getCreateUserCustomFields = module_getCreateUserCustomFields.default || module_getCreateUserCustomFields,
13
15
  marko_web_browser_component_template = require("@mindful-web/marko-web/components/browser-component.marko"),
14
16
  marko_loadTag = require("marko/dist/runtime/helpers/load-tag"),
15
17
  marko_web_browser_component_tag = marko_loadTag(marko_web_browser_component_template),
@@ -29,11 +31,17 @@ function render(input, out, __component, component, state) {
29
31
 
30
32
  if (Boolean(identityX)) {
31
33
  marko_web_identity_x_context_tag({
32
- renderBody: function(out, { user, isEnabled, application }) {
34
+ withFields: true,
35
+ renderBody: function(out, { user, isEnabled, application, fields }) {
36
+ const { customSelectFieldAnswers, customBooleanFieldAnswers, customTextFieldAnswers } = getCreateUserCustomFields({ fields });
37
+
33
38
  const props = {
34
39
  additionalEventData: additionalEventData,
35
40
  loginSource: input.loginSource,
36
41
  activeUser: user,
42
+ loginCustomSelectFieldAnswers: customSelectFieldAnswers,
43
+ loginCustomBooleanFieldAnswers: customBooleanFieldAnswers,
44
+ loginCustomTextFieldAnswers: customTextFieldAnswers,
37
45
  requiredServerFields: identityX.config.getRequiredServerFields(),
38
46
  requiredClientFields: identityX.config.getRequiredClientFields(),
39
47
  requiredCreateFieldRows: identityX.config.getRequiredCreateFieldRows(),
@@ -73,7 +81,7 @@ marko_template._ = marko_renderer(render, {
73
81
  }, marko_component);
74
82
 
75
83
  marko_template.meta = {
76
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/form-profile.marko",
84
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/form-profile.marko",
77
85
  component: "./form-profile.marko",
78
86
  tags: [
79
87
  "@mindful-web/marko-web/components/browser-component.marko",
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/form-register.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/form-register.marko",
6
6
  marko_renderer = require("marko/dist/runtime/components/renderer"),
7
7
  marko_assign = require("marko/dist/runtime/helpers/assign"),
8
8
  marko_web_identity_x_form_login_template = require("./form-login.marko"),
@@ -25,7 +25,7 @@ marko_template._ = marko_renderer(render, {
25
25
  });
26
26
 
27
27
  marko_template.meta = {
28
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/form-register.marko",
28
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/form-register.marko",
29
29
  tags: [
30
30
  "./form-login.marko"
31
31
  ]
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/identify.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/identify.marko",
6
6
  marko_component = require("./identify.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -50,7 +50,7 @@ marko_template._ = marko_renderer(render, {
50
50
  }, marko_component);
51
51
 
52
52
  marko_template.meta = {
53
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/identify.marko",
53
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/identify.marko",
54
54
  component: "./identify.marko",
55
55
  tags: [
56
56
  "@mindful-web/marko-web-gtm/components/push.marko",
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/non-auth-identify.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/non-auth-identify.marko",
6
6
  marko_component = require("./non-auth-identify.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  marko_dynamicTag = require("marko/dist/runtime/helpers/dynamic-tag"),
@@ -45,7 +45,7 @@ marko_template._ = marko_renderer(render, {
45
45
  }, marko_component);
46
46
 
47
47
  marko_template.meta = {
48
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/non-auth-identify.marko",
48
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/non-auth-identify.marko",
49
49
  component: "./non-auth-identify.marko",
50
50
  tags: [
51
51
  "@mindful-web/marko-core/components/resolve.marko"
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
 
4
4
  var marko_template = module.exports = require("marko/dist/html").t(__filename),
5
- marko_componentType = "/@mindful-web/marko-web-identity-x$1.31.2/components/subscribe.marko",
5
+ marko_componentType = "/@mindful-web/marko-web-identity-x$1.32.1/components/subscribe.marko",
6
6
  marko_component = require("./subscribe.marko"),
7
7
  marko_renderer = require("marko/dist/runtime/components/renderer"),
8
8
  module_objectPath_module = require("@mindful-web/object-path"),
@@ -73,7 +73,7 @@ marko_template._ = marko_renderer(render, {
73
73
  }, marko_component);
74
74
 
75
75
  marko_template.meta = {
76
- id: "/@mindful-web/marko-web-identity-x$1.31.2/components/subscribe.marko",
76
+ id: "/@mindful-web/marko-web-identity-x$1.32.1/components/subscribe.marko",
77
77
  component: "./subscribe.marko",
78
78
  tags: [
79
79
  "@mindful-web/marko-web/components/browser-component.marko",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindful-web/marko-web-identity-x",
3
- "version": "1.31.2",
3
+ "version": "1.32.1",
4
4
  "description": "Marko Wrapper for IdentityX",
5
5
  "repository": "https://github.com/parameter1/mindful-web/tree/main/packages/marko-web-identity-x",
6
6
  "author": "Josh Worden <josh@parameter1.com>",
@@ -37,5 +37,5 @@
37
37
  "publishConfig": {
38
38
  "access": "public"
39
39
  },
40
- "gitHead": "b939602557484645950c536d00366b76e9ea8fca"
40
+ "gitHead": "3c6c0c83137df5742f8bd2a26ffcb011bd182716"
41
41
  }
@@ -16,23 +16,42 @@ const hasMappedAnswers = (map) => (id) => {
16
16
  */
17
17
  module.exports = ({ appUser, body, definitions }) => {
18
18
  // Check for required creation fields
19
- const requiredFieldKeys = [...definitions.reduce((set, def) => {
20
- if (def.type === 'built-in') set.add(def.key);
19
+ const requiredFieldKeySet = definitions.reduce((set, def) => {
20
+ if (def.type === 'built-in' && def.required) set.add(def.key);
21
21
  return set;
22
- }, new Set())];
22
+ }, new Set());
23
+
24
+ // Modify required field keys for non-na support
25
+ const depKeys = [
26
+ 'regionCode',
27
+ 'postalCode',
28
+ ];
29
+ depKeys.forEach((key) => {
30
+ // Don't make the dependent address fields required if the parent isn't
31
+ if (requiredFieldKeySet.has(key) && !requiredFieldKeySet.has('countryCode')) {
32
+ requiredFieldKeySet.delete(key);
33
+ }
34
+ // Don't make dependent address fields required for non-NA countries
35
+ const countryCode = get(appUser, 'countryCode') || get(body, 'countryCode') || null;
36
+ if (!['US', 'CA', 'MX'].includes(countryCode)) {
37
+ requiredFieldKeySet.delete(key);
38
+ }
39
+ });
40
+
41
+ const requiredFieldKeys = [...requiredFieldKeySet];
23
42
 
24
43
  // const requiredCustomBooleans = [...definitions.reduce((set, def) => {
25
- // if (def.type === 'custom-boolean') set.add(def.id);
44
+ // if (def.type === 'custom-boolean' && def.required) set.add(def.id);
26
45
  // return set;
27
46
  // }, new Set())];
28
47
 
29
48
  const requiredCustomSelects = [...definitions.reduce((set, def) => {
30
- if (def.type === 'custom-select') set.add(def.id);
49
+ if (def.type === 'custom-select' && def.required) set.add(def.id);
31
50
  return set;
32
51
  }, new Set())];
33
52
 
34
53
  const requiredCustomTexts = [...definitions.reduce((set, def) => {
35
- if (def.type === 'custom-text') set.add(def.id);
54
+ if (def.type === 'custom-text' && def.required) set.add(def.id);
36
55
  return set;
37
56
  }, new Set())];
38
57
 
@@ -0,0 +1,21 @@
1
+ module.exports = ({
2
+ fields,
3
+ } = {}) => {
4
+ // eslint-disable-next-line no-underscore-dangle
5
+ const customBooleanFieldAnswers = fields.filter((f) => f.__typename === 'BooleanField').map((f) => ({
6
+ id: f.id, hasAnswered: false, answer: null, value: null, field: f,
7
+ }));
8
+ // eslint-disable-next-line no-underscore-dangle, eqeqeq
9
+ const customSelectFieldAnswers = fields.filter((f) => f.__typename == 'SelectField').map((f) => ({
10
+ id: f.id, hasAnswered: false, answers: [], field: f,
11
+ }));
12
+ // eslint-disable-next-line no-underscore-dangle, eqeqeq
13
+ const customTextFieldAnswers = fields.filter((f) => f.__typename == 'TextField').map((f) => ({
14
+ id: f.id, hasAnswered: false, value: null, field: f,
15
+ }));
16
+ return {
17
+ customBooleanFieldAnswers,
18
+ customSelectFieldAnswers,
19
+ customTextFieldAnswers,
20
+ };
21
+ };