PageSourceSearch

https://hunter.io/assets/New-yID8aI6d.js

js hunter.io collected 2026-10-01 08:26:51 UTC 13,379 bytes, 367 lines download raw bytes

1(function() {
2	try {
3		var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {};
4		e.SENTRY_RELEASE = { id: "9bd7631" };
5		var n = new e.Error().stack;
6		n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "bf4b55ef-b624-49ab-b66d-b5880003f32e", e._sentryDebugIdIdentifier = "sentry-dbid-bf4b55ef-b624-49ab-b66d-b5880003f32e");
7	} catch (e) {}
8})();
9import { n as __esmMin } from "./rolldown-runtime-C0oiEAqH.js";
10import { Bs as Checkbox, Ct as AlertDescription, Dt as init_alert, Hs as Input, Qi as init_routes, St as AlertContent, Tt as AlertIcon, Us as init_input, Vs as init_checkbox, ar as bulk_path, bt as Alert, gn as init_label, hn as Label, ht as init_textarea, lr as bulk_verifications_path, mt as Textarea, xt as AlertActions } from "./controllers-CPhb1bs8.js";
11import { l as unsafeCast } from "./type-guards-CYLeUmJ9.js";
12import { i as require_compiler_runtime, t as require_jsx_runtime } from "./jsx-runtime-BypSXy5Z.js";
13import { t as require_react } from "./react-CRpDT2aV.js";
14import { n as init_icon, t as Icon } from "./icon-DZ9gyktL.js";
15import { r as init_button, t as Button } from "./button-iG-phgd_.js";
16import { cn as PageHeader, dn as PageHeaderBreadcrumbItem, fn as PageHeaderBreadcrumbLink, gn as init_page_header, hn as PageHeaderTitle, pn as PageHeaderHeading, un as PageHeaderBreadcrumb } from "./turbo-mount-GISyszOC.js";
17import { a as init_dist, l as router, s as usePage, t as Head_default } from "./dist-mxJwmrVG.js";
18import { n as useFlashMessages, t as init_useFlashMessages } from "./useFlashMessages-B9GgFsvq.js";
19import { n as useLegacyBodyClass, t as init_useLegacyBodyClass } from "./useLegacyBodyClass-hQaEXYU1.js";
20import { n as init_InfoPopover, t as InfoPopover } from "./InfoPopover-D6qs3TLW.js";
21import { n as init_FileUploadArea, t as FileUploadArea } from "./FileUploadArea-Cp79rv4g.js";
22//#region app/frontend/pages/BulkVerifications/New.tsx
23function New() {
24	const $ = (0, import_compiler_runtime.c)(49);
25	const { props } = usePage();
26	useFlashMessages(props.flash);
27	useLegacyBodyClass("bulk_verifications new");
28	const [name, setName] = (0, import_react.useState)("");
29	const [emails, setEmails] = (0, import_react.useState)("");
30	const [file, setFile] = (0, import_react.useState)(null);
31	const [withSources, setWithSources] = (0, import_react.useState)(false);
32	const [processing, setProcessing] = (0, import_react.useState)(false);
33	let t0;
34	if ($[0] !== emails || $[1] !== file || $[2] !== name || $[3] !== processing || $[4] !== withSources) {
35		t0 = function onSubmit(event) {
36			event.preventDefault();
37			if (processing) return;
38			window.App?.analytics?.ga_track("Bulk Email Verification", "Creation");
39			setProcessing(true);
40			const bulkVerification = {
41				name,
42				emails,
43				with_sources: withSources ? "1" : "0"
44			};
45			if (file) bulkVerification.file = file;
46			router.post(bulk_verifications_path(), { bulk_verification: unsafeCast(bulkVerification) }, { onFinish: () => setProcessing(false) });
47		};
48		$[0] = emails;
49		$[1] = file;
50		$[2] = name;
51		$[3] = processing;
52		$[4] = withSources;
53		$[5] = t0;
54	} else t0 = $[5];
55	const onSubmit = t0;
56	let t1;
57	if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
58		t1 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Head_default, { title: "New Bulk Email Verifier" });
59		$[6] = t1;
60	} else t1 = $[6];
61	let t2;
62	if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
63		t2 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHeaderBreadcrumbItem, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHeaderBreadcrumbLink, {
64			href: bulk_path(),
65			children: "Bulks"
66		}) });
67		$[7] = t2;
68	} else t2 = $[7];
69	let t3;
70	if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
71		t3 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHeader, {
72			notFull: true,
73			className: "mb-2",
74			children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PageHeaderHeading, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PageHeaderBreadcrumb, { children: [t2, /* @__P
74URE__ */ (0, import_jsx_runtime.jsx)(PageHeaderBreadcrumbItem, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHeaderBreadcrumbLink, {
75				href: bulk_verifications_path(),
76				children: "Email Verifier"
77			}) })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PageHeaderTitle, { children: "New" })] })
78		});
79		$[8] = t3;
80	} else t3 = $[8];
81	let t4;
82	if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
83		t4 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Label, {
84			htmlFor: "list-name-field",
85			children: [
86				"List name",
87				" ",
88				/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
89					className: "grey",
90					id: "list-name-field-hint",
91					children: "Must be 3–256 characters"
92				})
93			]
94		});
95		$[9] = t4;
96	} else t4 = $[9];
97	let t5;
98	if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
99		t5 = (event_0) => setName(event_0.target.value);
100		$[10] = t5;
101	} else t5 = $[10];
102	let t6;
103	if ($[11] !== name) {
104		t6 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Input, {
105			fullWidth: true,
106			type: "text",
107			id: "list-name-field",
108			placeholder: "List name",
109			autoFocus: true,
110			required: true,
111			minLength: 3,
112			maxLength: 256,
113			"aria-describedby": "list-name-field-hint",
114			value: name,
115			onChange: t5
116		});
117		$[11] = name;
118		$[12] = t6;
119	} else t6 = $[12];
120	let t7;
121	if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
122		t7 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
123			id: "bulk-upload",
124			children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "Enter your list of email addresses" })
125		});
126		$[13] = t7;
127	} else t7 = $[13];
128	let t8;
129	if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
130		t8 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Label, {
131			htmlFor: "bulk_verification_emails",
132			children: ["Enter the email addresses ", /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
133				className: "grey",
134				children: "(comma-separated or one per line)"
135			})]
136		});
137		$[14] = t8;
138	} else t8 = $[14];
139	let t9;
140	if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
141		t9 = (event_1) => setEmails(event_1.target.value);
142		$[15] = t9;
143	} else t9 = $[15];
144	let t10;
145	if ($[16] !== emails) {
146		t10 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Textarea, {
147			id: "bulk_verification_emails",
148			rows: 3,
149			placeholder: "[email protected]\[email protected]\n...",
150			value: emails,
151			onChange: t9
152		});
153		$[16] = emails;
154		$[17] = t10;
155	} else t10 = $[17];
156	let t11;
157	if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
158		t11 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Label, {
159			htmlFor: "select-file",
160			children: ["Or load the list from a file ", /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
161				className: "grey",
162				children: "(CSV or TXT)"
163			})]
164		});
165		$[18] = t11;
166	} else t11 = $[18];
167	let t12;
168	if ($[19] === Symbol.for("react.memo_cache_sentinel")) {
169		t12 = ["csv", "txt"];
170		$[19] = t12;
171	} else t12 = $[19];
172	let t13;
173	if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
174		t13 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { icon: "folder-open" });
175		$[20] = t13;
176	} else t13 = $[20];
177	let t14;
178	if ($[21] !== file) {
179		t14 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
180			className: "mt-4",
181			children: [t11, /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(FileUploadArea, {
182				file,
183				onFileChange: setFile,
184				acceptedExtensions: t12,
185				maxSize: MAX_FILE_SIZE,
186				inputId: "select-file",
187				children: [t13, "Select a file"]
188			})]
189		});
190		$[21] = file;
191		$[22] = t14;
192	} else t14 = $[22];
193	let t15;
194	let t16;
195	if ($[23] === Symbol.for("react.memo_cache_sentinel")) {
196		t15 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
197			className: "help-block",
198			children: "If your file contains multiple columns, we'll automatically detect the one containing the email addresses."
199		});
200		t16 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { id: "file-name-container" });
201		$[23] = t15;
202		$[24] = t16;
203	} else {
204		t15 = $[23];
205		t16 = $[24];
206	}
207	let t17;
208	if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
209		t17 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {});
210		$[25] = t17;
211	} else t17 = $[25];
212	let t18;
213	if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
214		t18 = (event_2) => setWithSources(event_2.target.checked);
215		$[26] = t18;
216	} else t18 = $[26];
217	let t19;
218	if ($[27] !== withSources) {
219		t19 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Checkbox, {
220			id: "with-sources-field",
221			checked: withSources,
222			onChange: t18
223		});
224		$[27] = withSources;
225		$[28] = t19;
226	} else t19 = $[28];
227	const t20 = withSources ? "check-square" : "square";
228	let t21;
229	if ($[29] !== t20) {
230		t21 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
231			variant: "solid",
232			icon: t20,
233			className: "checkbox-icon"
234		});
235		$[29] = t20;
236		$[30] = t21;
237	} else t21 = $[30];
238	let t22;
239	if ($[31] !== t19 || $[32] !== t21) {
240		t22 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", {
241			className: "checkbox-container",
242			htmlFor: "with-sources-field",
243			children: [
244				t19,
245				t21,
246				"Include the sources in the result"
247			]
248		});
249		$[31] = t19;
250		$[32] = t21;
251		$[33] = t22;
252	} else t22 = $[33];
253	let t23;
254	if ($[34] === Symbol.for("react.memo_cache_sentinel")) {
255		t23 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(InfoPopover, {
256			side: "top",
257			children: "If this option is checked, the URLs of the sources will be included in additional columns. Only the active sources where the email address can still be found are returned."
258		});
259		$[34] = t23;
260	} else t23 = $[34];
261	let t24;
262	if ($[35] !== t22) {
263		t24 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
264			id: "bulk-filters",
265			children: [
266				t17,
267				t22,
268				t23
269			]
270		});
271		$[35] = t22;
272		$[36] = t24;
273	} else t24 = $[36];
274	let t25;
275	if ($[37] !== processing || $[38] !== props.checkoutHref || $[39] !== props.emailVerificationsLimit || $[40] !== props.firstHintLabel) {
276		t25 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
277			className: "button-container",
278			children: props.emailVerificationsLimit <= 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Alert, {
279				variant: "warning",
280				className: "mt-4",
281				children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, {
282					icon: "triangle-exclamation",
283					className: "h-alert__icon"
284				}) }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertContent, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDescription, { children: "You've reached the limit of email verifications included in your plan. Please upgrade to a higher plan to process this task." }), props.checkoutHref && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertActions, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
285					asChild: true,
286					variant: "primary",
287					size: "sm",
288					className: "ml-1",
289					children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", {
290						href: props.checkoutHref,
291						children: "Get more credits"
292					})
293				}) })] })]
294			}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
295				variant: "primary",
296				size: "lg",
297				type: "submit",
298				disabled: processing,
299				children: processing ? "Uploading…" : "Upload"
300			}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
301				className: "button-container-hint",
302				children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: props.firstHintLabel }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "Duplicate email addresses will be skipped." })] })
303			})] })
304		});
305		$[37] = processing;
306		$[38] = props.checkoutHref;
307		$[39] = props.emailVerificationsLimit;
308		$[40] = props.firstHintLabel;
309		$[41] = t25;
310	} else t25 = $[41];
311	let t26;
312	if ($[42] !== onSubmit || $[43] !== t10 || $[44] !== t14 || $[45] !== t24 || $[46] !== t25 || $[47] !== t6) {
313		t26 = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [t1, /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
314			className: "board-box board-box--unboxed mb-0",
315			children: [t3, /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("form", {
316				id: "bulk-verification-form",
317				onSubmit,
318				children: [
319					t4,
320					t6,
321					t7,
322					t8,
323					t10,
324					t14,
325					t15,
326					t16,
327					t24,
328					t25
329				]
330			})]
331		})] });
332		$[42] = onSubmit;
333		$[43] = t10;
334		$[44] = t14;
335		$[45] = t24;
336		$[46] = t25;
337		$[47] = t6;
338		$[48] = t26;
339	} else t26 = $[48];
340	return t26;
341}
342var import_compiler_runtime, import_react, import_jsx_runtime, MAX_FILE_SIZE;
343function init_New() {
344	return (init_New = __esmMin((() => {
345		import_compiler_runtime = require_compiler_runtime();
346		import_react = require_react();
347		init_dist();
348		init_alert();
349		init_button();
350		init_checkbox();
351		init_icon();
352		init_input();
353		init_label();
354		init_textarea();
355		init_page_header();
356		init_routes();
357		init_FileUploadArea();
358		init_InfoPopover();
359		init_useFlashMessages();
360		init_useLegacyBodyClass();
361		import_jsx_runtime = require_jsx_runtime();
362		MAX_FILE_SIZE = 1e7;
363	})))();
364}
365//#endregion
366init_New();
367export { New as default };

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.