@zengenti/contensis-react-base 3.0.2-beta.0 → 3.0.2-beta.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.
- package/cjs/contensis-react-base.js +1 -1
- package/cjs/forms.js +426 -402
- package/cjs/forms.js.map +1 -1
- package/cjs/{sagas-7c19ce8e.js → sagas-e2a34262.js} +45 -5
- package/cjs/sagas-e2a34262.js.map +1 -0
- package/cjs/search.js +20 -2
- package/cjs/search.js.map +1 -1
- package/esm/contensis-react-base.js +1 -1
- package/esm/forms.js +428 -404
- package/esm/forms.js.map +1 -1
- package/esm/{sagas-8d8945e6.js → sagas-bb925ef4.js} +44 -6
- package/esm/sagas-bb925ef4.js.map +1 -0
- package/esm/search.js +21 -3
- package/esm/search.js.map +1 -1
- package/models/forms/index.d.ts +1 -3
- package/models/search/models/Search.d.ts +2 -1
- package/models/search/models/SearchActions.d.ts +5 -0
- package/models/search/models/SearchProps.d.ts +4 -1
- package/models/search/models/SearchState.d.ts +1 -0
- package/models/search/redux/actions.d.ts +5 -0
- package/models/search/redux/reducers.d.ts +3 -0
- package/models/search/redux/selectors.d.ts +1 -0
- package/models/search/redux/types.d.ts +1 -0
- package/package.json +1 -1
- package/cjs/sagas-7c19ce8e.js.map +0 -1
- package/esm/sagas-8d8945e6.js.map +0 -1
package/cjs/forms.js
CHANGED
|
@@ -47,8 +47,13 @@ const initialStatus = {
|
|
|
47
47
|
isLoading: true,
|
|
48
48
|
isSubmitting: false,
|
|
49
49
|
hasSuccess: false,
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
hasError: false,
|
|
51
|
+
messages: {
|
|
52
|
+
success: null
|
|
53
|
+
},
|
|
54
|
+
validation: {
|
|
55
|
+
sent: false
|
|
56
|
+
}
|
|
52
57
|
};
|
|
53
58
|
const initialPagingInfo = {
|
|
54
59
|
pageIndex: 0,
|
|
@@ -192,6 +197,19 @@ var reducer = immer.produce((state, action) => {
|
|
|
192
197
|
state[formId].status.hasError = false;
|
|
193
198
|
state[formId].status.isSubmitting = false;
|
|
194
199
|
state[formId].status.hasSuccess = true;
|
|
200
|
+
state[formId].status.validation.sent = false;
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
case SUBMIT_FORM_FOR_VALIDATION:
|
|
205
|
+
{
|
|
206
|
+
const {
|
|
207
|
+
formId
|
|
208
|
+
} = action || {};
|
|
209
|
+
state[formId].status.validation.sent = true;
|
|
210
|
+
state[formId].status.isSubmitting = false;
|
|
211
|
+
state[formId].status.hasSuccess = false;
|
|
212
|
+
state[formId].status.hasError = false;
|
|
195
213
|
return;
|
|
196
214
|
}
|
|
197
215
|
|
|
@@ -201,7 +219,7 @@ var reducer = immer.produce((state, action) => {
|
|
|
201
219
|
formId,
|
|
202
220
|
message
|
|
203
221
|
} = action || {};
|
|
204
|
-
state[formId].status.
|
|
222
|
+
state[formId].status.message.success = message;
|
|
205
223
|
return;
|
|
206
224
|
}
|
|
207
225
|
|
|
@@ -212,6 +230,7 @@ var reducer = immer.produce((state, action) => {
|
|
|
212
230
|
} = action || {};
|
|
213
231
|
state[formId].status.hasError = true;
|
|
214
232
|
state[formId].status.isSubmitting = false;
|
|
233
|
+
state[formId].status.validation.sent = false;
|
|
215
234
|
return;
|
|
216
235
|
}
|
|
217
236
|
|
|
@@ -247,82 +266,89 @@ var reducer = immer.produce((state, action) => {
|
|
|
247
266
|
}, initialState);
|
|
248
267
|
|
|
249
268
|
const selectForms = state => state.forms;
|
|
250
|
-
const makeSelectPagedFields = formId => reselect.createSelector(
|
|
251
|
-
if (
|
|
252
|
-
|
|
253
|
-
|
|
269
|
+
const makeSelectPagedFields = formId => reselect.createSelector(selectForms, forms => {
|
|
270
|
+
if (forms !== null && forms !== void 0 && forms[formId]) {
|
|
271
|
+
var _forms$formId, _forms$formId2;
|
|
272
|
+
|
|
273
|
+
const pagingInfo = forms === null || forms === void 0 ? void 0 : (_forms$formId = forms[formId]) === null || _forms$formId === void 0 ? void 0 : _forms$formId.pagingInfo;
|
|
274
|
+
const fields = forms === null || forms === void 0 ? void 0 : (_forms$formId2 = forms[formId]) === null || _forms$formId2 === void 0 ? void 0 : _forms$formId2.fields;
|
|
254
275
|
if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0 && pagingInfo.pageCount > 1) return fields.filter(f => f.groupId == pagingInfo.currentPageId);else return fields;
|
|
255
276
|
}
|
|
256
277
|
});
|
|
257
|
-
const makeSelectFormStatus = formId => reselect.createSelector(selectForms,
|
|
258
|
-
var
|
|
278
|
+
const makeSelectFormStatus = formId => reselect.createSelector(selectForms, forms => {
|
|
279
|
+
var _forms$formId3;
|
|
259
280
|
|
|
260
|
-
return (
|
|
281
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId3 = forms[formId]) === null || _forms$formId3 === void 0 ? void 0 : _forms$formId3.status;
|
|
261
282
|
});
|
|
262
|
-
const makeSelectPagingInfo = formId => reselect.createSelector(selectForms,
|
|
263
|
-
var
|
|
283
|
+
const makeSelectPagingInfo = formId => reselect.createSelector(selectForms, forms => {
|
|
284
|
+
var _forms$formId4;
|
|
264
285
|
|
|
265
|
-
return (
|
|
286
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId4 = forms[formId]) === null || _forms$formId4 === void 0 ? void 0 : _forms$formId4.pagingInfo;
|
|
266
287
|
});
|
|
267
|
-
const makeSelectFormSettings = formId => reselect.createSelector(selectForms,
|
|
268
|
-
var
|
|
288
|
+
const makeSelectFormSettings = formId => reselect.createSelector(selectForms, forms => {
|
|
289
|
+
var _forms$formId5;
|
|
269
290
|
|
|
270
|
-
return (
|
|
291
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId5 = forms[formId]) === null || _forms$formId5 === void 0 ? void 0 : _forms$formId5.settings;
|
|
271
292
|
});
|
|
272
|
-
const makeSelectFormFieldErrors = formId => reselect.createSelector(selectForms,
|
|
273
|
-
var
|
|
293
|
+
const makeSelectFormFieldErrors = formId => reselect.createSelector(selectForms, forms => {
|
|
294
|
+
var _forms$formId6;
|
|
274
295
|
|
|
275
|
-
return (
|
|
296
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId6 = forms[formId]) === null || _forms$formId6 === void 0 ? void 0 : _forms$formId6.fieldErrors;
|
|
276
297
|
});
|
|
277
|
-
const makeSelectFormEntries = formId => reselect.createSelector(selectForms,
|
|
278
|
-
var
|
|
298
|
+
const makeSelectFormEntries = formId => reselect.createSelector(selectForms, forms => {
|
|
299
|
+
var _forms$formId7;
|
|
279
300
|
|
|
280
|
-
return (
|
|
301
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId7 = forms[formId]) === null || _forms$formId7 === void 0 ? void 0 : _forms$formId7.entries;
|
|
281
302
|
});
|
|
282
|
-
const makeSelectFormPostData = formId => reselect.createSelector(selectForms,
|
|
283
|
-
var
|
|
303
|
+
const makeSelectFormPostData = formId => reselect.createSelector(selectForms, forms => {
|
|
304
|
+
var _forms$formId8;
|
|
284
305
|
|
|
285
|
-
return (
|
|
306
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId8 = forms[formId]) === null || _forms$formId8 === void 0 ? void 0 : _forms$formId8.data;
|
|
286
307
|
});
|
|
287
308
|
const makeSelectIsLoading = formId => reselect.createSelector(selectForms, forms => {
|
|
288
|
-
var _forms$
|
|
309
|
+
var _forms$formId9;
|
|
289
310
|
|
|
290
|
-
return (_forms$
|
|
311
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId9 = forms[formId]) === null || _forms$formId9 === void 0 ? void 0 : _forms$formId9.status.isLoading;
|
|
291
312
|
});
|
|
292
313
|
const makeSelectIsSubmitting = formId => reselect.createSelector(selectForms, forms => {
|
|
293
|
-
var _forms$
|
|
314
|
+
var _forms$formId10;
|
|
294
315
|
|
|
295
|
-
return (_forms$
|
|
316
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId10 = forms[formId]) === null || _forms$formId10 === void 0 ? void 0 : _forms$formId10.status.isSubmitting;
|
|
296
317
|
});
|
|
297
318
|
const makeSelectHasSuccess = formId => reselect.createSelector(selectForms, forms => {
|
|
298
|
-
var _forms$
|
|
319
|
+
var _forms$formId11;
|
|
299
320
|
|
|
300
|
-
return (_forms$
|
|
321
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId11 = forms[formId]) === null || _forms$formId11 === void 0 ? void 0 : _forms$formId11.status.hasSuccess;
|
|
301
322
|
});
|
|
302
323
|
const makeSelectHasError = formId => reselect.createSelector(selectForms, forms => {
|
|
303
|
-
var _forms$
|
|
324
|
+
var _forms$formId12;
|
|
304
325
|
|
|
305
|
-
return (_forms$
|
|
326
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId12 = forms[formId]) === null || _forms$formId12 === void 0 ? void 0 : _forms$formId12.status.hasError;
|
|
306
327
|
});
|
|
307
328
|
const makeSelectFormFields = formId => reselect.createSelector(selectForms, forms => {
|
|
308
|
-
var _forms$
|
|
329
|
+
var _forms$formId13;
|
|
309
330
|
|
|
310
|
-
return (_forms$
|
|
331
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId13 = forms[formId]) === null || _forms$formId13 === void 0 ? void 0 : _forms$formId13.fields;
|
|
311
332
|
});
|
|
312
333
|
const makeSelectDefaultLang = formId => reselect.createSelector(selectForms, forms => {
|
|
313
|
-
var _forms$
|
|
334
|
+
var _forms$formId14;
|
|
314
335
|
|
|
315
|
-
return (_forms$
|
|
336
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId14 = forms[formId]) === null || _forms$formId14 === void 0 ? void 0 : _forms$formId14.defaultLanguage;
|
|
316
337
|
});
|
|
317
338
|
const makeSelectFormSuccessMessage = formId => reselect.createSelector(selectForms, forms => {
|
|
318
|
-
var _forms$
|
|
339
|
+
var _forms$formId15;
|
|
340
|
+
|
|
341
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId15 = forms[formId]) === null || _forms$formId15 === void 0 ? void 0 : _forms$formId15.status.messages.success;
|
|
342
|
+
});
|
|
343
|
+
const makeSelectFormValidationSent = formId => reselect.createSelector(selectForms, forms => {
|
|
344
|
+
var _forms$formId16;
|
|
319
345
|
|
|
320
|
-
return (_forms$
|
|
346
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId16 = forms[formId]) === null || _forms$formId16 === void 0 ? void 0 : _forms$formId16.status.validation.sent;
|
|
321
347
|
});
|
|
322
348
|
const makeSelectFormGroup$1 = formId => reselect.createSelector(selectForms, forms => {
|
|
323
|
-
var _forms$
|
|
349
|
+
var _forms$formId17;
|
|
324
350
|
|
|
325
|
-
return (_forms$
|
|
351
|
+
return forms === null || forms === void 0 ? void 0 : (_forms$formId17 = forms[formId]) === null || _forms$formId17 === void 0 ? void 0 : _forms$formId17.groups;
|
|
326
352
|
});
|
|
327
353
|
const selectors = {
|
|
328
354
|
selectForms,
|
|
@@ -339,6 +365,7 @@ const selectors = {
|
|
|
339
365
|
makeSelectFormFields,
|
|
340
366
|
makeSelectDefaultLang,
|
|
341
367
|
makeSelectFormSuccessMessage,
|
|
368
|
+
makeSelectFormValidationSent,
|
|
342
369
|
makeSelectFormGroup: makeSelectFormGroup$1,
|
|
343
370
|
makeSelectHasError
|
|
344
371
|
};
|
|
@@ -393,7 +420,14 @@ const request = async (url, options) => {
|
|
|
393
420
|
|
|
394
421
|
const domains = ['1033edge.com', '11mail.com', '123.com', '123box.net', '123india.com', '123mail.cl', '123qwe.co.uk', '126.com', '150ml.com', '15meg4free.com', '163.com', '1coolplace.com', '1freeemail.com', '1funplace.com', '1internetdrive.com', '1mail.net', '1me.net', '1mum.com', '1musicrow.com', '1netdrive.com', '1nsyncfan.com', '1under.com', '1webave.com', '1webhighway.com', '212.com', '24horas.com', '2911.net', '2bmail.co.uk', '2d2i.com', '2die4.com', '3000.it', '321media.com', '37.com', '3ammagazine.com', '3dmail.com', '3email.com', '3xl.net', '444.net', '4email.com', '4email.net', '4mg.com', '4newyork.com', '4x4man.com', '5iron.com', '5star.com', '88.am', '8848.net', '888.nu', '97rock.com', 'aaamail.zzn.com', 'aamail.net', 'aaronkwok.net', 'abbeyroadlondon.co.uk', 'abcflash.net', 'abdulnour.com', 'aberystwyth.com', 'abolition-now.com', 'about.com', 'academycougars.com', 'acceso.or.cr', 'access4less.net', 'accessgcc.com', 'ace-of-base.com', 'acmecity.com', 'acmemail.net', 'acninc.net', 'adelphia.net', 'adexec.com', 'adfarrow.com', 'adios.net', 'ados.fr', 'advalvas.be', 'aeiou.pt', 'aemail4u.com', 'aeneasmail.com', 'afreeinternet.com', 'africamail.com', 'agoodmail.com', 'ahaa.dk', 'aichi.com', 'aim.com', 'airforce.net', 'airforceemail.com', 'airmail.net', 'airpost.net', 'ajacied.com', 'ak47.hu', 'aknet.kg', 'albawaba.com', 'alex4all.com', 'alexandria.cc', 'algeria.com', 'alhilal.net', 'alibaba.com', 'alice.it', 'aliceadsl.fr', 'alive.cz', 'aliyun.com', 'allmail.net', 'alloymail.com', 'allracing.com', 'allsaintsfan.com', 'alltel.net', 'alskens.dk', 'altavista.com', 'altavista.net', 'altavista.se', 'alternativagratis.com', 'alumnidirector.com', 'alvilag.hu', 'amele.com', 'america.hm', 'ameritech.net', 'amnetsal.com', 'amrer.net', 'amuro.net', 'amuromail.com', 'ananzi.co.za', 'ancestry.com', 'andylau.net', 'anfmail.com', 'angelfan.com', 'angelfire.com', 'animal.net', 'animalhouse.com', 'animalwoman.net', 'anjungcafe.com', 'anote.com', 'another.com', 'anotherwin95.com', 'anti-social.com', 'antisocial.com', 'antongijsen.com', 'antwerpen.com', 'anymoment.com', 'anytimenow.com', 'aol.com', 'aol.it', 'apexmail.com', 'apmail.com', 'apollo.lv', 'approvers.net', 'arabia.com', 'arabtop.net', 'arcademaster.com', 'archaeologist.com', 'arcor.de', 'arcotronics.bg', 'argentina.com', 'aristotle.org', 'army.net', 'arnet.com.ar', 'artlover.com', 'artlover.com.au', 'as-if.com', 'asean-mail.com', 'asheville.com', 'asia-links.com', 'asia.com', 'asiafind.com', 'asianavenue.com', 'asiancityweb.com', 'asiansonly.net', 'asianwired.net', 'asiapoint.net', 'assala.com', 'assamesemail.com', 'astroboymail.com', 'astrolover.com', 'astrosfan.com', 'astrosfan.net', 'asurfer.com', 'athenachu.net', 'atina.cl', 'atl.lv', 'atlanticbb.net', 'atlaswebmail.com', 'atlink.com', 'ato.check.com', 'atozasia.com', 'att.net', 'att.net', 'attbi.com', 'attglobal.net', 'attglobal.net', 'attymail.com', 'au.ru', 'ausi.com', 'austin.rr.com', 'australia.edu', 'australiamail.com', 'austrosearch.net', 'autoescuelanerja.com', 'automotiveauthority.com', 'avh.hu', 'awsom.net', 'axoskate.com', 'ayna.com', 'azimiweb.com', 'bachelorboy.com', 'bachelorgal.com', 'backpackers.com', 'backstreet-boys.com', 'backstreetboysclub.com', 'bagherpour.com', 'bangkok.com', 'bangkok2000.com', 'bannertown.net', 'baptistmail.com', 'baptized.com', 'barcelona.com', 'baseballmail.com', 'basketballmail.com', 'batuta.net', 'baudoinconsulting.com', 'bboy.zzn.com', 'bcpl.net', 'bcvibes.com', 'beeebank.com', 'beenhad.com', 'beep.ru', 'beer.com', 'beethoven.com', 'belice.com', 'belizehome.com', 'bellatlantic.net', 'bellnet.ca', 'bellsouth.net', 'bellsouth.net', 'berkscounty.com', 'berlin.com', 'berlin.de', 'berlinexpo.de', 'bestmail.us', 'bestweb.net', 'bettergolf.net', 'bev.net', 'bharatmail.com', 'bigassweb.com', 'bigblue.net.au', 'bigboab.com', 'bigfoot.com', 'bigfoot.de', 'bigger.com', 'bigmailbox.com', 'bigpond.com', 'bigpond.com.au', 'bigpond.net.au', 'bigramp.com', 'bikemechanics.com', 'bikeracer.com', 'bikeracers.net', 'bikerider.com', 'billsfan.com', 'billsfan.net', 'bimamail.com', 'bimla.net', 'birdowner.net', 'bisons.com', 'bitmail.com', 'bitpage.net', 'bizhosting.com', 'bla-bla.com', 'blackburnmail.com', 'blackplanet.com', 'blacksburg.net', 'blazemail.com', 'blazenet.net', 'bluehyppo.com', 'bluemail.ch', 'bluemail.dk', 'bluesfan.com', 'bluewin.ch', 'blueyonder.co.uk', 'blushmail.com', 'bmlsports.net', 'boardermail.com', 'boatracers.com', 'bol.com.br', 'bolando.com', 'bollywoodz.com', 'bolt.com', 'boltonfans.com', 'bombdiggity.com', 'bonbon.net', 'boom.com', 'bootmail.com', 'bornnaked.com', 'bossofthemoss.com', 'bostonoffice.com', 'bounce.net', 'box.az', 'boxbg.com', 'boxemail.com', 'boxfrog.com', 'boyzoneclub.com', 'bradfordfans.com', 'brasilia.net', 'brazilmail.com.br', 'breathe.com', 'bresnan.net', 'brfree.com.br', 'bright.net', 'britneyclub.com', 'brittonsign.com', 'broadcast.net', 'bt.com', 'btinternet.com', 'btopenworld.co.uk', 'buffymail.com', 'bullsfan.com', 'bullsgame.com', 'bumerang.ro', 'bunko.com', 'buryfans.com', 'business-man.com', 'businessman.net', 'businessweekmail.com', 'busta-rhymes.com', 'busymail.com', 'buyersusa.com', 'bvimailbox.com', 'byteme.com', 'c2i.net', 'c3.hu', 'c4.com', 'cabacabana.com', 'cableone.net', 'caere.it', 'cairomail.com', 'cais.net', 'callnetuk.com', 'callsign.net', 'caltanet.it', 'camidge.com', 'canada-11.com', 'canada.com', 'canadianmail.com', 'canoemail.com', 'canwetalk.com', 'capu.net', 'caramail.com', 'care2.com', 'careerbuildermail.com', 'carioca.net', 'cartestraina.ro', 'casablancaresort.com', 'casino.com', 'catcha.com', 'catholic.org', 'catlover.com', 'catsrule.garfield.com', 'ccnmail.com', 'cd2.com', 'celineclub.com', 'celtic.com', 'centoper.it', 'centralpets.com', 'centrum.cz', 'centrum.sk', 'centurytel.net', 'cfl.rr.com', 'cgac.es', 'chaiyomail.com', 'chance2mail.com', 'chandrasekar.net', 'charm.net', 'charmedmail.com', 'charter.net', 'chat.ru', 'chattown.com', 'chauhanweb.com', 'check.com', 'check1check.com', 'cheerful.com', 'chek.com', 'chello.nl', 'chemist.com', 'chequemail.com', 'cheyenneweb.com', 'chez.com', 'chickmail.com', 'china.net.vg', 'chinalook.com', 'chirk.com', 'chocaholic.com.au', 'christianmail.net', 'churchusa.com', 'cia-agent.com', 'cia.hu', 'ciaoweb.it', 'cicciociccio.com', 'cincinow.net', 'citeweb.net', 'citlink.net', 'city-of-bath.org', 'city-of-birmingham.com', 'city-of-brighton.org', 'city-of-cambridge.com', 'city-of-coventry.com', 'city-of-edinburgh.com', 'city-of-lichfield.com', 'city-of-lincoln.com', 'city-of-liverpool.com', 'city-of-manchester.com', 'city-of-nottingham.com', 'city-of-oxford.com', 'city-of-swansea.com', 'city-of-westminster.com', 'city-of-westminster.net', 'city-of-york.net', 'city2city.com', 'cityofcardiff.net', 'cityoflondon.org', 'claramail.com', 'classicalfan.com', 'classicmail.co.za', 'clerk.com', 'cliffhanger.com', 'close2you.net', 'club-internet.fr', 'club4x4.net', 'clubalfa.com', 'clubbers.net', 'clubducati.com', 'clubhonda.net', 'clubvdo.net', 'cluemail.com', 'cmpmail.com', 'cnnsimail.com', 'codec.ro', 'coder.hu', 'coid.biz', 'coldmail.com', 'collectiblesuperstore.com', 'collegebeat.com', 'collegeclub.com', 'collegemail.com', 'colleges.com', 'columbus.rr.com', 'columbusrr.com', 'columnist.com', 'comcast.net', 'comic.com', 'communityconnect.com', 'comprendemail.com', 'compuserve.com', 'computer-freak.com', 'computermail.net', 'concentric.net', 'conexcol.com', 'conk.com', 'connect4free.net', 'connectbox.com', 'conok.com', 'consultant.com', 'cookiemonster.com', 'cool.br', 'coolgoose.ca', 'coolgoose.com', 'coolkiwi.com', 'coollist.com', 'coolmail.com', 'coolmail.net', 'coolsend.com', 'cooooool.com', 'cooperation.net', 'cooperationtogo.net', 'copacabana.com', 'cornells.com', 'cornerpub.com', 'corporatedirtbag.com', 'correo.terra.com.gt', 'cortinet.com', 'cotas.net', 'counsellor.com', 'countrylover.com', 'covad.net', 'cox.net', 'coxinet.net', 'coxmail.com', 'cpaonline.net', 'cracker.hu', 'crazedanddazed.com', 'crazysexycool.com', 'cristianemail.com', 'critterpost.com', 'croeso.com', 'crosshairs.com', 'crosslink.net', 'crosswinds.net', 'crwmail.com', 'cry4helponline.com', 'cs.com', 'csi.com', 'csinibaba.hu', 'cuemail.com', 'curio-city.com', 'cute-girl.com', 'cuteandcuddly.com', 'cutey.com', 'cww.de', 'cyber-africa.net', 'cyber4all.com', 'cyberbabies.com', 'cybercafemaui.com', 'cyberdude.com', 'cyberforeplay.net', 'cybergal.com', 'cybergrrl.com', 'cyberinbox.com', 'cyberleports.com', 'cybermail.net', 'cybernet.it', 'cyberspace-asia.com', 'cybertrains.org', 'cyclefanz.com', 'cynetcity.com', 'dabsol.net', 'dadacasa.com', 'daha.com', 'dailypioneer.com', 'dallas.theboys.com', 'dangerous-minds.com', 'dansegulvet.com', 'data54.com', 'daum.net', 'davegracey.com', 'dawnsonmail.com', 'dawsonmail.com', 'dazedandconfused.com', 'dbzmail.com', 'dca.net', 'dcemail.com', 'deadlymob.org', 'deal-maker.com', 'dearriba.com', 'death-star.com', 'dejanews.com', 'deliveryman.com', 'deltanet.com', 'deneg.net', 'depechemode.com', 'deseretmail.com', 'desertmail.com', 'desilota.com', 'deskmail.com', 'deskpilot.com', 'destin.com', 'detik.com', 'deutschland-net.com', 'devotedcouples.com', 'dfwatson.com', 'di-ve.com', 'digibel.be', 'diplomats.com', 'direcway.com', 'dirtracer.com', 'discofan.com', 'discovery.com', 'discoverymail.com', 'disinfo.net', 'dmailman.com', 'dmv.com', 'dnsmadeeasy.com', 'doctor.com', 'dog.com', 'doglover.com', 'dogmail.co.uk', 'dogsnob.net', 'doityourself.com', 'doneasy.com', 'donjuan.com', 'dontgotmail.com', 'dontmesswithtexas.com', 'doramail.com', 'dostmail.com', 'dotcom.fr', 'dott.it', 'dplanet.ch', 'dr.com', 'dragoncon.net', 'dragracer.com', 'dropzone.com', 'drotposta.hu', 'dslextreme.com', 'dubaimail.com', 'dublin.com', 'dublin.ie', 'dunlopdriver.com', 'dunloprider.com', 'duno.com', 'dwp.net', 'dygo.com', 'dynamitemail.com', 'e-apollo.lv', 'e-mail.dk', 'e-mail.ru', 'e-mailanywhere.com', 'e-mails.ru', 'e-tapaal.com', 'earthalliance.com', 'earthcam.net', 'earthdome.com', 'earthling.net', 'earthlink.net', 'earthonline.net', 'eastcoast.co.za', 'eastmail.com', 'easy.to', 'easypost.com', 'eatmydirt.com', 'ecardmail.com', 'ecbsolutions.net', 'echina.com', 'ecompare.com', 'edge.net', 'edmail.com', 'ednatx.com', 'edtnmail.com', 'educacao.te.pt', 'educastmail.com', 'ehmail.com', 'eircom.net', 'elsitio.com', 'elvis.com', 'email-london.co.uk', 'email.com', 'email.cz', 'email.ee', 'email.it', 'email.nu', 'email.ro', 'email.ru', 'email.si', 'email.women.com', 'email2me.net', 'emailacc.com', 'emailaccount.com', 'emailchoice.com', 'emailcorner.net', 'emailem.com', 'emailengine.net', 'emailforyou.net', 'emailgroups.net', 'emailpinoy.com', 'emailplanet.com', 'emails.ru', 'emailuser.net', 'emailx.net', 'ematic.com', 'embarqmail.com', 'emumail.com', 'end-war.com', 'enel.net', 'engineer.com', 'england.com', 'england.edu', 'enter.net', 'epatra.com', 'epix.net', 'epost.de', 'eposta.hu', 'eqqu.com', 'eramail.co.za', 'eresmas.com', 'eriga.lv', 'erols.com', 'estranet.it', 'ethos.st', 'etoast.com', 'etrademail.com', 'eudoramail.com', 'europe.com', 'euroseek.com', 'every1.net', 'everyday.com.kh', 'everyone.net', 'examnotes.net', 'excite.co.jp', 'excite.com', 'excite.it', 'execs.com', 'expressasia.com', 'extenda.net', 'extended.com', 'eyou.com', 'ezcybersearch.com', 'ezmail.egine.com', 'ezmail.ru', 'ezrs.com', 'ezy.net', 'f1fans.net', 'facebook.com', 'fan.com', 'fan.theboys.com', 'fansonlymail.com', 'fantasticmail.com', 'farang.net', 'faroweb.com', 'fastem.com', 'fastemail.us', 'fastemailer.com', 'fastermail.com', 'fastimap.com', 'fastmail.fm', 'fastmailbox.net', 'fastmessaging.com', 'fatcock.net', 'fathersrightsne.org', 'fbi-agent.com', 'fbi.hu', 'fcc.net', 'federalcontractors.com', 'felicity.com', 'felicitymail.com', 'femenino.com', 'fetchmail.co.uk', 'fetchmail.com', 'feyenoorder.com', 'ffanet.com', 'fiberia.com', 'fibertel.com.ar', 'filipinolinks.com', 'financemail.net', 'financier.com', 'findmail.com', 'finebody.com', 'finfin.com', 'fire-brigade.com', 'fishburne.org', 'flashcom.net', 'flashemail.com', 'flashmail.com', 'flashmail.net', 'flipcode.com', 'fmail.co.uk', 'fmailbox.com', 'fmgirl.com', 'fmguy.com', 'fnbmail.co.za', 'fnmail.com', 'folkfan.com', 'foodmail.com', 'football.theboys.com', 'footballmail.com', 'for-president.com', 'forfree.at', 'forpresident.com', 'forthnet.gr', 'fortuncity.com', 'fortunecity.com', 'forum.dk', 'foxmail.com', 'free-org.com', 'free.com.pe', 'free.fr', 'freeaccess.nl', 'freeaccount.com', 'freeandsingle.com', 'freedom.usa.com', 'freedomlover.com', 'freegates.be', 'freeghana.com', 'freeler.nl', 'freemail.c3.hu', 'freemail.com.au', 'freemail.com.pk', 'freemail.de', 'freemail.et', 'freemail.gr', 'freemail.hu', 'freemail.it', 'freemail.lt', 'freemail.nl', 'freemail.org.mk', 'freenet.de', 'freenet.kg', 'freeola.com', 'freeola.net', 'freeserve.co.uk', 'freestamp.com', 'freestart.hu', 'freesurf.fr', 'freesurf.nl', 'freeuk.com', 'freeuk.net', 'freeukisp.co.uk', 'freeweb.org', 'freewebemail.com', 'freeyellow.com', 'freezone.co.uk', 'fresnomail.com', 'friends-cafe.com', 'friendsfan.com', 'from-africa.com', 'from-america.com', 'from-argentina.com', 'from-asia.com', 'from-australia.com', 'from-belgium.com', 'from-brazil.com', 'from-canada.com', 'from-china.net', 'from-england.com', 'from-europe.com', 'from-france.net', 'from-germany.net', 'from-holland.com', 'from-israel.com', 'from-italy.net', 'from-japan.net', 'from-korea.com', 'from-mexico.com', 'from-outerspace.com', 'from-russia.com', 'from-spain.net', 'fromalabama.com', 'fromalaska.com', 'fromarizona.com', 'fromarkansas.com', 'fromcalifornia.com', 'fromcolorado.com', 'fromconnecticut.com', 'fromdelaware.com', 'fromflorida.net', 'fromgeorgia.com', 'fromhawaii.net', 'fromidaho.com', 'fromillinois.com', 'fromindiana.com', 'fromiowa.com', 'fromjupiter.com', 'fromkansas.com', 'fromkentucky.com', 'fromlouisiana.com', 'frommaine.net', 'frommaryland.com', 'frommassachusetts.com', 'frommiami.com', 'frommichigan.com', 'fromminnesota.com', 'frommississippi.com', 'frommissouri.com', 'frommontana.com', 'fromnebraska.com', 'fromnevada.com', 'fromnewhampshire.com', 'fromnewjersey.com', 'fromnewmexico.com', 'fromnewyork.net', 'fromnorthcarolina.com', 'fromnorthdakota.com', 'fromohio.com', 'fromoklahoma.com', 'fromoregon.net', 'frompennsylvania.com', 'fromrhodeisland.com', 'fromru.com', 'fromsouthcarolina.com', 'fromsouthdakota.com', 'fromtennessee.com', 'fromtexas.com', 'fromthestates.com', 'fromutah.com', 'fromvermont.com', 'fromvirginia.com', 'fromwashington.com', 'fromwashingtondc.com', 'fromwestvirginia.com', 'fromwisconsin.com', 'fromwyoming.com', 'front.ru', 'frontier.com', 'frontiernet.net', 'frostbyte.uk.net', 'fsmail.net', 'ftml.net', 'fullchannel.net', 'fullmail.com', 'funkfan.com', 'fuorissimo.com', 'furnitureprovider.com', 'fuse.net', 'fut.es', 'fwnb.com', 'fxsmails.com', 'galamb.net', 'galaxy5.com', 'gamebox.net', 'gamegeek.com', 'games.com', 'gamespotmail.com', 'garbage.com', 'gardener.com', 'gateway.net', 'gawab.com', 'gaybrighton.co.uk', 'gaza.net', 'gazeta.pl', 'gazibooks.com', 'gci.net', 'gee-wiz.com', 'geecities.com', 'geek.com', 'geek.hu', 'geeklife.com', 'general-hospital.com', 'geocities.com', 'geologist.com', 'geopia.com', 'gh2000.com', 'ghanamail.com', 'ghostmail.com', 'giantsfan.com', 'giga4u.de', 'gigileung.org', 'givepeaceachance.com', 'glay.org', 'glendale.net', 'globalfree.it', 'globalpagan.com', 'globalsite.com.br', 'globo.com', 'globomail.com', 'gmail.com', 'gmx.at', 'gmx.com', 'gmx.de', 'gmx.fr', 'gmx.li', 'gmx.net', 'gnwmail.com', 'go.com', 'go.ro', 'go.ru', 'go2.com.py', 'go2net.com', 'gocollege.com', 'gocubs.com', 'gofree.co.uk', 'goldenmail.ru', 'goldmail.ru', 'golfemail.com', 'golfmail.be', 'gonavy.net', 'goodstick.com', 'google.com', 'googlemail.com', 'goplay.com', 'gorontalo.net', 'gospelfan.com', 'gothere.uk.com', 'gotmail.com', 'gotomy.com', 'govolsfan.com', 'gportal.hu', 'grabmail.com', 'graffiti.net', 'gramszu.net', 'grapplers.com', 'gratisweb.com', 'grungecafe.com', 'gtemail.net', 'gti.net', 'gtmc.net', 'gua.net', 'guessmail.com', 'guju.net', 'gurlmail.com', 'guy.com', 'guy2.com', 'guyanafriends.com', 'gyorsposta.com', 'gyorsposta.hu', 'hackermail.net', 'hailmail.net', 'hairdresser.net', 'hamptonroads.com', 'handbag.com', 'handleit.com', 'hang-ten.com', 'hanmail.net', 'happemail.com', 'happycounsel.com', 'happypuppy.com', 'hardcorefreak.com', 'hawaii.rr.com', 'hawaiiantel.net', 'headbone.com', 'heartthrob.com', 'heerschap.com', 'heesun.net', 'hehe.com', 'hello.hu', 'hello.net.au', 'hello.to', 'helter-skelter.com', 'hempseed.com', 'herediano.com', 'heremail.com', 'herono1.com', 'hetnet.nl', 'hey.to', 'hhdevel.com', 'highmilton.com', 'highquality.com', 'highveldmail.co.za', 'hiphopfan.com', 'hispavista.com', 'hitthe.net', 'hkg.net', 'hkstarphoto.com', 'hockeymail.com', 'hollywoodkids.com', 'home-email.com', 'home.nl', 'home.no.net', 'home.ro', 'home.se', 'homeart.com', 'homelocator.com', 'homemail.com', 'homestead.com', 'homeworkcentral.com', 'hongkong.com', 'hookup.net', 'hoopsmail.com', 'horrormail.com', 'host-it.com.sg', 'hot-shot.com', 'hot.ee', 'hotbot.com', 'hotbrev.com', 'hotepmail.com', 'hotfire.net', 'hotletter.com', 'hotmail.be', 'hotmail.co.il', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.br', 'hotmail.com.mx', 'hotmail.de', 'hotmail.es', 'hotmail.fr', 'hotmail.it', 'hotmail.kg', 'hotmail.kz', 'hotmail.ru', 'hotpop.com', 'hotpop3.com', 'hotvoice.com', 'housefancom', 'housemail.com', 'hsuchi.net', 'html.tou.com', 'hughes.net', 'hunsa.com', 'hush.com', 'hushmail.com', 'hypernautica.com', 'i-connect.com', 'i-france.com', 'i-mail.com.au', 'i-p.com', 'i-plus.net', 'i.am', 'i12.com', 'iamawoman.com', 'iamwaiting.com', 'iamwasted.com', 'iamyours.com', 'ibm.net', 'icestorm.com', 'icloud.com', 'icmsconsultants.com', 'icq.com', 'icqmail.com', 'icrazy.com', 'id-base.com', 'ididitmyway.com', 'idirect.com', 'iespana.es', 'ifoward.com', 'ig.com.br', 'ignazio.it', 'ignmail.com', 'ihateclowns.com', 'ihwy.com', 'iinet.net.au', 'ijustdontcare.com', 'ilovechocolate.com', 'ilovejesus.com', 'ilovethemovies.com', 'ilovetocollect.net', 'ilse.nl', 'imaginemail.com', 'imail.org', 'imail.ru', 'imailbox.com', 'imel.org', 'imneverwrong.com', 'imposter.co.uk', 'imstressed.com', 'imtoosexy.com', 'in-box.net', 'iname.com', 'inbox.com', 'inbox.net', 'inbox.ru', 'incamail.com', 'incredimail.com', 'indexa.fr', 'india.com', 'indiatimes.com', 'indo-mail.com', 'indocities.com', 'indomail.com', 'indyracers.com', 'info-media.de', 'info66.com', 'infohq.com', 'infomail.es', 'infomart.or.jp', 'infospacemail.com', 'infovia.com.ar', 'inicia.es', 'inmail.sk', 'innocent.com', 'inorbit.com', 'insidebaltimore.net', 'insight.rr.com', 'insurer.com', 'integra.net', 'interaccess.com', 'interburp.com', 'interfree.it', 'interia.pl', 'interlap.com.ar', 'intermail.co.il', 'internet-club.com', 'internet-police.com', 'internetbiz.com', 'internetdrive.com', 'internetegypt.com', 'internetemails.net', 'internetmailing.net', 'internetmci.com', 'investormail.com', 'inwind.it', 'iobox.com', 'iobox.fi', 'iol.it', 'ionet.net', 'iowaemail.com', 'ip3.com', 'iprimus.com.au', 'iqemail.com', 'irangate.net', 'iraqmail.com', 'ireland.com', 'irj.hu', 'isellcars.com', 'islamonline.net', 'isleuthmail.com', 'ismart.net', 'isonfire.com', 'isp9.net', 'itelefonica.com.br', 'itloox.com', 'itmom.com', 'itol.com', 'ivebeenframed.com', 'ivillage.com', 'iwan-fals.com', 'iwmail.com', 'iwon.com', 'izadpanah.com', 'jahoopa.com', 'jakuza.hu', 'japan.com', 'jaydemail.com', 'jazzandjava.com', 'jazzfan.com', 'jazzgame.com', 'jerusalemmail.com', 'jetemail.net', 'jewishmail.com', 'jippii.fi', 'jmail.co.za', 'joinme.com', 'jokes.com', 'jordanmail.com', 'journalist.com', 'jovem.te.pt', 'joymail.com', 'jpopmail.com', 'jubiimail.dk', 'jump.com', 'jumpy.it', 'juniormail.com', 'juno.com', 'justemail.net', 'justicemail.com', 'kaazoo.com', 'kaixo.com', 'kalpoint.com', 'kansascity.com', 'kapoorweb.com', 'karachian.com', 'karachioye.com', 'karbasi.com', 'katamail.com', 'kayafmmail.co.za', 'kbjrmail.com', 'kcks.com', 'keg-party.com', 'keko.com.ar', 'kellychen.com', 'keromail.com', 'keyemail.com', 'kgb.hu', 'khosropour.com', 'kickassmail.com', 'killermail.com', 'kimo.com', 'kinki-kids.com', 'kittymail.com', 'kitznet.at', 'kiwibox.com', 'kiwitown.com', 'kmail.com.au', 'konx.com', 'korea.com', 'kozmail.com', 'krongthip.com', 'krunis.com', 'ksanmail.com', 'ksee24mail.com', 'kube93mail.com', 'kukamail.com', 'kumarweb.com', 'kuwait-mail.com', 'la.com', 'ladymail.cz', 'lagerlouts.com', 'lahoreoye.com', 'lakmail.com', 'lamer.hu', 'land.ru', 'lankamail.com', 'laposte.net', 'latemodels.com', 'latinmail.com', 'latino.com', 'lavabit.com', 'law.com', 'lawyer.com', 'leehom.net', 'legalactions.com', 'legislator.com', 'leonlai.net', 'letsgomets.net', 'letterbox.com', 'levele.com', 'levele.hu', 'lex.bg', 'lexis-nexis-mail.com', 'libero.it', 'liberomail.com', 'lick101.com', 'linkmaster.com', 'linktrader.com', 'linuxfreemail.com', 'linuxmail.org', 'lionsfan.com.au', 'liontrucks.com', 'liquidinformation.net', 'list.ru', 'littleblueroom.com', 'live.be', 'live.ca', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.au', 'live.com.mx', 'live.de', 'live.fr', 'live.it', 'live.nl', 'liverpoolfans.com', 'llandudno.com', 'llangollen.com', 'lmxmail.sk', 'lobbyist.com', 'localbar.com', 'london.com', 'loobie.com', 'looksmart.co.uk', 'looksmart.com', 'looksmart.com.au', 'lopezclub.com', 'louiskoo.com', 'love.com', 'love.cz', 'loveable.com', 'lovelygirl.net', 'lovemail.com', 'lover-boy.com', 'lovergirl.com', 'lovingjesus.com', 'lowandslow.com', 'luso.pt', 'luukku.com', 'lycos.co.uk', 'lycos.com', 'lycos.es', 'lycos.it', 'lycos.ne.jp', 'lycosemail.com', 'lycosmail.com', 'm-a-i-l.com', 'm-hmail.com', 'm4.org', 'mac.com', 'macbox.com', 'macfreak.com', 'machinecandy.com', 'macmail.com', 'madcreations.com', 'madrid.com', 'maffia.hu', 'magicmail.co.za', 'mahmoodweb.com', 'mail-awu.de', 'mail-box.cz', 'mail-center.com', 'mail-central.com', 'mail-page.com', 'mail.austria.com', 'mail.az', 'mail.be', 'mail.bulgaria.com', 'mail.byte.it', 'mail.co.za', 'mail.com', 'mail.ee', 'mail.entrepeneurmag.com', 'mail.freetown.com', 'mail.gr', 'mail.hitthebeach.com', 'mail.kmsp.com', 'mail.md', 'mail.nu', 'mail.org.uk', 'mail.pf', 'mail.pharmacy.com', 'mail.pt', 'mail.r-o-o-t.com', 'mail.ru', 'mail.salu.net', 'mail.sisna.com', 'mail.spaceports.com', 'mail.theboys.com', 'mail.usa.com', 'mail.vasarhely.hu', 'mail15.com', 'mail1st.com', 'mail2007.com', 'mail2aaron.com', 'mail2abby.com', 'mail2abc.com', 'mail2actor.com', 'mail2admiral.com', 'mail2adorable.com', 'mail2adoration.com', 'mail2adore.com', 'mail2adventure.com', 'mail2aeolus.com', 'mail2aether.com', 'mail2affection.com', 'mail2afghanistan.com', 'mail2africa.com', 'mail2agent.com', 'mail2aha.com', 'mail2ahoy.com', 'mail2aim.com', 'mail2air.com', 'mail2airbag.com', 'mail2airforce.com', 'mail2airport.com', 'mail2alabama.com', 'mail2alan.com', 'mail2alaska.com', 'mail2albania.com', 'mail2alcoholic.com', 'mail2alec.com', 'mail2alexa.com', 'mail2algeria.com', 'mail2alicia.com', 'mail2alien.com', 'mail2allan.com', 'mail2allen.com', 'mail2allison.com', 'mail2alpha.com', 'mail2alyssa.com', 'mail2amanda.com', 'mail2amazing.com', 'mail2amber.com', 'mail2america.com', 'mail2american.com', 'mail2andorra.com', 'mail2andrea.com', 'mail2andy.com', 'mail2anesthesiologist.com', 'mail2angela.com', 'mail2angola.com', 'mail2ann.com', 'mail2anna.com', 'mail2anne.com', 'mail2anthony.com', 'mail2anything.com', 'mail2aphrodite.com', 'mail2apollo.com', 'mail2april.com', 'mail2aquarius.com', 'mail2arabia.com', 'mail2arabic.com', 'mail2architect.com', 'mail2ares.com', 'mail2argentina.com', 'mail2aries.com', 'mail2arizona.com', 'mail2arkansas.com', 'mail2armenia.com', 'mail2army.com', 'mail2arnold.com', 'mail2art.com', 'mail2artemus.com', 'mail2arthur.com', 'mail2artist.com', 'mail2ashley.com', 'mail2ask.com', 'mail2astronomer.com', 'mail2athena.com', 'mail2athlete.com', 'mail2atlas.com', 'mail2atom.com', 'mail2attitude.com', 'mail2auction.com', 'mail2aunt.com', 'mail2australia.com', 'mail2austria.com', 'mail2azerbaijan.com', 'mail2baby.com', 'mail2bahamas.com', 'mail2bahrain.com', 'mail2ballerina.com', 'mail2ballplayer.com', 'mail2band.com', 'mail2bangladesh.com', 'mail2bank.com', 'mail2banker.com', 'mail2bankrupt.com', 'mail2baptist.com', 'mail2bar.com', 'mail2barbados.com', 'mail2barbara.com', 'mail2barter.com', 'mail2basketball.com', 'mail2batter.com', 'mail2beach.com', 'mail2beast.com', 'mail2beatles.com', 'mail2beauty.com', 'mail2becky.com', 'mail2beijing.com', 'mail2belgium.com', 'mail2belize.com', 'mail2ben.com', 'mail2bernard.com', 'mail2beth.com', 'mail2betty.com', 'mail2beverly.com', 'mail2beyond.com', 'mail2biker.com', 'mail2bill.com', 'mail2billionaire.com', 'mail2billy.com', 'mail2bio.com', 'mail2biologist.com', 'mail2black.com', 'mail2blackbelt.com', 'mail2blake.com', 'mail2blind.com', 'mail2blonde.com', 'mail2blues.com', 'mail2bob.com', 'mail2bobby.com', 'mail2bolivia.com', 'mail2bombay.com', 'mail2bonn.com', 'mail2bookmark.com', 'mail2boreas.com', 'mail2bosnia.com', 'mail2boston.com', 'mail2botswana.com', 'mail2bradley.com', 'mail2brazil.com', 'mail2breakfast.com', 'mail2brian.com', 'mail2bride.com', 'mail2brittany.com', 'mail2broker.com', 'mail2brook.com', 'mail2bruce.com', 'mail2brunei.com', 'mail2brunette.com', 'mail2brussels.com', 'mail2bryan.com', 'mail2bug.com', 'mail2bulgaria.com', 'mail2business.com', 'mail2buy.com', 'mail2ca.com', 'mail2california.com', 'mail2calvin.com', 'mail2cambodia.com', 'mail2cameroon.com', 'mail2canada.com', 'mail2cancer.com', 'mail2capeverde.com', 'mail2capricorn.com', 'mail2cardinal.com', 'mail2cardiologist.com', 'mail2care.com', 'mail2caroline.com', 'mail2carolyn.com', 'mail2casey.com', 'mail2cat.com', 'mail2caterer.com', 'mail2cathy.com', 'mail2catlover.com', 'mail2catwalk.com', 'mail2cell.com', 'mail2chad.com', 'mail2champaign.com', 'mail2charles.com', 'mail2chef.com', 'mail2chemist.com', 'mail2cherry.com', 'mail2chicago.com', 'mail2chile.com', 'mail2china.com', 'mail2chinese.com', 'mail2chocolate.com', 'mail2christian.com', 'mail2christie.com', 'mail2christmas.com', 'mail2christy.com', 'mail2chuck.com', 'mail2cindy.com', 'mail2clark.com', 'mail2classifieds.com', 'mail2claude.com', 'mail2cliff.com', 'mail2clinic.com', 'mail2clint.com', 'mail2close.com', 'mail2club.com', 'mail2coach.com', 'mail2coastguard.com', 'mail2colin.com', 'mail2college.com', 'mail2colombia.com', 'mail2color.com', 'mail2colorado.com', 'mail2columbia.com', 'mail2comedian.com', 'mail2composer.com', 'mail2computer.com', 'mail2computers.com', 'mail2concert.com', 'mail2congo.com', 'mail2connect.com', 'mail2connecticut.com', 'mail2consultant.com', 'mail2convict.com', 'mail2cook.com', 'mail2cool.com', 'mail2cory.com', 'mail2costarica.com', 'mail2country.com', 'mail2courtney.com', 'mail2cowboy.com', 'mail2cowgirl.com', 'mail2craig.com', 'mail2crave.com', 'mail2crazy.com', 'mail2create.com', 'mail2croatia.com', 'mail2cry.com', 'mail2crystal.com', 'mail2cuba.com', 'mail2culture.com', 'mail2curt.com', 'mail2customs.com', 'mail2cute.com', 'mail2cutey.com', 'mail2cynthia.com', 'mail2cyprus.com', 'mail2czechrepublic.com', 'mail2dad.com', 'mail2dale.com', 'mail2dallas.com', 'mail2dan.com', 'mail2dana.com', 'mail2dance.com', 'mail2dancer.com', 'mail2danielle.com', 'mail2danny.com', 'mail2darlene.com', 'mail2darling.com', 'mail2darren.com', 'mail2daughter.com', 'mail2dave.com', 'mail2dawn.com', 'mail2dc.com', 'mail2dealer.com', 'mail2deanna.com', 'mail2dearest.com', 'mail2debbie.com', 'mail2debby.com', 'mail2deer.com', 'mail2delaware.com', 'mail2delicious.com', 'mail2demeter.com', 'mail2democrat.com', 'mail2denise.com', 'mail2denmark.com', 'mail2dennis.com', 'mail2dentist.com', 'mail2derek.com', 'mail2desert.com', 'mail2devoted.com', 'mail2devotion.com', 'mail2diamond.com', 'mail2diana.com', 'mail2diane.com', 'mail2diehard.com', 'mail2dilemma.com', 'mail2dillon.com', 'mail2dinner.com', 'mail2dinosaur.com', 'mail2dionysos.com', 'mail2diplomat.com', 'mail2director.com', 'mail2dirk.com', 'mail2disco.com', 'mail2dive.com', 'mail2diver.com', 'mail2divorced.com', 'mail2djibouti.com', 'mail2doctor.com', 'mail2doglover.com', 'mail2dominic.com', 'mail2dominica.com', 'mail2dominicanrepublic.com', 'mail2don.com', 'mail2donald.com', 'mail2donna.com', 'mail2doris.com', 'mail2dorothy.com', 'mail2doug.com', 'mail2dough.com', 'mail2douglas.com', 'mail2dow.com', 'mail2downtown.com', 'mail2dream.com', 'mail2dreamer.com', 'mail2dude.com', 'mail2dustin.com', 'mail2dyke.com', 'mail2dylan.com', 'mail2earl.com', 'mail2earth.com', 'mail2eastend.com', 'mail2eat.com', 'mail2economist.com', 'mail2ecuador.com', 'mail2eddie.com', 'mail2edgar.com', 'mail2edwin.com', 'mail2egypt.com', 'mail2electron.com', 'mail2eli.com', 'mail2elizabeth.com', 'mail2ellen.com', 'mail2elliot.com', 'mail2elsalvador.com', 'mail2elvis.com', 'mail2emergency.com', 'mail2emily.com', 'mail2engineer.com', 'mail2english.com', 'mail2environmentalist.com', 'mail2eos.com', 'mail2eric.com', 'mail2erica.com', 'mail2erin.com', 'mail2erinyes.com', 'mail2eris.com', 'mail2eritrea.com', 'mail2ernie.com', 'mail2eros.com', 'mail2estonia.com', 'mail2ethan.com', 'mail2ethiopia.com', 'mail2eu.com', 'mail2europe.com', 'mail2eurus.com', 'mail2eva.com', 'mail2evan.com', 'mail2evelyn.com', 'mail2everything.com', 'mail2exciting.com', 'mail2expert.com', 'mail2fairy.com', 'mail2faith.com', 'mail2fanatic.com', 'mail2fancy.com', 'mail2fantasy.com', 'mail2farm.com', 'mail2farmer.com', 'mail2fashion.com', 'mail2fat.com', 'mail2feeling.com', 'mail2female.com', 'mail2fever.com', 'mail2fighter.com', 'mail2fiji.com', 'mail2filmfestival.com', 'mail2films.com', 'mail2finance.com', 'mail2finland.com', 'mail2fireman.com', 'mail2firm.com', 'mail2fisherman.com', 'mail2flexible.com', 'mail2florence.com', 'mail2florida.com', 'mail2floyd.com', 'mail2fly.com', 'mail2fond.com', 'mail2fondness.com', 'mail2football.com', 'mail2footballfan.com', 'mail2found.com', 'mail2france.com', 'mail2frank.com', 'mail2frankfurt.com', 'mail2franklin.com', 'mail2fred.com', 'mail2freddie.com', 'mail2free.com', 'mail2freedom.com', 'mail2french.com', 'mail2freudian.com', 'mail2friendship.com', 'mail2from.com', 'mail2fun.com', 'mail2gabon.com', 'mail2gabriel.com', 'mail2gail.com', 'mail2galaxy.com', 'mail2gambia.com', 'mail2games.com', 'mail2gary.com', 'mail2gavin.com', 'mail2gemini.com', 'mail2gene.com', 'mail2genes.com', 'mail2geneva.com', 'mail2george.com', 'mail2georgia.com', 'mail2gerald.com', 'mail2german.com', 'mail2germany.com', 'mail2ghana.com', 'mail2gilbert.com', 'mail2gina.com', 'mail2girl.com', 'mail2glen.com', 'mail2gloria.com', 'mail2goddess.com', 'mail2gold.com', 'mail2golfclub.com', 'mail2golfer.com', 'mail2gordon.com', 'mail2government.com', 'mail2grab.com', 'mail2grace.com', 'mail2graham.com', 'mail2grandma.com', 'mail2grandpa.com', 'mail2grant.com', 'mail2greece.com', 'mail2green.com', 'mail2greg.com', 'mail2grenada.com', 'mail2gsm.com', 'mail2guard.com', 'mail2guatemala.com', 'mail2guy.com', 'mail2hades.com', 'mail2haiti.com', 'mail2hal.com', 'mail2handhelds.com', 'mail2hank.com', 'mail2hannah.com', 'mail2harold.com', 'mail2harry.com', 'mail2hawaii.com', 'mail2headhunter.com', 'mail2heal.com', 'mail2heather.com', 'mail2heaven.com', 'mail2hebe.com', 'mail2hecate.com', 'mail2heidi.com', 'mail2helen.com', 'mail2hell.com', 'mail2help.com', 'mail2helpdesk.com', 'mail2henry.com', 'mail2hephaestus.com', 'mail2hera.com', 'mail2hercules.com', 'mail2herman.com', 'mail2hermes.com', 'mail2hespera.com', 'mail2hestia.com', 'mail2highschool.com', 'mail2hindu.com', 'mail2hip.com', 'mail2hiphop.com', 'mail2holland.com', 'mail2holly.com', 'mail2hollywood.com', 'mail2homer.com', 'mail2honduras.com', 'mail2honey.com', 'mail2hongkong.com', 'mail2hope.com', 'mail2horse.com', 'mail2hot.com', 'mail2hotel.com', 'mail2houston.com', 'mail2howard.com', 'mail2hugh.com', 'mail2human.com', 'mail2hungary.com', 'mail2hungry.com', 'mail2hygeia.com', 'mail2hyperspace.com', 'mail2hypnos.com', 'mail2ian.com', 'mail2ice-cream.com', 'mail2iceland.com', 'mail2idaho.com', 'mail2idontknow.com', 'mail2illinois.com', 'mail2imam.com', 'mail2in.com', 'mail2india.com', 'mail2indian.com', 'mail2indiana.com', 'mail2indonesia.com', 'mail2infinity.com', 'mail2intense.com', 'mail2iowa.com', 'mail2iran.com', 'mail2iraq.com', 'mail2ireland.com', 'mail2irene.com', 'mail2iris.com', 'mail2irresistible.com', 'mail2irving.com', 'mail2irwin.com', 'mail2isaac.com', 'mail2israel.com', 'mail2italian.com', 'mail2italy.com', 'mail2jackie.com', 'mail2jacob.com', 'mail2jail.com', 'mail2jaime.com', 'mail2jake.com', 'mail2jamaica.com', 'mail2james.com', 'mail2jamie.com', 'mail2jan.com', 'mail2jane.com', 'mail2janet.com', 'mail2janice.com', 'mail2japan.com', 'mail2japanese.com', 'mail2jasmine.com', 'mail2jason.com', 'mail2java.com', 'mail2jay.com', 'mail2jazz.com', 'mail2jed.com', 'mail2jeffrey.com', 'mail2jennifer.com', 'mail2jenny.com', 'mail2jeremy.com', 'mail2jerry.com', 'mail2jessica.com', 'mail2jessie.com', 'mail2jesus.com', 'mail2jew.com', 'mail2jeweler.com', 'mail2jim.com', 'mail2jimmy.com', 'mail2joan.com', 'mail2joann.com', 'mail2joanna.com', 'mail2jody.com', 'mail2joe.com', 'mail2joel.com', 'mail2joey.com', 'mail2john.com', 'mail2join.com', 'mail2jon.com', 'mail2jonathan.com', 'mail2jones.com', 'mail2jordan.com', 'mail2joseph.com', 'mail2josh.com', 'mail2joy.com', 'mail2juan.com', 'mail2judge.com', 'mail2judy.com', 'mail2juggler.com', 'mail2julian.com', 'mail2julie.com', 'mail2jumbo.com', 'mail2junk.com', 'mail2justin.com', 'mail2justme.com', 'mail2kansas.com', 'mail2karate.com', 'mail2karen.com', 'mail2karl.com', 'mail2karma.com', 'mail2kathleen.com', 'mail2kathy.com', 'mail2katie.com', 'mail2kay.com', 'mail2kazakhstan.com', 'mail2keen.com', 'mail2keith.com', 'mail2kelly.com', 'mail2kelsey.com', 'mail2ken.com', 'mail2kendall.com', 'mail2kennedy.com', 'mail2kenneth.com', 'mail2kenny.com', 'mail2kentucky.com', 'mail2kenya.com', 'mail2kerry.com', 'mail2kevin.com', 'mail2kim.com', 'mail2kimberly.com', 'mail2king.com', 'mail2kirk.com', 'mail2kiss.com', 'mail2kosher.com', 'mail2kristin.com', 'mail2kurt.com', 'mail2kuwait.com', 'mail2kyle.com', 'mail2kyrgyzstan.com', 'mail2la.com', 'mail2lacrosse.com', 'mail2lance.com', 'mail2lao.com', 'mail2larry.com', 'mail2latvia.com', 'mail2laugh.com', 'mail2laura.com', 'mail2lauren.com', 'mail2laurie.com', 'mail2lawrence.com', 'mail2lawyer.com', 'mail2lebanon.com', 'mail2lee.com', 'mail2leo.com', 'mail2leon.com', 'mail2leonard.com', 'mail2leone.com', 'mail2leslie.com', 'mail2letter.com', 'mail2liberia.com', 'mail2libertarian.com', 'mail2libra.com', 'mail2libya.com', 'mail2liechtenstein.com', 'mail2life.com', 'mail2linda.com', 'mail2linux.com', 'mail2lionel.com', 'mail2lipstick.com', 'mail2liquid.com', 'mail2lisa.com', 'mail2lithuania.com', 'mail2litigator.com', 'mail2liz.com', 'mail2lloyd.com', 'mail2lois.com', 'mail2lola.com', 'mail2london.com', 'mail2looking.com', 'mail2lori.com', 'mail2lost.com', 'mail2lou.com', 'mail2louis.com', 'mail2louisiana.com', 'mail2lovable.com', 'mail2love.com', 'mail2lucky.com', 'mail2lucy.com', 'mail2lunch.com', 'mail2lust.com', 'mail2luxembourg.com', 'mail2luxury.com', 'mail2lyle.com', 'mail2lynn.com', 'mail2madagascar.com', 'mail2madison.com', 'mail2madrid.com', 'mail2maggie.com', 'mail2mail4.com', 'mail2maine.com', 'mail2malawi.com', 'mail2malaysia.com', 'mail2maldives.com', 'mail2mali.com', 'mail2malta.com', 'mail2mambo.com', 'mail2man.com', 'mail2mandy.com', 'mail2manhunter.com', 'mail2mankind.com', 'mail2many.com', 'mail2marc.com', 'mail2marcia.com', 'mail2margaret.com', 'mail2margie.com', 'mail2marhaba.com', 'mail2maria.com', 'mail2marilyn.com', 'mail2marines.com', 'mail2mark.com', 'mail2marriage.com', 'mail2married.com', 'mail2marries.com', 'mail2mars.com', 'mail2marsha.com', 'mail2marshallislands.com', 'mail2martha.com', 'mail2martin.com', 'mail2marty.com', 'mail2marvin.com', 'mail2mary.com', 'mail2maryland.com', 'mail2mason.com', 'mail2massachusetts.com', 'mail2matt.com', 'mail2matthew.com', 'mail2maurice.com', 'mail2mauritania.com', 'mail2mauritius.com', 'mail2max.com', 'mail2maxwell.com', 'mail2maybe.com', 'mail2mba.com', 'mail2me4u.com', 'mail2mechanic.com', 'mail2medieval.com', 'mail2megan.com', 'mail2mel.com', 'mail2melanie.com', 'mail2melissa.com', 'mail2melody.com', 'mail2member.com', 'mail2memphis.com', 'mail2methodist.com', 'mail2mexican.com', 'mail2mexico.com', 'mail2mgz.com', 'mail2miami.com', 'mail2michael.com', 'mail2michelle.com', 'mail2michigan.com', 'mail2mike.com', 'mail2milan.com', 'mail2milano.com', 'mail2mildred.com', 'mail2milkyway.com', 'mail2millennium.com', 'mail2millionaire.com', 'mail2milton.com', 'mail2mime.com', 'mail2mindreader.com', 'mail2mini.com', 'mail2minister.com', 'mail2minneapolis.com', 'mail2minnesota.com', 'mail2miracle.com', 'mail2missionary.com', 'mail2mississippi.com', 'mail2missouri.com', 'mail2mitch.com', 'mail2model.com', 'mail2moldova.commail2molly.com', 'mail2mom.com', 'mail2monaco.com', 'mail2money.com', 'mail2mongolia.com', 'mail2monica.com', 'mail2montana.com', 'mail2monty.com', 'mail2moon.com', 'mail2morocco.com', 'mail2morpheus.com', 'mail2mors.com', 'mail2moscow.com', 'mail2moslem.com', 'mail2mouseketeer.com', 'mail2movies.com', 'mail2mozambique.com', 'mail2mp3.com', 'mail2mrright.com', 'mail2msright.com', 'mail2museum.com', 'mail2music.com', 'mail2musician.com', 'mail2muslim.com', 'mail2my.com', 'mail2myboat.com', 'mail2mycar.com', 'mail2mycell.com', 'mail2mygsm.com', 'mail2mylaptop.com', 'mail2mymac.com', 'mail2mypager.com', 'mail2mypalm.com', 'mail2mypc.com', 'mail2myphone.com', 'mail2myplane.com', 'mail2namibia.com', 'mail2nancy.com', 'mail2nasdaq.com', 'mail2nathan.com', 'mail2nauru.com', 'mail2navy.com', 'mail2neal.com', 'mail2nebraska.com', 'mail2ned.com', 'mail2neil.com', 'mail2nelson.com', 'mail2nemesis.com', 'mail2nepal.com', 'mail2netherlands.com', 'mail2network.com', 'mail2nevada.com', 'mail2newhampshire.com', 'mail2newjersey.com', 'mail2newmexico.com', 'mail2newyork.com', 'mail2newzealand.com', 'mail2nicaragua.com', 'mail2nick.com', 'mail2nicole.com', 'mail2niger.com', 'mail2nigeria.com', 'mail2nike.com', 'mail2no.com', 'mail2noah.com', 'mail2noel.com', 'mail2noelle.com', 'mail2normal.com', 'mail2norman.com', 'mail2northamerica.com', 'mail2northcarolina.com', 'mail2northdakota.com', 'mail2northpole.com', 'mail2norway.com', 'mail2notus.com', 'mail2noway.com', 'mail2nowhere.com', 'mail2nuclear.com', 'mail2nun.com', 'mail2ny.com', 'mail2oasis.com', 'mail2oceanographer.com', 'mail2ohio.com', 'mail2ok.com', 'mail2oklahoma.com', 'mail2oliver.com', 'mail2oman.com', 'mail2one.com', 'mail2onfire.com', 'mail2online.com', 'mail2oops.com', 'mail2open.com', 'mail2ophthalmologist.com', 'mail2optometrist.com', 'mail2oregon.com', 'mail2oscars.com', 'mail2oslo.com', 'mail2painter.com', 'mail2pakistan.com', 'mail2palau.com', 'mail2pan.com', 'mail2panama.com', 'mail2paraguay.com', 'mail2paralegal.com', 'mail2paris.com', 'mail2park.com', 'mail2parker.com', 'mail2party.com', 'mail2passion.com', 'mail2pat.com', 'mail2patricia.com', 'mail2patrick.com', 'mail2patty.com', 'mail2paul.com', 'mail2paula.com', 'mail2pay.com', 'mail2peace.com', 'mail2pediatrician.com', 'mail2peggy.com', 'mail2pennsylvania.com', 'mail2perry.com', 'mail2persephone.com', 'mail2persian.com', 'mail2peru.com', 'mail2pete.com', 'mail2peter.com', 'mail2pharmacist.com', 'mail2phil.com', 'mail2philippines.com', 'mail2phoenix.com', 'mail2phonecall.com', 'mail2phyllis.com', 'mail2pickup.com', 'mail2pilot.com', 'mail2pisces.com', 'mail2planet.com', 'mail2platinum.com', 'mail2plato.com', 'mail2pluto.com', 'mail2pm.com', 'mail2podiatrist.com', 'mail2poet.com', 'mail2poland.com', 'mail2policeman.com', 'mail2policewoman.com', 'mail2politician.com', 'mail2pop.com', 'mail2pope.com', 'mail2popular.com', 'mail2portugal.com', 'mail2poseidon.com', 'mail2potatohead.com', 'mail2power.com', 'mail2presbyterian.com', 'mail2president.com', 'mail2priest.com', 'mail2prince.com', 'mail2princess.com', 'mail2producer.com', 'mail2professor.com', 'mail2protect.com', 'mail2psychiatrist.com', 'mail2psycho.com', 'mail2psychologist.com', 'mail2qatar.com', 'mail2queen.com', 'mail2rabbi.com', 'mail2race.com', 'mail2racer.com', 'mail2rachel.com', 'mail2rage.com', 'mail2rainmaker.com', 'mail2ralph.com', 'mail2randy.com', 'mail2rap.com', 'mail2rare.com', 'mail2rave.com', 'mail2ray.com', 'mail2raymond.com', 'mail2realtor.com', 'mail2rebecca.com', 'mail2recruiter.com', 'mail2recycle.com', 'mail2redhead.com', 'mail2reed.com', 'mail2reggie.com', 'mail2register.com', 'mail2rent.com', 'mail2republican.com', 'mail2resort.com', 'mail2rex.com', 'mail2rhodeisland.com', 'mail2rich.com', 'mail2richard.com', 'mail2ricky.com', 'mail2ride.com', 'mail2riley.com', 'mail2rita.com', 'mail2rob.com', 'mail2robert.com', 'mail2roberta.com', 'mail2robin.com', 'mail2rock.com', 'mail2rocker.com', 'mail2rod.com', 'mail2rodney.com', 'mail2romania.com', 'mail2rome.com', 'mail2ron.com', 'mail2ronald.com', 'mail2ronnie.com', 'mail2rose.com', 'mail2rosie.com', 'mail2roy.com', 'mail2rudy.com', 'mail2rugby.com', 'mail2runner.com', 'mail2russell.com', 'mail2russia.com', 'mail2russian.com', 'mail2rusty.com', 'mail2ruth.com', 'mail2rwanda.com', 'mail2ryan.com', 'mail2sa.com', 'mail2sabrina.com', 'mail2safe.com', 'mail2sagittarius.com', 'mail2sail.com', 'mail2sailor.com', 'mail2sal.com', 'mail2salaam.com', 'mail2sam.com', 'mail2samantha.com', 'mail2samoa.com', 'mail2samurai.com', 'mail2sandra.com', 'mail2sandy.com', 'mail2sanfrancisco.com', 'mail2sanmarino.com', 'mail2santa.com', 'mail2sara.com', 'mail2sarah.com', 'mail2sat.com', 'mail2saturn.com', 'mail2saudi.com', 'mail2saudiarabia.com', 'mail2save.com', 'mail2savings.com', 'mail2school.com', 'mail2scientist.com', 'mail2scorpio.com', 'mail2scott.com', 'mail2sean.com', 'mail2search.com', 'mail2seattle.com', 'mail2secretagent.com', 'mail2senate.com', 'mail2senegal.com', 'mail2sensual.com', 'mail2seth.com', 'mail2sevenseas.com', 'mail2sexy.com', 'mail2seychelles.com', 'mail2shane.com', 'mail2sharon.com', 'mail2shawn.com', 'mail2ship.com', 'mail2shirley.com', 'mail2shoot.com', 'mail2shuttle.com', 'mail2sierraleone.com', 'mail2simon.com', 'mail2singapore.com', 'mail2single.com', 'mail2site.com', 'mail2skater.com', 'mail2skier.com', 'mail2sky.com', 'mail2sleek.com', 'mail2slim.com', 'mail2slovakia.com', 'mail2slovenia.com', 'mail2smile.com', 'mail2smith.com', 'mail2smooth.com', 'mail2soccer.com', 'mail2soccerfan.com', 'mail2socialist.com', 'mail2soldier.com', 'mail2somalia.com', 'mail2son.com', 'mail2song.com', 'mail2sos.com', 'mail2sound.com', 'mail2southafrica.com', 'mail2southamerica.com', 'mail2southcarolina.com', 'mail2southdakota.com', 'mail2southkorea.com', 'mail2southpole.com', 'mail2spain.com', 'mail2spanish.com', 'mail2spare.com', 'mail2spectrum.com', 'mail2splash.com', 'mail2sponsor.com', 'mail2sports.com', 'mail2srilanka.com', 'mail2stacy.com', 'mail2stan.com', 'mail2stanley.com', 'mail2star.com', 'mail2state.com', 'mail2stephanie.com', 'mail2steve.com', 'mail2steven.com', 'mail2stewart.com', 'mail2stlouis.com', 'mail2stock.com', 'mail2stockholm.com', 'mail2stockmarket.com', 'mail2storage.com', 'mail2store.com', 'mail2strong.com', 'mail2student.com', 'mail2studio.com', 'mail2studio54.com', 'mail2stuntman.com', 'mail2subscribe.com', 'mail2sudan.com', 'mail2superstar.com', 'mail2surfer.com', 'mail2suriname.com', 'mail2susan.com', 'mail2suzie.com', 'mail2swaziland.com', 'mail2sweden.com', 'mail2sweetheart.com', 'mail2swim.com', 'mail2swimmer.com', 'mail2swiss.com', 'mail2switzerland.com', 'mail2sydney.com', 'mail2sylvia.com', 'mail2syria.com', 'mail2taboo.com', 'mail2taiwan.com', 'mail2tajikistan.com', 'mail2tammy.com', 'mail2tango.com', 'mail2tanya.com', 'mail2tanzania.com', 'mail2tara.com', 'mail2taurus.com', 'mail2taxi.com', 'mail2taxidermist.com', 'mail2taylor.com', 'mail2taz.com', 'mail2teacher.com', 'mail2technician.com', 'mail2ted.com', 'mail2telephone.com', 'mail2teletubbie.com', 'mail2tenderness.com', 'mail2tennessee.com', 'mail2tennis.com', 'mail2tennisfan.com', 'mail2terri.com', 'mail2terry.com', 'mail2test.com', 'mail2texas.com', 'mail2thailand.com', 'mail2therapy.com', 'mail2think.com', 'mail2tickets.com', 'mail2tiffany.com', 'mail2tim.com', 'mail2time.com', 'mail2timothy.com', 'mail2tina.com', 'mail2titanic.com', 'mail2toby.com', 'mail2todd.com', 'mail2togo.com', 'mail2tom.com', 'mail2tommy.com', 'mail2tonga.com', 'mail2tony.com', 'mail2touch.com', 'mail2tourist.com', 'mail2tracey.com', 'mail2tracy.com', 'mail2tramp.com', 'mail2travel.com', 'mail2traveler.com', 'mail2travis.com', 'mail2trekkie.com', 'mail2trex.com', 'mail2triallawyer.com', 'mail2trick.com', 'mail2trillionaire.com', 'mail2troy.com', 'mail2truck.com', 'mail2trump.com', 'mail2try.com', 'mail2tunisia.com', 'mail2turbo.com', 'mail2turkey.com', 'mail2turkmenistan.com', 'mail2tv.com', 'mail2tycoon.com', 'mail2tyler.com', 'mail2u4me.com', 'mail2uae.com', 'mail2uganda.com', 'mail2uk.com', 'mail2ukraine.com', 'mail2uncle.com', 'mail2unsubscribe.com', 'mail2uptown.com', 'mail2uruguay.com', 'mail2usa.com', 'mail2utah.com', 'mail2uzbekistan.com', 'mail2v.com', 'mail2vacation.com', 'mail2valentines.com', 'mail2valerie.com', 'mail2valley.com', 'mail2vamoose.com', 'mail2vanessa.com', 'mail2vanuatu.com', 'mail2venezuela.com', 'mail2venous.com', 'mail2venus.com', 'mail2vermont.com', 'mail2vickie.com', 'mail2victor.com', 'mail2victoria.com', 'mail2vienna.com', 'mail2vietnam.com', 'mail2vince.com', 'mail2virginia.com', 'mail2virgo.com', 'mail2visionary.com', 'mail2vodka.com', 'mail2volleyball.com', 'mail2waiter.com', 'mail2wallstreet.com', 'mail2wally.com', 'mail2walter.com', 'mail2warren.com', 'mail2washington.com', 'mail2wave.com', 'mail2way.com', 'mail2waycool.com', 'mail2wayne.com', 'mail2webmaster.com', 'mail2webtop.com', 'mail2webtv.com', 'mail2weird.com', 'mail2wendell.com', 'mail2wendy.com', 'mail2westend.com', 'mail2westvirginia.com', 'mail2whether.com', 'mail2whip.com', 'mail2white.com', 'mail2whitehouse.com', 'mail2whitney.com', 'mail2why.com', 'mail2wilbur.com', 'mail2wild.com', 'mail2willard.com', 'mail2willie.com', 'mail2wine.com', 'mail2winner.com', 'mail2wired.com', 'mail2wisconsin.com', 'mail2woman.com', 'mail2wonder.com', 'mail2world.com', 'mail2worship.com', 'mail2wow.com', 'mail2www.com', 'mail2wyoming.com', 'mail2xfiles.com', 'mail2xox.com', 'mail2yachtclub.com', 'mail2yahalla.com', 'mail2yemen.com', 'mail2yes.com', 'mail2yugoslavia.com', 'mail2zack.com', 'mail2zambia.com', 'mail2zenith.com', 'mail2zephir.com', 'mail2zeus.com', 'mail2zipper.com', 'mail2zoo.com', 'mail2zoologist.com', 'mail2zurich.com', 'mail3000.com', 'mail333.com', 'mailandftp.com', 'mailandnews.com', 'mailas.com', 'mailasia.com', 'mailbolt.com', 'mailbomb.net', 'mailboom.com', 'mailbox.as', 'mailbox.co.za', 'mailbox.gr', 'mailbox.hu', 'mailbr.com.br', 'mailc.net', 'mailcan.com', 'mailcc.com', 'mailchoose.co', 'mailcity.com', 'mailclub.fr', 'mailclub.net', 'mailexcite.com', 'mailforce.net', 'mailftp.com', 'mailgate.gr', 'mailgenie.net', 'mailhaven.com', 'mailhood.com', 'mailingweb.com', 'mailisent.com', 'mailite.com', 'mailme.dk', 'mailmight.com', 'mailmij.nl', 'mailnew.com', 'mailops.com', 'mailoye.com', 'mailpanda.com', 'mailpost.zzn.com', 'mailpride.com', 'mailpuppy.com', 'mailroom.com', 'mailru.com', 'mailsent.net', 'mailshuttle.com', 'mailstart.com', 'mailstartplus.com', 'mailsurf.com', 'mailtag.com', 'mailto.de', 'mailup.net', 'mailwire.com', 'maktoob.com', 'malayalamtelevision.net', 'manager.de', 'mantrafreenet.com', 'mantramail.com', 'mantraonline.com', 'marchmail.com', 'mariah-carey.ml.org', 'mariahc.com', 'marijuana.nl', 'marketing.lu', 'married-not.com', 'marsattack.com', 'martindalemail.com', 'masrawy.com', 'matmail.com', 'mauimail.com', 'mauritius.com', 'maxleft.com', 'maxmail.co.uk', 'mbox.com.au', 'mchsi.com', 'mciworldcom.net', 'me-mail.hu', 'me.com', 'medical.net.au', 'medione.net', 'medmail.com', 'medscape.com', 'meetingmall.com', 'megago.com', 'megamail.pt', 'megapathdsl.net', 'megapoint.com', 'mehrani.com', 'mehtaweb.com', 'mekhong.com', 'melodymail.com', 'meloo.com', 'members.student.com', 'message.hu', 'messages.to', 'metacrawler.com', 'metalfan.com', 'metta.lk', 'miatadriver.com', 'miesto.sk', 'mighty.co.za', 'miho-nakayama.com', 'mikrotamanet.com', 'millionaireintraining.com', 'milmail.com', 'mindless.com', 'mindspring.com', 'mini-mail.com', 'misery.net', 'mittalweb.com', 'mixmail.com', 'mjfrogmail.com', 'ml1.net', 'mobilbatam.com', 'mochamail.com', 'mohammed.com', 'moldova.cc', 'moldova.com', 'moldovacc.com', 'money.net', 'montevideo.com.uy', 'moonman.com', 'moose-mail.com', 'mortaza.com', 'mosaicfx.com', 'most-wanted.com', 'mostlysunny.com', 'motormania.com', 'movemail.com', 'movieluver.com', 'mp4.it', 'mr-potatohead.com', 'mrpost.com', 'mscold.com', 'msgbox.com', 'msn.com', 'mttestdriver.com', 'mundomail.net', 'munich.com', 'music.com', 'musician.org', 'musicscene.org', 'mybox.it', 'mycabin.com', 'mycampus.com', 'mycity.com', 'mycool.com', 'mydomain.com', 'mydotcomaddress.com', 'myfamily.com', 'mygo.com', 'myiris.com', 'mynamedot.com', 'mynetaddress.com', 'myownemail.com', 'myownfriends.com', 'mypad.com', 'mypersonalemail.com', 'myplace.com', 'myrealbox.com', 'myremarq.com', 'myself.com', 'mystupidjob.com', 'mythirdage.com', 'myway.com', 'myworldmail.com', 'n2.com', 'n2business.com', 'n2mail.com', 'n2software.com', 'nabc.biz', 'nafe.com', 'nagpal.net', 'nakedgreens.com', 'name.com', 'nameplanet.com', 'nandomail.com', 'naplesnews.net', 'naseej.com', 'nate.com', 'nativestar.net', 'nativeweb.net', 'naui.net', 'nauticom.net', 'naver.com', 'navigator.lv', 'navy.org', 'naz.com', 'nchoicemail.com', 'neeva.net', 'nemra1.com', 'nenter.com', 'neo.rr.com', 'nervhq.org', 'net-pager.net', 'net4b.pt', 'net4you.at', 'netbounce.com', 'netbroadcaster.com', 'netby.dk', 'netcenter-vn.net', 'netcom.ca', 'netcom.com', 'netcourrier.com', 'netexecutive.com', 'netexpressway.com', 'netgenie.com', 'netian.com', 'netizen.com.ar', 'netlane.com', 'netlimit.com', 'netmanor.com', 'netmongol.com', 'netnet.com.sg', 'netpiper.com', 'netposta.net', 'netradiomail.com', 'netralink.com', 'netscape.com', 'netscape.net', 'netscapeonline.co.uk', 'netsero.net', 'netspeedway.com', 'netsquare.com', 'netster.com', 'nettaxi.com', 'netzero.com', 'netzero.net', 'neuf.fr', 'newmail.com', 'newmail.net', 'newmail.ru', 'newyork.com', 'nexxmail.com', 'nfmail.com', 'nhmail.com', 'nicebush.com', 'nicegal.com', 'nicholastse.net', 'nicolastse.com', 'nightmail.com', 'nikopage.com', 'nimail.com', 'nirvanafan.com', 'noavar.com', 'norika-fujiwara.com', 'norikomail.com', 'northgates.net', 'nospammail.net', 'ntlworld.com', 'ntscan.com', 'ny.com', 'nyc.com', 'nycmail.com', 'nzoomail.com', 'o-tay.com', 'o2.co.uk', 'oaklandas-fan.com', 'oceanfree.net', 'oddpost.com', 'odmail.com', 'office-email.com', 'officedomain.com', 'offroadwarrior.com', 'oi.com.br', 'oicexchange.com', 'okbank.com', 'okhuman.com', 'okmad.com', 'okmagic.com', 'okname.net', 'okuk.com', 'oldies1041.com', 'oldies104mail.com', 'ole.com', 'olemail.com', 'olg.com', 'olympist.net', 'omaninfo.com', 'onebox.com', 'onenet.com.ar', 'onet.pl', 'oninet.pt', 'online.de', 'online.ie', 'onlinewiz.com', 'onmilwaukee.com', 'onobox.com', 'onvillage.com', 'operafan.com', 'operamail.com', 'optician.com', 'optonline.net', 'optusnet.com.au', 'orange.fr', 'orange.net', 'orbitel.bg', 'orgmail.net', 'osite.com.br', 'oso.com', 'otakumail.com', 'our-computer.com', 'our-office.com', 'our.st', 'ourbrisbane.com', 'ournet.md', 'outel.com', 'outgun.com', 'outlook.com', 'outlook.com.br', 'over-the-rainbow.com', 'ownmail.net', 'ozbytes.net.au', 'ozemail.com.au', 'pacbell.net', 'pacific-re.com', 'packersfan.com', 'pagina.de', 'pagons.org', 'pakistanoye.com', 'palestinemail.com', 'parkjiyoon.com', 'parrot.com', 'parsmail.com', 'partlycloudy.com', 'partynight.at', 'parvazi.com', 'passwordmail.com', 'pathfindermail.com', 'patmedia.net', 'pconnections.net', 'pcpostal.com', 'pcsrock.com', 'peachworld.com', 'pediatrician.com', 'pemail.net', 'penpen.com', 'peoplepc.com', 'peopleweb.com', 'perfectmail.com', 'personal.ro', 'personales.com', 'petml.com', 'pettypool.com', 'pezeshkpour.com', 'phayze.com', 'phreaker.net', 'pickupman.com', 'picusnet.com', 'pigpig.net', 'pinoymail.com', 'pipeline.com', 'piracha.net', 'pisem.net', 'planet-mail.com', 'planet.nl', 'planetaccess.com', 'planetall.com', 'planetarymotion.net', 'planetdirect.com', 'planetearthinter.net', 'planetout.com', 'plasa.com', 'playersodds.com', 'playful.com', 'plusmail.com.br', 'pmail.net', 'pobox.com', 'pobox.hu', 'pobox.sk', 'pochta.ru', 'poczta.fm', 'poetic.com', 'polbox.com', 'policeoffice.com', 'pool-sharks.com', 'poond.com', 'popaccount.com', 'popmail.com', 'popsmail.com', 'popstar.com', 'populus.net', 'portableoffice.com', 'portugalmail.com', 'portugalmail.pt', 'portugalnet.com', 'positive-thinking.com', 'post.com', 'post.cz', 'post.sk', 'posta.net', 'posta.ro', 'postaccesslite.com', 'postafree.com', 'postaweb.com', 'poste.it', 'postinbox.com', 'postino.ch', 'postmark.net', 'postmaster.co.uk', 'postpro.net', 'pousa.com', 'powerfan.com', 'praize.com', 'premiumservice.com', 'presidency.com', 'press.co.jp', 'priest.com', 'primposta.com', 'primposta.hu', 'pro.hu', 'probemail.com', 'prodigy.net', 'prodigy.net.mx', 'progetplus.it', 'programmer.net', 'programozo.hu', 'proinbox.com', 'project2k.com', 'prolaunch.com', 'promessage.com', 'prontomail.com', 'protonmail.com', 'psi.net', 'psv-supporter.com', 'ptd.net', 'public.usa.com', 'publicist.com', 'pulp-fiction.com', 'punkass.com', 'qatarmail.com', 'qis.net', 'qprfans.com', 'qq.com', 'qrio.com', 'quackquack.com', 'quakemail.com', 'qudsmail.com', 'quepasa.com', 'quickwebmail.com', 'quiklinks.com', 'quikmail.com', 'qwest.net', 'qwestoffice.net', 'r-o-o-t.com', 'r7.com', 'raakim.com', 'racedriver.com', 'racefanz.com', 'racingfan.com.au', 'racingmail.com', 'radicalz.com', 'ragingbull.com', 'rambler.ru', 'ranmamail.com', 'rastogi.net', 'ratt-n-roll.com', 'rattle-snake.com', 'ravearena.com', 'ravemail.com', 'razormail.com', 'rccgmail.org', 'rcn.com', 'realemail.net', 'reallyfast.biz', 'realradiomail.com', 'recycler.com', 'rediffmail.com', 'rediffmailpro.com', 'rednecks.com', 'redseven.de', 'redsfans.com', 'reggafan.com', 'registerednurses.com', 'repairman.com', 'reply.hu', 'representative.com', 'rescueteam.com', 'resumemail.com', 'rezai.com', 'richmondhill.com', 'rickymail.com', 'rin.ru', 'riopreto.com.br', 'rn.com', 'roadrunner.com', 'roanokemail.com', 'rock.com', 'rocketmail.com', 'rockfan.com', 'rodrun.com', 'rome.com', 'roosh.com', 'rotfl.com', 'roughnet.com', 'rr.com', 'rrohio.com', 'rsub.com', 'rubyridge.com', 'runbox.com', 'rushpost.com', 'ruttolibero.com', 'rvshop.com', 's-mail.com', 'sabreshockey.com', 'sacbeemail.com', 'safarimail.com', 'safe-mail.net', 'sagra.lu', 'sailormoon.com', 'saintly.com', 'saintmail.net', 'sale-sale-sale.com', 'salehi.net', 'samerica.com', 'samilan.net', 'sammimail.com', 'sanfranmail.com', 'sanook.com', 'sapo.pt', 'sativa.ro.org', 'saudia.com', 'sayhi.net', 'sbcglobal.net', 'scandalmail.com', 'schizo.com', 'schoolemail.com', 'schoolmail.com', 'schoolsucks.com', 'schweiz.org', 'sci.fi', 'science.com.au', 'scientist.com', 'scifianime.com', 'scottishmail.co.uk', 'scubadiving.com', 'seanet.com', 'searchwales.com', 'sebil.com', 'secret-police.com', 'secretservices.net', 'seductive.com', 'seekstoyboy.com', 'seguros.com.br', 'send.hu', 'sendme.cz', 'sent.com', 'sentrismail.com', 'serga.com.ar', 'servemymail.com', 'sesmail.com', 'sexmagnet.com', 'seznam.cz', 'sfr.fr', 'shahweb.net', 'shaniastuff.com', 'sharewaredevelopers.com', 'sharmaweb.com', 'shaw.ca', 'she.com', 'shootmail.com', 'shotgun.hu', 'shuf.com', 'sialkotcity.com', 'sialkotian.com', 'sialkotoye.com', 'sify.com', 'silkroad.net', 'sina.cn', 'sina.com', 'sinamail.com', 'singapore.com', 'singmail.com', 'singnet.com.sg', 'singpost.com', 'skafan.com', 'skim.com', 'skizo.hu', 'sky.com', 'skynet.be', 'slamdunkfan.com', 'slingshot.com', 'slo.net', 'slotter.com', 'smapxsmap.net', 'smileyface.comsmithemail.net', 'smoothmail.com', 'snail-mail.net', 'snail-mail.ney', 'snakemail.com', 'sndt.net', 'sneakemail.com', 'snet.net', 'snip.net', 'sniper.hu', 'snoopymail.com', 'snowboarding.com', 'snowdonia.net', 'socamail.com', 'socceramerica.net', 'soccermail.com', 'soccermomz.com', 'sociologist.com', 'softhome.net', 'sol.dk', 'soldier.hu', 'soon.com', 'soulfoodcookbook.com', 'sp.nl', 'space-bank.com', 'space-man.com', 'space-ship.com', 'space-travel.com', 'space.com', 'spaceart.com', 'spacebank.com', 'spacemart.com', 'spacetowns.com', 'spacewar.com', 'spamex.com', 'spartapiet.com', 'spazmail.com', 'speedemail.net', 'speedpost.net', 'speedrules.com', 'speedrulz.com', 'speedy.com.ar', 'spils.com', 'spinfinder.com', 'sportemail.com', 'sportsmail.com', 'sporttruckdriver.com', 'spray.no', 'spray.se', 'sprintmail.com', 'sprynet.com', 'spymac.com', 'srilankan.net', 'st-davids.net', 'stade.fr', 'stalag13.com', 'stargateradio.com', 'starmail.com', 'starmail.org', 'starmedia.com', 'starplace.com', 'starpower.net', 'starspath.com', 'start.com.au', 'starting-point.com', 'startrekmail.com', 'stealthmail.com', 'stockracer.com', 'stones.com', 'stopdropandroll.com', 'storksite.com', 'stribmail.com', 'strompost.com', 'strongguy.com', 'studentcenter.org', 'subnetwork.com', 'subram.com', 'sudanmail.net', 'suhabi.com', 'suisse.org', 'sukhumvit.net', 'sunpoint.net', 'sunrise-sunset.com', 'sunsgame.com', 'sunumail.sn', 'superdada.com', 'supereva.it', 'supermail.ru', 'surat.com', 'surf3.net', 'surfree.com', 'surfy.net', 'surimail.com', 'survivormail.com', 'swbell.net', 'sweb.cz', 'swiftdesk.com', 'swingeasyhithard.com', 'swingfan.com', 'swipermail.zzn.com', 'swirve.com', 'swissinfo.org', 'swissmail.net', 'switchboardmail.com', 'switzerland.org', 'swva.net', 'sx172.com', 'sympatico.ca', 'syom.com', 'syriamail.com', 't-online.de', 't2mail.com', 'takuyakimura.com', 'talk21.com', 'talkcity.com', 'talktalk.co.uk', 'tamil.com', 'tampabay.rr.com', 'tatanova.com', 'tbwt.com', 'tds.net', 'teamdiscovery.com', 'teamtulsa.net', 'tech4peace.org', 'techemail.com', 'techie.com', 'technisamail.co.za', 'technologist.com', 'techpointer.com', 'techscout.com', 'techseek.com', 'techspot.com', 'teenagedirtbag.com', 'telebot.com', 'telebot.net', 'teleline.es', 'telenet.be', 'telerymd.com', 'teleserve.dynip.com', 'teletu.it', 'telinco.net', 'telkom.net', 'telpage.net', 'telus.net', 'temtulsa.net', 'tenchiclub.com', 'tenderkiss.com', 'tennismail.com', 'terra.cl', 'terra.com', 'terra.com.ar', 'terra.com.br', 'terra.es', 'tfanus.com.er', 'tfz.net', 'thai.com', 'thaimail.com', 'thaimail.net', 'the-african.com', 'the-airforce.com', 'the-aliens.com', 'the-american.com', 'the-animal.com', 'the-army.com', 'the-astronaut.com', 'the-beauty.com', 'the-big-apple.com', 'the-biker.com', 'the-boss.com', 'the-brazilian.com', 'the-canadian.com', 'the-canuck.com', 'the-captain.com', 'the-chinese.com', 'the-country.com', 'the-cowboy.com', 'the-davis-home.com', 'the-dutchman.com', 'the-eagles.com', 'the-englishman.com', 'the-fastest.net', 'the-fool.com', 'the-frenchman.com', 'the-galaxy.net', 'the-genius.com', 'the-gentleman.com', 'the-german.com', 'the-gremlin.com', 'the-hooligan.com', 'the-italian.com', 'the-japanese.com', 'the-lair.com', 'the-madman.com', 'the-mailinglist.com', 'the-marine.com', 'the-master.com', 'the-mexican.com', 'the-ministry.com', 'the-monkey.com', 'the-newsletter.net', 'the-pentagon.com', 'the-police.com', 'the-prayer.com', 'the-professional.com', 'the-quickest.com', 'the-russian.com', 'the-snake.com', 'the-spaceman.com', 'the-stock-market.com', 'the-student.net', 'the-whitehouse.net', 'the-wild-west.com', 'the18th.com', 'thecoolguy.com', 'thecriminals.com', 'thedoghousemail.com', 'thedorm.com', 'theend.hu', 'theglobe.com', 'thegolfcourse.com', 'thegooner.com', 'theheadoffice.com', 'thelanddownunder.com', 'themillionare.net', 'theoffice.net', 'thepokerface.com', 'thepostmaster.net', 'theraces.com', 'theracetrack.com', 'thestreetfighter.com', 'theteebox.com', 'thewatercooler.com', 'thewebpros.co.uk', 'thewizzard.com', 'thewizzkid.com', 'thezhangs.net', 'thirdage.com', 'thisgirl.com', 'thoic.com', 'thundermail.com', 'tidni.com', 'timein.net', 'tin.it', 'tiscali.at', 'tiscali.be', 'tiscali.co.uk', 'tiscali.it', 'tiscali.lu', 'tiscali.se', 'tkcity.com', 'toolsource.com', 'topchat.com', 'topgamers.co.uk', 'topletter.com', 'topmail.com.ar', 'topsurf.com', 'topteam.bg', 'torchmail.com', 'tot.net', 'totalmusic.net', 'toughguy.net', 'tpg.com.au', 'travel.li', 'trialbytrivia.com', 'tritium.net', 'trmailbox.com', 'tropicalstorm.com', 'truckers.com', 'truckerz.com', 'truckracer.com', 'trust-me.com', 'tsamail.co.za', 'ttml.co.in', 'tunisiamail.com', 'turkey.com', 'tvcablenet.be', 'twinstarsmail.com', 'tycoonmail.com', 'typemail.com', 'u2club.com', 'uae.ac', 'uaemail.com', 'ubbi.com', 'ubbi.com.br', 'uboot.com', 'uk2k.com', 'uk2net.com', 'uk7.net', 'uk8.net', 'ukbuilder.com', 'ukcool.com', 'ukdreamcast.com', 'ukmail.org', 'ukmax.com', 'ukr.net', 'uku.co.uk', 'ultapulta.com', 'ultrapostman.com', 'ummah.org', 'umpire.com', 'unbounded.com', 'unforgettable.com', 'uni.de', 'unican.es', 'unihome.com', 'universal.pt', 'uno.ee', 'uno.it', 'unofree.it', 'unomail.com', 'uol.com.ar', 'uol.com.br', 'uol.com.co', 'uol.com.mx', 'uol.com.ve', 'uole.com', 'uole.com.ve', 'uolmail.com', 'uomail.com', 'upf.org', 'ureach.com', 'urgentmail.biz', 'usa.com', 'usa.net', 'usaaccess.net', 'usanetmail.com', 'usermail.com', 'usit.net', 'usma.net', 'usmc.net', 'uswestmail.net', 'uu.net', 'uymail.com', 'uyuyuy.com', 'v-sexi.com', 'vahoo.com', 'varbizmail.com', 'vcmail.com', 'velnet.co.uk', 'velocall.com', 'verizon.net', 'verizonmail.com', 'veryfast.biz', 'veryspeedy.net', 'videotron.ca', 'violinmakers.co.uk', 'vip.gr', 'vipmail.ru', 'virgilio.it', 'virgin.net', 'virginmedia.com', 'virtualactive.com', 'virtualmail.com', 'visitmail.com', 'visitweb.com', 'visto.com', 'visualcities.com', 'vivavelocity.com', 'vivianhsu.net', 'vjmail.com', 'vjtimail.com', 'vlmail.com', 'vnn.vn', 'voila.fr', 'volcanomail.com', 'voo.be', 'vote-democrats.com', 'vote-hillary.com', 'vote-republicans.com', 'vote4gop.org', 'votenet.com', 'vr9.com', 'w3.to', 'wahoye.com', 'wales2000.net', 'wam.co.za', 'wanadoo.co.uk', 'wanadoo.es', 'wanadoo.fr', 'warmmail.com', 'warpmail.net', 'warrior.hu', 'waumail.com', 'wbdet.com', 'wearab.net', 'web-mail.com.ar', 'web-police.com', 'web.de', 'webave.com', 'webcammail.com', 'webcity.ca', 'webdream.com', 'webinbox.com', 'webindia123.com', 'webjump.com', 'webmail.bellsouth.net', 'webmail.co.yu', 'webmail.co.za', 'webmail.hu', 'webmails.com', 'webprogramming.com', 'webstable.net', 'webstation.com', 'websurfer.co.za', 'webtopmail.com', 'weedmail.com', 'weekmail.com', 'weekonline.com', 'wehshee.com', 'welsh-lady.com', 'whale-mail.com', 'whartontx.com', 'wheelweb.com', 'whipmail.com', 'whoever.com', 'whoopymail.com', 'wickedmail.com', 'wideopenwest.com', 'wildmail.com', 'windrivers.net', 'windstream.net', 'wingnutz.com', 'winmail.com.au', 'winning.com', 'witty.com', 'wiz.cc', 'wkbwmail.com', 'woh.rr.com', 'wolf-web.com', 'wombles.com', 'wonder-net.com', 'wongfaye.com', 'wooow.it', 'workmail.com', 'worldemail.com', 'worldmailer.com', 'worldnet.att.net', 'wosaddict.com', 'wouldilie.com', 'wow.com', 'wowgirl.com', 'wowmail.com', 'wowway.com', 'wp.pl', 'wptamail.com', 'wrestlingpages.com', 'wrexham.net', 'writeme.com', 'writemeback.com', 'wrongmail.com', 'wtvhmail.com', 'wwdg.com', 'www.com', 'www2000.net', 'wx88.net', 'wxs.net', 'wyrm.supernews.com', 'x-mail.net', 'x-networks.net', 'x5g.com', 'xmastime.com', 'xmsg.com', 'xoom.com', 'xoommail.com', 'xpressmail.zzn.com', 'xsmail.com', 'xuno.com', 'xzapmail.com', 'ya.ru', 'yada-yada.com', 'yaho.com', 'yahoo.ca', 'yahoo.co.id', 'yahoo.co.in', 'yahoo.co.jp', 'yahoo.co.kr', 'yahoo.co.nz', 'yahoo.co.uk', 'yahoo.com', 'yahoo.com.ar', 'yahoo.com.au', 'yahoo.com.br', 'yahoo.com.cn', 'yahoo.com.hk', 'yahoo.com.is', 'yahoo.com.mx', 'yahoo.com.ph', 'yahoo.com.ru', 'yahoo.com.sg', 'yahoo.de', 'yahoo.dk', 'yahoo.es', 'yahoo.fr', 'yahoo.ie', 'yahoo.in', 'yahoo.it', 'yahoo.jp', 'yahoo.ru', 'yahoo.se', 'yahoofs.com', 'yalla.com', 'yalla.com.lb', 'yalook.com', 'yam.com', 'yandex.com', 'yandex.ru', 'yapost.com', 'yawmail.com', 'yclub.com', 'yebox.com', 'yehaa.com', 'yehey.com', 'yemenmail.com', 'yepmail.net', 'yesbox.net', 'ygm.com', 'yifan.net', 'ymail.com', 'ynnmail.com', 'yogotemail.com', 'yopolis.com', 'youareadork.com', 'youpy.com', 'your-house.com', 'yourinbox.com', 'yourlover.net', 'yourname.ddns.org', 'yourname.freeservers.com', 'yournightmare.com', 'yours.com', 'yourssincerely.com', 'yoursubdomain.findhere.com', 'yoursubdomain.zzn.com', 'yourteacher.net', 'yourwap.com', 'youvegotmail.net', 'yuuhuu.net', 'yyhmail.com', 'zahadum.com', 'zcities.com', 'zdnetmail.com', 'zeeks.com', 'zeepost.nl', 'zensearch.net', 'zhaowei.net', 'zionweb.org', 'zip.net', 'zipido.com', 'ziplink.net', 'ziplip.com', 'zipmail.com', 'zipmail.com.br', 'zipmax.com', 'zmail.ru', 'zoho.com', 'zonnet.nl', 'zoominternet.net', 'zubee.com', 'zuvio.com', 'zuzzurello.com', 'zwallet.com', 'zybermail.com', 'zydecofan.com', 'zzn.com', 'zzom.co.uk'];
|
|
395
422
|
|
|
396
|
-
const
|
|
423
|
+
const doA11yValidation = (v, field, formValidationSent) => {
|
|
424
|
+
const error = doValidateField(field, v);
|
|
425
|
+
|
|
426
|
+
if (JSON.stringify(field.validations) !== '{}') {
|
|
427
|
+
if (((v === null || v === void 0 ? void 0 : v.length) >= 1 || formValidationSent) && (error === null || error === void 0 ? void 0 : error.fieldId) === field.id) return 'true';else if ((v === null || v === void 0 ? void 0 : v.length) >= 1) return 'false';else return '';
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
const doValidateField = (field, value) => {
|
|
397
431
|
var _field$validations, _field$validations$re;
|
|
398
432
|
|
|
399
433
|
const isRequired = field.validations && field.validations.required;
|
|
@@ -404,7 +438,7 @@ const validateInput = (field, value) => {
|
|
|
404
438
|
const decimal = field.dataType === 'decimal';
|
|
405
439
|
const isBusinessEmail = field.id === 'businessEmail';
|
|
406
440
|
|
|
407
|
-
if (isRequired &&
|
|
441
|
+
if (isRequired && (value === null || value === void 0 ? void 0 : value.length) <= 0) {
|
|
408
442
|
var _isRequired$message, _field$name;
|
|
409
443
|
|
|
410
444
|
const errorMessage = (isRequired === null || isRequired === void 0 ? void 0 : (_isRequired$message = isRequired.message) === null || _isRequired$message === void 0 ? void 0 : _isRequired$message['en-GB']) || `${(_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name['en-GB']} is required`;
|
|
@@ -435,7 +469,7 @@ const validateInput = (field, value) => {
|
|
|
435
469
|
/** Check Regex and Business Emails */
|
|
436
470
|
|
|
437
471
|
|
|
438
|
-
if (hasRegex &&
|
|
472
|
+
if (hasRegex && value.length >= 1) {
|
|
439
473
|
var _r$message;
|
|
440
474
|
|
|
441
475
|
const r = field.validations.regex;
|
|
@@ -496,7 +530,64 @@ const isBusinessEmailValid = (field, value) => {
|
|
|
496
530
|
if (!domains.includes(domain)) return true;else return false;
|
|
497
531
|
};
|
|
498
532
|
|
|
499
|
-
const
|
|
533
|
+
const doCreateMessage = (type, minLength, maxLength, currentLength, defaultLanguage) => {
|
|
534
|
+
if (!type) return null;
|
|
535
|
+
|
|
536
|
+
switch (type) {
|
|
537
|
+
case 'min':
|
|
538
|
+
{
|
|
539
|
+
if (!minLength) return;
|
|
540
|
+
const minLengthVal = minLength && minLength.value;
|
|
541
|
+
const errorMessage = minLength && minLength.message && minLength.message[defaultLanguage];
|
|
542
|
+
const minText = `Minimum of ${minLengthVal.toString()} characters`;
|
|
543
|
+
|
|
544
|
+
if (errorMessage) {
|
|
545
|
+
return errorMessage;
|
|
546
|
+
} else {
|
|
547
|
+
return minText;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
case 'max':
|
|
552
|
+
{
|
|
553
|
+
if (!maxLength) return;
|
|
554
|
+
const maxLengthVal = maxLength && maxLength.value;
|
|
555
|
+
const errorMessage = maxLength && maxLength.message && maxLength.message[defaultLanguage];
|
|
556
|
+
const maxText = `Maximum of ${maxLengthVal.toString()} characters`;
|
|
557
|
+
|
|
558
|
+
if (errorMessage) {
|
|
559
|
+
return errorMessage;
|
|
560
|
+
} else {
|
|
561
|
+
return maxText;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
case 'between':
|
|
566
|
+
{
|
|
567
|
+
if (!maxLength || !minLength) return;
|
|
568
|
+
const minLengthVal = minLength && minLength.value;
|
|
569
|
+
const maxLengthVal = maxLength && maxLength.value;
|
|
570
|
+
const errorMessage = minLength && minLength.message && minLength.message[defaultLanguage];
|
|
571
|
+
const rangeText = `Between ${minLengthVal.toString()}-${maxLengthVal.toString()} characters)`;
|
|
572
|
+
|
|
573
|
+
if (errorMessage) {
|
|
574
|
+
return errorMessage;
|
|
575
|
+
} else if (currentLength < minLengthVal) {
|
|
576
|
+
return `${(minLengthVal - currentLength).toString()} character${minLengthVal > 1 ? 's' : ''} required ${rangeText}`;
|
|
577
|
+
} else if (currentLength > maxLengthVal) {
|
|
578
|
+
return `${(currentLength - maxLengthVal).toString()} character${currentLength - maxLengthVal > 1 ? 's' : ''} over ${rangeText}`;
|
|
579
|
+
} else if (currentLength) {
|
|
580
|
+
return `${(maxLengthVal - currentLength).toString()} characters remaining ${rangeText}`;
|
|
581
|
+
} else {
|
|
582
|
+
return rangeText;
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
default:
|
|
587
|
+
return null;
|
|
588
|
+
}
|
|
589
|
+
};
|
|
590
|
+
const getFieldType = field => {
|
|
500
591
|
var _field$editor, _field$editor$propert;
|
|
501
592
|
|
|
502
593
|
if (!field) return null;
|
|
@@ -524,26 +615,26 @@ const MakeFieldType = field => {
|
|
|
524
615
|
}
|
|
525
616
|
};
|
|
526
617
|
|
|
527
|
-
const
|
|
618
|
+
const sagas = [effects.takeEvery(SUBMIT_FORM_SUCCESS, onFormSuccess), effects.takeEvery(SUBMIT_FORM_FOR_VALIDATION, doValidateForm), effects.takeEvery(SUBMIT_FORM, onSubmitForm), effects.takeEvery(SET_FORM_ID, doFetchForm), effects.takeLatest(VALIDATE_FIELD, onValidateField$1), effects.takeEvery(PAGE_FORWARD, doTogglePage), effects.takeEvery(PAGE_BACK, doTogglePage), effects.takeEvery(SET_FORM_DATA, getEntryPickerData), effects.takeLatest(SET_FORM_DATA, setDefaultValueFields)];
|
|
528
619
|
|
|
529
|
-
function*
|
|
620
|
+
function* doValidateForm(action) {
|
|
530
621
|
const {
|
|
531
622
|
formId
|
|
532
623
|
} = action;
|
|
533
|
-
yield
|
|
624
|
+
yield onValidateAllFields(formId);
|
|
534
625
|
yield effects.put({
|
|
535
626
|
type: SUBMIT_FORM,
|
|
536
627
|
formId
|
|
537
628
|
});
|
|
538
629
|
}
|
|
539
630
|
|
|
540
|
-
function*
|
|
631
|
+
function* onValidateField$1(action) {
|
|
541
632
|
const {
|
|
542
633
|
formId,
|
|
543
634
|
id,
|
|
544
635
|
value
|
|
545
636
|
} = action;
|
|
546
|
-
yield effects.call(
|
|
637
|
+
if ((value === null || value === void 0 ? void 0 : value.length) >= 1) yield effects.call(onValidateSingleField, formId, id, value);
|
|
547
638
|
}
|
|
548
639
|
|
|
549
640
|
function* validateGroupfields(formId, groupId) {
|
|
@@ -561,7 +652,7 @@ function* validateGroupfields(formId, groupId) {
|
|
|
561
652
|
val = postData[field.id];
|
|
562
653
|
}
|
|
563
654
|
|
|
564
|
-
const err =
|
|
655
|
+
const err = doValidateField(field, val);
|
|
565
656
|
if (err) newErrors.push(err);
|
|
566
657
|
});
|
|
567
658
|
yield effects.put({
|
|
@@ -571,7 +662,7 @@ function* validateGroupfields(formId, groupId) {
|
|
|
571
662
|
});
|
|
572
663
|
}
|
|
573
664
|
|
|
574
|
-
function*
|
|
665
|
+
function* onValidateAllFields(formId) {
|
|
575
666
|
const state = yield effects.select();
|
|
576
667
|
const selectPostData = makeSelectFormPostData(formId);
|
|
577
668
|
const postData = selectPostData(state);
|
|
@@ -585,7 +676,7 @@ function* validateAllfields(formId) {
|
|
|
585
676
|
val = postData[field.id];
|
|
586
677
|
}
|
|
587
678
|
|
|
588
|
-
const err =
|
|
679
|
+
const err = doValidateField(field, val);
|
|
589
680
|
if (err) newErrors.push(err);
|
|
590
681
|
});
|
|
591
682
|
yield effects.put({
|
|
@@ -595,7 +686,7 @@ function* validateAllfields(formId) {
|
|
|
595
686
|
});
|
|
596
687
|
}
|
|
597
688
|
|
|
598
|
-
function*
|
|
689
|
+
function* onValidateSingleField(formId, fieldId, value) {
|
|
599
690
|
const state = yield effects.select();
|
|
600
691
|
const selectFormFields = makeSelectFormFields(formId);
|
|
601
692
|
const fields = selectFormFields(state);
|
|
@@ -610,7 +701,7 @@ function* validateSingleField(formId, fieldId, value) {
|
|
|
610
701
|
newErrors.push(error);
|
|
611
702
|
}
|
|
612
703
|
});
|
|
613
|
-
const err =
|
|
704
|
+
const err = doValidateField(fieldData, value);
|
|
614
705
|
if (err) newErrors.push(err);
|
|
615
706
|
yield effects.put({
|
|
616
707
|
type: SET_FIELD_ERROR,
|
|
@@ -619,7 +710,7 @@ function* validateSingleField(formId, fieldId, value) {
|
|
|
619
710
|
});
|
|
620
711
|
}
|
|
621
712
|
|
|
622
|
-
function*
|
|
713
|
+
function* doTogglePage(action) {
|
|
623
714
|
const {
|
|
624
715
|
formId,
|
|
625
716
|
pageIndex
|
|
@@ -641,7 +732,7 @@ function* togglePage(action) {
|
|
|
641
732
|
});
|
|
642
733
|
}
|
|
643
734
|
|
|
644
|
-
function*
|
|
735
|
+
function* doFetchForm(action) {
|
|
645
736
|
var _schema$groups;
|
|
646
737
|
|
|
647
738
|
const formId = action.formId;
|
|
@@ -664,7 +755,7 @@ function* fetchForm(action) {
|
|
|
664
755
|
const submitButtonText = schema.fields.find(f => f.id === 'submitButtonText');
|
|
665
756
|
const fields = schema === null || schema === void 0 ? void 0 : schema.fields.map(field => {
|
|
666
757
|
return { ...field,
|
|
667
|
-
type:
|
|
758
|
+
type: getFieldType(field)
|
|
668
759
|
};
|
|
669
760
|
});
|
|
670
761
|
yield effects.put({
|
|
@@ -680,7 +771,7 @@ function* fetchForm(action) {
|
|
|
680
771
|
}
|
|
681
772
|
}
|
|
682
773
|
|
|
683
|
-
function*
|
|
774
|
+
function* onFormSuccess(action) {
|
|
684
775
|
const state = yield effects.select();
|
|
685
776
|
const selectFormFields = makeSelectFormFields(action.formId);
|
|
686
777
|
const fields = selectFormFields(state);
|
|
@@ -700,7 +791,7 @@ function* formSuccess(action) {
|
|
|
700
791
|
}
|
|
701
792
|
}
|
|
702
793
|
|
|
703
|
-
function*
|
|
794
|
+
function* onSubmitForm(action) {
|
|
704
795
|
const {
|
|
705
796
|
formId
|
|
706
797
|
} = action || {};
|
|
@@ -802,7 +893,7 @@ const action = (type, payload = {}) => ({
|
|
|
802
893
|
...payload
|
|
803
894
|
});
|
|
804
895
|
|
|
805
|
-
const
|
|
896
|
+
const onSubmit = formId => action(SUBMIT_FORM_FOR_VALIDATION, {
|
|
806
897
|
formId
|
|
807
898
|
});
|
|
808
899
|
const setFormId = formId => action(SET_FORM_ID, {
|
|
@@ -825,66 +916,89 @@ const setDateRangeValues = (formId, id, dateType, value) => action(SET_DATE_RANG
|
|
|
825
916
|
dateType,
|
|
826
917
|
value
|
|
827
918
|
});
|
|
828
|
-
const
|
|
919
|
+
const onValidateField = (formId, id, value) => action(VALIDATE_FIELD, {
|
|
829
920
|
formId,
|
|
830
921
|
id,
|
|
831
922
|
value
|
|
832
923
|
});
|
|
833
|
-
const
|
|
924
|
+
const doTogglePageForward = (formId, pageIndex) => action(PAGE_FORWARD, {
|
|
834
925
|
formId,
|
|
835
926
|
pageIndex
|
|
836
927
|
});
|
|
837
|
-
const
|
|
928
|
+
const doTogglePageBack = (formId, pageIndex) => action(PAGE_BACK, {
|
|
838
929
|
formId,
|
|
839
930
|
pageIndex
|
|
840
931
|
});
|
|
841
932
|
const actions = {
|
|
842
|
-
|
|
933
|
+
onSubmit,
|
|
843
934
|
setFormId,
|
|
844
935
|
setValue,
|
|
845
936
|
setCheckboxValue,
|
|
846
937
|
setDateRangeValues,
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
938
|
+
onValidateField,
|
|
939
|
+
doTogglePageForward,
|
|
940
|
+
doTogglePageBack
|
|
850
941
|
};
|
|
851
942
|
|
|
852
|
-
|
|
853
|
-
const open_teal = '#37BFA7'; //Brand dark
|
|
943
|
+
const ThemeContext = /*#__PURE__*/React.createContext();
|
|
854
944
|
|
|
855
|
-
const
|
|
945
|
+
const ThemeProvider = ({
|
|
946
|
+
children,
|
|
947
|
+
theme
|
|
948
|
+
}) => {
|
|
949
|
+
return /*#__PURE__*/React__default["default"].createElement(ThemeContext.Provider, {
|
|
950
|
+
value: ""
|
|
951
|
+
}, /*#__PURE__*/React__default["default"].createElement(styled.ThemeProvider, {
|
|
952
|
+
theme: theme
|
|
953
|
+
}, children));
|
|
954
|
+
};
|
|
856
955
|
|
|
857
|
-
|
|
858
|
-
|
|
956
|
+
ThemeProvider.propTypes = {
|
|
957
|
+
children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].arrayOf(PropTypes__default["default"].node), PropTypes__default["default"].node]),
|
|
958
|
+
theme: PropTypes__default["default"].object
|
|
959
|
+
};
|
|
859
960
|
|
|
860
|
-
const base_white = '#FFF';
|
|
861
|
-
const empress_gray = '#757575';
|
|
862
961
|
const colors = {
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
962
|
+
white: '#fff',
|
|
963
|
+
black: '#000',
|
|
964
|
+
dark_grey_lighter: '#757575',
|
|
965
|
+
dark_grey_lightest: '#595959',
|
|
966
|
+
dark_grey_light: '#444',
|
|
967
|
+
dark_grey_dark: '#333',
|
|
968
|
+
dark_grey_darker: '#262626',
|
|
969
|
+
dark_grey_darkest: '#1F1F1F',
|
|
970
|
+
light_grey_lightest: '#FAFAFA',
|
|
971
|
+
light_grey_lighter: '#FDFDFD',
|
|
972
|
+
light_grey_light: '#F0F0F0',
|
|
973
|
+
light_grey_dark: '#DBDBDB',
|
|
974
|
+
light_grey_darker: '#CCCCCC',
|
|
975
|
+
light_grey_darkest: '#949494',
|
|
976
|
+
green_lightest: '#D5FCE9',
|
|
977
|
+
green_lighter: '#A3F2CD',
|
|
978
|
+
green_light: '#74D8A8',
|
|
979
|
+
green_dark: '#0FCE72',
|
|
980
|
+
green_darker: '#008A48',
|
|
981
|
+
green_darkest: '#008545',
|
|
982
|
+
red_lightest: '#F9D7D7',
|
|
983
|
+
red_lighter: '#F4B5B5',
|
|
984
|
+
red_light: '#F67979',
|
|
985
|
+
red_dark: '#d42d2d',
|
|
986
|
+
red_darker: '#ca2121',
|
|
987
|
+
red_darkest: '#B71A1A'
|
|
988
|
+
};
|
|
989
|
+
|
|
990
|
+
const defaultTheme = {
|
|
991
|
+
colors
|
|
879
992
|
};
|
|
880
993
|
|
|
881
994
|
const FormStyled = styled__default["default"].form.withConfig({
|
|
882
|
-
displayName: "
|
|
883
|
-
componentId: "sc-
|
|
995
|
+
displayName: "formstyled__FormStyled",
|
|
996
|
+
componentId: "sc-1t4n03w-0"
|
|
884
997
|
})(["", ";"], ({
|
|
998
|
+
theme,
|
|
885
999
|
useDefaultTheme
|
|
886
1000
|
}) => {
|
|
887
|
-
return styled.css(["", ""], useDefaultTheme && styled.css(["> div:not(:first-child){margin-top:16px;}padding:0 16px;.success-message{font-size:18px;margin:0;}.visuallyHidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}.loading{display:block;margin:24px auto;}label{display:inline-block;.isRequired{color:", ";}}input,textarea,select{display:block;font-family:inherit;background-color:", ";border-radius:3px;border:1px solid ", ";height:40px;padding:8px;margin-top:4px;
|
|
1001
|
+
return styled.css(["", ""], useDefaultTheme && styled.css(["> div:not(:first-child){margin-top:16px;}padding:0 16px;.success-message{font-size:18px;margin:0;}.visuallyHidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}.loading{display:block;margin:24px auto;}label{display:inline-block;.isRequired{color:", ";}}input,textarea,select{display:block;font-family:inherit;background-color:", ";border-radius:3px;border:1px solid ", ";height:40px;padding:8px;margin-top:4px;width:100%;}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px ", " inset;}textarea{height:200px;resize:none;}[aria-invalid='false']{background:", ";border:1px solid ", ";&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus,&:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px", " inset;}}[aria-invalid='true']{background:", ";border:1px solid ", ";&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus,&:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px", " inset;}}input ~ .svg{position:absolute;right:8px;top:50%;transform:translateY(-50%);}textarea ~ .svg{position:absolute;right:8px;top:8px;}"], theme.colors.red_darker, theme.colors.white, theme.colors.light_grey_darkest, theme.colors.white, theme.colors.green_lightest, theme.colors.green_darker, theme.colors.green_lightest, theme.colors.red_lightest, theme.colors.red_darker, theme.colors.red_lightest));
|
|
888
1002
|
});
|
|
889
1003
|
|
|
890
1004
|
const Label = ({
|
|
@@ -912,74 +1026,15 @@ Label.propTypes = {
|
|
|
912
1026
|
isHidden: PropTypes__default["default"].bool
|
|
913
1027
|
};
|
|
914
1028
|
|
|
915
|
-
const CreateMessage = (type, minLength, maxLength, currentLength, defaultLanguage) => {
|
|
916
|
-
if (!type) return null;
|
|
917
|
-
|
|
918
|
-
switch (type) {
|
|
919
|
-
case 'min':
|
|
920
|
-
{
|
|
921
|
-
if (!minLength) return;
|
|
922
|
-
const minLengthVal = minLength && minLength.value;
|
|
923
|
-
const errorMessage = minLength && minLength.message && minLength.message[defaultLanguage];
|
|
924
|
-
const minText = `Minimum of ${minLengthVal.toString()} characters`;
|
|
925
|
-
|
|
926
|
-
if (errorMessage) {
|
|
927
|
-
return errorMessage;
|
|
928
|
-
} else {
|
|
929
|
-
return minText;
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
|
-
|
|
933
|
-
case 'max':
|
|
934
|
-
{
|
|
935
|
-
if (!maxLength) return;
|
|
936
|
-
const maxLengthVal = maxLength && maxLength.value;
|
|
937
|
-
const errorMessage = maxLength && maxLength.message && maxLength.message[defaultLanguage];
|
|
938
|
-
const maxText = `Maximum of ${maxLengthVal.toString()} characters`;
|
|
939
|
-
|
|
940
|
-
if (errorMessage) {
|
|
941
|
-
return errorMessage;
|
|
942
|
-
} else {
|
|
943
|
-
return maxText;
|
|
944
|
-
}
|
|
945
|
-
}
|
|
946
|
-
|
|
947
|
-
case 'between':
|
|
948
|
-
{
|
|
949
|
-
if (!maxLength || !minLength) return;
|
|
950
|
-
const minLengthVal = minLength && minLength.value;
|
|
951
|
-
const maxLengthVal = maxLength && maxLength.value;
|
|
952
|
-
const errorMessage = minLength && minLength.message && minLength.message[defaultLanguage];
|
|
953
|
-
const rangeText = `Between ${minLengthVal.toString()}-${maxLengthVal.toString()} characters)`;
|
|
954
|
-
|
|
955
|
-
if (errorMessage) {
|
|
956
|
-
return errorMessage;
|
|
957
|
-
} else if (currentLength < minLengthVal) {
|
|
958
|
-
return `${(minLengthVal - currentLength).toString()} character${minLengthVal > 1 ? 's' : ''} required ${rangeText}`;
|
|
959
|
-
} else if (currentLength > maxLengthVal) {
|
|
960
|
-
return `${(currentLength - maxLengthVal).toString()} character${currentLength - maxLengthVal > 1 ? 's' : ''} over ${rangeText}`;
|
|
961
|
-
} else if (currentLength) {
|
|
962
|
-
return `${(maxLengthVal - currentLength).toString()} characters remaining ${rangeText}`;
|
|
963
|
-
} else {
|
|
964
|
-
return rangeText;
|
|
965
|
-
}
|
|
966
|
-
}
|
|
967
|
-
|
|
968
|
-
default:
|
|
969
|
-
return null;
|
|
970
|
-
}
|
|
971
|
-
};
|
|
972
|
-
|
|
973
1029
|
const CharacterLimitStyled = styled__default["default"].div.withConfig({
|
|
974
|
-
displayName: "
|
|
975
|
-
componentId: "sc-
|
|
1030
|
+
displayName: "characterLimit__CharacterLimitStyled",
|
|
1031
|
+
componentId: "sc-4gr2nf-0"
|
|
976
1032
|
})(["", ";"], ({
|
|
977
1033
|
theme,
|
|
978
1034
|
useDefaultTheme
|
|
979
1035
|
}) => {
|
|
980
1036
|
return styled.css(["display:block;", ""], useDefaultTheme && styled.css(["font-size:14px;color:", ";font-weight:400;line-height:24px;text-align:right;max-width:320px;width:100%;"], theme.colors.neutrals.empress_gray));
|
|
981
1037
|
});
|
|
982
|
-
|
|
983
1038
|
const CharacterLimit = ({
|
|
984
1039
|
className,
|
|
985
1040
|
value,
|
|
@@ -1002,9 +1057,8 @@ const CharacterLimit = ({
|
|
|
1002
1057
|
return /*#__PURE__*/React__default["default"].createElement(CharacterLimitStyled, {
|
|
1003
1058
|
className: className,
|
|
1004
1059
|
useDefaultTheme: useDefaultTheme
|
|
1005
|
-
},
|
|
1060
|
+
}, doCreateMessage(type, minLength, maxLength, currentLength, defaultLanguage));
|
|
1006
1061
|
};
|
|
1007
|
-
|
|
1008
1062
|
CharacterLimit.propTypes = {
|
|
1009
1063
|
validations: PropTypes__default["default"].object,
|
|
1010
1064
|
value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object]),
|
|
@@ -1013,36 +1067,9 @@ CharacterLimit.propTypes = {
|
|
|
1013
1067
|
useDefaultTheme: PropTypes__default["default"].bool
|
|
1014
1068
|
};
|
|
1015
1069
|
|
|
1016
|
-
const ErrorMessageStyled = styled__default["default"].div.withConfig({
|
|
1017
|
-
displayName: "ErrorMessage__ErrorMessageStyled",
|
|
1018
|
-
componentId: "sc-1vewdiu-0"
|
|
1019
|
-
})(["", ";"], ({
|
|
1020
|
-
theme,
|
|
1021
|
-
useDefaultTheme
|
|
1022
|
-
}) => {
|
|
1023
|
-
return styled.css(["", ""], useDefaultTheme && styled.css(["display:block;margin-top:8px;color:", ";"], theme.colors.error));
|
|
1024
|
-
});
|
|
1025
|
-
|
|
1026
|
-
const ErrorMessage = ({
|
|
1027
|
-
className,
|
|
1028
|
-
message,
|
|
1029
|
-
useDefaultTheme
|
|
1030
|
-
}) => {
|
|
1031
|
-
return /*#__PURE__*/React__default["default"].createElement(ErrorMessageStyled, {
|
|
1032
|
-
className: className,
|
|
1033
|
-
useDefaultTheme: useDefaultTheme
|
|
1034
|
-
}, message);
|
|
1035
|
-
};
|
|
1036
|
-
|
|
1037
|
-
ErrorMessage.propTypes = {
|
|
1038
|
-
className: PropTypes__default["default"].string,
|
|
1039
|
-
message: PropTypes__default["default"].string.isRequired,
|
|
1040
|
-
useDefaultTheme: PropTypes__default["default"].bool
|
|
1041
|
-
};
|
|
1042
|
-
|
|
1043
1070
|
const TextfieldStyled = styled__default["default"].div.withConfig({
|
|
1044
|
-
displayName: "
|
|
1045
|
-
componentId: "sc-
|
|
1071
|
+
displayName: "textfield__TextfieldStyled",
|
|
1072
|
+
componentId: "sc-whkw86-0"
|
|
1046
1073
|
})(["", ";"], ({
|
|
1047
1074
|
isHidden
|
|
1048
1075
|
}) => {
|
|
@@ -1051,75 +1078,105 @@ const TextfieldStyled = styled__default["default"].div.withConfig({
|
|
|
1051
1078
|
|
|
1052
1079
|
const Textfield = ({
|
|
1053
1080
|
className,
|
|
1081
|
+
field,
|
|
1054
1082
|
formId,
|
|
1055
1083
|
id,
|
|
1056
1084
|
label,
|
|
1057
1085
|
type,
|
|
1058
1086
|
setValue,
|
|
1059
|
-
|
|
1087
|
+
onValidateField,
|
|
1060
1088
|
validations,
|
|
1061
1089
|
defaultValue,
|
|
1062
1090
|
defaultLanguage,
|
|
1063
1091
|
placeholder,
|
|
1064
1092
|
isHidden,
|
|
1065
|
-
errors,
|
|
1066
1093
|
useDefaultTheme
|
|
1067
1094
|
}) => {
|
|
1068
|
-
const [
|
|
1095
|
+
const [hasCharLimit, setCharLimit] = React.useState(false);
|
|
1069
1096
|
const isRequired = validations && validations.required ? true : false;
|
|
1070
1097
|
const placeholderText = placeholder && placeholder.properties && placeholder.properties.placeholderText && placeholder.properties.placeholderText[defaultLanguage];
|
|
1071
1098
|
const defaultValueText = defaultValue && defaultValue[defaultLanguage] ? defaultValue[defaultLanguage] : defaultValue;
|
|
1072
|
-
|
|
1073
|
-
const
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
setShowCharLimit(false);
|
|
1080
|
-
};
|
|
1081
|
-
|
|
1082
|
-
const _handleFocus = () => {
|
|
1083
|
-
setShowCharLimit(true);
|
|
1084
|
-
};
|
|
1085
|
-
|
|
1099
|
+
const [a11yInvalid, setA11yInvalid] = React.useState('');
|
|
1100
|
+
const [_, setTextfieldValue] = React.useState(defaultValueText || '');
|
|
1101
|
+
const selectFormValidationSent = makeSelectFormValidationSent(formId);
|
|
1102
|
+
const formValidationSent = reactRedux.useSelector(selectFormValidationSent);
|
|
1103
|
+
React.useEffect(() => {
|
|
1104
|
+
if (formValidationSent) setA11yInvalid(doA11yValidation(_, field, true));
|
|
1105
|
+
}, [formValidationSent]);
|
|
1086
1106
|
return /*#__PURE__*/React__default["default"].createElement(TextfieldStyled, {
|
|
1087
|
-
className:
|
|
1107
|
+
className: className,
|
|
1088
1108
|
isHidden: isHidden
|
|
1089
1109
|
}, /*#__PURE__*/React__default["default"].createElement(Label, {
|
|
1090
1110
|
id: id,
|
|
1091
1111
|
label: label,
|
|
1092
1112
|
isRequired: isRequired,
|
|
1093
|
-
className: "
|
|
1094
|
-
}),
|
|
1113
|
+
className: "text-field__label"
|
|
1114
|
+
}), hasCharLimit && /*#__PURE__*/React__default["default"].createElement(CharacterLimit, {
|
|
1095
1115
|
value: defaultValue,
|
|
1096
1116
|
validations: validations,
|
|
1097
1117
|
defaultLanguage: defaultLanguage,
|
|
1098
1118
|
useDefaultTheme: useDefaultTheme
|
|
1099
|
-
}), /*#__PURE__*/React__default["default"].createElement("
|
|
1100
|
-
className:
|
|
1119
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1120
|
+
className: "text-field__input--wrapper",
|
|
1121
|
+
style: {
|
|
1122
|
+
position: 'relative'
|
|
1123
|
+
}
|
|
1124
|
+
}, /*#__PURE__*/React__default["default"].createElement("input", {
|
|
1125
|
+
className: "text-field__input",
|
|
1101
1126
|
type: type,
|
|
1102
1127
|
defaultValue: defaultValueText,
|
|
1103
1128
|
placeholder: placeholderText,
|
|
1129
|
+
"aria-invalid": a11yInvalid,
|
|
1104
1130
|
id: id,
|
|
1105
1131
|
name: id,
|
|
1106
|
-
onChange: e =>
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1132
|
+
onChange: e => {
|
|
1133
|
+
setTextfieldValue(e.target.value);
|
|
1134
|
+
setValue(formId, id, e.target.value);
|
|
1135
|
+
},
|
|
1136
|
+
onBlur: e => {
|
|
1137
|
+
onValidateField(formId, id, e.target.value);
|
|
1138
|
+
setCharLimit(false);
|
|
1139
|
+
setA11yInvalid(doA11yValidation(e.target.value, field, formValidationSent));
|
|
1140
|
+
},
|
|
1141
|
+
onFocus: () => {
|
|
1142
|
+
setCharLimit(true);
|
|
1143
|
+
}
|
|
1144
|
+
}), a11yInvalid == 'true' && /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1145
|
+
className: "svg",
|
|
1146
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1147
|
+
focusable: "false",
|
|
1148
|
+
"aria-hidden": "true",
|
|
1149
|
+
role: "presentation",
|
|
1150
|
+
width: "16",
|
|
1151
|
+
height: "16",
|
|
1152
|
+
fill: "none"
|
|
1153
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
1154
|
+
fill: "#333",
|
|
1155
|
+
d: "M12.2 3.807a.664.664 0 0 0-.94 0L8 7.06 4.74 3.8a.665.665 0 0 0-.94.94L7.06 8 3.8 11.26a.664.664 0 1 0 .94.94L8 8.94l3.26 3.26a.665.665 0 0 0 .94-.94L8.94 8l3.26-3.26a.668.668 0 0 0 0-.933Z"
|
|
1156
|
+
})), a11yInvalid == 'false' && /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1157
|
+
className: "svg",
|
|
1158
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1159
|
+
focusable: "false",
|
|
1160
|
+
"aria-hidden": "true",
|
|
1161
|
+
role: "presentation",
|
|
1162
|
+
width: "16",
|
|
1163
|
+
height: "16",
|
|
1164
|
+
fill: "none"
|
|
1165
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
1166
|
+
fill: "#333",
|
|
1167
|
+
d: "m2 8 4.418 4.667L14 4.659l-1.246-1.326-6.336 6.692-3.18-3.332L2 8Z"
|
|
1168
|
+
}))));
|
|
1113
1169
|
};
|
|
1114
1170
|
|
|
1115
1171
|
Textfield.propTypes = {
|
|
1116
1172
|
className: PropTypes__default["default"].string,
|
|
1173
|
+
field: PropTypes__default["default"].any,
|
|
1117
1174
|
formId: PropTypes__default["default"].string,
|
|
1118
1175
|
id: PropTypes__default["default"].string,
|
|
1119
1176
|
label: PropTypes__default["default"].string,
|
|
1120
1177
|
type: PropTypes__default["default"].string,
|
|
1121
1178
|
setValue: PropTypes__default["default"].func,
|
|
1122
|
-
|
|
1179
|
+
onValidateField: PropTypes__default["default"].func,
|
|
1123
1180
|
validations: PropTypes__default["default"].object,
|
|
1124
1181
|
defaultValue: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object]),
|
|
1125
1182
|
defaultLanguage: PropTypes__default["default"].string,
|
|
@@ -1131,6 +1188,7 @@ Textfield.propTypes = {
|
|
|
1131
1188
|
|
|
1132
1189
|
const Textarea = ({
|
|
1133
1190
|
className,
|
|
1191
|
+
field,
|
|
1134
1192
|
formId,
|
|
1135
1193
|
id,
|
|
1136
1194
|
label,
|
|
@@ -1140,57 +1198,86 @@ const Textarea = ({
|
|
|
1140
1198
|
defaultValue,
|
|
1141
1199
|
defaultLanguage,
|
|
1142
1200
|
placeholder,
|
|
1143
|
-
|
|
1144
|
-
useDefaultTheme
|
|
1145
|
-
errors
|
|
1201
|
+
onValidateField,
|
|
1202
|
+
useDefaultTheme
|
|
1146
1203
|
}) => {
|
|
1147
1204
|
const [showCharLimit, setShowCharLimit] = React.useState(false);
|
|
1148
1205
|
const isRequired = validations && validations.required ? true : false;
|
|
1149
1206
|
const placeholderText = placeholder && placeholder.properties && placeholder.properties.placeholderText && placeholder.properties.placeholderText[defaultLanguage];
|
|
1150
1207
|
const defaultValueText = defaultValue ? defaultValue[defaultLanguage] : null;
|
|
1151
|
-
|
|
1152
|
-
const
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
setShowCharLimit(false);
|
|
1159
|
-
};
|
|
1160
|
-
|
|
1161
|
-
const _handleFocus = () => {
|
|
1162
|
-
setShowCharLimit(true);
|
|
1163
|
-
};
|
|
1164
|
-
|
|
1208
|
+
const [a11yInvalid, setA11yInvalid] = React.useState('');
|
|
1209
|
+
const [_, setTextareaValue] = React.useState(defaultValueText || '');
|
|
1210
|
+
const selectFormValidationSent = makeSelectFormValidationSent(formId);
|
|
1211
|
+
const formValidationSent = reactRedux.useSelector(selectFormValidationSent);
|
|
1212
|
+
React.useEffect(() => {
|
|
1213
|
+
if (formValidationSent) setA11yInvalid(doA11yValidation(_, field, true));
|
|
1214
|
+
}, [formValidationSent]);
|
|
1165
1215
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1166
|
-
className:
|
|
1216
|
+
className: className
|
|
1167
1217
|
}, /*#__PURE__*/React__default["default"].createElement(Label, {
|
|
1168
1218
|
id: id,
|
|
1169
1219
|
label: label,
|
|
1170
1220
|
isRequired: isRequired,
|
|
1171
|
-
className: "
|
|
1221
|
+
className: "text-area__label"
|
|
1172
1222
|
}), showCharLimit && /*#__PURE__*/React__default["default"].createElement(CharacterLimit, {
|
|
1173
1223
|
value: defaultValue,
|
|
1174
1224
|
validations: validations,
|
|
1175
1225
|
defaultLanguage: defaultLanguage,
|
|
1176
1226
|
useDefaultTheme: useDefaultTheme
|
|
1177
|
-
}), /*#__PURE__*/React__default["default"].createElement("
|
|
1178
|
-
className:
|
|
1227
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1228
|
+
className: "text-area__input--wrapper",
|
|
1229
|
+
style: {
|
|
1230
|
+
position: 'relative'
|
|
1231
|
+
}
|
|
1232
|
+
}, /*#__PURE__*/React__default["default"].createElement("textarea", {
|
|
1233
|
+
className: "text-area__input",
|
|
1179
1234
|
type: type,
|
|
1180
1235
|
id: id,
|
|
1181
1236
|
defaultValue: defaultValueText,
|
|
1182
1237
|
placeholder: placeholderText,
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1238
|
+
"aria-invalid": a11yInvalid,
|
|
1239
|
+
onChange: e => {
|
|
1240
|
+
setTextareaValue(e.target.value);
|
|
1241
|
+
setValue(formId, id, e.target.value);
|
|
1242
|
+
},
|
|
1243
|
+
onBlur: e => {
|
|
1244
|
+
onValidateField(formId, id, e.target.value);
|
|
1245
|
+
setShowCharLimit(false);
|
|
1246
|
+
setA11yInvalid(doA11yValidation(e.target.value, field, formValidationSent));
|
|
1247
|
+
},
|
|
1248
|
+
onFocus: () => {
|
|
1249
|
+
setShowCharLimit(true);
|
|
1250
|
+
}
|
|
1251
|
+
}), a11yInvalid == 'true' && /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1252
|
+
className: "svg",
|
|
1253
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1254
|
+
focusable: "false",
|
|
1255
|
+
"aria-hidden": "true",
|
|
1256
|
+
role: "presentation",
|
|
1257
|
+
width: "16",
|
|
1258
|
+
height: "16",
|
|
1259
|
+
fill: "none"
|
|
1260
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
1261
|
+
fill: "#333",
|
|
1262
|
+
d: "M12.2 3.807a.664.664 0 0 0-.94 0L8 7.06 4.74 3.8a.665.665 0 0 0-.94.94L7.06 8 3.8 11.26a.664.664 0 1 0 .94.94L8 8.94l3.26 3.26a.665.665 0 0 0 .94-.94L8.94 8l3.26-3.26a.668.668 0 0 0 0-.933Z"
|
|
1263
|
+
})), a11yInvalid == 'false' && /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1264
|
+
className: "svg",
|
|
1265
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1266
|
+
focusable: "false",
|
|
1267
|
+
"aria-hidden": "true",
|
|
1268
|
+
role: "presentation",
|
|
1269
|
+
width: "16",
|
|
1270
|
+
height: "16",
|
|
1271
|
+
fill: "none"
|
|
1272
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
1273
|
+
fill: "#333",
|
|
1274
|
+
d: "m2 8 4.418 4.667L14 4.659l-1.246-1.326-6.336 6.692-3.18-3.332L2 8Z"
|
|
1275
|
+
}))));
|
|
1190
1276
|
};
|
|
1191
1277
|
|
|
1192
1278
|
Textarea.propTypes = {
|
|
1193
1279
|
className: PropTypes__default["default"].string,
|
|
1280
|
+
field: PropTypes__default["default"].any,
|
|
1194
1281
|
formId: PropTypes__default["default"].string,
|
|
1195
1282
|
id: PropTypes__default["default"].string,
|
|
1196
1283
|
label: PropTypes__default["default"].string,
|
|
@@ -1200,7 +1287,7 @@ Textarea.propTypes = {
|
|
|
1200
1287
|
defaultValue: PropTypes__default["default"].object,
|
|
1201
1288
|
defaultLanguage: PropTypes__default["default"].string,
|
|
1202
1289
|
placeholder: PropTypes__default["default"].object,
|
|
1203
|
-
|
|
1290
|
+
onValidateField: PropTypes__default["default"].func,
|
|
1204
1291
|
useDefaultTheme: PropTypes__default["default"].bool,
|
|
1205
1292
|
errors: PropTypes__default["default"].array
|
|
1206
1293
|
};
|
|
@@ -1249,11 +1336,6 @@ const Dropdown = ({
|
|
|
1249
1336
|
if (!validations) return null;
|
|
1250
1337
|
const isRequired = validations && validations.required ? true : false;
|
|
1251
1338
|
const ddValues = validations && validations.allowedValues && validations.allowedValues.values;
|
|
1252
|
-
|
|
1253
|
-
const _handleChange = (formId, id, value) => {
|
|
1254
|
-
setValue(formId, id, value);
|
|
1255
|
-
};
|
|
1256
|
-
|
|
1257
1339
|
if (!ddValues || ddValues.length < 1) return null;
|
|
1258
1340
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1259
1341
|
className: "dropdown-container"
|
|
@@ -1267,7 +1349,9 @@ const Dropdown = ({
|
|
|
1267
1349
|
id: id,
|
|
1268
1350
|
className: `${className ? className : ''} select-dropdown`,
|
|
1269
1351
|
defaultValue: defaultValue,
|
|
1270
|
-
onBlur: e =>
|
|
1352
|
+
onBlur: e => {
|
|
1353
|
+
setValue(formId, id, e.target.value);
|
|
1354
|
+
}
|
|
1271
1355
|
}, ddValues.map((val, idx) => {
|
|
1272
1356
|
return /*#__PURE__*/React__default["default"].createElement("option", {
|
|
1273
1357
|
key: `${val[defaultLanguage]}-${idx}`,
|
|
@@ -1289,8 +1373,8 @@ Dropdown.propTypes = {
|
|
|
1289
1373
|
};
|
|
1290
1374
|
|
|
1291
1375
|
const CheckboxStyled = styled__default["default"].div.withConfig({
|
|
1292
|
-
displayName: "
|
|
1293
|
-
componentId: "sc-
|
|
1376
|
+
displayName: "checkbox__CheckboxStyled",
|
|
1377
|
+
componentId: "sc-gm2o0r-0"
|
|
1294
1378
|
})(["", ";"], ({
|
|
1295
1379
|
useDefaultTheme
|
|
1296
1380
|
}) => {
|
|
@@ -1396,8 +1480,8 @@ Checkbox.propTypes = {
|
|
|
1396
1480
|
};
|
|
1397
1481
|
|
|
1398
1482
|
const RadioButtonStyled = styled__default["default"].div.withConfig({
|
|
1399
|
-
displayName: "
|
|
1400
|
-
componentId: "sc-
|
|
1483
|
+
displayName: "radioButton__RadioButtonStyled",
|
|
1484
|
+
componentId: "sc-3mey0f-0"
|
|
1401
1485
|
})(["", ";"], ({
|
|
1402
1486
|
useDefaultTheme
|
|
1403
1487
|
}) => {
|
|
@@ -1418,11 +1502,6 @@ const RadioButton = ({
|
|
|
1418
1502
|
if (!validations) return null;
|
|
1419
1503
|
const isRequired = validations && validations.required ? true : false;
|
|
1420
1504
|
const cbValues = validations && validations.allowedValues && validations.allowedValues.values;
|
|
1421
|
-
|
|
1422
|
-
const _handleChange = (formId, id, value) => {
|
|
1423
|
-
setValue(formId, id, value);
|
|
1424
|
-
};
|
|
1425
|
-
|
|
1426
1505
|
if (!cbValues || cbValues.length < 1) return null;
|
|
1427
1506
|
return /*#__PURE__*/React__default["default"].createElement(RadioButtonStyled, {
|
|
1428
1507
|
className: "radio-container",
|
|
@@ -1442,7 +1521,9 @@ const RadioButton = ({
|
|
|
1442
1521
|
name: id,
|
|
1443
1522
|
value: val[defaultLanguage],
|
|
1444
1523
|
className: `${className ? className : ''} input-radio`,
|
|
1445
|
-
onChange: e =>
|
|
1524
|
+
onChange: e => {
|
|
1525
|
+
setValue(formId, id, e.target.value);
|
|
1526
|
+
}
|
|
1446
1527
|
}), /*#__PURE__*/React__default["default"].createElement(Label, {
|
|
1447
1528
|
id: val[defaultLanguage],
|
|
1448
1529
|
label: val[defaultLanguage],
|
|
@@ -1568,8 +1649,8 @@ SingleDate.propTypes = {
|
|
|
1568
1649
|
};
|
|
1569
1650
|
|
|
1570
1651
|
const DateRangeStyled = styled__default["default"].div.withConfig({
|
|
1571
|
-
displayName: "
|
|
1572
|
-
componentId: "sc-
|
|
1652
|
+
displayName: "dateRange__DateRangeStyled",
|
|
1653
|
+
componentId: "sc-1so0ar2-0"
|
|
1573
1654
|
})(["", ";"], ({
|
|
1574
1655
|
useDefaultTheme
|
|
1575
1656
|
}) => {
|
|
@@ -1672,8 +1753,8 @@ DateRange.propTypes = {
|
|
|
1672
1753
|
};
|
|
1673
1754
|
|
|
1674
1755
|
const EntryPickerStyled = styled__default["default"].div.withConfig({
|
|
1675
|
-
displayName: "
|
|
1676
|
-
componentId: "sc-
|
|
1756
|
+
displayName: "entryPicker__EntryPickerStyled",
|
|
1757
|
+
componentId: "sc-9vev5n-0"
|
|
1677
1758
|
})(["", ";"], ({
|
|
1678
1759
|
useDefaultTheme
|
|
1679
1760
|
}) => {
|
|
@@ -1754,7 +1835,7 @@ const FormComposer = ({
|
|
|
1754
1835
|
formId,
|
|
1755
1836
|
setValue,
|
|
1756
1837
|
setDateRangeValues,
|
|
1757
|
-
|
|
1838
|
+
onValidateField,
|
|
1758
1839
|
defaultLanguage,
|
|
1759
1840
|
errors,
|
|
1760
1841
|
useDefaultTheme,
|
|
@@ -1771,13 +1852,14 @@ const FormComposer = ({
|
|
|
1771
1852
|
{
|
|
1772
1853
|
return /*#__PURE__*/React__default["default"].createElement(Textfield, {
|
|
1773
1854
|
key: `${field.id}-${idx}`,
|
|
1855
|
+
field: field,
|
|
1774
1856
|
type: field.type,
|
|
1775
1857
|
id: field.id,
|
|
1776
1858
|
label: field.name && field.name[defaultLanguage],
|
|
1777
1859
|
formId: formId,
|
|
1778
1860
|
setValue: setValue,
|
|
1779
1861
|
validations: field.validations,
|
|
1780
|
-
|
|
1862
|
+
onValidateField: onValidateField,
|
|
1781
1863
|
defaultLanguage: defaultLanguage,
|
|
1782
1864
|
defaultValue: formData && formData[field.id] || field.default,
|
|
1783
1865
|
placeholder: field.editor,
|
|
@@ -1790,6 +1872,7 @@ const FormComposer = ({
|
|
|
1790
1872
|
{
|
|
1791
1873
|
return /*#__PURE__*/React__default["default"].createElement(Textarea, {
|
|
1792
1874
|
key: `${field.id}-${idx}`,
|
|
1875
|
+
field: field,
|
|
1793
1876
|
type: field.type,
|
|
1794
1877
|
id: field.id,
|
|
1795
1878
|
label: field.name && field.name[defaultLanguage],
|
|
@@ -1799,7 +1882,7 @@ const FormComposer = ({
|
|
|
1799
1882
|
defaultLanguage: defaultLanguage,
|
|
1800
1883
|
defaultValue: field.default,
|
|
1801
1884
|
placeholder: field.editor,
|
|
1802
|
-
|
|
1885
|
+
onValidateField: onValidateField,
|
|
1803
1886
|
useDefaultTheme: useDefaultTheme,
|
|
1804
1887
|
errors: errors
|
|
1805
1888
|
});
|
|
@@ -1865,7 +1948,7 @@ const FormComposer = ({
|
|
|
1865
1948
|
label: field.name && field.name[defaultLanguage],
|
|
1866
1949
|
useDefaultTheme: useDefaultTheme,
|
|
1867
1950
|
setValue: setValue,
|
|
1868
|
-
|
|
1951
|
+
onValidateField: onValidateField,
|
|
1869
1952
|
formId: formId
|
|
1870
1953
|
});
|
|
1871
1954
|
}
|
|
@@ -1919,7 +2002,7 @@ FormComposer.propTypes = {
|
|
|
1919
2002
|
entries: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array, PropTypes__default["default"].object]),
|
|
1920
2003
|
formId: PropTypes__default["default"].string,
|
|
1921
2004
|
setValue: PropTypes__default["default"].func,
|
|
1922
|
-
|
|
2005
|
+
onValidateField: PropTypes__default["default"].func,
|
|
1923
2006
|
setDateRangeValues: PropTypes__default["default"].func,
|
|
1924
2007
|
defaultLanguage: PropTypes__default["default"].string,
|
|
1925
2008
|
errors: PropTypes__default["default"].array,
|
|
@@ -1927,7 +2010,7 @@ FormComposer.propTypes = {
|
|
|
1927
2010
|
setCheckboxValue: PropTypes__default["default"].func
|
|
1928
2011
|
};
|
|
1929
2012
|
|
|
1930
|
-
const
|
|
2013
|
+
const Loader = ({
|
|
1931
2014
|
className,
|
|
1932
2015
|
color = '#fff',
|
|
1933
2016
|
width = 20,
|
|
@@ -1966,19 +2049,19 @@ const LoadingSpinner = ({
|
|
|
1966
2049
|
})));
|
|
1967
2050
|
};
|
|
1968
2051
|
|
|
1969
|
-
|
|
1970
|
-
displayName: "
|
|
1971
|
-
componentId: "sc-
|
|
2052
|
+
var ButtonStyled = styled__default["default"].button.withConfig({
|
|
2053
|
+
displayName: "buttonstyled",
|
|
2054
|
+
componentId: "sc-1uekf3o-0"
|
|
1972
2055
|
})(["", ";"], ({
|
|
1973
2056
|
theme,
|
|
1974
2057
|
useDefaultTheme
|
|
1975
2058
|
}) => {
|
|
1976
|
-
return styled.css(["", ""], useDefaultTheme && styled.css(["display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:16px 0 0 0;padding:8px 16px;border-radius:3px;border:1px solid ", ";font-family:inherit;transition:opacity 200ms ease;&:disabled{opacity:0.7;cursor:not-allowed;border-color
|
|
2059
|
+
return styled.css(["", ""], useDefaultTheme && styled.css(["display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin:16px 0 0 0;padding:8px 16px;border-radius:3px;border:1px solid ", ";font-family:inherit;transition:opacity 200ms ease;&:disabled{opacity:0.7;cursor:not-allowed;border-color:", ";background:", ";color:", ";svg{margin-left:4px;circle{stroke:", ";}}}&:hover{opacity:0.7;}"], theme.colors.border, theme.colors.light_grey_light, theme.colors.light_grey_light, theme.colors.light_grey_dark, theme.colors.light_grey_dark));
|
|
1977
2060
|
});
|
|
1978
2061
|
|
|
1979
2062
|
const Button = ({
|
|
1980
2063
|
className,
|
|
1981
|
-
type,
|
|
2064
|
+
type = 'button',
|
|
1982
2065
|
text,
|
|
1983
2066
|
action,
|
|
1984
2067
|
loading,
|
|
@@ -1990,7 +2073,7 @@ const Button = ({
|
|
|
1990
2073
|
onClick: () => action(),
|
|
1991
2074
|
disabled: loading,
|
|
1992
2075
|
useDefaultTheme: useDefaultTheme
|
|
1993
|
-
}, text, loading && /*#__PURE__*/React__default["default"].createElement(
|
|
2076
|
+
}, text, loading && /*#__PURE__*/React__default["default"].createElement(Loader, {
|
|
1994
2077
|
height: 18,
|
|
1995
2078
|
width: 18
|
|
1996
2079
|
}));
|
|
@@ -2004,134 +2087,51 @@ Button.propTypes = {
|
|
|
2004
2087
|
useDefaultTheme: PropTypes__default["default"].bool
|
|
2005
2088
|
};
|
|
2006
2089
|
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2090
|
+
var CalloutStyled = styled__default["default"].div.withConfig({
|
|
2091
|
+
displayName: "calloutstyled",
|
|
2092
|
+
componentId: "sc-k461qh-0"
|
|
2093
|
+
})(["", ";"], ({
|
|
2011
2094
|
theme
|
|
2012
2095
|
}) => {
|
|
2013
|
-
return
|
|
2014
|
-
|
|
2015
|
-
}, children));
|
|
2016
|
-
};
|
|
2017
|
-
|
|
2018
|
-
ThemeProvider.propTypes = {
|
|
2019
|
-
children: PropTypes__default["default"].oneOfType([PropTypes__default["default"].arrayOf(PropTypes__default["default"].node), PropTypes__default["default"].node]),
|
|
2020
|
-
theme: PropTypes__default["default"].object
|
|
2021
|
-
};
|
|
2022
|
-
|
|
2023
|
-
const mediaQueriesNoUnit = {
|
|
2024
|
-
s: 470,
|
|
2025
|
-
ms: 640,
|
|
2026
|
-
m: 768,
|
|
2027
|
-
ml: 880,
|
|
2028
|
-
l: 1024,
|
|
2029
|
-
xl: 1200,
|
|
2030
|
-
xxl: 1366,
|
|
2031
|
-
wide: 1600
|
|
2032
|
-
};
|
|
2033
|
-
const mediaQueries = {
|
|
2034
|
-
small: mediaQueriesNoUnit.s + 'px',
|
|
2035
|
-
msmall: mediaQueriesNoUnit.ms + 'px',
|
|
2036
|
-
medium: mediaQueriesNoUnit.m + 'px',
|
|
2037
|
-
mlarge: mediaQueriesNoUnit.ml + 'px',
|
|
2038
|
-
large: mediaQueriesNoUnit.l + 'px',
|
|
2039
|
-
xlarge: mediaQueriesNoUnit.xl + 'px',
|
|
2040
|
-
xxlarge: mediaQueriesNoUnit.xxl + 'px',
|
|
2041
|
-
wide: mediaQueriesNoUnit.wide + 'px'
|
|
2042
|
-
};
|
|
2043
|
-
const layout = {
|
|
2044
|
-
mediaQueries: mediaQueries
|
|
2045
|
-
};
|
|
2096
|
+
return styled.css(["background:#F1F6FD;box-shadow:inset 4px 0 0 ", ";border-radius:0 8px 8px 0;padding:16px 24px;margin-top:8px;span{font-weight:400;font-size:14px;line-height:24px;}"], theme.colors.red_darker);
|
|
2097
|
+
});
|
|
2046
2098
|
|
|
2047
|
-
const
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
const typography = {
|
|
2055
|
-
default: {
|
|
2056
|
-
color: colors.label,
|
|
2057
|
-
font_family: fontFamily.Poppins,
|
|
2058
|
-
font_style: 'normal',
|
|
2059
|
-
font_weight: 400,
|
|
2060
|
-
font_size: '18px',
|
|
2061
|
-
line_height: 1.75
|
|
2062
|
-
}
|
|
2099
|
+
const Callout = ({
|
|
2100
|
+
className,
|
|
2101
|
+
text
|
|
2102
|
+
}) => {
|
|
2103
|
+
return /*#__PURE__*/React__default["default"].createElement(CalloutStyled, {
|
|
2104
|
+
className: className
|
|
2105
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, text));
|
|
2063
2106
|
};
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
}; // function generateTypeStyles(obj) {
|
|
2068
|
-
// return Object.keys(obj)
|
|
2069
|
-
// .map(mq => {
|
|
2070
|
-
// const props = generateProps(obj[mq]);
|
|
2071
|
-
// if (mq === 'default') {
|
|
2072
|
-
// return `${props.join(' ')}`;
|
|
2073
|
-
// } else {
|
|
2074
|
-
// return `@media only screen and (min-width:${
|
|
2075
|
-
// mediaQueries[mq]
|
|
2076
|
-
// }){${props.join('')}}`;
|
|
2077
|
-
// }
|
|
2078
|
-
// })
|
|
2079
|
-
// .join('');
|
|
2080
|
-
// }
|
|
2081
|
-
// function generateProps(objMQ) {
|
|
2082
|
-
// let props = [];
|
|
2083
|
-
// Object.keys(objMQ).map(prop => {
|
|
2084
|
-
// props.push(`${prop.split('_').join('-')}: ${objMQ[prop]};`);
|
|
2085
|
-
// });
|
|
2086
|
-
// return props;
|
|
2087
|
-
// }
|
|
2088
|
-
|
|
2089
|
-
const defaultTheme = {
|
|
2090
|
-
layout,
|
|
2091
|
-
typographyStyles,
|
|
2092
|
-
typography,
|
|
2093
|
-
colors
|
|
2107
|
+
Callout.propTypes = {
|
|
2108
|
+
className: PropTypes__default["default"].string,
|
|
2109
|
+
text: PropTypes__default["default"].string
|
|
2094
2110
|
};
|
|
2095
2111
|
|
|
2096
2112
|
const Form = ({
|
|
2097
2113
|
className,
|
|
2098
2114
|
formId,
|
|
2099
2115
|
useDefaultTheme = true,
|
|
2100
|
-
|
|
2116
|
+
onCustomSubmit
|
|
2101
2117
|
}) => {
|
|
2102
2118
|
const dispatch = reactRedux.useDispatch();
|
|
2103
2119
|
|
|
2104
|
-
const _setFormId = formId =>
|
|
2105
|
-
dispatch(setFormId(formId));
|
|
2106
|
-
};
|
|
2120
|
+
const _setFormId = formId => dispatch(setFormId(formId));
|
|
2107
2121
|
|
|
2108
|
-
const _setValue = (formId, id, value) =>
|
|
2109
|
-
dispatch(setValue(formId, id, value));
|
|
2110
|
-
};
|
|
2122
|
+
const _setValue = (formId, id, value) => dispatch(setValue(formId, id, value));
|
|
2111
2123
|
|
|
2112
|
-
const _setCheckboxValue = (formId, id, value, isChecked) =>
|
|
2113
|
-
dispatch(setCheckboxValue(formId, id, value, isChecked));
|
|
2114
|
-
};
|
|
2124
|
+
const _setCheckboxValue = (formId, id, value, isChecked) => dispatch(setCheckboxValue(formId, id, value, isChecked));
|
|
2115
2125
|
|
|
2116
|
-
const _setDateRangeValues = (formId, id, dateType, value) =>
|
|
2117
|
-
dispatch(setDateRangeValues(formId, id, dateType, value));
|
|
2118
|
-
};
|
|
2126
|
+
const _setDateRangeValues = (formId, id, dateType, value) => dispatch(setDateRangeValues(formId, id, dateType, value));
|
|
2119
2127
|
|
|
2120
|
-
const
|
|
2121
|
-
dispatch(validateField(formId, id, value));
|
|
2122
|
-
};
|
|
2128
|
+
const _onValidateField = (formId, id, value) => dispatch(onValidateField(formId, id, value));
|
|
2123
2129
|
|
|
2124
|
-
const
|
|
2125
|
-
dispatch(togglePageForward(formId, pageIndex));
|
|
2126
|
-
};
|
|
2130
|
+
const _doTogglePageForward = (formId, pageIndex) => dispatch(doTogglePageForward(formId, pageIndex));
|
|
2127
2131
|
|
|
2128
|
-
const
|
|
2129
|
-
dispatch(togglePageBack(formId, pageIndex));
|
|
2130
|
-
};
|
|
2132
|
+
const _doTogglePageBack = (formId, pageIndex) => dispatch(doTogglePageBack(formId, pageIndex));
|
|
2131
2133
|
|
|
2132
|
-
const
|
|
2133
|
-
dispatch(submitForm(formId));
|
|
2134
|
-
};
|
|
2134
|
+
const _onSubmit = formId => dispatch(onSubmit(formId));
|
|
2135
2135
|
|
|
2136
2136
|
React.useEffect(() => {
|
|
2137
2137
|
if (formId) _setFormId(formId);
|
|
@@ -2144,6 +2144,7 @@ const Form = ({
|
|
|
2144
2144
|
const selectFormFieldErrors = makeSelectFormFieldErrors(formId);
|
|
2145
2145
|
const selectFormEntries = makeSelectFormEntries(formId);
|
|
2146
2146
|
const selectFormPostData = makeSelectFormPostData(formId);
|
|
2147
|
+
const selectFormValidationSent = makeSelectFormValidationSent(formId);
|
|
2147
2148
|
const status = reactRedux.useSelector(selectFormStatus);
|
|
2148
2149
|
const fields = reactRedux.useSelector(selectFormFields);
|
|
2149
2150
|
const pagingInfo = reactRedux.useSelector(selectPagingInfo);
|
|
@@ -2152,6 +2153,7 @@ const Form = ({
|
|
|
2152
2153
|
const errors = reactRedux.useSelector(selectFormFieldErrors);
|
|
2153
2154
|
const entries = reactRedux.useSelector(selectFormEntries);
|
|
2154
2155
|
const formData = reactRedux.useSelector(selectFormPostData);
|
|
2156
|
+
const validate = reactRedux.useSelector(selectFormValidationSent);
|
|
2155
2157
|
|
|
2156
2158
|
if (pagingInfo && pagingInfo.pageCount > 1) {
|
|
2157
2159
|
const isLastPage = pagingInfo.pageCount == pagingInfo.pageIndex + 1;
|
|
@@ -2164,14 +2166,14 @@ const Form = ({
|
|
|
2164
2166
|
}, !(status !== null && status !== void 0 && status.hasSuccess) && !(status !== null && status !== void 0 && status.isLoading) && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, pagingInfo.pageIndex > 0 && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2165
2167
|
type: "button",
|
|
2166
2168
|
text: "Go Back",
|
|
2167
|
-
action: () =>
|
|
2169
|
+
action: () => _doTogglePageBack(formId, pagingInfo.pageIndex - 1),
|
|
2168
2170
|
useDefaultTheme: useDefaultTheme
|
|
2169
2171
|
}), /*#__PURE__*/React__default["default"].createElement(FormComposer, {
|
|
2170
2172
|
fields: fields,
|
|
2171
2173
|
formData: formData,
|
|
2172
2174
|
formId: formId,
|
|
2173
2175
|
setValue: _setValue,
|
|
2174
|
-
|
|
2176
|
+
onValidateField: _onValidateField,
|
|
2175
2177
|
defaultLanguage: defaultLanguage,
|
|
2176
2178
|
errors: errors,
|
|
2177
2179
|
pagingInfo: pagingInfo,
|
|
@@ -2182,26 +2184,37 @@ const Form = ({
|
|
|
2182
2184
|
}), !isLastPage && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2183
2185
|
type: "button",
|
|
2184
2186
|
text: "Next",
|
|
2185
|
-
action: () =>
|
|
2187
|
+
action: () => _doTogglePageForward(formId, pagingInfo.pageIndex + 1),
|
|
2186
2188
|
useDefaultTheme: useDefaultTheme
|
|
2187
2189
|
}), isLastPage && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2188
2190
|
text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
|
|
2189
2191
|
type: "button",
|
|
2190
2192
|
loading: status === null || status === void 0 ? void 0 : status.isLoading,
|
|
2191
2193
|
action: () => {
|
|
2192
|
-
|
|
2194
|
+
_onSubmit(formId);
|
|
2193
2195
|
|
|
2194
|
-
if (
|
|
2196
|
+
if (onCustomSubmit) onCustomSubmit();
|
|
2195
2197
|
},
|
|
2196
2198
|
useDefaultTheme: useDefaultTheme
|
|
2197
|
-
})), (status === null || status === void 0 ? void 0 : status.isLoading) && !(status !== null && status !== void 0 && status.hasSuccess) && /*#__PURE__*/React__default["default"].createElement(
|
|
2199
|
+
})), (status === null || status === void 0 ? void 0 : status.isLoading) && !(status !== null && status !== void 0 && status.hasSuccess) && /*#__PURE__*/React__default["default"].createElement(Loader, {
|
|
2198
2200
|
className: "loading",
|
|
2199
2201
|
height: 24,
|
|
2200
2202
|
width: 24,
|
|
2201
2203
|
color: "#333"
|
|
2202
|
-
}), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.
|
|
2204
|
+
}), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.messages.success) && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
2203
2205
|
className: "success-message"
|
|
2204
|
-
}, status.
|
|
2206
|
+
}, status.messages.success), (errors === null || errors === void 0 ? void 0 : errors.length) >= 1 && validate && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2207
|
+
className: "form__errors",
|
|
2208
|
+
role: "alert"
|
|
2209
|
+
}, errors === null || errors === void 0 ? void 0 : errors.map(({
|
|
2210
|
+
message
|
|
2211
|
+
}, i) => {
|
|
2212
|
+
return /*#__PURE__*/React__default["default"].createElement(Callout, {
|
|
2213
|
+
className: "form__error",
|
|
2214
|
+
text: message,
|
|
2215
|
+
key: i
|
|
2216
|
+
});
|
|
2217
|
+
}))));
|
|
2205
2218
|
} else {
|
|
2206
2219
|
return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
|
|
2207
2220
|
theme: defaultTheme
|
|
@@ -2214,7 +2227,7 @@ const Form = ({
|
|
|
2214
2227
|
formId: formId,
|
|
2215
2228
|
setValue: _setValue,
|
|
2216
2229
|
setDateRangeValues: _setDateRangeValues,
|
|
2217
|
-
|
|
2230
|
+
onValidateField: _onValidateField,
|
|
2218
2231
|
defaultLanguage: defaultLanguage,
|
|
2219
2232
|
errors: errors,
|
|
2220
2233
|
useDefaultTheme: useDefaultTheme,
|
|
@@ -2225,19 +2238,30 @@ const Form = ({
|
|
|
2225
2238
|
text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
|
|
2226
2239
|
type: "button",
|
|
2227
2240
|
action: () => {
|
|
2228
|
-
|
|
2241
|
+
_onSubmit(formId);
|
|
2229
2242
|
|
|
2230
|
-
if (
|
|
2243
|
+
if (onCustomSubmit) onCustomSubmit();
|
|
2231
2244
|
},
|
|
2232
2245
|
useDefaultTheme: useDefaultTheme
|
|
2233
|
-
})), (status === null || status === void 0 ? void 0 : status.isLoading) && !(status !== null && status !== void 0 && status.hasSuccess) && /*#__PURE__*/React__default["default"].createElement(
|
|
2246
|
+
})), (status === null || status === void 0 ? void 0 : status.isLoading) && !(status !== null && status !== void 0 && status.hasSuccess) && /*#__PURE__*/React__default["default"].createElement(Loader, {
|
|
2234
2247
|
className: "loading",
|
|
2235
2248
|
height: 24,
|
|
2236
2249
|
width: 24,
|
|
2237
2250
|
color: "#333"
|
|
2238
|
-
}), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.
|
|
2251
|
+
}), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.messages.success) && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
2239
2252
|
className: "success-message"
|
|
2240
|
-
}, status.
|
|
2253
|
+
}, status.messages.success), (errors === null || errors === void 0 ? void 0 : errors.length) >= 1 && validate && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2254
|
+
className: "form__errors",
|
|
2255
|
+
role: "alert"
|
|
2256
|
+
}, errors === null || errors === void 0 ? void 0 : errors.map(({
|
|
2257
|
+
message
|
|
2258
|
+
}, i) => {
|
|
2259
|
+
return /*#__PURE__*/React__default["default"].createElement(Callout, {
|
|
2260
|
+
className: "form__error",
|
|
2261
|
+
text: message,
|
|
2262
|
+
key: i
|
|
2263
|
+
});
|
|
2264
|
+
}))));
|
|
2241
2265
|
}
|
|
2242
2266
|
};
|
|
2243
2267
|
|
|
@@ -2245,12 +2269,12 @@ Form.propTypes = {
|
|
|
2245
2269
|
className: PropTypes__default["default"].string,
|
|
2246
2270
|
formId: PropTypes__default["default"].string,
|
|
2247
2271
|
useDefaultTheme: PropTypes__default["default"].bool,
|
|
2248
|
-
|
|
2272
|
+
onCustomSubmit: PropTypes__default["default"].func
|
|
2249
2273
|
};
|
|
2250
2274
|
|
|
2275
|
+
exports.Form = Form;
|
|
2251
2276
|
exports.actions = actions;
|
|
2252
|
-
exports["default"] = Form;
|
|
2253
2277
|
exports.reducer = reducer;
|
|
2254
|
-
exports.sagas =
|
|
2278
|
+
exports.sagas = sagas;
|
|
2255
2279
|
exports.selectors = selectors;
|
|
2256
2280
|
//# sourceMappingURL=forms.js.map
|