{"version":3,"file":"js/rescript-bundles-suspicious-emails-dashboard-index-DashboardSuspiciousEmailsIndex-res-3ae6459f7ff3bbe72caa.chunk.js","mappings":"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","sources":["webpack://datacenters/./client/app/rescript/api/suspicious-emails/requests/UpdateSuspiciousEmailRequest.res.js","webpack://datacenters/./client/app/rescript/api/suspicious-emails/Api_SuspiciousEmail.res.js","webpack://datacenters/./client/app/rescript/bundles/suspicious-emails/dashboard/common/navbar/DashboardSuspiciousEmailNavbar.res.js","webpack://datacenters/./client/app/rescript/bundles/suspicious-emails/dashboard/index/components/options/DashboardSuspiciousEmailsOptions.res.js","webpack://datacenters/./client/app/rescript/bundles/suspicious-emails/dashboard/index/DashboardSuspiciousEmailsIndex.res.js","webpack://datacenters/./client/app/rescript/routes/common/Routes_SuspiciousEmail.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Badge/BadgeCss.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Badge/Badge.scss?14be","webpack://datacenters/./client/app/rescript/styleguide/components/Badge/Badge.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Heading/H1.res.js","webpack://datacenters/./client/app/rescript/styleguide/forms/TextField/TextField.scss?8d30","webpack://datacenters/./client/app/rescript/styleguide/forms/TextField/TextField.res.js","webpack://datacenters/./client/app/rescript/styleguide/icons/IconOk.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Heading/Heading.scss?c4fa","webpack://datacenters/./node_modules/rescript-debounce-react/src/ReactDebounce.res.js","webpack://datacenters/./node_modules/rescript-debounce/src/Debounce.res.js","webpack://datacenters/./node_modules/rescript/lib/es6/js_promise.js"],"sourcesContent":["// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../../../libs/ID.res.js\";\nimport * as Rest from \"../../Rest.res.js\";\nimport * as Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as Json$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json.res.js\";\nimport * as Json_Decode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Decode.res.js\";\nimport * as Json_Encode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Encode.res.js\";\n\nfunction toJson(status) {\n return Json_Encode$JsonCombinators.object([[\n \"status\",\n status\n ]]);\n}\n\nvar Req = {\n toJson: toJson\n};\n\nvar decoder = Json_Decode$JsonCombinators.object(function (field) {\n return {\n message: field.required(\"message\", Json_Decode$JsonCombinators.string)\n };\n });\n\nfunction fromJson(json) {\n return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder));\n}\n\nvar Res = {\n decoder: decoder,\n fromJson: fromJson\n};\n\nfunction exec(id, status) {\n return Rest.$$fetch(\"/dashboard/suspicious_emails/\" + ID.toString(id), {\n NAME: \"Patch\",\n VAL: toJson(status)\n }, {\n NAME: \"Json\",\n VAL: decoder\n }, undefined, undefined);\n}\n\nexport {\n Req ,\n Res ,\n exec ,\n}\n/* decoder Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as FetchSuspiciousEmailsRequest from \"./requests/FetchSuspiciousEmailsRequest.res.js\";\nimport * as UpdateSuspiciousEmailRequest from \"./requests/UpdateSuspiciousEmailRequest.res.js\";\n\nvar index = FetchSuspiciousEmailsRequest.Dashboard.exec;\n\nvar index$1 = FetchSuspiciousEmailsRequest.Dashboard.SuspiciousIp.exec;\n\nvar SuspiciousIp = {\n index: index$1\n};\n\nvar Dashboard = {\n index: index,\n SuspiciousIp: SuspiciousIp\n};\n\nvar update = UpdateSuspiciousEmailRequest.exec;\n\nexport {\n update ,\n Dashboard ,\n}\n/* FetchSuspiciousEmailsRequest Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as A from \"../../../../../styleguide/components/Link/A.res.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as DashboardNavbarCss from \"../../../../../styleguide/dashboard/components/navbar/DashboardNavbarCss.res.js\";\nimport * as Routes_SuspiciousEmail from \"../../../../../routes/common/Routes_SuspiciousEmail.res.js\";\n\nfunction DashboardSuspiciousEmailNavbar(props) {\n var suspiciousEmail = props.suspiciousEmail;\n var __currentLink = props.currentLink;\n var currentLink = __currentLink !== undefined ? __currentLink : \"Index\";\n var linkCss = function (link) {\n if (link === currentLink) {\n return DashboardNavbarCss.underlinedLinkContainer;\n } else {\n return DashboardNavbarCss.linkContainer;\n }\n };\n var tmp;\n tmp = currentLink === \"Index\" ? DashboardNavbarCss.underlinedLinkItem : DashboardNavbarCss.normalLinkItem;\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(A.make, {\n href: Routes_SuspiciousEmail.Dashboard.index,\n className: tmp,\n children: \"Suspicious Emails\"\n }),\n className: linkCss(\"Index\")\n }),\n suspiciousEmail !== undefined ? JsxRuntime.jsx(JsxRuntime.Fragment, {\n children: Caml_option.some(JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(A.make, {\n href: Routes_SuspiciousEmail.Dashboard.edit(suspiciousEmail.id),\n className: DashboardNavbarCss.underlinedLinkItem,\n children: \"Edit Suspicious Email\"\n }),\n className: linkCss(\"Edit\")\n }))\n }) : null\n ],\n className: DashboardNavbarCss.barContainer\n }),\n className: DashboardNavbarCss.barWrapper\n });\n}\n\nvar Css;\n\nvar make = DashboardSuspiciousEmailNavbar;\n\nexport {\n Css ,\n make ,\n}\n/* A Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as A from \"../../../../../../styleguide/components/Link/A.res.js\";\nimport * as Button from \"../../../../../../styleguide/components/Button/Button.res.js\";\nimport * as Popover from \"../../../../../../styleguide/components/Popover/Popover.res.js\";\nimport * as IconSelect from \"../../../../../../styleguide/icons/IconSelect.res.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as DashboardDropdownOptionsCss from \"../../../../../../styleguide/dashboard/components/options/DashboardDropdownOptionsCss.res.js\";\nimport * as FetchSuspiciousEmailsRequest from \"../../../../../../api/suspicious-emails/requests/FetchSuspiciousEmailsRequest.res.js\";\n\nfunction DashboardSuspiciousEmailsOptions(props) {\n var sortBy = props.sortBy;\n var page = \"page=\" + String(props.pageNum);\n var query = Belt_Option.getWithDefault(Belt_Option.map(props.query, (function (x) {\n return \"&query=\" + encodeURIComponent(x);\n })), \"\");\n var variant = sortBy.NAME;\n var sortBy$1 = variant === \"Email\" ? \"&sort_by=suspicious_emails.email&sort_direction=\" + FetchSuspiciousEmailsRequest.Dashboard.Req.SortDirection.toString(sortBy.VAL) : (\n variant === \"IsValid\" ? \"&sort_by=suspicious_emails.is_valid&sort_direction=\" + FetchSuspiciousEmailsRequest.Dashboard.Req.SortDirection.toString(sortBy.VAL) : (\n variant === \"Status\" ? \"&sort_by=suspicious_emails.status&sort_direction=\" + FetchSuspiciousEmailsRequest.Dashboard.Req.SortDirection.toString(sortBy.VAL) : \"&sort_by=suspicious_emails.created_at&sort_direction=\" + FetchSuspiciousEmailsRequest.Dashboard.Req.SortDirection.toString(sortBy.VAL)\n )\n );\n var url = \"/api/v1/dashboard/suspicious_emails.csv?\" + (page + (query + sortBy$1));\n return JsxRuntime.jsxs(Popover.make, {\n children: [\n JsxRuntime.jsx(Popover.Trigger.make, {\n children: JsxRuntime.jsx(Button.make, {\n size: \"SM\",\n color: \"Primary\",\n children: \"Options\",\n iconSuffixComponent: Caml_option.some(JsxRuntime.jsx(IconSelect.make, {\n size: \"LG\",\n color: \"White\"\n }))\n })\n }),\n JsxRuntime.jsx(Popover.Body.make, {\n position: {\n TAG: \"Below\",\n _0: \"RightEdge\"\n },\n className: DashboardDropdownOptionsCss.popoverBody,\n children: JsxRuntime.jsxs(A.make, {\n href: url,\n className: DashboardDropdownOptionsCss.popoverBodyLink,\n children: [\n \"Download CSV\",\n JsxRuntime.jsx(IconSelect.make, {\n size: \"MD\",\n color: \"LightestGray\",\n className: DashboardDropdownOptionsCss.popoverBodyLinkIcon\n })\n ]\n })\n })\n ]\n });\n}\n\nvar Css;\n\nvar make = DashboardSuspiciousEmailsOptions;\n\nexport {\n Css ,\n make ,\n}\n/* A Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as H1 from \"../../../../styleguide/components/Heading/H1.res.js\";\nimport * as Hooks from \"../../../../libs/Hooks.res.js\";\nimport * as Table from \"../../../../styleguide/components/Table/Table.res.js\";\nimport * as React from \"react\";\nimport * as Control from \"../../../../styleguide/components/Control/Control.res.js\";\nimport * as Popover from \"../../../../styleguide/components/Popover/Popover.res.js\";\nimport * as $$Promise from \"../../../../bindings/Promise.res.js\";\nimport * as Spinner from \"../../../../styleguide/components/Spinner/Spinner.res.js\";\nimport * as Dropdown from \"../../../../styleguide/forms/Dropdown/Dropdown.res.js\";\nimport * as IconMenu from \"../../../../styleguide/icons/IconMenu.res.js\";\nimport * as TableRow from \"../../../../styleguide/components/Table/TableRow.res.js\";\nimport * as Container from \"../../../../styleguide/components/Container/Container.res.js\";\nimport * as TableBody from \"../../../../styleguide/components/Table/TableBody.res.js\";\nimport * as TableCell from \"../../../../styleguide/components/Table/TableCell.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Pagination from \"../../../../styleguide/components/Pagination/Pagination.res.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as IconSorting from \"../../../../styleguide/icons/IconSorting.res.js\";\nimport * as SearchField from \"../../../../styleguide/forms/SearchField/SearchField.res.js\";\nimport * as TableHeader from \"../../../../styleguide/components/Table/TableHeader.res.js\";\nimport * as SentryLogger from \"../../../../loggers/SentryLogger.res.js\";\nimport * as ReactDebounce from \"rescript-debounce-react/src/ReactDebounce.res.js\";\nimport * as TableHeaderCell from \"../../../../styleguide/components/Table/TableHeaderCell.res.js\";\nimport Format from \"date-fns/format\";\nimport * as DashboardIndexCss from \"../../../../styleguide/dashboard/components/views/index/DashboardIndexCss.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as Api_SuspiciousEmail from \"../../../../api/suspicious-emails/Api_SuspiciousEmail.res.js\";\nimport * as Routes_SuspiciousEmail from \"../../../../routes/common/Routes_SuspiciousEmail.res.js\";\nimport * as DashboardSuspiciousEmailNavbar from \"../common/navbar/DashboardSuspiciousEmailNavbar.res.js\";\nimport * as DashboardSuspiciousEmailsOptions from \"./components/options/DashboardSuspiciousEmailsOptions.res.js\";\n\nvar initialState = {\n status: \"FetchingSuspiciousEmails\",\n currentPage: 1,\n totalPages: 1,\n sortBy: {\n NAME: \"Email\",\n VAL: \"Asc\"\n },\n search: \"\"\n};\n\nfunction DashboardSuspiciousEmailsIndex$default(props) {\n var container = React.useRef(null);\n var searchSuspiciousEmails = ReactDebounce.useDebounced(300, (function (param) {\n param.dispatch({\n TAG: \"PerformSearch\",\n _0: param.state.search\n });\n }));\n var match = Hooks.useReducer(initialState, (function (state, action) {\n if (typeof action !== \"object\") {\n if (action === \"FetchSuspiciousEmails\") {\n return {\n TAG: \"SideEffects\",\n _0: (function (param) {\n var dispatch = param.dispatch;\n var state = param.state;\n var match = state.search;\n var tmp = match === \"\" ? undefined : state.search;\n $$Promise.wait(Api_SuspiciousEmail.Dashboard.index(state.currentPage, state.sortBy, tmp), (function (x) {\n if (x.TAG === \"Ok\") {\n return dispatch({\n TAG: \"SucceedSuspiciousEmailsFetch\",\n _0: x._0\n });\n }\n SentryLogger.error1({\n rootModule: \"DashboardSuspiciousEmailsIndex\",\n subModulePath: /* [] */0,\n value: \"default\",\n fullPath: \"DashboardSuspiciousEmailsIndex.default\"\n }, \"Dashboard::FetchSuspiciousEmails::Error\", [\n \"Error\",\n x._0\n ]);\n dispatch(\"FailSuspiciousEmailsFetch\");\n }));\n })\n };\n } else {\n return {\n TAG: \"Update\",\n _0: {\n status: \"FailedSuspiciousEmailsFetch\",\n currentPage: state.currentPage,\n totalPages: state.totalPages,\n sortBy: state.sortBy,\n search: state.search\n }\n };\n }\n }\n switch (action.TAG) {\n case \"SucceedSuspiciousEmailsFetch\" :\n var res = action._0;\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n status: {\n TAG: \"Ready\",\n _0: res.suspiciousEmails\n },\n currentPage: res.currentPage,\n totalPages: res.totalPages,\n sortBy: state.sortBy,\n search: state.search\n },\n _1: (function (param) {\n Belt_Option.map(Caml_option.nullable_to_opt(container.current), (function (prim) {\n return prim.scrollTop;\n }));\n })\n };\n case \"UpdatePage\" :\n var nextPage = action._0;\n var match = state.status;\n if (typeof match !== \"object\" && match === \"FetchingSuspiciousEmails\") {\n return \"NoUpdate\";\n }\n if (state.currentPage !== nextPage) {\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n status: \"FetchingSuspiciousEmails\",\n currentPage: nextPage,\n totalPages: state.totalPages,\n sortBy: state.sortBy,\n search: state.search\n },\n _1: (function (param) {\n param.dispatch(\"FetchSuspiciousEmails\");\n })\n };\n } else {\n return \"NoUpdate\";\n }\n case \"SortBy\" :\n var sort = action._0;\n var match$1 = state.status;\n if (typeof match$1 !== \"object\" && match$1 === \"FetchingSuspiciousEmails\") {\n return \"NoUpdate\";\n }\n var tmp;\n if (sort === \"Email\") {\n var match$2 = state.sortBy;\n tmp = typeof match$2 === \"object\" && match$2.NAME === \"Email\" && match$2.VAL === \"Desc\" ? ({\n NAME: \"Email\",\n VAL: \"Asc\"\n }) : ({\n NAME: \"Email\",\n VAL: \"Desc\"\n });\n } else if (sort === \"IsValid\") {\n var match$3 = state.sortBy;\n tmp = typeof match$3 === \"object\" && match$3.NAME === \"IsValid\" && match$3.VAL === \"Desc\" ? ({\n NAME: \"IsValid\",\n VAL: \"Asc\"\n }) : ({\n NAME: \"IsValid\",\n VAL: \"Desc\"\n });\n } else if (sort === \"Status\") {\n var match$4 = state.sortBy;\n tmp = typeof match$4 === \"object\" && match$4.NAME === \"Status\" && match$4.VAL === \"Desc\" ? ({\n NAME: \"Status\",\n VAL: \"Asc\"\n }) : ({\n NAME: \"Status\",\n VAL: \"Desc\"\n });\n } else {\n var match$5 = state.sortBy;\n tmp = typeof match$5 === \"object\" && match$5.NAME === \"CreatedAt\" && match$5.VAL === \"Desc\" ? ({\n NAME: \"CreatedAt\",\n VAL: \"Asc\"\n }) : ({\n NAME: \"CreatedAt\",\n VAL: \"Desc\"\n });\n }\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n status: \"FetchingSuspiciousEmails\",\n currentPage: state.currentPage,\n totalPages: state.totalPages,\n sortBy: tmp,\n search: state.search\n },\n _1: (function (param) {\n param.dispatch(\"FetchSuspiciousEmails\");\n })\n };\n case \"UpdateSearchInput\" :\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n status: state.status,\n currentPage: state.currentPage,\n totalPages: state.totalPages,\n sortBy: state.sortBy,\n search: action._0\n },\n _1: searchSuspiciousEmails\n };\n case \"PerformSearch\" :\n var match$6 = state.status;\n if (typeof match$6 !== \"object\" && match$6 === \"FetchingSuspiciousEmails\") {\n return \"NoUpdate\";\n }\n if (action._0 !== state.search) {\n return \"NoUpdate\";\n } else {\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n status: \"FetchingSuspiciousEmails\",\n currentPage: state.currentPage,\n totalPages: state.totalPages,\n sortBy: state.sortBy,\n search: state.search\n },\n _1: (function (param) {\n param.dispatch(\"FetchSuspiciousEmails\");\n })\n };\n }\n \n }\n }));\n var dispatch = match[1];\n var state = match[0];\n React.useEffect((function () {\n dispatch(\"FetchSuspiciousEmails\");\n }), []);\n var match$1 = state.search;\n var tmp = match$1 === \"\" ? undefined : state.search;\n var match$2 = state.sortBy;\n var match$3 = state.sortBy;\n var match$4 = state.sortBy;\n var match$5 = state.sortBy;\n var suspiciousEmails = state.status;\n var tmp$1;\n if (typeof suspiciousEmails !== \"object\") {\n tmp$1 = suspiciousEmails === \"FetchingSuspiciousEmails\" ? JsxRuntime.jsx(TableRow.make, {\n children: JsxRuntime.jsx(TableCell.make, {\n colSpan: 7,\n children: JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Spinner.make, {\n size: \"XL\",\n color: \"Teal\"\n }),\n className: DashboardIndexCss.spinner\n })\n })\n }) : JsxRuntime.jsx(TableRow.make, {\n className: DashboardIndexCss.fetchError,\n children: JsxRuntime.jsx(TableCell.make, {\n colSpan: 7,\n children: \"Something went wrong during the search\"\n })\n });\n } else {\n var suspiciousEmails$1 = suspiciousEmails._0;\n tmp$1 = suspiciousEmails$1.length !== 0 ? Belt_Array.mapWithIndex(suspiciousEmails$1, (function (index, suspiciousEmail) {\n return JsxRuntime.jsxs(TableRow.make, {\n children: [\n JsxRuntime.jsx(TableCell.make, {\n children: JsxRuntime.jsx(\"a\", {\n children: suspiciousEmail.email,\n className: DashboardIndexCss.tableLink,\n href: Routes_SuspiciousEmail.Dashboard.edit(suspiciousEmail.id)\n })\n }),\n JsxRuntime.jsx(TableCell.make, {\n children: suspiciousEmail.status\n }),\n JsxRuntime.jsx(TableCell.make, {\n children: suspiciousEmail.isValid ? \"Valid\" : \"Not Valid\"\n }),\n JsxRuntime.jsx(TableCell.make, {\n children: Format(new Date(suspiciousEmail.createdAt), \"MMMM dd, yyyy\")\n }),\n JsxRuntime.jsx(TableCell.make, {\n children: JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsxs(Popover.make, {\n children: [\n JsxRuntime.jsx(Popover.Trigger.make, {\n children: JsxRuntime.jsx(Control.make, {\n children: JsxRuntime.jsx(IconMenu.make, {\n size: \"MD\",\n color: \"Teal\"\n })\n })\n }),\n JsxRuntime.jsx(Dropdown.Body.make, {\n position: {\n TAG: \"Below\",\n _0: \"RightEdge\"\n },\n className: DashboardIndexCss.dropdownBody,\n children: JsxRuntime.jsx(Control.make, {\n className: DashboardIndexCss.dropdownBodyRow,\n children: JsxRuntime.jsx(\"a\", {\n children: \"Edit\",\n className: DashboardIndexCss.dropdownBodyLink,\n href: Routes_SuspiciousEmail.Dashboard.edit(suspiciousEmail.id)\n })\n })\n })\n ]\n }),\n className: DashboardIndexCss.menu\n })\n })\n ]\n }, String(index));\n })) : JsxRuntime.jsx(TableRow.make, {\n className: DashboardIndexCss.fetchError,\n children: JsxRuntime.jsx(TableCell.make, {\n colSpan: 7,\n children: \"No suspicious emails were found.\"\n })\n });\n }\n return JsxRuntime.jsx(JsxRuntime.Fragment, {\n children: Caml_option.some(JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(DashboardSuspiciousEmailNavbar.make, {\n currentLink: \"Index\"\n }),\n JsxRuntime.jsxs(Container.make, {\n className: DashboardIndexCss.layout,\n setRef: Caml_option.some(container),\n children: [\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(H1.make, {\n className: DashboardIndexCss.title,\n children: \"Manage Suspicious Emails\"\n }),\n className: DashboardIndexCss.header\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(SearchField.make, {\n id: \"suspiciousEmails-search\",\n value: state.search,\n placeholder: \"Search by email\",\n inputClassName: DashboardIndexCss.searchField,\n onChange: (function ($$event) {\n dispatch({\n TAG: \"UpdateSearchInput\",\n _0: $$event.target.value\n });\n })\n }),\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(DashboardSuspiciousEmailsOptions.make, {\n pageNum: state.currentPage,\n query: tmp,\n sortBy: state.sortBy\n })\n })\n ],\n className: DashboardIndexCss.subHeader\n }),\n JsxRuntime.jsx(\"section\", {\n children: JsxRuntime.jsxs(Table.make, {\n className: DashboardIndexCss.table,\n children: [\n JsxRuntime.jsx(TableHeader.make, {\n children: JsxRuntime.jsxs(TableRow.make, {\n children: [\n JsxRuntime.jsx(TableHeaderCell.make, {\n children: JsxRuntime.jsx(Control.make, {\n onClick: (function (param) {\n dispatch({\n TAG: \"SortBy\",\n _0: \"Email\"\n });\n }),\n children: JsxRuntime.jsxs(\"span\", {\n children: [\n \"Email\",\n JsxRuntime.jsx(IconSorting.make, {\n size: \"XXS\",\n direction: typeof match$2 === \"object\" && match$2.NAME === \"Email\" ? match$2.VAL : undefined\n })\n ],\n className: DashboardIndexCss.controlCell\n })\n })\n }),\n JsxRuntime.jsx(TableHeaderCell.make, {\n children: JsxRuntime.jsx(Control.make, {\n onClick: (function (param) {\n dispatch({\n TAG: \"SortBy\",\n _0: \"Status\"\n });\n }),\n children: JsxRuntime.jsxs(\"span\", {\n children: [\n \"Status\",\n JsxRuntime.jsx(IconSorting.make, {\n size: \"XXS\",\n direction: typeof match$3 === \"object\" && match$3.NAME === \"Status\" ? match$3.VAL : undefined\n })\n ],\n className: DashboardIndexCss.controlCell\n })\n })\n }),\n JsxRuntime.jsx(TableHeaderCell.make, {\n children: JsxRuntime.jsx(Control.make, {\n onClick: (function (param) {\n dispatch({\n TAG: \"SortBy\",\n _0: \"IsValid\"\n });\n }),\n children: JsxRuntime.jsxs(\"span\", {\n children: [\n \"Valid?\",\n JsxRuntime.jsx(IconSorting.make, {\n size: \"XXS\",\n direction: typeof match$4 === \"object\" && match$4.NAME === \"IsValid\" ? match$4.VAL : undefined\n })\n ],\n className: DashboardIndexCss.controlCell\n })\n })\n }),\n JsxRuntime.jsx(TableHeaderCell.make, {\n children: JsxRuntime.jsx(Control.make, {\n onClick: (function (param) {\n dispatch({\n TAG: \"SortBy\",\n _0: \"CreatedAt\"\n });\n }),\n children: JsxRuntime.jsxs(\"span\", {\n children: [\n \"Created At\",\n JsxRuntime.jsx(IconSorting.make, {\n size: \"XXS\",\n direction: typeof match$5 === \"object\" && match$5.NAME === \"CreatedAt\" ? match$5.VAL : undefined\n })\n ],\n className: DashboardIndexCss.controlCell\n })\n })\n }),\n JsxRuntime.jsx(TableHeaderCell.make, {\n children: \"\"\n })\n ]\n })\n }),\n JsxRuntime.jsx(TableBody.make, {\n children: tmp$1\n })\n ]\n }),\n className: DashboardIndexCss.tableWrapper\n }),\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Pagination.make, {\n currentPage: state.currentPage,\n totalPages: state.totalPages,\n onPageClick: (function (x) {\n dispatch({\n TAG: \"UpdatePage\",\n _0: x\n });\n })\n }),\n className: DashboardIndexCss.pagination\n })\n ]\n })\n ],\n className: DashboardIndexCss.pageContainer\n }))\n });\n}\n\nvar Css;\n\nvar $$default = DashboardSuspiciousEmailsIndex$default;\n\nexport {\n Css ,\n initialState ,\n $$default as default,\n}\n/* H1 Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../../libs/ID.res.js\";\n\nfunction edit(id) {\n return \"/dashboard/suspicious_emails/\" + ID.toString(id) + \"/edit\";\n}\n\nvar Dashboard = {\n edit: edit,\n index: \"/dashboard/suspicious_emails\"\n};\n\nexport {\n Dashboard ,\n}\n/* ID Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\n\nvar badge = Cx.cx([\n \"inline-flex\",\n \"gap-2\",\n \"items-center\",\n \"rounded-sm\",\n \"font-medium\",\n \"w-auto\"\n ]);\n\nvar gray = Cx.cx([\n badge,\n \"bg-gray-100\",\n \"text-gray-700\"\n ]);\n\nvar red = Cx.cx([\n badge,\n \"bg-red-100\",\n \"text-red-600\"\n ]);\n\nvar green = Cx.cx([\n badge,\n \"bg-green-100\",\n \"text-green-600\"\n ]);\n\nvar blue = Cx.cx([\n badge,\n \"bg-blue-100\",\n \"text-blue-700\"\n ]);\n\nvar yellow = Cx.cx([\n badge,\n \"bg-yellow-100\",\n \"text-yellow-900\"\n ]);\n\nvar purple = Cx.cx([\n badge,\n \"bg-purple-100\",\n \"text-purple-900\"\n ]);\n\nvar xs = Cx.cx([\n \"px-2 py-1\",\n \"text-xs\"\n ]);\n\nvar small = Cx.cx([\n \"px-2 py-1\",\n \"text-sm\"\n ]);\n\nvar medium = Cx.cx([\n \"px-3 py-2\",\n \"text-base\"\n ]);\n\nvar large = Cx.cx([\n \"px-4 py-3\",\n \"text-lg\"\n ]);\n\nvar colocation = Cx.cx([\n badge,\n \"bg-blue-100\",\n \"text-blue-700\"\n ]);\n\nvar internet = Cx.cx([\n badge,\n \"bg-red-100\",\n \"text-red-600\"\n ]);\n\nvar cloud = Cx.cx([\n badge,\n \"bg-green-100\",\n \"text-green-600\"\n ]);\n\nvar network = Cx.cx([\n badge,\n \"bg-teal-100\",\n \"text-teal-700\"\n ]);\n\nvar bareMetal = Cx.cx([\n badge,\n \"bg-purple-100\",\n \"text-purple-900\"\n ]);\n\nvar $$default = Cx.cx([\n badge,\n \"bg-gray-100\",\n \"text-gray-700\"\n ]);\n\nvar Project = {\n colocation: colocation,\n internet: internet,\n cloud: cloud,\n network: network,\n bareMetal: bareMetal,\n $$default: $$default\n};\n\nvar admin = Cx.cx([\n badge,\n \"bg-blue-100\",\n \"text-blue-700\"\n ]);\n\nvar agent = Cx.cx([\n badge,\n \"bg-red-100\",\n \"text-red-600\"\n ]);\n\nvar provider = Cx.cx([\n badge,\n \"bg-green-100\",\n \"text-green-600\"\n ]);\n\nvar user = Cx.cx([\n badge,\n \"bg-teal-100\",\n \"text-teal-700\"\n ]);\n\nvar concierge = Cx.cx([\n badge,\n \"bg-purple-100\",\n \"text-purple-900\"\n ]);\n\nvar visitor = Cx.cx([\n badge,\n \"bg-gray-100\",\n \"text-gray-700\"\n ]);\n\nvar Role = {\n admin: admin,\n agent: agent,\n provider: provider,\n user: user,\n concierge: concierge,\n visitor: visitor\n};\n\nvar User = {\n Role: Role\n};\n\nvar disabled = \"opacity-25\";\n\nexport {\n badge ,\n gray ,\n red ,\n green ,\n blue ,\n yellow ,\n purple ,\n xs ,\n small ,\n medium ,\n large ,\n disabled ,\n Project ,\n User ,\n}\n/* badge Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var badge = \"Badge__badge__EWW0H\";\nexport var colorBareMetal = \"Badge__colorBareMetal__e9uPF\";\nexport var colorCloud = \"Badge__colorCloud__ovF58\";\nexport var colorColocation = \"Badge__colorColocation__mfyy3\";\nexport var colorDefault = \"Badge__colorDefault__EtjfF\";\nexport var colorInternet = \"Badge__colorInternet__MnO94\";\nexport var colorNetwork = \"Badge__colorNetwork___y2ys\";\nexport var column = \"Badge__column__YqGMN\";\nexport var flex = \"Badge__flex__YI6i1\";\nexport var flexColumn = \"Badge__flexColumn__ZGauC\";\nexport var gap1 = \"Badge__gap1__Iv5Me\";\nexport var gap2 = \"Badge__gap2__LGpeY\";\nexport var gap3 = \"Badge__gap3__NjlH8\";\nexport var gap4 = \"Badge__gap4__HRtbm\";\nexport var gap5 = \"Badge__gap5__WuXgH\";\nexport var row = \"Badge__row__sRcbE\";\nexport var wrapper = \"Badge__wrapper__BnseJ\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Role from \"../../../models/Role.res.js\";\nimport * as BadgeCss from \"./BadgeCss.res.js\";\nimport * as BadgeScss from \"./Badge.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = BadgeScss;\n\nfunction Badge(props) {\n var __className = props.className;\n var className = __className !== undefined ? __className : \"\";\n var tmp;\n switch (props.badgeType) {\n case \"Colocation\" :\n tmp = css.colorColocation;\n break;\n case \"Cloud\" :\n tmp = css.colorCloud;\n break;\n case \"Internet\" :\n tmp = css.colorInternet;\n break;\n case \"Network\" :\n tmp = css.colorNetwork;\n break;\n case \"BareMetal\" :\n tmp = css.colorBareMetal;\n break;\n case \"Default\" :\n tmp = css.colorDefault;\n break;\n \n }\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(\"button\", {\n children: props.children,\n className: Cx.cx([\n css.badge,\n tmp,\n className\n ]),\n disabled: true\n }),\n className: css.wrapper\n });\n}\n\nfunction Badge$Span(props) {\n var __className = props.className;\n var __size = props.size;\n var __enabled = props.enabled;\n var __id = props.id;\n var id = __id !== undefined ? __id : \"\";\n var enabled = __enabled !== undefined ? __enabled : true;\n var size = __size !== undefined ? __size : \"XS\";\n var className = __className !== undefined ? __className : \"\";\n var tmp;\n switch (props.color) {\n case \"Gray\" :\n tmp = BadgeCss.gray;\n break;\n case \"Red\" :\n tmp = BadgeCss.red;\n break;\n case \"Green\" :\n tmp = BadgeCss.green;\n break;\n case \"Blue\" :\n tmp = BadgeCss.blue;\n break;\n case \"Yellow\" :\n tmp = BadgeCss.yellow;\n break;\n case \"Purple\" :\n tmp = BadgeCss.purple;\n break;\n \n }\n var tmp$1;\n switch (size) {\n case \"XS\" :\n tmp$1 = BadgeCss.xs;\n break;\n case \"SM\" :\n tmp$1 = BadgeCss.small;\n break;\n case \"MD\" :\n tmp$1 = BadgeCss.medium;\n break;\n case \"LG\" :\n tmp$1 = BadgeCss.large;\n break;\n \n }\n return JsxRuntime.jsx(\"span\", {\n children: props.children,\n className: Cx.cx([\n tmp,\n tmp$1,\n enabled ? \"\" : BadgeCss.disabled,\n className\n ]),\n id: id,\n onClick: props.onClick\n });\n}\n\nvar Span = {\n Css: undefined,\n make: Badge$Span\n};\n\nfunction Badge$Project(props) {\n var __className = props.className;\n var __size = props.size;\n var __id = props.id;\n var id = __id !== undefined ? __id : \"\";\n var size = __size !== undefined ? __size : \"XS\";\n var className = __className !== undefined ? __className : \"\";\n var tmp;\n switch (props.category) {\n case \"Colocation\" :\n tmp = BadgeCss.Project.colocation;\n break;\n case \"Cloud\" :\n tmp = BadgeCss.Project.cloud;\n break;\n case \"Internet\" :\n tmp = BadgeCss.Project.internet;\n break;\n case \"Network\" :\n tmp = BadgeCss.Project.network;\n break;\n case \"BareMetal\" :\n tmp = BadgeCss.Project.bareMetal;\n break;\n \n }\n var tmp$1;\n switch (size) {\n case \"XS\" :\n tmp$1 = BadgeCss.xs;\n break;\n case \"SM\" :\n tmp$1 = BadgeCss.small;\n break;\n case \"MD\" :\n tmp$1 = BadgeCss.medium;\n break;\n case \"LG\" :\n tmp$1 = BadgeCss.large;\n break;\n \n }\n return JsxRuntime.jsx(\"span\", {\n children: props.children,\n className: Cx.cx([\n tmp,\n tmp$1,\n className\n ]),\n id: id\n });\n}\n\nvar Project = {\n Css: undefined,\n make: Badge$Project\n};\n\nfunction Badge$User$Role(props) {\n var __className = props.className;\n var __size = props.size;\n var role = props.role;\n var __id = props.id;\n var id = __id !== undefined ? __id : \"\";\n var size = __size !== undefined ? __size : \"XS\";\n var className = __className !== undefined ? __className : \"\";\n var tmp;\n switch (role) {\n case \"Admin\" :\n tmp = BadgeCss.User.Role.admin;\n break;\n case \"Provider\" :\n tmp = BadgeCss.User.Role.provider;\n break;\n case \"User\" :\n tmp = BadgeCss.User.Role.user;\n break;\n case \"Visitor\" :\n tmp = BadgeCss.User.Role.visitor;\n break;\n case \"Concierge\" :\n tmp = BadgeCss.User.Role.concierge;\n break;\n case \"Agent\" :\n tmp = BadgeCss.User.Role.agent;\n break;\n \n }\n var tmp$1;\n switch (size) {\n case \"XS\" :\n tmp$1 = BadgeCss.xs;\n break;\n case \"SM\" :\n tmp$1 = BadgeCss.small;\n break;\n case \"MD\" :\n tmp$1 = BadgeCss.medium;\n break;\n case \"LG\" :\n tmp$1 = BadgeCss.large;\n break;\n \n }\n return JsxRuntime.jsx(\"span\", {\n children: Role.toCapital(role),\n className: Cx.cx([\n tmp,\n tmp$1,\n className\n ]),\n id: id\n });\n}\n\nvar Role$1 = {\n Css: undefined,\n make: Badge$User$Role\n};\n\nvar User = {\n Role: Role$1\n};\n\nvar make = Badge;\n\nexport {\n css ,\n make ,\n Span ,\n Project ,\n User ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as HeadingScss from \"./Heading.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = HeadingScss;\n\nfunction H1(props) {\n var __className = props.className;\n var __id = props.id;\n var id = __id !== undefined ? __id : \"\";\n var className = __className !== undefined ? __className : \"\";\n return JsxRuntime.jsx(\"h1\", {\n children: props.children,\n className: Cx.cx([\n css.h1,\n className\n ]),\n id: id\n });\n}\n\nvar make = H1;\n\nexport {\n css ,\n make ,\n}\n/* css Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var column = \"TextField__column__gYTeY\";\nexport var disabled = \"TextField__disabled___lFkb\";\nexport var error = \"TextField__error__Xy_Zb\";\nexport var flex = \"TextField__flex__k6fW9\";\nexport var flexColumn = \"TextField__flexColumn__MRfgz\";\nexport var gap1 = \"TextField__gap1__tjJxV\";\nexport var gap2 = \"TextField__gap2__v0bd8\";\nexport var gap3 = \"TextField__gap3__j7uKC\";\nexport var gap4 = \"TextField__gap4__Wvs8F\";\nexport var gap5 = \"TextField__gap5__oq6eQ\";\nexport var grouped = \"TextField__grouped__IdCBB\";\nexport var icon = \"TextField__icon__lEALY\";\nexport var input = \"TextField__input__l8Hv_\";\nexport var leftIcon = \"TextField__leftIcon__VQc3C\";\nexport var marginLeft = \"TextField__marginLeft__h1Os9\";\nexport var marginRight = \"TextField__marginRight__J4bOE\";\nexport var row = \"TextField__row__RU2lf\";\nexport var sizeLg = \"TextField__sizeLg__Kp4fH\";\nexport var sizeMd = \"TextField__sizeMd__W2DN0\";\nexport var sizeSm = \"TextField__sizeSm__sv1yb\";\nexport var sizeXl = \"TextField__sizeXl__R1ugl\";\nexport var sizeXs = \"TextField__sizeXs__s5hlH\";\nexport var sizeXxl = \"TextField__sizeXxl__O_iiN\";\nexport var sizeXxs = \"TextField__sizeXxs__HTOr6\";\nexport var sizeXxxl = \"TextField__sizeXxxl__MwwAQ\";\nexport var sizeXxxs = \"TextField__sizeXxxs__VVXJL\";\nexport var sizeXxxxl = \"TextField__sizeXxxxl__Y4Ba0\";\nexport var sizeXxxxxl = \"TextField__sizeXxxxxl__NG4OC\";\nexport var spinner = \"TextField__spinner__Y5BOW\";\nexport var withLeftSideAddon = \"TextField__withLeftSideAddon__fcINf\";\nexport var withRightSideAddon = \"TextField__withRightSideAddon__nQhAR\";\nexport var wrapper = \"TextField__wrapper__TbkMT\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as IconOk from \"../../icons/IconOk.res.js\";\nimport * as Spinner from \"../../components/Spinner/Spinner.res.js\";\nimport * as TextFieldScss from \"./TextField.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = TextFieldScss;\n\nfunction autoCompleteToString(autoComplete) {\n switch (autoComplete) {\n case \"Off\" :\n return \"off\";\n case \"On\" :\n return \"on\";\n case \"Notel\" :\n return \"notel\";\n \n }\n}\n\nfunction domInputType(type_) {\n switch (type_) {\n case \"Text\" :\n return \"text\";\n case \"Password\" :\n return \"password\";\n case \"Number\" :\n return \"number\";\n \n }\n}\n\nfunction TextField(props) {\n var __autoComplete = props.autoComplete;\n var __grouped = props.grouped;\n var __wrapperClassName = props.wrapperClassName;\n var __className = props.className;\n var __autoFocus = props.autoFocus;\n var leftIcon = props.leftIcon;\n var icon = props.icon;\n var status = props.status;\n var __disabled = props.disabled;\n var __placeholder = props.placeholder;\n var __type_ = props.type_;\n var type_ = __type_ !== undefined ? __type_ : \"Text\";\n var placeholder = __placeholder !== undefined ? __placeholder : \"\";\n var disabled = __disabled !== undefined ? __disabled : false;\n var autoFocus = __autoFocus !== undefined ? __autoFocus : false;\n var className = __className !== undefined ? __className : \"\";\n var wrapperClassName = __wrapperClassName !== undefined ? __wrapperClassName : \"\";\n var grouped = __grouped !== undefined ? __grouped : false;\n var autoComplete = __autoComplete !== undefined ? __autoComplete : \"Off\";\n var tmp;\n if (status !== undefined) {\n switch (status) {\n case \"Error\" :\n tmp = css.error;\n break;\n case \"Valid\" :\n case \"Busy\" :\n tmp = \"\";\n break;\n \n }\n } else {\n tmp = \"\";\n }\n var tmp$1;\n if (status !== undefined) {\n switch (status) {\n case \"Error\" :\n tmp$1 = icon !== undefined && icon !== undefined ? css.withRightSideAddon : \"\";\n break;\n case \"Valid\" :\n case \"Busy\" :\n tmp$1 = css.withRightSideAddon;\n break;\n \n }\n } else {\n tmp$1 = icon !== undefined ? css.withRightSideAddon : \"\";\n }\n var tmp$2;\n var exit = 0;\n if (status !== undefined) {\n switch (status) {\n case \"Valid\" :\n if (icon !== undefined) {\n exit = 1;\n } else {\n tmp$2 = JsxRuntime.jsx(\"label\", {\n children: JsxRuntime.jsx(IconOk.make, {\n size: \"MD\",\n color: \"Teal\"\n }),\n className: css.icon\n });\n }\n break;\n case \"Error\" :\n if (icon !== undefined) {\n exit = 1;\n } else {\n tmp$2 = null;\n }\n break;\n case \"Busy\" :\n tmp$2 = JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Spinner.make, {\n size: \"MD\",\n color: \"Teal\",\n centered: true\n }),\n className: css.spinner\n });\n break;\n \n }\n } else if (icon !== undefined) {\n exit = 1;\n } else {\n tmp$2 = null;\n }\n if (exit === 1) {\n tmp$2 = JsxRuntime.jsx(\"label\", {\n children: JsxRuntime.jsx(icon.make, {\n size: \"MD\",\n color: \"Gray\"\n }),\n className: css.icon\n });\n }\n return JsxRuntime.jsxs(\"div\", {\n children: [\n leftIcon !== undefined ? JsxRuntime.jsx(\"label\", {\n children: JsxRuntime.jsx(leftIcon.make, {\n size: \"MD\",\n color: \"LighterGray\"\n }),\n className: css.leftIcon\n }) : null,\n JsxRuntime.jsx(\"input\", {\n ref: props.setRef,\n className: Cx.cx([\n css.input,\n disabled ? css.disabled : \"\",\n tmp,\n tmp$1,\n leftIcon !== undefined ? css.withLeftSideAddon : \"\",\n grouped ? css.grouped : \"\",\n className\n ]),\n id: props.id,\n autoComplete: autoCompleteToString(autoComplete),\n autoFocus: autoFocus,\n disabled: disabled,\n placeholder: placeholder,\n type: domInputType(type_),\n value: props.value,\n onKeyUp: props.onKeyUp,\n onFocus: props.onFocus,\n onBlur: props.onBlur,\n onChange: props.onChange\n }),\n tmp$2\n ],\n className: Cx.cx([\n css.wrapper,\n wrapperClassName\n ])\n });\n}\n\nvar make = TextField;\n\nexport {\n css ,\n autoCompleteToString ,\n domInputType ,\n make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Icon from \"../components/Icon/Icon.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nfunction IconOk(props) {\n var __title = props.title;\n var title = __title !== undefined ? __title : \"Ok\";\n return JsxRuntime.jsx(Icon.make, {\n title: title,\n size: props.size,\n className: props.className,\n children: JsxRuntime.jsx(\"path\", {\n d: \"M14 2.5l-8.5 8.5-3.5-3.5-1.5 1.5 5 5 10-10z\",\n fill: Icon.mapColor(props.color)\n })\n });\n}\n\nvar make = IconOk;\n\nexport {\n make ,\n}\n/* Icon Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var column = \"Heading__column__Bdidr\";\nexport var flex = \"Heading__flex__r_pIG\";\nexport var flexColumn = \"Heading__flexColumn__xi3TI\";\nexport var gap1 = \"Heading__gap1__mdiC7\";\nexport var gap2 = \"Heading__gap2__qpxHl\";\nexport var gap3 = \"Heading__gap3__NN2ZY\";\nexport var gap4 = \"Heading__gap4__Z8AjQ\";\nexport var gap5 = \"Heading__gap5__Y2uk0\";\nexport var h1 = \"Heading__h1__dxBPE\";\nexport var h2 = \"Heading__h2__Raelb\";\nexport var h3 = \"Heading__h3__S077j\";\nexport var h4 = \"Heading__h4__bxzju\";\nexport var h5 = \"Heading__h5__uCEKj\";\nexport var row = \"Heading__row__byBio\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as React from \"react\";\nimport * as Debounce from \"rescript-debounce/src/Debounce.res.js\";\n\nfunction useDebounced(wait, fn) {\n return React.useRef(Debounce.make(wait, fn)).current;\n}\n\nfunction useControlled(wait, fn) {\n return React.useRef(Debounce.makeControlled(wait, fn)).current;\n}\n\nexport {\n useDebounced ,\n useControlled ,\n}\n/* react Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\n\nfunction makeControlled(waitOpt, fn) {\n var wait = waitOpt !== undefined ? waitOpt : 100;\n var timerId = {\n contents: undefined\n };\n var lastArg = {\n contents: undefined\n };\n var lastCallTime = {\n contents: undefined\n };\n var shouldCall = function (time) {\n var lastCallTime$1 = lastCallTime.contents;\n if (lastCallTime$1 === undefined) {\n return true;\n }\n var timeSinceLastCall = time - lastCallTime$1 | 0;\n if (timeSinceLastCall >= wait) {\n return true;\n } else {\n return timeSinceLastCall < 0;\n }\n };\n var remainingWait = function (time) {\n var lastCallTime$1 = lastCallTime.contents;\n if (lastCallTime$1 === undefined) {\n return wait;\n }\n var timeSinceLastCall = time - lastCallTime$1 | 0;\n return wait - timeSinceLastCall | 0;\n };\n var timerExpired = function () {\n var timerId$1 = timerId.contents;\n if (timerId$1 !== undefined) {\n clearTimeout(Caml_option.valFromOption(timerId$1));\n }\n var time = Date.now() | 0;\n if (shouldCall(time)) {\n return call();\n } else {\n timerId.contents = Caml_option.some(setTimeout(timerExpired, remainingWait(time)));\n return ;\n }\n };\n var call = function () {\n var x = lastArg.contents;\n if (x !== undefined) {\n lastArg.contents = undefined;\n timerId.contents = undefined;\n return fn(Caml_option.valFromOption(x));\n } else {\n timerId.contents = undefined;\n return ;\n }\n };\n var schedule = function (x) {\n var time = Date.now() | 0;\n lastArg.contents = Caml_option.some(x);\n lastCallTime.contents = time;\n timerId.contents = Caml_option.some(setTimeout(timerExpired, wait));\n };\n var scheduled = function () {\n return timerId.contents !== undefined;\n };\n var cancel = function () {\n var timerId$p = timerId.contents;\n if (timerId$p !== undefined) {\n clearTimeout(Caml_option.valFromOption(timerId$p));\n timerId.contents = undefined;\n lastArg.contents = undefined;\n lastCallTime.contents = undefined;\n return ;\n }\n \n };\n var invoke = function (x) {\n cancel();\n fn(x);\n };\n return {\n invoke: invoke,\n schedule: schedule,\n scheduled: scheduled,\n cancel: cancel\n };\n}\n\nfunction make(wait, fn) {\n return makeControlled(wait, fn).schedule;\n}\n\nexport {\n make ,\n makeControlled ,\n}\n/* No side effect */\n","\n\nimport * as Curry from \"./curry.js\";\n\nfunction then_(arg1, obj) {\n return obj.then(Curry.__1(arg1));\n}\n\nfunction $$catch(arg1, obj) {\n return obj.catch(Curry.__1(arg1));\n}\n\nexport {\n then_ ,\n $$catch ,\n}\n/* No side effect */\n"],"names":["toJson","status","Json_Encode$JsonCombinators","decoder","Json_Decode$JsonCombinators","field","message","required","Dashboard","index","FetchSuspiciousEmailsRequest","exec","SuspiciousIp","update","id","Rest","ID","NAME","VAL","undefined","make","props","tmp","suspiciousEmail","__currentLink","currentLink","linkCss","link","DashboardNavbarCss","JsxRuntime","children","A","href","Routes_SuspiciousEmail","className","Caml_option","edit","sortBy","page","String","pageNum","query","Belt_Option","x","encodeURIComponent","variant","url","Req","SortDirection","toString","Popover","Button","size","color","iconSuffixComponent","IconSelect","position","TAG","_0","DashboardDropdownOptionsCss","initialState","currentPage","totalPages","search","$$default","container","React","searchSuspiciousEmails","ReactDebounce","param","dispatch","state","match","Hooks","action","$$Promise","Api_SuspiciousEmail","SentryLogger","rootModule","subModulePath","value","fullPath","res","suspiciousEmails","_1","current","prim","scrollTop","nextPage","sort","match$1","match$2","match$3","match$4","match$5","match$6","tmp$1","TableRow","TableCell","colSpan","Spinner","DashboardIndexCss","suspiciousEmails$1","length","Belt_Array","email","isValid","Format","Date","createdAt","Control","IconMenu","Dropdown","DashboardSuspiciousEmailNavbar","Container","setRef","H1","SearchField","placeholder","inputClassName","onChange","$$event","target","DashboardSuspiciousEmailsOptions","Table","TableHeader","TableHeaderCell","onClick","IconSorting","direction","TableBody","Pagination","onPageClick","badge","Cx","gray","red","green","blue","yellow","purple","xs","small","medium","large","Project","colocation","internet","cloud","network","bareMetal","User","Role","admin","agent","provider","user","concierge","visitor","colorBareMetal","colorCloud","colorColocation","colorDefault","colorInternet","colorNetwork","column","flex","flexColumn","gap1","gap2","gap3","gap4","gap5","row","wrapper","css","BadgeScss","Span","Css","__className","__size","__enabled","enabled","__id","BadgeCss","category","role","badgeType","disabled","HeadingScss","h1","error","grouped","icon","input","leftIcon","marginLeft","marginRight","sizeLg","sizeMd","sizeSm","sizeXl","sizeXs","sizeXxl","sizeXxs","sizeXxxl","sizeXxxs","sizeXxxxl","sizeXxxxxl","spinner","withLeftSideAddon","withRightSideAddon","TextFieldScss","autoCompleteToString","autoComplete","domInputType","type_","tmp$2","__autoComplete","__grouped","__wrapperClassName","wrapperClassName","__autoFocus","autoFocus","__disabled","__placeholder","__type_","exit","IconOk","centered","ref","type","onKeyUp","onFocus","onBlur","__title","title","Icon","d","fill","h2","h3","h4","h5","useDebounced","wait","fn","makeControlled","waitOpt","timerId","contents","lastArg","lastCallTime","timerExpired","timerId$1","clearTimeout","time","now","lastCallTime$1","timeSinceLastCall","shouldCall","call","setTimeout","remainingWait","cancel","timerId$p","invoke","schedule","scheduled","then_","arg1","obj","then","$$catch","catch"],"sourceRoot":""}