@zengenti/contensis-react-base 3.0.0-beta.73 → 3.0.0-beta.74
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/forms.js +360 -504
- package/cjs/forms.js.map +1 -1
- package/esm/forms.js +362 -508
- package/esm/forms.js.map +1 -1
- package/package.json +1 -1
package/cjs/forms.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var immer = require('immer');
|
|
6
6
|
var effects = require('@redux-saga/core/effects');
|
|
7
7
|
var reselect = require('reselect');
|
|
8
|
-
var redux = require('@zengenti/contensis-react-base/redux');
|
|
9
8
|
var routing = require('@zengenti/contensis-react-base/routing');
|
|
10
9
|
var React = require('react');
|
|
11
10
|
var PropTypes = require('prop-types');
|
|
@@ -39,32 +38,6 @@ const SET_FORM_ENTRIES = `${ACTION_PREFIX}SET_FORM_ENTRIES`;
|
|
|
39
38
|
const SET_SUCCESS_MESSAGE = `${ACTION_PREFIX}SET_SUCCESS_MESSAGE`;
|
|
40
39
|
const SET_CHECKBOX_VALUE = `${ACTION_PREFIX}SET_CHECKBOX_VALUE`;
|
|
41
40
|
|
|
42
|
-
const MakeFieldType = field => {
|
|
43
|
-
if (!field) return null;
|
|
44
|
-
|
|
45
|
-
if (field.dataType === 'string' && field.editor && field.editor.id === 'multiline') {
|
|
46
|
-
return 'textarea';
|
|
47
|
-
} else if (field.dataType === 'string' && field.editor && field.editor.id === 'list-dropdown') {
|
|
48
|
-
return 'dropdown';
|
|
49
|
-
} else if (field.editor && field.editor.properties && field.editor.properties.readOnly || field.groupId && field.groupId === 'private') {
|
|
50
|
-
return 'hidden';
|
|
51
|
-
} else if (field.dataType === 'stringArray' || field.dataType === 'boolean') {
|
|
52
|
-
return 'checkbox';
|
|
53
|
-
} else if (field.dataType === 'string' && field.validations && field.validations.allowedValues) {
|
|
54
|
-
return 'radio';
|
|
55
|
-
} else if (field.dataType === 'integer') {
|
|
56
|
-
return 'number';
|
|
57
|
-
} else if (field.dataType === 'dateTime') {
|
|
58
|
-
return 'date';
|
|
59
|
-
} else if (field.dataFormat === 'daterange') {
|
|
60
|
-
return 'dateRange';
|
|
61
|
-
} else if (field.dataFormat === 'entry') {
|
|
62
|
-
return 'entryPicker';
|
|
63
|
-
} else {
|
|
64
|
-
return 'textfield';
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
41
|
const initialSettings = {
|
|
69
42
|
recaptcha: {
|
|
70
43
|
siteKey: null
|
|
@@ -91,7 +64,8 @@ const initialFormData = {
|
|
|
91
64
|
groups: [],
|
|
92
65
|
defaultLanguage: null,
|
|
93
66
|
pagingInfo: initialPagingInfo,
|
|
94
|
-
status: initialStatus
|
|
67
|
+
status: initialStatus,
|
|
68
|
+
settings: {}
|
|
95
69
|
};
|
|
96
70
|
let initialState = {
|
|
97
71
|
settings: initialSettings
|
|
@@ -113,11 +87,9 @@ var reducer = immer.produce((state, action) => {
|
|
|
113
87
|
fields,
|
|
114
88
|
formId,
|
|
115
89
|
groups,
|
|
116
|
-
defaultLanguage
|
|
90
|
+
defaultLanguage,
|
|
91
|
+
settings
|
|
117
92
|
} = action || {};
|
|
118
|
-
fields.map(field => {
|
|
119
|
-
field.type = MakeFieldType(field);
|
|
120
|
-
});
|
|
121
93
|
state[formId].fields = fields;
|
|
122
94
|
state[formId].formId = formId;
|
|
123
95
|
state[formId].groups = groups;
|
|
@@ -125,6 +97,7 @@ var reducer = immer.produce((state, action) => {
|
|
|
125
97
|
state[formId].status.isSubmitting = false;
|
|
126
98
|
state[formId].status.hasSuccess = false;
|
|
127
99
|
state[formId].status.hasError = false;
|
|
100
|
+
state[formId].settings = settings;
|
|
128
101
|
return;
|
|
129
102
|
}
|
|
130
103
|
|
|
@@ -272,26 +245,90 @@ var reducer = immer.produce((state, action) => {
|
|
|
272
245
|
}
|
|
273
246
|
}, initialState);
|
|
274
247
|
|
|
275
|
-
const selectForms = state =>
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
const
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
const selectEntries = (state, formId) => redux.getIn(state, ['forms', formId, 'entries']);
|
|
282
|
-
const selectPagedFields = formId => reselect.createSelector([selectForms], form => {
|
|
283
|
-
const pagingInfo = redux.getIn(form, [formId, 'pagingInfo']);
|
|
284
|
-
const fields = redux.getIn(form, [formId, 'fields']);
|
|
285
|
-
|
|
286
|
-
if (fields && fields.length > 0 && pagingInfo && pagingInfo.pageCount > 1) {
|
|
287
|
-
return fields.filter(f => f.groupId == pagingInfo.currentPageId);
|
|
248
|
+
const selectForms = state => state.forms;
|
|
249
|
+
const makeSelectPagedFields = formId => reselect.createSelector([selectForms], form => {
|
|
250
|
+
if (form[formId]) {
|
|
251
|
+
const pagingInfo = form[formId].pagingInfo;
|
|
252
|
+
const fields = form[formId].fields;
|
|
253
|
+
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;
|
|
288
254
|
}
|
|
255
|
+
});
|
|
256
|
+
const makeSelectFormStatus = formId => reselect.createSelector(selectForms, form => {
|
|
257
|
+
var _form$formId;
|
|
289
258
|
|
|
290
|
-
return
|
|
259
|
+
return (_form$formId = form[formId]) === null || _form$formId === void 0 ? void 0 : _form$formId.status;
|
|
291
260
|
});
|
|
292
|
-
const
|
|
293
|
-
|
|
294
|
-
|
|
261
|
+
const makeSelectPagingInfo = formId => reselect.createSelector(selectForms, form => {
|
|
262
|
+
var _form$formId2;
|
|
263
|
+
|
|
264
|
+
return (_form$formId2 = form[formId]) === null || _form$formId2 === void 0 ? void 0 : _form$formId2.pagingInfo;
|
|
265
|
+
});
|
|
266
|
+
const makeSelectFormSettings = formId => reselect.createSelector(selectForms, form => {
|
|
267
|
+
var _form$formId3;
|
|
268
|
+
|
|
269
|
+
return (_form$formId3 = form[formId]) === null || _form$formId3 === void 0 ? void 0 : _form$formId3.settings;
|
|
270
|
+
});
|
|
271
|
+
const makeSelectFormFieldErrors = formId => reselect.createSelector(selectForms, form => {
|
|
272
|
+
var _form$formId4;
|
|
273
|
+
|
|
274
|
+
return (_form$formId4 = form[formId]) === null || _form$formId4 === void 0 ? void 0 : _form$formId4.fieldErrors;
|
|
275
|
+
});
|
|
276
|
+
const makeSelectFormEntries = formId => reselect.createSelector(selectForms, form => {
|
|
277
|
+
var _form$formId5;
|
|
278
|
+
|
|
279
|
+
return (_form$formId5 = form[formId]) === null || _form$formId5 === void 0 ? void 0 : _form$formId5.entries;
|
|
280
|
+
});
|
|
281
|
+
const makeSelectFormPostData = formId => reselect.createSelector(selectForms, form => {
|
|
282
|
+
var _form$formId6;
|
|
283
|
+
|
|
284
|
+
return (_form$formId6 = form[formId]) === null || _form$formId6 === void 0 ? void 0 : _form$formId6.data;
|
|
285
|
+
});
|
|
286
|
+
const makeSelectIsLoading = formId => reselect.createSelector(selectForms, forms => {
|
|
287
|
+
var _forms$formId;
|
|
288
|
+
|
|
289
|
+
return (_forms$formId = forms[formId]) === null || _forms$formId === void 0 ? void 0 : _forms$formId.status.isLoading;
|
|
290
|
+
});
|
|
291
|
+
const makeSelectHasSuccess = formId => reselect.createSelector(selectForms, forms => {
|
|
292
|
+
var _forms$formId2;
|
|
293
|
+
|
|
294
|
+
return (_forms$formId2 = forms[formId]) === null || _forms$formId2 === void 0 ? void 0 : _forms$formId2.status.hasSuccess;
|
|
295
|
+
});
|
|
296
|
+
const makeSelectFormFields = formId => reselect.createSelector(selectForms, forms => {
|
|
297
|
+
var _forms$formId3;
|
|
298
|
+
|
|
299
|
+
return (_forms$formId3 = forms[formId]) === null || _forms$formId3 === void 0 ? void 0 : _forms$formId3.fields;
|
|
300
|
+
});
|
|
301
|
+
const makeSelectDefaultLang = formId => reselect.createSelector(selectForms, forms => {
|
|
302
|
+
var _forms$formId4;
|
|
303
|
+
|
|
304
|
+
return (_forms$formId4 = forms[formId]) === null || _forms$formId4 === void 0 ? void 0 : _forms$formId4.defaultLanguage;
|
|
305
|
+
});
|
|
306
|
+
const makeSelectFormSuccessMessage = formId => reselect.createSelector(selectForms, forms => {
|
|
307
|
+
var _forms$formId5;
|
|
308
|
+
|
|
309
|
+
return (_forms$formId5 = forms[formId]) === null || _forms$formId5 === void 0 ? void 0 : _forms$formId5.status.successMessage;
|
|
310
|
+
});
|
|
311
|
+
const makeSelectFormGroup$1 = formId => reselect.createSelector(selectForms, forms => {
|
|
312
|
+
var _forms$formId6;
|
|
313
|
+
|
|
314
|
+
return (_forms$formId6 = forms[formId]) === null || _forms$formId6 === void 0 ? void 0 : _forms$formId6.groups;
|
|
315
|
+
});
|
|
316
|
+
const selectors = {
|
|
317
|
+
selectForms,
|
|
318
|
+
makeSelectPagedFields,
|
|
319
|
+
makeSelectFormStatus,
|
|
320
|
+
makeSelectPagingInfo,
|
|
321
|
+
makeSelectFormSettings,
|
|
322
|
+
makeSelectFormFieldErrors,
|
|
323
|
+
makeSelectFormEntries,
|
|
324
|
+
makeSelectFormPostData,
|
|
325
|
+
makeSelectIsLoading,
|
|
326
|
+
makeSelectHasSuccess,
|
|
327
|
+
makeSelectFormFields,
|
|
328
|
+
makeSelectDefaultLang,
|
|
329
|
+
makeSelectFormSuccessMessage,
|
|
330
|
+
makeSelectFormGroup: makeSelectFormGroup$1
|
|
331
|
+
};
|
|
295
332
|
|
|
296
333
|
const URI = '/forms';
|
|
297
334
|
const getFormSchema = async formId => {
|
|
@@ -341,16 +378,23 @@ const request = async (url, options) => {
|
|
|
341
378
|
.catch(error => console.log('error', error));
|
|
342
379
|
};
|
|
343
380
|
|
|
381
|
+
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'];
|
|
382
|
+
|
|
344
383
|
const validateInput = (field, value) => {
|
|
384
|
+
var _field$validations, _field$validations$re;
|
|
385
|
+
|
|
345
386
|
const isRequired = field.validations && field.validations.required;
|
|
346
387
|
const minLength = field.validations && field.validations.minLength;
|
|
347
388
|
const maxLength = field.validations && field.validations.maxLength;
|
|
348
|
-
const
|
|
389
|
+
const hasRegex = field !== null && field !== void 0 && (_field$validations = field.validations) !== null && _field$validations !== void 0 && (_field$validations$re = _field$validations.regex) !== null && _field$validations$re !== void 0 && _field$validations$re.pattern ? true : false;
|
|
349
390
|
const integer = field.dataType === 'integer';
|
|
350
391
|
const decimal = field.dataType === 'decimal';
|
|
392
|
+
const isBusinessEmail = field.id === 'businessEmail';
|
|
351
393
|
|
|
352
394
|
if (isRequired && !value) {
|
|
353
|
-
|
|
395
|
+
var _isRequired$message, _field$name;
|
|
396
|
+
|
|
397
|
+
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`;
|
|
354
398
|
return {
|
|
355
399
|
fieldId: field.id,
|
|
356
400
|
groupId: field.groupId,
|
|
@@ -375,17 +419,28 @@ const validateInput = (field, value) => {
|
|
|
375
419
|
message: errorMessage
|
|
376
420
|
};
|
|
377
421
|
}
|
|
422
|
+
/** Check Regex and Business Emails */
|
|
378
423
|
|
|
379
|
-
if (regex && value.length > 0) {
|
|
380
|
-
//Had to make the string raw, as a string ususually is wrapped as '' and Regex couldnt use the regex patter as the string variant
|
|
381
|
-
const regexPattern = RegExp(regex.pattern.raw);
|
|
382
424
|
|
|
383
|
-
|
|
384
|
-
|
|
425
|
+
if (hasRegex && (value === null || value === void 0 ? void 0 : value.length) > 0) {
|
|
426
|
+
var _r$message;
|
|
427
|
+
|
|
428
|
+
const r = field.validations.regex;
|
|
429
|
+
const msg = (r === null || r === void 0 ? void 0 : (_r$message = r.message) === null || _r$message === void 0 ? void 0 : _r$message['en-GB']) || `${field.name['en-GB']} is invalid`;
|
|
430
|
+
|
|
431
|
+
if (isValidRegex(field, value) && isBusinessEmail) {
|
|
432
|
+
if (!isBusinessEmailValid(field, value)) {
|
|
433
|
+
return {
|
|
434
|
+
fieldId: field.id,
|
|
435
|
+
groupId: field.groupId,
|
|
436
|
+
message: 'You must enter a business email address.'
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
} else {
|
|
385
440
|
return {
|
|
386
441
|
fieldId: field.id,
|
|
387
442
|
groupId: field.groupId,
|
|
388
|
-
message:
|
|
443
|
+
message: msg
|
|
389
444
|
};
|
|
390
445
|
}
|
|
391
446
|
}
|
|
@@ -417,6 +472,43 @@ const validateInput = (field, value) => {
|
|
|
417
472
|
}
|
|
418
473
|
};
|
|
419
474
|
|
|
475
|
+
const isValidRegex = (field, value) => {
|
|
476
|
+
const regex = field.validations.regex.pattern;
|
|
477
|
+
const regexPattern = RegExp(regex);
|
|
478
|
+
if (!regexPattern.test(value)) return false;else return true;
|
|
479
|
+
};
|
|
480
|
+
|
|
481
|
+
const isBusinessEmailValid = (field, value) => {
|
|
482
|
+
const domain = value.split('@').pop();
|
|
483
|
+
if (!domains.includes(domain)) return true;else return false;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
const MakeFieldType = field => {
|
|
487
|
+
if (!field) return null;
|
|
488
|
+
|
|
489
|
+
if (field.dataType === 'string' && field.editor && field.editor.id === 'multiline') {
|
|
490
|
+
return 'textarea';
|
|
491
|
+
} else if (field.dataType === 'string' && field.editor && field.editor.id === 'list-dropdown') {
|
|
492
|
+
return 'dropdown';
|
|
493
|
+
} else if (field.editor && field.editor.properties && field.editor.properties.readOnly || field.groupId && field.groupId === 'private') {
|
|
494
|
+
return 'hidden';
|
|
495
|
+
} else if (field.dataType === 'stringArray' || field.dataType === 'boolean') {
|
|
496
|
+
return 'checkbox';
|
|
497
|
+
} else if (field.dataType === 'string' && field.validations && field.validations.allowedValues) {
|
|
498
|
+
return 'radio';
|
|
499
|
+
} else if (field.dataType === 'integer') {
|
|
500
|
+
return 'number';
|
|
501
|
+
} else if (field.dataType === 'dateTime') {
|
|
502
|
+
return 'date';
|
|
503
|
+
} else if (field.dataFormat === 'daterange') {
|
|
504
|
+
return 'dateRange';
|
|
505
|
+
} else if (field.dataFormat === 'entry') {
|
|
506
|
+
return 'entryPicker';
|
|
507
|
+
} else {
|
|
508
|
+
return 'textfield';
|
|
509
|
+
}
|
|
510
|
+
};
|
|
511
|
+
|
|
420
512
|
const formV2Sagas = [effects.takeEvery(SUBMIT_FORM_SUCCESS, formSuccess), effects.takeEvery(SUBMIT_FORM_FOR_VALIDATION, validateForm), effects.takeEvery(SUBMIT_FORM, submitForm$1), effects.takeEvery(SET_FORM_ID, fetchForm), effects.takeLatest(VALIDATE_FIELD, validateField$1), effects.takeEvery(PAGE_FORWARD, togglePage), effects.takeEvery(PAGE_BACK, togglePage), effects.takeEvery(SET_FORM_DATA, getEntryPickerData), effects.takeLatest(SET_FORM_DATA, setDefaultValueFields)];
|
|
421
513
|
|
|
422
514
|
function* validateForm(action) {
|
|
@@ -441,7 +533,8 @@ function* validateField$1(action) {
|
|
|
441
533
|
|
|
442
534
|
function* validateGroupfields(formId, groupId) {
|
|
443
535
|
const state = yield effects.select();
|
|
444
|
-
const
|
|
536
|
+
const selectPostData = makeSelectFormPostData(formId);
|
|
537
|
+
const postData = selectPostData(state);
|
|
445
538
|
const selectFormFields = makeSelectFormFields(formId);
|
|
446
539
|
const fields = selectFormFields(state);
|
|
447
540
|
const groupFields = fields.filter(f => f.groupid == groupId);
|
|
@@ -465,7 +558,8 @@ function* validateGroupfields(formId, groupId) {
|
|
|
465
558
|
|
|
466
559
|
function* validateAllfields(formId) {
|
|
467
560
|
const state = yield effects.select();
|
|
468
|
-
const
|
|
561
|
+
const selectPostData = makeSelectFormPostData(formId);
|
|
562
|
+
const postData = selectPostData(state);
|
|
469
563
|
const selectFormFields = makeSelectFormFields(formId);
|
|
470
564
|
const fields = selectFormFields(state);
|
|
471
565
|
let newErrors = [];
|
|
@@ -490,8 +584,9 @@ function* validateSingleField(formId, fieldId, value) {
|
|
|
490
584
|
const state = yield effects.select();
|
|
491
585
|
const selectFormFields = makeSelectFormFields(formId);
|
|
492
586
|
const fields = selectFormFields(state);
|
|
587
|
+
const selectFormFieldErrors = makeSelectFormFieldErrors(formId);
|
|
588
|
+
const errors = selectFormFieldErrors(state);
|
|
493
589
|
const fieldData = fields.find(f => f.id == fieldId);
|
|
494
|
-
const errors = selectFieldErrors(state, formId);
|
|
495
590
|
const newErrors = []; //loop through current errors to remove any of the item we currently edit
|
|
496
591
|
|
|
497
592
|
errors.forEach(error => {
|
|
@@ -515,6 +610,7 @@ function* togglePage(action) {
|
|
|
515
610
|
pageIndex
|
|
516
611
|
} = action;
|
|
517
612
|
const state = yield effects.select();
|
|
613
|
+
const selectFormGroups = makeSelectFormGroup(formId);
|
|
518
614
|
const formGroups = selectFormGroups(state);
|
|
519
615
|
|
|
520
616
|
if (action.type === PAGE_FORWARD) {
|
|
@@ -531,12 +627,16 @@ function* togglePage(action) {
|
|
|
531
627
|
}
|
|
532
628
|
|
|
533
629
|
function* fetchForm(action) {
|
|
630
|
+
var _schema$groups;
|
|
631
|
+
|
|
534
632
|
const formId = action.formId;
|
|
535
633
|
const schema = yield getFormSchema(formId);
|
|
536
|
-
const groups = schema
|
|
634
|
+
const groups = schema === null || schema === void 0 ? void 0 : (_schema$groups = schema.groups) === null || _schema$groups === void 0 ? void 0 : _schema$groups.filter(group => group.id !== 'private');
|
|
537
635
|
|
|
538
636
|
if (formId && schema) {
|
|
539
|
-
|
|
637
|
+
var _schema$groups2, _submitButtonText$def;
|
|
638
|
+
|
|
639
|
+
if ((schema === null || schema === void 0 ? void 0 : (_schema$groups2 = schema.groups) === null || _schema$groups2 === void 0 ? void 0 : _schema$groups2.length) > 0) {
|
|
540
640
|
yield effects.put({
|
|
541
641
|
type: SET_CURRENT_PAGE,
|
|
542
642
|
formId: formId,
|
|
@@ -546,12 +646,21 @@ function* fetchForm(action) {
|
|
|
546
646
|
});
|
|
547
647
|
}
|
|
548
648
|
|
|
649
|
+
const submitButtonText = schema.fields.find(f => f.id === 'submitButtonText');
|
|
650
|
+
const fields = schema === null || schema === void 0 ? void 0 : schema.fields.map(field => {
|
|
651
|
+
return { ...field,
|
|
652
|
+
type: MakeFieldType(field)
|
|
653
|
+
};
|
|
654
|
+
});
|
|
549
655
|
yield effects.put({
|
|
550
656
|
type: SET_FORM_DATA,
|
|
551
657
|
formId: formId,
|
|
552
|
-
fields
|
|
658
|
+
fields,
|
|
553
659
|
groups: groups,
|
|
554
|
-
defaultLanguage: schema.defaultLanguage
|
|
660
|
+
defaultLanguage: schema.defaultLanguage,
|
|
661
|
+
settings: {
|
|
662
|
+
submitButtonText: submitButtonText === null || submitButtonText === void 0 ? void 0 : (_submitButtonText$def = submitButtonText.default) === null || _submitButtonText$def === void 0 ? void 0 : _submitButtonText$def['en-GB']
|
|
663
|
+
}
|
|
555
664
|
});
|
|
556
665
|
}
|
|
557
666
|
}
|
|
@@ -563,11 +672,11 @@ function* formSuccess(action) {
|
|
|
563
672
|
const redirect = fields.find(f => f.id === 'formSettingsRedirect');
|
|
564
673
|
const message = fields.find(f => f.id === 'formSettingsMessage');
|
|
565
674
|
|
|
566
|
-
if (redirect && redirect.default) {
|
|
675
|
+
if (redirect !== null && redirect !== void 0 && redirect.default) {
|
|
567
676
|
window.location.href = redirect.default['en-GB'];
|
|
568
677
|
}
|
|
569
678
|
|
|
570
|
-
if (message && message.default) {
|
|
679
|
+
if (message !== null && message !== void 0 && message.default) {
|
|
571
680
|
yield effects.put({
|
|
572
681
|
type: SET_SUCCESS_MESSAGE,
|
|
573
682
|
message: message.default['en-GB'],
|
|
@@ -577,11 +686,17 @@ function* formSuccess(action) {
|
|
|
577
686
|
}
|
|
578
687
|
|
|
579
688
|
function* submitForm$1(action) {
|
|
689
|
+
const {
|
|
690
|
+
formId
|
|
691
|
+
} = action || {};
|
|
580
692
|
const state = yield effects.select();
|
|
581
|
-
const
|
|
582
|
-
const
|
|
693
|
+
const selectFormFieldErrors = makeSelectFormFieldErrors(formId);
|
|
694
|
+
const errors = selectFormFieldErrors(state);
|
|
695
|
+
const canSubmit = (errors === null || errors === void 0 ? void 0 : errors.length) === 0;
|
|
583
696
|
|
|
584
697
|
if (canSubmit) {
|
|
698
|
+
var _formResObj$sys;
|
|
699
|
+
|
|
585
700
|
yield effects.put({
|
|
586
701
|
type: SET_SUBMITTING_FORM,
|
|
587
702
|
isSubmitting: true,
|
|
@@ -595,7 +710,7 @@ function* submitForm$1(action) {
|
|
|
595
710
|
};
|
|
596
711
|
const formResObj = yield postForm(formObj);
|
|
597
712
|
|
|
598
|
-
if (formResObj && formResObj
|
|
713
|
+
if (formResObj !== null && formResObj !== void 0 && (_formResObj$sys = formResObj.sys) !== null && _formResObj$sys !== void 0 && _formResObj$sys.id) {
|
|
599
714
|
yield effects.put({
|
|
600
715
|
type: SUBMIT_FORM_SUCCESS,
|
|
601
716
|
formId: action.formId
|
|
@@ -667,6 +782,58 @@ function* getEntryPickerData(action) {
|
|
|
667
782
|
}
|
|
668
783
|
}
|
|
669
784
|
|
|
785
|
+
const action = (type, payload = {}) => ({
|
|
786
|
+
type,
|
|
787
|
+
...payload
|
|
788
|
+
});
|
|
789
|
+
|
|
790
|
+
const submitForm = formId => action(SUBMIT_FORM_FOR_VALIDATION, {
|
|
791
|
+
formId
|
|
792
|
+
});
|
|
793
|
+
const setFormId = formId => action(SET_FORM_ID, {
|
|
794
|
+
formId
|
|
795
|
+
});
|
|
796
|
+
const setValue = (formId, id, value) => action(SET_FIELD_VALUE, {
|
|
797
|
+
formId,
|
|
798
|
+
id,
|
|
799
|
+
value
|
|
800
|
+
});
|
|
801
|
+
const setCheckboxValue = (formId, id, value, isChecked) => action(SET_CHECKBOX_VALUE, {
|
|
802
|
+
formId,
|
|
803
|
+
id,
|
|
804
|
+
value,
|
|
805
|
+
isChecked
|
|
806
|
+
});
|
|
807
|
+
const setDateRangeValues = (formId, id, dateType, value) => action(SET_DATE_RANGE_VALUES, {
|
|
808
|
+
formId,
|
|
809
|
+
id,
|
|
810
|
+
dateType,
|
|
811
|
+
value
|
|
812
|
+
});
|
|
813
|
+
const validateField = (formId, id, value) => action(VALIDATE_FIELD, {
|
|
814
|
+
formId,
|
|
815
|
+
id,
|
|
816
|
+
value
|
|
817
|
+
});
|
|
818
|
+
const togglePageForward = (formId, pageIndex) => action(PAGE_FORWARD, {
|
|
819
|
+
formId,
|
|
820
|
+
pageIndex
|
|
821
|
+
});
|
|
822
|
+
const togglePageBack = (formId, pageIndex) => action(PAGE_BACK, {
|
|
823
|
+
formId,
|
|
824
|
+
pageIndex
|
|
825
|
+
});
|
|
826
|
+
const actions = {
|
|
827
|
+
submitForm,
|
|
828
|
+
setFormId,
|
|
829
|
+
setValue,
|
|
830
|
+
setCheckboxValue,
|
|
831
|
+
setDateRangeValues,
|
|
832
|
+
validateField,
|
|
833
|
+
togglePageForward,
|
|
834
|
+
togglePageBack
|
|
835
|
+
};
|
|
836
|
+
|
|
670
837
|
//Brand
|
|
671
838
|
const open_teal = '#37BFA7'; //Brand dark
|
|
672
839
|
|
|
@@ -702,7 +869,7 @@ const FormStyled = styled__default["default"].form.withConfig({
|
|
|
702
869
|
})(["", ";"], ({
|
|
703
870
|
useDefaultTheme
|
|
704
871
|
}) => {
|
|
705
|
-
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;}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;max-width:320px;width:100%;}textarea{height:200px;resize:none;}"], colors.error, colors.neutrals.base_white, colors.border));
|
|
872
|
+
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;max-width:320px;width:100%;}textarea{height:200px;resize:none;}"], colors.error, colors.neutrals.base_white, colors.border));
|
|
706
873
|
});
|
|
707
874
|
|
|
708
875
|
const Label = ({
|
|
@@ -1579,8 +1746,7 @@ const FormComposer = ({
|
|
|
1579
1746
|
entries,
|
|
1580
1747
|
setCheckboxValue
|
|
1581
1748
|
}) => {
|
|
1582
|
-
if (!fields || fields.length < 1) return null;
|
|
1583
|
-
|
|
1749
|
+
if (!fields || fields.length < 1) return null;
|
|
1584
1750
|
return fields.map((field, idx) => {
|
|
1585
1751
|
if (!field) return null;
|
|
1586
1752
|
|
|
@@ -1746,6 +1912,39 @@ FormComposer.propTypes = {
|
|
|
1746
1912
|
setCheckboxValue: PropTypes__default["default"].func
|
|
1747
1913
|
};
|
|
1748
1914
|
|
|
1915
|
+
const LoadingSpinner = () => {
|
|
1916
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1917
|
+
width: "20px",
|
|
1918
|
+
height: "20px",
|
|
1919
|
+
viewBox: "0 0 100 100",
|
|
1920
|
+
preserveAspectRatio: "xMidYMid"
|
|
1921
|
+
}, /*#__PURE__*/React__default["default"].createElement("circle", {
|
|
1922
|
+
cx: "50",
|
|
1923
|
+
cy: "50",
|
|
1924
|
+
fill: "none",
|
|
1925
|
+
stroke: "#ffffff",
|
|
1926
|
+
strokeWidth: "10",
|
|
1927
|
+
r: "35",
|
|
1928
|
+
strokeDasharray: "164.93361431346415 56.97787143782138",
|
|
1929
|
+
style: {
|
|
1930
|
+
animationPlayState: 'running',
|
|
1931
|
+
animationDelay: '0s'
|
|
1932
|
+
},
|
|
1933
|
+
transform: "rotate(311.547 50 50)"
|
|
1934
|
+
}, /*#__PURE__*/React__default["default"].createElement("animateTransform", {
|
|
1935
|
+
attributeName: "transform",
|
|
1936
|
+
type: "rotate",
|
|
1937
|
+
repeatCount: "indefinite",
|
|
1938
|
+
dur: "1s",
|
|
1939
|
+
values: "0 50 50;360 50 50",
|
|
1940
|
+
keyTimes: "0;1",
|
|
1941
|
+
style: {
|
|
1942
|
+
animationPlayState: 'running',
|
|
1943
|
+
animationDelay: '0s'
|
|
1944
|
+
}
|
|
1945
|
+
})));
|
|
1946
|
+
};
|
|
1947
|
+
|
|
1749
1948
|
const ButtonStyled = styled__default["default"].button.withConfig({
|
|
1750
1949
|
displayName: "Button__ButtonStyled",
|
|
1751
1950
|
componentId: "sc-hr2oup-0"
|
|
@@ -1753,7 +1952,7 @@ const ButtonStyled = styled__default["default"].button.withConfig({
|
|
|
1753
1952
|
theme,
|
|
1754
1953
|
useDefaultTheme
|
|
1755
1954
|
}) => {
|
|
1756
|
-
return styled.css(["", ""], useDefaultTheme && styled.css(["display:inline-
|
|
1955
|
+
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:#f0f0f0;background:#f0f0f0;color:#dbdbdb;svg{margin-left:4px;circle{stroke:#dbdbdb;}}}&:hover{opacity:0.7;}"], theme.colors.border));
|
|
1757
1956
|
});
|
|
1758
1957
|
|
|
1759
1958
|
const Button = ({
|
|
@@ -1761,20 +1960,23 @@ const Button = ({
|
|
|
1761
1960
|
type,
|
|
1762
1961
|
text,
|
|
1763
1962
|
action,
|
|
1963
|
+
loading,
|
|
1764
1964
|
useDefaultTheme
|
|
1765
1965
|
}) => {
|
|
1766
1966
|
return /*#__PURE__*/React__default["default"].createElement(ButtonStyled, {
|
|
1767
1967
|
className: `${className ? className : ''} btnSubmit`,
|
|
1768
1968
|
type: type,
|
|
1769
1969
|
onClick: () => action(),
|
|
1970
|
+
disabled: loading,
|
|
1770
1971
|
useDefaultTheme: useDefaultTheme
|
|
1771
|
-
}, text);
|
|
1972
|
+
}, text, loading && /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, null));
|
|
1772
1973
|
};
|
|
1773
1974
|
Button.propTypes = {
|
|
1774
1975
|
className: PropTypes__default["default"].string,
|
|
1775
1976
|
type: PropTypes__default["default"].string,
|
|
1776
1977
|
text: PropTypes__default["default"].string,
|
|
1777
1978
|
action: PropTypes__default["default"].func,
|
|
1979
|
+
loading: PropTypes__default["default"].bool,
|
|
1778
1980
|
useDefaultTheme: PropTypes__default["default"].bool
|
|
1779
1981
|
};
|
|
1780
1982
|
|
|
@@ -1867,498 +2069,152 @@ const defaultTheme = {
|
|
|
1867
2069
|
colors
|
|
1868
2070
|
};
|
|
1869
2071
|
|
|
1870
|
-
const
|
|
1871
|
-
display: 'flex',
|
|
1872
|
-
height: '100vh',
|
|
1873
|
-
alignItems: 'center',
|
|
1874
|
-
justifyContent: 'center',
|
|
1875
|
-
flexDirection: 'Column'
|
|
1876
|
-
};
|
|
1877
|
-
const svgStyles = {
|
|
1878
|
-
width: '80px',
|
|
1879
|
-
height: '80px'
|
|
1880
|
-
};
|
|
1881
|
-
const headingStyles = {
|
|
1882
|
-
margin: '0',
|
|
1883
|
-
fontSize: '16px'
|
|
1884
|
-
};
|
|
1885
|
-
const Loading = () => {
|
|
1886
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
1887
|
-
style: divStyles
|
|
1888
|
-
}, /*#__PURE__*/React__default["default"].createElement("h3", {
|
|
1889
|
-
style: headingStyles
|
|
1890
|
-
}, "Loading..."), /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1891
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1892
|
-
className: "lds-spinner",
|
|
1893
|
-
preserveAspectRatio: "xMidYMid",
|
|
1894
|
-
viewBox: "0 0 100 100",
|
|
1895
|
-
style: svgStyles
|
|
1896
|
-
}, /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1897
|
-
width: "6",
|
|
1898
|
-
height: "12",
|
|
1899
|
-
x: "47",
|
|
1900
|
-
y: "24",
|
|
1901
|
-
fill: "#DE1C8F",
|
|
1902
|
-
rx: "9",
|
|
1903
|
-
ry: "5"
|
|
1904
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
1905
|
-
attributeName: "opacity",
|
|
1906
|
-
begin: "-0.9166666666666666s",
|
|
1907
|
-
dur: "1s",
|
|
1908
|
-
keyTimes: "0;1",
|
|
1909
|
-
repeatCount: "indefinite",
|
|
1910
|
-
values: "1;0"
|
|
1911
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1912
|
-
width: "6",
|
|
1913
|
-
height: "12",
|
|
1914
|
-
x: "47",
|
|
1915
|
-
y: "24",
|
|
1916
|
-
fill: "#DE1C8F",
|
|
1917
|
-
rx: "9",
|
|
1918
|
-
ry: "5",
|
|
1919
|
-
transform: "rotate(30 50 50)"
|
|
1920
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
1921
|
-
attributeName: "opacity",
|
|
1922
|
-
begin: "-0.8333333333333334s",
|
|
1923
|
-
dur: "1s",
|
|
1924
|
-
keyTimes: "0;1",
|
|
1925
|
-
repeatCount: "indefinite",
|
|
1926
|
-
values: "1;0"
|
|
1927
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1928
|
-
width: "6",
|
|
1929
|
-
height: "12",
|
|
1930
|
-
x: "47",
|
|
1931
|
-
y: "24",
|
|
1932
|
-
fill: "#DE1C8F",
|
|
1933
|
-
rx: "9",
|
|
1934
|
-
ry: "5",
|
|
1935
|
-
transform: "rotate(60 50 50)"
|
|
1936
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
1937
|
-
attributeName: "opacity",
|
|
1938
|
-
begin: "-0.75s",
|
|
1939
|
-
dur: "1s",
|
|
1940
|
-
keyTimes: "0;1",
|
|
1941
|
-
repeatCount: "indefinite",
|
|
1942
|
-
values: "1;0"
|
|
1943
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1944
|
-
width: "6",
|
|
1945
|
-
height: "12",
|
|
1946
|
-
x: "47",
|
|
1947
|
-
y: "24",
|
|
1948
|
-
fill: "#DE1C8F",
|
|
1949
|
-
rx: "9",
|
|
1950
|
-
ry: "5",
|
|
1951
|
-
transform: "rotate(90 50 50)"
|
|
1952
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
1953
|
-
attributeName: "opacity",
|
|
1954
|
-
begin: "-0.6666666666666666s",
|
|
1955
|
-
dur: "1s",
|
|
1956
|
-
keyTimes: "0;1",
|
|
1957
|
-
repeatCount: "indefinite",
|
|
1958
|
-
values: "1;0"
|
|
1959
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1960
|
-
width: "6",
|
|
1961
|
-
height: "12",
|
|
1962
|
-
x: "47",
|
|
1963
|
-
y: "24",
|
|
1964
|
-
fill: "#DE1C8F",
|
|
1965
|
-
rx: "9",
|
|
1966
|
-
ry: "5",
|
|
1967
|
-
transform: "rotate(120 50 50)"
|
|
1968
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
1969
|
-
attributeName: "opacity",
|
|
1970
|
-
begin: "-0.5833333333333334s",
|
|
1971
|
-
dur: "1s",
|
|
1972
|
-
keyTimes: "0;1",
|
|
1973
|
-
repeatCount: "indefinite",
|
|
1974
|
-
values: "1;0"
|
|
1975
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1976
|
-
width: "6",
|
|
1977
|
-
height: "12",
|
|
1978
|
-
x: "47",
|
|
1979
|
-
y: "24",
|
|
1980
|
-
fill: "#DE1C8F",
|
|
1981
|
-
rx: "9",
|
|
1982
|
-
ry: "5",
|
|
1983
|
-
transform: "rotate(150 50 50)"
|
|
1984
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
1985
|
-
attributeName: "opacity",
|
|
1986
|
-
begin: "-0.5s",
|
|
1987
|
-
dur: "1s",
|
|
1988
|
-
keyTimes: "0;1",
|
|
1989
|
-
repeatCount: "indefinite",
|
|
1990
|
-
values: "1;0"
|
|
1991
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
1992
|
-
width: "6",
|
|
1993
|
-
height: "12",
|
|
1994
|
-
x: "47",
|
|
1995
|
-
y: "24",
|
|
1996
|
-
fill: "#DE1C8F",
|
|
1997
|
-
rx: "9",
|
|
1998
|
-
ry: "5",
|
|
1999
|
-
transform: "rotate(180 50 50)"
|
|
2000
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
2001
|
-
attributeName: "opacity",
|
|
2002
|
-
begin: "-0.4166666666666667s",
|
|
2003
|
-
dur: "1s",
|
|
2004
|
-
keyTimes: "0;1",
|
|
2005
|
-
repeatCount: "indefinite",
|
|
2006
|
-
values: "1;0"
|
|
2007
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
2008
|
-
width: "6",
|
|
2009
|
-
height: "12",
|
|
2010
|
-
x: "47",
|
|
2011
|
-
y: "24",
|
|
2012
|
-
fill: "#DE1C8F",
|
|
2013
|
-
rx: "9",
|
|
2014
|
-
ry: "5",
|
|
2015
|
-
transform: "rotate(210 50 50)"
|
|
2016
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
2017
|
-
attributeName: "opacity",
|
|
2018
|
-
begin: "-0.3333333333333333s",
|
|
2019
|
-
dur: "1s",
|
|
2020
|
-
keyTimes: "0;1",
|
|
2021
|
-
repeatCount: "indefinite",
|
|
2022
|
-
values: "1;0"
|
|
2023
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
2024
|
-
width: "6",
|
|
2025
|
-
height: "12",
|
|
2026
|
-
x: "47",
|
|
2027
|
-
y: "24",
|
|
2028
|
-
fill: "#DE1C8F",
|
|
2029
|
-
rx: "9",
|
|
2030
|
-
ry: "5",
|
|
2031
|
-
transform: "rotate(240 50 50)"
|
|
2032
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
2033
|
-
attributeName: "opacity",
|
|
2034
|
-
begin: "-0.25s",
|
|
2035
|
-
dur: "1s",
|
|
2036
|
-
keyTimes: "0;1",
|
|
2037
|
-
repeatCount: "indefinite",
|
|
2038
|
-
values: "1;0"
|
|
2039
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
2040
|
-
width: "6",
|
|
2041
|
-
height: "12",
|
|
2042
|
-
x: "47",
|
|
2043
|
-
y: "24",
|
|
2044
|
-
fill: "#DE1C8F",
|
|
2045
|
-
rx: "9",
|
|
2046
|
-
ry: "5",
|
|
2047
|
-
transform: "rotate(270 50 50)"
|
|
2048
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
2049
|
-
attributeName: "opacity",
|
|
2050
|
-
begin: "-0.16666666666666666s",
|
|
2051
|
-
dur: "1s",
|
|
2052
|
-
keyTimes: "0;1",
|
|
2053
|
-
repeatCount: "indefinite",
|
|
2054
|
-
values: "1;0"
|
|
2055
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
2056
|
-
width: "6",
|
|
2057
|
-
height: "12",
|
|
2058
|
-
x: "47",
|
|
2059
|
-
y: "24",
|
|
2060
|
-
fill: "#DE1C8F",
|
|
2061
|
-
rx: "9",
|
|
2062
|
-
ry: "5",
|
|
2063
|
-
transform: "rotate(300 50 50)"
|
|
2064
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
2065
|
-
attributeName: "opacity",
|
|
2066
|
-
begin: "-0.08333333333333333s",
|
|
2067
|
-
dur: "1s",
|
|
2068
|
-
keyTimes: "0;1",
|
|
2069
|
-
repeatCount: "indefinite",
|
|
2070
|
-
values: "1;0"
|
|
2071
|
-
})), /*#__PURE__*/React__default["default"].createElement("rect", {
|
|
2072
|
-
width: "6",
|
|
2073
|
-
height: "12",
|
|
2074
|
-
x: "47",
|
|
2075
|
-
y: "24",
|
|
2076
|
-
fill: "#DE1C8F",
|
|
2077
|
-
rx: "9",
|
|
2078
|
-
ry: "5",
|
|
2079
|
-
transform: "rotate(330 50 50)"
|
|
2080
|
-
}, /*#__PURE__*/React__default["default"].createElement("animate", {
|
|
2081
|
-
attributeName: "opacity",
|
|
2082
|
-
begin: "0s",
|
|
2083
|
-
dur: "1s",
|
|
2084
|
-
keyTimes: "0;1",
|
|
2085
|
-
repeatCount: "indefinite",
|
|
2086
|
-
values: "1;0"
|
|
2087
|
-
}))));
|
|
2088
|
-
};
|
|
2089
|
-
Loading.propTypes = {};
|
|
2090
|
-
|
|
2091
|
-
const Form$1 = ({
|
|
2072
|
+
const Form = ({
|
|
2092
2073
|
className,
|
|
2093
2074
|
formId,
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
setFormId,
|
|
2097
|
-
setValue,
|
|
2098
|
-
validateField,
|
|
2099
|
-
defaultLanguage,
|
|
2100
|
-
errors,
|
|
2101
|
-
pagingInfo,
|
|
2102
|
-
togglePageForward,
|
|
2103
|
-
togglePageBack,
|
|
2104
|
-
submitForm,
|
|
2105
|
-
status,
|
|
2106
|
-
setDateRangeValues,
|
|
2107
|
-
useDefaultTheme,
|
|
2108
|
-
entries,
|
|
2109
|
-
customSubmit,
|
|
2110
|
-
setCheckboxValue
|
|
2075
|
+
useDefaultTheme = true,
|
|
2076
|
+
customSubmit
|
|
2111
2077
|
}) => {
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2078
|
+
const dispatch = reactRedux.useDispatch();
|
|
2079
|
+
|
|
2080
|
+
const _setFormId = formId => {
|
|
2081
|
+
dispatch(setFormId(formId));
|
|
2082
|
+
};
|
|
2083
|
+
|
|
2084
|
+
const _setValue = (formId, id, value) => {
|
|
2085
|
+
dispatch(setValue(formId, id, value));
|
|
2086
|
+
};
|
|
2087
|
+
|
|
2088
|
+
const _setCheckboxValue = (formId, id, value, isChecked) => {
|
|
2089
|
+
dispatch(setCheckboxValue(formId, id, value, isChecked));
|
|
2090
|
+
};
|
|
2091
|
+
|
|
2092
|
+
const _setDateRangeValues = (formId, id, dateType, value) => {
|
|
2093
|
+
dispatch(setDateRangeValues(formId, id, dateType, value));
|
|
2094
|
+
};
|
|
2095
|
+
|
|
2096
|
+
const _validateField = (formId, id, value) => {
|
|
2097
|
+
dispatch(validateField(formId, id, value));
|
|
2098
|
+
};
|
|
2099
|
+
|
|
2100
|
+
const _togglePageForward = (formId, pageIndex) => {
|
|
2101
|
+
dispatch(togglePageForward(formId, pageIndex));
|
|
2102
|
+
};
|
|
2103
|
+
|
|
2104
|
+
const _togglePageBack = (formId, pageIndex) => {
|
|
2105
|
+
dispatch(togglePageBack(formId, pageIndex));
|
|
2106
|
+
};
|
|
2107
|
+
|
|
2108
|
+
const _submitForm = formId => {
|
|
2109
|
+
dispatch(submitForm(formId));
|
|
2110
|
+
};
|
|
2115
2111
|
|
|
2116
|
-
|
|
2117
|
-
|
|
2112
|
+
React.useEffect(() => {
|
|
2113
|
+
if (formId) _setFormId(formId);
|
|
2114
|
+
}, [formId]);
|
|
2115
|
+
const selectFormFields = makeSelectPagedFields(formId);
|
|
2116
|
+
const selectFormStatus = makeSelectFormStatus(formId);
|
|
2117
|
+
const selectPagingInfo = makeSelectPagingInfo(formId);
|
|
2118
|
+
const selectDefaultLang = makeSelectDefaultLang(formId);
|
|
2119
|
+
const selectFormSettings = makeSelectFormSettings(formId);
|
|
2120
|
+
const selectFormFieldErrors = makeSelectFormFieldErrors(formId);
|
|
2121
|
+
const selectFormEntries = makeSelectFormEntries(formId);
|
|
2122
|
+
const selectFormPostData = makeSelectFormPostData(formId);
|
|
2123
|
+
const status = reactRedux.useSelector(selectFormStatus);
|
|
2124
|
+
const fields = reactRedux.useSelector(selectFormFields);
|
|
2125
|
+
const pagingInfo = reactRedux.useSelector(selectPagingInfo);
|
|
2126
|
+
const defaultLanguage = reactRedux.useSelector(selectDefaultLang);
|
|
2127
|
+
const settings = reactRedux.useSelector(selectFormSettings);
|
|
2128
|
+
const errors = reactRedux.useSelector(selectFormFieldErrors);
|
|
2129
|
+
const entries = reactRedux.useSelector(selectFormEntries);
|
|
2130
|
+
const formData = reactRedux.useSelector(selectFormPostData);
|
|
2118
2131
|
|
|
2119
2132
|
if (pagingInfo && pagingInfo.pageCount > 1) {
|
|
2120
2133
|
const isLastPage = pagingInfo.pageCount == pagingInfo.pageIndex + 1;
|
|
2121
|
-
|
|
2134
|
+
return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
|
|
2135
|
+
theme: defaultTheme
|
|
2136
|
+
}, /*#__PURE__*/React__default["default"].createElement(FormStyled, {
|
|
2122
2137
|
className: className,
|
|
2123
2138
|
id: formId,
|
|
2124
2139
|
useDefaultTheme: useDefaultTheme
|
|
2125
|
-
}, status && status.isLoading
|
|
2126
|
-
className: "loading"
|
|
2127
|
-
}), !status || status && !status.isLoading && !status.isSubmitting && !status.hasSuccess && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, pagingInfo.pageIndex > 0 && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2140
|
+
}, !status || status && !status.isLoading && !status.isSubmitting && !status.hasSuccess && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, pagingInfo.pageIndex > 0 && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2128
2141
|
type: "button",
|
|
2129
2142
|
text: "Go Back",
|
|
2130
|
-
action: () =>
|
|
2143
|
+
action: () => _togglePageBack(formId, pagingInfo.pageIndex - 1),
|
|
2131
2144
|
useDefaultTheme: useDefaultTheme
|
|
2132
2145
|
}), /*#__PURE__*/React__default["default"].createElement(FormComposer, {
|
|
2133
2146
|
fields: fields,
|
|
2134
2147
|
formData: formData,
|
|
2135
2148
|
formId: formId,
|
|
2136
|
-
setValue:
|
|
2137
|
-
validateField:
|
|
2149
|
+
setValue: _setValue,
|
|
2150
|
+
validateField: _validateField,
|
|
2138
2151
|
defaultLanguage: defaultLanguage,
|
|
2139
2152
|
errors: errors,
|
|
2140
2153
|
pagingInfo: pagingInfo,
|
|
2141
2154
|
useDefaultTheme: useDefaultTheme,
|
|
2142
2155
|
entries: entries,
|
|
2143
|
-
setDateRangeValues:
|
|
2144
|
-
setCheckboxValue:
|
|
2156
|
+
setDateRangeValues: _setDateRangeValues,
|
|
2157
|
+
setCheckboxValue: _setCheckboxValue
|
|
2145
2158
|
}), !isLastPage && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2146
2159
|
type: "button",
|
|
2147
2160
|
text: "Next",
|
|
2148
|
-
action: () =>
|
|
2161
|
+
action: () => _togglePageForward(formId, pagingInfo.pageIndex + 1),
|
|
2149
2162
|
useDefaultTheme: useDefaultTheme
|
|
2150
2163
|
}), isLastPage && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2151
|
-
text: "Submit",
|
|
2164
|
+
text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
|
|
2152
2165
|
type: "button",
|
|
2153
2166
|
action: () => {
|
|
2154
|
-
|
|
2167
|
+
_submitForm(formId);
|
|
2168
|
+
|
|
2155
2169
|
if (customSubmit) customSubmit();
|
|
2156
2170
|
},
|
|
2157
2171
|
useDefaultTheme: useDefaultTheme
|
|
2158
2172
|
})), status && status.hasSuccess && status.successMessage && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
2159
2173
|
className: "success-message"
|
|
2160
|
-
}, status.successMessage));
|
|
2174
|
+
}, status.successMessage)));
|
|
2161
2175
|
} else {
|
|
2162
|
-
|
|
2176
|
+
return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
|
|
2177
|
+
theme: defaultTheme
|
|
2178
|
+
}, /*#__PURE__*/React__default["default"].createElement(FormStyled, {
|
|
2163
2179
|
className: className,
|
|
2164
2180
|
id: formId,
|
|
2165
2181
|
useDefaultTheme: useDefaultTheme
|
|
2166
|
-
}, status && status.isLoading
|
|
2167
|
-
className: "loading"
|
|
2168
|
-
}), !status || status && !status.isLoading && !status.isSubmitting && !status.hasSuccess && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormComposer, {
|
|
2182
|
+
}, !status || status && !status.isLoading && !status.isSubmitting && !status.hasSuccess && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormComposer, {
|
|
2169
2183
|
fields: fields,
|
|
2170
2184
|
formId: formId,
|
|
2171
|
-
setValue:
|
|
2172
|
-
setDateRangeValues:
|
|
2173
|
-
validateField:
|
|
2185
|
+
setValue: _setValue,
|
|
2186
|
+
setDateRangeValues: _setDateRangeValues,
|
|
2187
|
+
validateField: _validateField,
|
|
2174
2188
|
defaultLanguage: defaultLanguage,
|
|
2175
2189
|
errors: errors,
|
|
2176
2190
|
useDefaultTheme: useDefaultTheme,
|
|
2177
2191
|
entries: entries,
|
|
2178
|
-
setCheckboxValue:
|
|
2192
|
+
setCheckboxValue: _setCheckboxValue
|
|
2179
2193
|
}), /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2180
|
-
text: "Submit",
|
|
2194
|
+
text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
|
|
2181
2195
|
type: "button",
|
|
2182
2196
|
action: () => {
|
|
2183
|
-
|
|
2197
|
+
_submitForm(formId);
|
|
2198
|
+
|
|
2184
2199
|
if (customSubmit) customSubmit();
|
|
2185
2200
|
},
|
|
2186
2201
|
useDefaultTheme: useDefaultTheme
|
|
2187
2202
|
})), status && status.hasSuccess && status.successMessage && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
2188
2203
|
className: "success-message"
|
|
2189
|
-
}, status.successMessage));
|
|
2204
|
+
}, status.successMessage)));
|
|
2190
2205
|
}
|
|
2191
|
-
|
|
2192
|
-
return /*#__PURE__*/React__default["default"].createElement(ThemeProvider, {
|
|
2193
|
-
theme: defaultTheme
|
|
2194
|
-
}, formRender);
|
|
2195
|
-
};
|
|
2196
|
-
|
|
2197
|
-
Form$1.propTypes = {
|
|
2198
|
-
className: PropTypes__default["default"].string,
|
|
2199
|
-
formId: PropTypes__default["default"].string,
|
|
2200
|
-
fields: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array, PropTypes__default["default"].object]),
|
|
2201
|
-
formData: PropTypes__default["default"].object,
|
|
2202
|
-
entries: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array, PropTypes__default["default"].object]),
|
|
2203
|
-
useDefaultTheme: PropTypes__default["default"].bool,
|
|
2204
|
-
setFormId: PropTypes__default["default"].func,
|
|
2205
|
-
setValue: PropTypes__default["default"].func,
|
|
2206
|
-
setDateRangeValues: PropTypes__default["default"].func,
|
|
2207
|
-
validateField: PropTypes__default["default"].func,
|
|
2208
|
-
defaultLanguage: PropTypes__default["default"].string,
|
|
2209
|
-
errors: PropTypes__default["default"].array,
|
|
2210
|
-
pagingInfo: PropTypes__default["default"].object,
|
|
2211
|
-
togglePageForward: PropTypes__default["default"].func,
|
|
2212
|
-
togglePageBack: PropTypes__default["default"].func,
|
|
2213
|
-
submitForm: PropTypes__default["default"].func,
|
|
2214
|
-
customSubmit: PropTypes__default["default"].func,
|
|
2215
|
-
status: PropTypes__default["default"].object,
|
|
2216
|
-
setCheckboxValue: PropTypes__default["default"].func
|
|
2217
|
-
};
|
|
2218
|
-
|
|
2219
|
-
const action = (type, payload = {}) => ({
|
|
2220
|
-
type,
|
|
2221
|
-
...payload
|
|
2222
|
-
});
|
|
2223
|
-
|
|
2224
|
-
const submitForm = formId => action(SUBMIT_FORM_FOR_VALIDATION, {
|
|
2225
|
-
formId
|
|
2226
|
-
});
|
|
2227
|
-
const setFormId = formId => action(SET_FORM_ID, {
|
|
2228
|
-
formId
|
|
2229
|
-
});
|
|
2230
|
-
const setValue = (formId, id, value) => action(SET_FIELD_VALUE, {
|
|
2231
|
-
formId,
|
|
2232
|
-
id,
|
|
2233
|
-
value
|
|
2234
|
-
});
|
|
2235
|
-
const setCheckboxValue = (formId, id, value, isChecked) => action(SET_CHECKBOX_VALUE, {
|
|
2236
|
-
formId,
|
|
2237
|
-
id,
|
|
2238
|
-
value,
|
|
2239
|
-
isChecked
|
|
2240
|
-
});
|
|
2241
|
-
const setDateRangeValues = (formId, id, dateType, value) => action(SET_DATE_RANGE_VALUES, {
|
|
2242
|
-
formId,
|
|
2243
|
-
id,
|
|
2244
|
-
dateType,
|
|
2245
|
-
value
|
|
2246
|
-
});
|
|
2247
|
-
const validateField = (formId, id, value) => action(VALIDATE_FIELD, {
|
|
2248
|
-
formId,
|
|
2249
|
-
id,
|
|
2250
|
-
value
|
|
2251
|
-
});
|
|
2252
|
-
const togglePageForward = (formId, pageIndex) => action(PAGE_FORWARD, {
|
|
2253
|
-
formId,
|
|
2254
|
-
pageIndex
|
|
2255
|
-
});
|
|
2256
|
-
const togglePageBack = (formId, pageIndex) => action(PAGE_BACK, {
|
|
2257
|
-
formId,
|
|
2258
|
-
pageIndex
|
|
2259
|
-
});
|
|
2260
|
-
|
|
2261
|
-
const FormContainer = ({
|
|
2262
|
-
className,
|
|
2263
|
-
formId,
|
|
2264
|
-
fields,
|
|
2265
|
-
formData,
|
|
2266
|
-
setFormId,
|
|
2267
|
-
setValue,
|
|
2268
|
-
setDateRangeValues,
|
|
2269
|
-
validateField,
|
|
2270
|
-
defaultLanguage,
|
|
2271
|
-
errors,
|
|
2272
|
-
pagingInfo,
|
|
2273
|
-
togglePageForward,
|
|
2274
|
-
togglePageBack,
|
|
2275
|
-
submitForm,
|
|
2276
|
-
status,
|
|
2277
|
-
useDefaultTheme = true,
|
|
2278
|
-
entries,
|
|
2279
|
-
setCheckboxValue,
|
|
2280
|
-
customSubmit
|
|
2281
|
-
}) => {
|
|
2282
|
-
return /*#__PURE__*/React__default["default"].createElement(Form$1, {
|
|
2283
|
-
className: className,
|
|
2284
|
-
formId: formId,
|
|
2285
|
-
fields: fields,
|
|
2286
|
-
setFormId: setFormId,
|
|
2287
|
-
setValue: setValue,
|
|
2288
|
-
setDateRangeValues: setDateRangeValues,
|
|
2289
|
-
validateField: validateField,
|
|
2290
|
-
defaultLanguage: defaultLanguage,
|
|
2291
|
-
errors: errors,
|
|
2292
|
-
pagingInfo: pagingInfo,
|
|
2293
|
-
togglePageForward: togglePageForward,
|
|
2294
|
-
togglePageBack: togglePageBack,
|
|
2295
|
-
submitForm: submitForm,
|
|
2296
|
-
status: status,
|
|
2297
|
-
useDefaultTheme: useDefaultTheme,
|
|
2298
|
-
entries: entries,
|
|
2299
|
-
formData: formData,
|
|
2300
|
-
setCheckboxValue: setCheckboxValue,
|
|
2301
|
-
customSubmit: customSubmit
|
|
2302
|
-
});
|
|
2303
2206
|
};
|
|
2304
2207
|
|
|
2305
|
-
|
|
2208
|
+
Form.propTypes = {
|
|
2306
2209
|
className: PropTypes__default["default"].string,
|
|
2307
2210
|
formId: PropTypes__default["default"].string,
|
|
2308
|
-
fields: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array, PropTypes__default["default"].object]),
|
|
2309
|
-
formData: PropTypes__default["default"].object,
|
|
2310
|
-
entries: PropTypes__default["default"].oneOfType([PropTypes__default["default"].array, PropTypes__default["default"].object]),
|
|
2311
|
-
setFormId: PropTypes__default["default"].func,
|
|
2312
|
-
setDateRangeValues: PropTypes__default["default"].func,
|
|
2313
|
-
setValue: PropTypes__default["default"].func,
|
|
2314
2211
|
useDefaultTheme: PropTypes__default["default"].bool,
|
|
2315
|
-
validateField: PropTypes__default["default"].func,
|
|
2316
|
-
defaultLanguage: PropTypes__default["default"].string,
|
|
2317
|
-
errors: PropTypes__default["default"].array,
|
|
2318
|
-
pagingInfo: PropTypes__default["default"].object,
|
|
2319
|
-
togglePageForward: PropTypes__default["default"].func,
|
|
2320
|
-
togglePageBack: PropTypes__default["default"].func,
|
|
2321
|
-
submitForm: PropTypes__default["default"].func,
|
|
2322
|
-
status: PropTypes__default["default"].object,
|
|
2323
|
-
setCheckboxValue: PropTypes__default["default"].func,
|
|
2324
2212
|
customSubmit: PropTypes__default["default"].func
|
|
2325
2213
|
};
|
|
2326
2214
|
|
|
2327
|
-
|
|
2328
|
-
const {
|
|
2329
|
-
formId
|
|
2330
|
-
} = props;
|
|
2331
|
-
const selectFormFields = selectPagedFields(formId);
|
|
2332
|
-
const selectIsLoading = makeSelectIsLoading(formId);
|
|
2333
|
-
const selectDefaultLang = makeSelectDefaultLang(formId);
|
|
2334
|
-
return state => ({
|
|
2335
|
-
fields: selectFormFields(state),
|
|
2336
|
-
loading: selectIsLoading(state),
|
|
2337
|
-
defaultLanguage: selectDefaultLang(state),
|
|
2338
|
-
errors: selectFieldErrors(state, formId),
|
|
2339
|
-
pagingInfo: selectPagingInfo(state, formId),
|
|
2340
|
-
status: selectFormStatus(state, formId),
|
|
2341
|
-
entries: selectEntries(state, formId),
|
|
2342
|
-
formData: selectPostData(state, formId)
|
|
2343
|
-
});
|
|
2344
|
-
};
|
|
2345
|
-
|
|
2346
|
-
const mapDispatchToProps = dispatch => {
|
|
2347
|
-
return {
|
|
2348
|
-
setFormId: formId => dispatch(setFormId(formId)),
|
|
2349
|
-
setValue: (formId, id, value) => dispatch(setValue(formId, id, value)),
|
|
2350
|
-
setCheckboxValue: (formId, id, value, isChecked) => dispatch(setCheckboxValue(formId, id, value, isChecked)),
|
|
2351
|
-
setDateRangeValues: (formId, id, dateType, value) => dispatch(setDateRangeValues(formId, id, dateType, value)),
|
|
2352
|
-
validateField: (formId, id, value) => dispatch(validateField(formId, id, value)),
|
|
2353
|
-
togglePageForward: (formId, pageIndex) => dispatch(togglePageForward(formId, pageIndex)),
|
|
2354
|
-
togglePageBack: (formId, pageIndex) => dispatch(togglePageBack(formId, pageIndex)),
|
|
2355
|
-
submitForm: formId => dispatch(submitForm(formId))
|
|
2356
|
-
};
|
|
2357
|
-
};
|
|
2358
|
-
|
|
2359
|
-
var Form = reactRedux.connect(mapStateToProps, mapDispatchToProps)(FormContainer);
|
|
2360
|
-
|
|
2215
|
+
exports.actions = actions;
|
|
2361
2216
|
exports["default"] = Form;
|
|
2362
2217
|
exports.reducer = reducer;
|
|
2363
2218
|
exports.sagas = formV2Sagas;
|
|
2219
|
+
exports.selectors = selectors;
|
|
2364
2220
|
//# sourceMappingURL=forms.js.map
|