{"version":3,"file":"js/4849-5b7000c06ff6d34bb90c.js","mappings":"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","sources":["webpack://app/./node_modules/@platform-ui/design-system/dist/esm/Tooltip/index.js","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/ConnectionSettings.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/AccountInfo/AccountInfo.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/AccountInfo/index.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/AccountInfo/modals/AllowInstallationModal.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/AccountInfo/modals/ObjectsListModal.tsx","webpack://app/./node_modules/@platform-ui/design-system/dist/esm/Popover/index.js","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/AccountInfo/modals/PopoverComp.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/ConfigInfo/ConfigInfo.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/components/ConfigInfo/index.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/stores/AccountInfo/reducer.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/stores/ConfigInfo/reducer.tsx","webpack://app/./app/javascript/bundles/Connectors/CustomTabs/Snowflake/styles/index.tsx"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/extends\";\nimport * as React from 'react';\nimport { Tooltip as MuiTooltip } from '@mui/material';\n\nvar Tooltip = function Tooltip(_ref) {\n var title = _ref.title,\n open = _ref.open,\n e2e = _ref.e2e,\n dsOnClose = _ref.dsOnClose,\n dsOnOpen = _ref.dsOnOpen,\n children = _ref.children,\n placement = _ref.placement;\n return /*#__PURE__*/React.createElement(MuiTooltip, _extends({}, e2e && {\n 'data-e2e': e2e\n }, {\n title: title,\n open: open,\n onOpen: dsOnOpen,\n onClose: dsOnClose,\n placement: placement\n }), /*#__PURE__*/React.createElement(\"div\", _extends({\n style: {\n display: 'inline-flex'\n }\n }, e2e && {\n 'data-e2e': \"\".concat(e2e, \"-body\")\n }), children));\n};\n\nexport default Tooltip;\n//# sourceMappingURL=index.js.map","import React from \"react\";\nimport { Alert, Card, Spinner } from \"@platform-ui/design-system\";\nimport { ContentPaddingStyle } from \"./styles\";\n\nimport ConfigInfo from \"./components/ConfigInfo\";\nimport AccountInfo from \"./components/AccountInfo\";\nimport { useIdentity } from \"../../../IdentityProvider\";\n\nimport { useFlipperHook } from \"../../../Tables/helpers\";\n\nconst ConnectionSettings = () => {\n const { hasPermission } = useIdentity();\n const [snowflakeConfigEnabled, snowflakeConfigLoading] = useFlipperHook(\n \"enable_snowflake_config\"\n );\n\n if (!hasPermission('permission.SnowflakeSecureShare')) {\n return (\n \n );\n }\n\n const getAccountInfoSection = () => {\n return hasPermission('permission.SnowflakeSecureShare') ? (\n \n ) : (\n \n );\n };\n\n const getConfigInfoSection = () => {\n return hasPermission('permission.PoweredBySnowflake') ? (\n \n ) : (\n \n );\n };\n\n return (\n \n ) : (\n <>\n {getAccountInfoSection()}\n
\n {snowflakeConfigEnabled && (\n \n {getConfigInfoSection()}\n \n )}\n \n )\n }\n />\n );\n};\n\nexport default ConnectionSettings;\n","import React, { useEffect, useReducer, useState } from \"react\";\nimport { ButtonSectionStyle, ContentPaddingStyle } from \"../../styles\";\nimport {\n Button,\n Card,\n Chip,\n FormLabel,\n Grid,\n Icon,\n Select,\n SelectItem,\n Spinner,\n TextField,\n Typography,\n designTokens,\n} from \"@platform-ui/design-system\";\nimport {\n initialState as accountInfoInitialState,\n reducer as accountInfoReducer,\n} from \"../../stores/AccountInfo\";\nimport { Box, IconButton, Tooltip } from \"@mui/material\";\nimport { useToast } from \"../../../../../ToastProvider\";\nimport { useIdentity } from \"../../../../../IdentityProvider\";\nimport Connect from \"../../../../../Connect/Connect\";\nimport { AllowInstallationModal } from \"./modals/AllowInstallationModal\";\nimport { PopoverComp } from \"./modals/PopoverComp\";\nimport { ObjectsListModel } from \"./modals/ObjectsListModal\";\nimport { useForm } from \"react-hook-form\";\n\nexport interface ZuoraObjectsMetaDataType {\n objectName: string;\n id: number;\n}\n\nconst getDatetime = (\n datetime: string | Number,\n locale: string,\n timezone: string\n) => {\n return Intl.DateTimeFormat(locale, {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n timeZone: timezone,\n timeZoneName: \"short\",\n }).format(new Date(Number(datetime)));\n};\n\nconst AccountInfo = () => {\n const { setToast } = useToast();\n const [regions, setRegions] = useState([]);\n const [provisionStatusMessage, setProvisionStatusMessage] = useState(\"Secure Share setup has been initiated. You will see a status update once your share is ready to access.\");\n const [objectsList, setObjectsList] = useState([]);\n const [selectedObjects, setSelectedObjects] = useState([]);\n const [provisionedObjectsList, setProvisionedObjectsList] = useState([]);\n const [provisionCompletionStatus, setProvisionCompletionStatus] = useState(false);\n const [confirmationModalOpen, setConfirmationModalOpen] = useState(false);\n const [accountInfoFormState, accountInfoFormDispatch] = useReducer(\n accountInfoReducer,\n accountInfoInitialState\n );\n const [isClickedClosedIcon, setIsClickedClosedIcon] = useState(false); // useState for status popover\n const [loadingProvisionStatus, setLoadingProvisionStatus] = useState(true);\n\n const { identity, zdsLocale, timezone } = useIdentity();\n const isLocal = window.location.host.includes(\"localhost\");\n const proxyPath = `${isLocal ? \"http://localhost:8080\" : \"\"\n }/platform/gateway-proxy-v2`;\n\n const tenantId = identity?.tenantId; // TenantId declaration\n\n const { control } = useForm();\n\n const fetchProvisionCompletionStatus = async () => {\n setLoadingProvisionStatus(true);\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/provision/completionstatus/${tenantId}`,\n \"GET\",\n undefined,\n { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\n );\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n setProvisionCompletionStatus(data);\n if (data) {\n setProvisionStatusMessage(\"Secure Share setup is successfully installed and ready to access.\");\n }\n } catch (error) {\n Connect.log(\n `Error fetching snowflake provision completion status: ${error}`\n );\n setToast({\n message:\n \"Error fetching snowflake provision completion status! Please refresh the page and try again later!!!\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n } finally {\n setLoadingProvisionStatus(false);\n }\n };\n\n const fetchAccountInfo = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/accountinfo`,\n \"GET\",\n undefined,\n {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"zuora-tenant-id\": tenantId,\n }\n );\n const payload = await response.json();\n if (payload?.status === 500) {\n // Note(Duc): this 500 error returned in the response indicates the tenant does not have SNOWFLAKE created in tenant registry\n accountInfoFormDispatch({ type: \"loadAccountInfo\", payload: {} });\n } else {\n accountInfoFormDispatch({ type: \"loadAccountInfo\", payload });\n }\n } catch (error) {\n Connect.log(`Error fetching snowflake account info: ${error}`);\n setToast({\n message:\n \"Error fetching snowflake account info! Please refresh the page and try again later!!!\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n }\n };\n\n const fetchObjectsList = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/zuora_object/`,\n \"GET\",\n undefined,\n {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"zuora-tenant-id\": tenantId,\n }\n );\n if (!response.ok) {\n throw new Error(\"Failed to fetch object list.\");\n }\n const data = await response.json();\n const objectsList: ZuoraObjectsMetaDataType[] =\n data?.zobjects?.map((objectName: string, index: number) => ({\n objectName,\n id: index + 1,\n })) || [];\n setObjectsList(objectsList);\n } catch (error) {\n Connect.log(\n `Error fetching objects list for snowflake connector: ${error}`\n );\n setToast({\n message: \"Error fetching objects list! Please try again later.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n }\n };\n\n const fetchRegions = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/regions`,\n \"GET\",\n undefined,\n { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\n );\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n setRegions(await response.json());\n } catch (error) {\n Connect.log(`Error fetching snowflake regions: ${error}`);\n setToast({\n message:\n \"Error fetching snowflake regions! Please refresh the page and try again later!!!\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n }\n };\n\n const fetchProvisionedObjects = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/zuora_object_tenant_group_map/tenantObjectByRootTenantId/${tenantId}`,\n \"GET\",\n undefined,\n { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\n );\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n const provisionedObjectsListValue: string[] = data?.objects.map(({ objectName }) => objectName) ?? [];\n setProvisionedObjectsList(provisionedObjectsListValue);\n } catch (error) {\n Connect.log(`Error fetching provisioned objects for snowflake connector: ${error}`);\n setToast({\n message: \"Error fetching provisioned objects! Please try again later.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n }\n };\n\n useEffect(() => {\n fetchRegions();\n fetchAccountInfo();\n fetchProvisionCompletionStatus();\n fetchProvisionedObjects();\n fetchObjectsList();\n }, []);\n\n const provisionTenantShare = async () => {\n const { region, accountEdition: snowflakeAccountEdition } =\n accountInfoFormState;\n\n const businessCritical = snowflakeAccountEdition === \"Business Critical\";\n const serviceType = \"billing\";\n const shareObjects = selectedObjects.length ? selectedObjects : null;\n const shareLatency = \"EVERYDAY\";\n const warehouse = false;\n\n Connect.proxyCall(\n `${proxyPath}/shares/provision`,\n \"POST\",\n {\n tenantId,\n serviceType,\n region,\n shareObjects,\n shareLatency,\n warehouse,\n businessCritical,\n },\n { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\n )\n .then((response) => {\n if (response.ok) {\n setProvisionStatusMessage(\n \"Update Object request initiated: Status of Provisioning will be updated once complete\"\n );\n fetchProvisionedObjects();\n setToast({\n message:\n \"Account information was saved and provisioning was initiated successfully.\",\n severity: \"success\",\n keyRender: Date.now(),\n });\n fetchProvisionCompletionStatus();\n } else {\n setToast({\n message:\n \"We encountered a problem with setting up the share. Please verify the details and reinitiate the setup.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n }\n })\n .catch(() => {\n setToast({\n message:\n \"We encountered a problem with setting up the share. Please verify the details and reinitiate the setup.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n });\n };\n\n const saveAccountInfo = async () => {\n const {\n region: snowflakeAccountRegion,\n accountName: snowflakeAccountName,\n accountEdition: snowflakeAccountEdition,\n } = accountInfoFormState;\n\n Connect.proxyCall(\n `${proxyPath}/shares/accountinfo`,\n \"POST\",\n {\n snowflakeAccountRegion,\n snowflakeAccountName,\n snowflakeAccountEdition,\n installationUserFirstName: identity?.firstName || \"Admin\",\n installationUserLastName: identity?.lastName || \"Admin\",\n installationUserEmail: identity?.workEmail || \"admin@zuora.com\",\n },\n {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"zuora-tenant-id\": tenantId,\n }\n )\n .then((response) => {\n accountInfoFormDispatch({ type: \"setValidating\", payload: false });\n if (response.ok) {\n fetchAccountInfo();\n setConfirmationModalOpen(false);\n setProvisionStatusMessage(\"Secure Share setup has been initiated. You will see a status update once your share is ready to access.\");\n provisionTenantShare();\n } else {\n setToast({\n message:\n \"We encounted a problem installing your account information. Please try again later.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n }\n })\n .catch(() => {\n accountInfoFormDispatch({ type: \"setValidating\", payload: false });\n setToast({\n message:\n \"We encounted a problem installing your account information. Please try again later.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n });\n };\n\n const validateAccountInfo = async () => {\n const {\n region: snowflakeAccountRegion,\n accountName: snowflakeAccountName,\n accountEdition: snowflakeAccountEdition,\n } = accountInfoFormState;\n\n accountInfoFormDispatch({ type: \"setValidating\", payload: true });\n Connect.proxyCall(\n `${proxyPath}/shares/accountinfo/validate`,\n \"POST\",\n {\n snowflakeAccountRegion,\n snowflakeAccountName,\n snowflakeAccountEdition,\n installationUserFirstName: identity?.firstName || \"Admin\",\n installationUserLastName: identity?.lastName || \"Admin\",\n installationUserEmail: identity?.workEmail || \"admin@zuora.com\",\n },\n { Accept: \"application/json\", \"Content-Type\": \"application/json\" }\n )\n .then((response) => {\n if (response.ok) {\n setProvisionStatusMessage(\"Secure Share setup has been initiated. You will see a status update once your share is ready to access.\");\n saveAccountInfo();\n } else {\n accountInfoFormDispatch({ type: \"setValidating\", payload: false });\n setToast({\n message:\n \"We encounted a problem verifying your account information. Please try again later.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n }\n })\n .catch(() => {\n accountInfoFormDispatch({ type: \"setValidating\", payload: false });\n setToast({\n message:\n \"We encounted a problem verifying your account information. Please try again later.\",\n severity: \"error\",\n keyRender: Date.now(),\n });\n });\n };\n\n const hasMissingAccountInfo = () => {\n const { region, accountName, accountEdition } = accountInfoFormState;\n return !region || !accountName || !accountEdition;\n };\n\n const InstallButtonSection = () => {\n return (\n \n {\n setConfirmationModalOpen(true);\n }}\n body=\"Install\"\n />\n \n );\n };\n\n const InstalledBySection = () => {\n return (\n \n
\n \n Installed By:\n \n
\n
\n {`${accountInfoFormState.installerFirstName} ${accountInfoFormState.installerLastName} (${accountInfoFormState.installerEmail})`}\n
\n
\n \n {getDatetime(accountInfoFormState.installDate, zdsLocale, timezone)}\n \n
\n
\n );\n };\n\n const content = (\n \n \n \n \n \n To find this information, navigate to your Snowflake account\n and run the following command:\n
\n SELECT CURRENT_REGION();\n \n }\n >\n \n \n \n \n \n }\n placeholder=\"Select One\"\n value={accountInfoFormState.region || \"\"}\n dsOnChange={(e) => {\n accountInfoFormDispatch({\n type: \"setRegion\",\n payload: (e.target.value as any) || \"\",\n });\n }}\n >\n {regions.sort().map((item) => (\n \n {item}\n \n ))}\n \n
\n \n \n Snowflake Account Locator\n \n \n \n \n To get your Snowflake account locator, refer to your account\n URL. It's the part before the first dot, like this:\n
\n \n https://<account_locator>.<cloud_region>.snowflakecomputing.com/\n \n \n }\n >\n \n \n \n \n \n }\n dsOnChange={({ target }) => {\n accountInfoFormDispatch({\n type: \"setAccountName\",\n payload: target.value,\n });\n }}\n value={accountInfoFormState.accountName || \"\"}\n />\n
\n \n \n \n \n To find this information, navigate to your Snowflake\n account:\n
    \n
  • \n For classic UI, click the account name\n in the top right corner and check the edition in account\n information.\n
  • \n
  • \n For Snowsight UI, click the account\n name in the bottom left corner and hover over the\n account information to get the edition.\n
  • \n
\n \n }\n >\n \n \n \n \n \n }\n placeholder=\"Select One\"\n value={accountInfoFormState.accountEdition || \"\"}\n dsOnChange={(e) => {\n accountInfoFormDispatch({\n type: \"setAccountEdition\",\n payload: (e.target.value as any) || \"\",\n });\n }}\n >\n Enterprise\n Business Critical\n \n
\n \n \n \n \n \n \n \n \n \n setSelectedObjects(selectedObjectNames)}\n onSubmitObjectProvision={() => {\n accountInfoFormState.alreadyInstalled && provisionTenantShare(); // Provision Objects directly only when snowflake is already installed.\n }}\n snowflakeAlreadyInstalled={accountInfoFormState.alreadyInstalled}\n provisionedObjectsList={provisionedObjectsList}\n provisionCompletionStatus={provisionCompletionStatus}\n />\n \n \n {!accountInfoFormState.alreadyInstalled ? (\n \n ) : (\n \n )}\n \n {confirmationModalOpen && (\n setConfirmationModalOpen(false)}\n onInstallation={() => validateAccountInfo()}\n accountInfoFormState={accountInfoFormState}\n identity={identity}\n />\n )}\n
\n );\n\n const connectionStatusChip = accountInfoFormState.alreadyInstalled && (\n {\n setIsClickedClosedIcon(false);\n }}\n anchor={\n \n {provisionCompletionStatus ? \"Active\" : \"In Progress\"}\n \n \n }\n state={provisionCompletionStatus ? \"success\" : \"primary\"}\n size=\"medium\"\n />\n }\n body={\n \n \n \n \n {provisionCompletionStatus\n ? \"Setup Successful\"\n : \"Setup In Progress\"}\n \n \n \n setIsClickedClosedIcon(true)}\n >\n \n \n \n \n \n \n {provisionStatusMessage}\n \n \n \n }\n displayPopover={!isClickedClosedIcon}\n popoverId=\"connectionStatus-popover\"\n />\n );\n\n return (\n \n \n \n \n \n {connectionStatusChip}\n \n \n \n \n \n }\n body={loadingProvisionStatus ? : content}\n variant=\"outlined\"\n />\n );\n};\n\nexport default AccountInfo;\n","import AccountInfo from './AccountInfo';\nexport default AccountInfo;","import React from \"react\";\nimport {\n Button,\n Icon,\n Modal,\n ModalActions,\n ModalTitle,\n Spinner,\n} from \"@platform-ui/design-system\";\nimport { Box, Typography } from \"@mui/material\";\nimport { IdentityResponse } from \"../../../../../../IdentityProvider\";\nimport { AccountInfoState } from \"../../../stores/AccountInfo/reducer\";\n\nexport const AllowInstallationModal = ({\n openInstallationModal,\n onClose,\n onInstallation,\n accountInfoFormState,\n identity,\n}: {\n openInstallationModal: boolean;\n onClose: () => void;\n onInstallation: () => void;\n accountInfoFormState: AccountInfoState;\n identity: IdentityResponse;\n}) => {\n return (\n }\n >\n \n Allow Zuora to Connect & Transmit Data To Snowflake\n \n \n }\n body={\n accountInfoFormState.validating ? (\n \n \n \n ) : (\n \n \n By clicking \"Allow & Install\" below you are allowing Zuora to\n transmit your Zuora data to the Snowflake account that you have\n provided. This action cannot be reverted.\n \n {[\n { label: \"Snowflake Region\", value: accountInfoFormState.region },\n {\n label: \"Snowflake Account Name\",\n value: accountInfoFormState.accountName,\n },\n {\n label: \"Snowflake Account Edition\",\n value: accountInfoFormState.accountEdition,\n },\n {\n label: \"Installed By User\",\n value: `${identity?.firstName} ${identity?.lastName} (${identity?.workEmail})`,\n },\n ].map(({ label, value }) => (\n \n {label}: {value}\n \n ))}\n \n )\n }\n footer={\n \n \n \n \n }\n />\n );\n};\n","import { Box, FormGroup, Tooltip } from \"@mui/material\";\nimport {\n Button,\n Card,\n Checkbox,\n FormLabel,\n Grid,\n Icon,\n Modal,\n ModalTitle,\n Typography,\n designTokens,\n} from \"@platform-ui/design-system\";\nimport React, { useEffect, useState } from \"react\";\nimport { Control, Controller, FieldValues } from \"react-hook-form\";\nimport {\n DataGrid,\n GridPaginationModel,\n GridRowSelectionModel,\n GridToolbar,\n} from \"@mui/x-data-grid\";\nimport { ZuoraObjectsMetaDataType } from \"../AccountInfo\";\n\ninterface ObjectsModelPropData {\n control: Control;\n rows: ZuoraObjectsMetaDataType[];\n onSelectionChange: (selectedObjects: string[]) => void;\n provisionedObjectsList: string[];\n provisionCompletionStatus: boolean;\n snowflakeAlreadyInstalled: boolean;\n onSubmitObjectProvision: () => void;\n}\n\nexport const ObjectsListModel = ({\n control,\n rows,\n onSelectionChange,\n provisionedObjectsList,\n provisionCompletionStatus,\n snowflakeAlreadyInstalled,\n onSubmitObjectProvision,\n}: ObjectsModelPropData) => {\n const [\n allCurrentAndFutureModelsSelected,\n setAllCurrentAndFutureModelsSelected,\n ] = useState(false);\n const [rowSelectionModel, setRowSelectionModel] =\n useState([]);\n const [prevRowSelection, setPrevRowSelectionModel] =\n useState([]);\n const [modalOpen, setModalOpen] = useState(false);\n const [paginationModel, setPaginationModel] = useState({\n page: 0,\n pageSize: 10,\n });\n\n useEffect(() => {\n const matchedRows = rows\n .filter((row) => provisionedObjectsList.includes(row.objectName))\n .map((row) => row.id);\n setRowSelectionModel(matchedRows); //Keeping the existing provisioned objects as selected\n }, [provisionedObjectsList, rows]);\n\n const onClose = () => {\n setRowSelectionModel(prevRowSelection);\n setModalOpen(false);\n };\n\n const handleRowSelectionChange = (\n newRowSelectionModel: GridRowSelectionModel\n ) => {\n setRowSelectionModel(newRowSelectionModel);\n const selectedObjectNames = newRowSelectionModel // Map selected IDs to their objectName values\n .map((id) => rows.find((row) => row.id === id)?.objectName)\n .filter(Boolean) as string[];\n onSelectionChange(selectedObjectNames);\n };\n\n return (\n {\n if (\n !allCurrentAndFutureModelsSelected &&\n rowSelectionModel.length === 0\n ) {\n return \"This is a required field\";\n }\n return true;\n },\n }}\n render={({ fieldState: { error } }) => (\n <>\n \n \n Billing Standard Objects\n \n \n \n \n }\n >\n \n \n \n \n \n {rowSelectionModel?.length > 0 && (\n \n )}\n {\n setModalOpen(true);\n if (rowSelectionModel.length > 0) {\n setPrevRowSelectionModel(rowSelectionModel);\n }\n }}\n disabled={!provisionCompletionStatus} // Object Selection is enabled only when the provisioning is complete and the status is in SUCCESS\n variant={rowSelectionModel.length > 0 ? \"text\" : \"contained\"}\n />\n {error && (\n \n {error.message}\n \n )}\n \n \n }\n body={\n !allCurrentAndFutureModelsSelected}\n sx={{\n \".MuiDataGrid-toolbarContainer\": {\n display: \"block\",\n },\n \".MuiTablePagination-selectLabel\": {\n margin: \"0px\",\n },\n \".MuiTablePagination-displayedRows\": {\n margin: \"0px\",\n },\n \".MuiDataGrid-filler\": {\n display: \"none\",\n },\n '.MuiDataGrid-overlayWrapper': {\n height: 'auto !important',\n padding: '5px',\n },\n '.MuiDataGrid-overlayWrapperInner': {\n height: 'auto !important',\n },\n }}\n rows={rows}\n disableColumnFilter\n checkboxSelection\n disableColumnSelector\n disableDensitySelector\n disableColumnMenu\n slots={{\n toolbar: GridToolbar,\n noRowsOverlay: () => (\n \n \n \n ),\n }}\n slotProps={{\n toolbar: {\n showQuickFilter: true,\n csvOptions: { disableToolbarButton: true },\n printOptions: { disableToolbarButton: true },\n },\n filterPanel: {\n disableAddFilterButton: true,\n },\n }}\n onRowSelectionModelChange={handleRowSelectionChange}\n rowSelectionModel={rowSelectionModel}\n columns={[\n {\n field: \"id\",\n headerName: \"Number\",\n },\n {\n field: \"objectName\",\n headerName: \"Object Name\",\n sortable: true,\n width: 200,\n },\n ]}\n />\n }\n footer={\n \n \n }\n dsOnChange={(e) => {\n setAllCurrentAndFutureModelsSelected(e.target.checked);\n if (e.target.checked) {\n setRowSelectionModel(\n Array.from(\n { length: rows.length },\n (_, index) => index + 1\n )\n );\n } else {\n setRowSelectionModel([]);\n }\n }}\n checked={allCurrentAndFutureModelsSelected}\n disabled={rows.length === 0}\n />\n \n \n \n {\n setRowSelectionModel(prevRowSelection);\n setAllCurrentAndFutureModelsSelected(false);\n setModalOpen(false);\n }}\n body=\"Cancel\"\n variant=\"tertiary\"\n size=\"medium\"\n />\n \n \n {\n setModalOpen(false);\n snowflakeAlreadyInstalled && onSubmitObjectProvision();\n }}\n body={snowflakeAlreadyInstalled ? \"Save\" : \"Done\"}\n size=\"medium\"\n />\n \n \n \n }\n />\n }\n />\n \n )}\n />\n );\n};\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport * as React from 'react';\nimport { Popover as MuiPopover, useTheme, Box } from '@mui/material';\nimport styled from '@emotion/styled';\nimport { transientOptions } from '../utils';\nimport { useThemeTokens } from '../Theme';\nvar StyledPopover = styled(MuiPopover, transientOptions)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n & .MuiPopover-paper {\\n border: \", \";\\n }\\n\\n \", \"\\n\\n \", \"\\n\"])), function (_ref) {\n var $emphasis = _ref.$emphasis;\n return \"1px solid \".concat($emphasis.contextHigh);\n}, function (_ref2) {\n var $pointerEventsNone = _ref2.$pointerEventsNone;\n return $pointerEventsNone ? 'pointer-events: none;' : '';\n}, function (_ref3) {\n var transformOrigin = _ref3.transformOrigin,\n anchorOrigin = _ref3.anchorOrigin,\n $arrow = _ref3.$arrow,\n $theme = _ref3.$theme,\n $emphasis = _ref3.$emphasis;\n\n var getArrowPosition = function getArrowPosition(transformOrigin, anchorOrigin, $theme) {\n var calcPosition = function calcPosition(origin) {\n switch (origin) {\n case 'left':\n case 'top':\n return '15px;';\n\n case 'center':\n return 'calc(50% - 5px);';\n\n case 'right':\n case 'bottom':\n return 'calc(100% - 25px);';\n\n default:\n break;\n }\n\n return '';\n };\n\n var position = '',\n margin = '';\n\n if ((anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.vertical) === 'top' && (transformOrigin === null || transformOrigin === void 0 ? void 0 : transformOrigin.vertical) === 'bottom') {\n position += 'bottom: -5px;';\n position += \"left: \".concat(calcPosition(anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.horizontal));\n margin = \"margin-top: -\".concat($theme.spacing(1.5), \";\");\n } else if ((anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.horizontal) === 'left' && (transformOrigin === null || transformOrigin === void 0 ? void 0 : transformOrigin.horizontal) === 'right') {\n position = \"top: \".concat(calcPosition(anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.vertical));\n position += 'right: -5px;';\n margin = \"margin-left: -\".concat($theme.spacing(1.5), \";\");\n } else if ((anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.horizontal) === 'right' && (transformOrigin === null || transformOrigin === void 0 ? void 0 : transformOrigin.horizontal) === 'left') {\n position = \"top: \".concat(calcPosition(anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.vertical));\n position += 'left: -5px;';\n margin = \"margin-left: \".concat($theme.spacing(1.5), \";\");\n } else if ((anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.vertical) === 'bottom' && (transformOrigin === null || transformOrigin === void 0 ? void 0 : transformOrigin.vertical) === 'top') {\n position += 'top: -5px;';\n position += \"left: \".concat(calcPosition(anchorOrigin === null || anchorOrigin === void 0 ? void 0 : anchorOrigin.horizontal));\n margin = \"margin-top: \".concat($theme.spacing(1.5), \";\");\n }\n\n return {\n position: position,\n margin: margin\n };\n };\n\n var _getArrowPosition = getArrowPosition(transformOrigin, anchorOrigin, $theme),\n position = _getArrowPosition.position,\n margin = _getArrowPosition.margin;\n\n var arrowStyle = position && \"\\n & .MuiPopover-paper {\\n overflow: visible;\\n transform: translate3d(0, 0, 0) !important;\\n &::before {\\n content: \\\"\\\";\\n background-color: \".concat($theme.palette.background.paper, \";\\n border-radius: \").concat($theme.spacing(0.5), \";\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n z-index: -1;\\n },\\n &::after {\\n content: \\\"\\\";\\n background-color: \").concat($theme.palette.background.paper, \";\\n width: 10px;\\n height: 10px;\\n transform: rotate(-45deg);\\n position: absolute;\\n border: 1px solid \").concat($emphasis.contextHigh, \";\\n z-index: -2;\\n \").concat(position, \"\\n }\\n }\\n \");\n return \"\\n \".concat($arrow ? arrowStyle : '', \"\\n \").concat(margin, \"\\n \");\n});\n\nvar Popover = function Popover(_ref4) {\n var a11yId = _ref4.a11yId,\n children = _ref4.children,\n className = _ref4.className,\n disableRestoreFocus = _ref4.disableRestoreFocus,\n dsOnClose = _ref4.dsOnClose,\n e2e = _ref4.e2e,\n body = _ref4.body,\n _ref4$anchorEl = _ref4.anchorEl,\n anchorEl = _ref4$anchorEl === void 0 ? null : _ref4$anchorEl,\n _ref4$anchorOrigin = _ref4.anchorOrigin,\n anchorOrigin = _ref4$anchorOrigin === void 0 ? {\n vertical: 'bottom',\n horizontal: 'center'\n } : _ref4$anchorOrigin,\n _ref4$transformOrigin = _ref4.transformOrigin,\n transformOrigin = _ref4$transformOrigin === void 0 ? {\n vertical: 'top',\n horizontal: 'center'\n } : _ref4$transformOrigin,\n open = _ref4.open,\n paperProps = _ref4.paperProps,\n _ref4$arrow = _ref4.arrow,\n arrow = _ref4$arrow === void 0 ? false : _ref4$arrow,\n _ref4$pointerEventsNo = _ref4.pointerEventsNone,\n pointerEventsNone = _ref4$pointerEventsNo === void 0 ? false : _ref4$pointerEventsNo,\n _ref4$disablePortal = _ref4.disablePortal,\n disablePortal = _ref4$disablePortal === void 0 ? false : _ref4$disablePortal;\n var theme = useTheme();\n var themeTokens = useThemeTokens();\n\n if (!anchorEl) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(StyledPopover, _extends({\n className: className,\n disableRestoreFocus: disableRestoreFocus\n }, e2e && {\n 'data-e2e': e2e\n }, {\n id: a11yId,\n open: open,\n onClose: dsOnClose,\n anchorEl: anchorEl,\n transformOrigin: transformOrigin,\n anchorOrigin: anchorOrigin,\n PaperProps: paperProps,\n disablePortal: disablePortal,\n $arrow: arrow,\n $theme: theme,\n $pointerEventsNone: pointerEventsNone,\n $emphasis: themeTokens\n }), /*#__PURE__*/React.createElement(Box, _extends({\n sx: {\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n paddingLeft: theme.spacing(1.5),\n paddingRight: theme.spacing(1.5),\n pointerEvents: 'auto'\n }\n }, e2e && {\n 'data-e2e': \"\".concat(e2e, \"-body\")\n }), body, \" \", children));\n};\n\nexport default Popover;\n//# sourceMappingURL=index.js.map","import styled from \"@emotion/styled\";\nimport { PopoverOrigin } from \"@mui/material\";\nimport { Popover } from \"@platform-ui/design-system\";\nimport { debounce } from \"lodash\";\nimport React, { ReactElement, useCallback, useState } from \"react\";\n\nconst AnchorWrapper = styled.div<{ customStyle: object }>(\n ({ customStyle = {} }) => ({\n cursor: \"pointer\",\n ...customStyle,\n })\n);\n\nexport const PopoverComp = ({\n onFirstOpen,\n anchor,\n body,\n popoverId,\n displayPopover,\n transformOrigin,\n anchorOrigin,\n anchorStyle = {},\n}: {\n onFirstOpen: () => void;\n anchor: ReactElement;\n body: ReactElement;\n popoverId: string;\n displayPopover: boolean;\n transformOrigin: PopoverOrigin;\n anchorOrigin: PopoverOrigin;\n anchorStyle?: object;\n}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [open, setOpen] = useState(false);\n\n const handleMouseLeave = useCallback(\n debounce(() => {\n setAnchorEl(null);\n setOpen(false);\n }, 300),\n []\n );\n\n const handleMouseEnter = useCallback(() => {\n handleMouseLeave.cancel();\n setOpen(true);\n }, [handleMouseLeave]);\n\n return (\n <>\n {\n setAnchorEl(event.currentTarget);\n handleMouseEnter();\n onFirstOpen();\n }}\n onMouseLeave={handleMouseLeave}\n >\n {anchor}\n \n {displayPopover && open && (\n \n )}\n \n );\n};\n","import React, { useEffect, useReducer, useState } from 'react';\nimport {\n ButtonSectionStyle,\n SnowflakeInputRowSectionStyle,\n SnowflakeInputSectionStyle,\n} from '../../styles';\nimport {\n Button,\n Card,\n Checkbox,\n TextField,\n Typography,\n Modal,\n Spinner,\n Tooltip,\n Icon,\n designTokens,\n Link,\n} from '@platform-ui/design-system';\nimport {\n initialState as configInitialState,\n reducer as configReducer,\n} from '../../stores/ConfigInfo';\nimport { Box } from '@mui/material';\nimport { useToast } from '../../../../../ToastProvider';\nimport Connect from '../../../../../Connect/Connect';\n\nconst ConfigInfo = () => {\n const { setToast } = useToast();\n const [configFormEditable, setConfigFormEditable] = useState(false);\n const [showConfirmCancelModal, setShowConfirmCancelModal] = useState(false);\n const [configFormState, configFormDispatch] = useReducer(\n configReducer,\n configInitialState,\n );\n const isLocal = window.location.host.includes('localhost');\n const proxyPath = `${isLocal ? 'http://localhost:8080' : ''}/platform/gateway-proxy-v2`;\n\n const hasErrors = (fieldName) => {\n const { fieldErrors } = configFormState;\n return fieldErrors.includes(fieldName);\n };\n\n const clearConfigErrors = () => {\n configFormDispatch({ type: 'clearErrors' });\n };\n\n const fetchConfigInfo = async () => {\n try {\n const response = await Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig`,\n 'GET',\n undefined,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n configFormDispatch({ type: 'loadConfigInfo', payload: await response.json() });\n } catch (error) {\n Connect.log(`Error fetching snowflake config info: ${error}`);\n }\n };\n\n const upsertConfigInfo = () => {\n configFormDispatch({ type: 'setSaving' });\n const {\n userName: username,\n password,\n role,\n warehouse,\n accountId,\n databaseName: database,\n } = configFormState;\n\n const body = {\n username,\n password,\n role,\n warehouse,\n accountId,\n database,\n poweredBySnowflake: configFormState.poweredBySnowflakeEnabled,\n };\n\n let response;\n if (configFormState.loadedConfigInfo.loaded) {\n response = Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig`,\n 'PUT',\n body,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n } else {\n response = Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig`,\n 'POST',\n body,\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n );\n }\n\n response.then(() => {\n configFormDispatch({ type: 'setSavingSucceeded' });\n setToast({\n message: 'The Snowflake configuration was successfully saved.',\n severity: 'success',\n keyRender: Date.now(),\n });\n setConfigFormEditable(!configFormEditable);\n\n //fetch config info to override the loaded values\n fetchConfigInfo();\n }).catch(() => {\n configFormDispatch({ type: 'setSavingFailed' });\n setToast({\n message: 'There was a problem saving the Snowflake configuration.',\n severity: 'error',\n keyRender: Date.now(),\n });\n });\n };\n\n const validateConfigInfo = async () => {\n configFormDispatch({ type: 'setValidating', payload: true });\n const {\n userName: username,\n password,\n role,\n warehouse,\n accountId,\n databaseName: database,\n } = configFormState;\n\n Connect.proxyCall(\n `${proxyPath}/shares/snowflakeconfig/validate`,\n 'POST',\n {\n username,\n password,\n role,\n warehouse,\n accountId,\n database,\n },\n { 'Accept': 'application/json', 'Content-Type': 'application/json' }\n )\n .then((response) => response.json())\n .then((data) => {\n if (!data.valid) {\n setToast({\n message: 'There were errors validating the supplied configuration.',\n severity: 'error',\n keyRender: Date.now(),\n });\n configFormDispatch({\n type: 'setFieldErrors',\n payload: data.reasons,\n });\n } else {\n configFormDispatch({ type: 'setValidating', payload: false });\n configFormDispatch({ type: 'togglePoweredBySnowflake' });\n }\n }).catch(() => {\n setToast({\n message: 'We encountered an error validating the supplied configuration.',\n severity: 'error',\n keyRender: Date.now(),\n });\n });\n };\n\n useEffect(() => {\n fetchConfigInfo();\n }, []);\n\n const refreshConfigInfoForm = () => {\n setConfigFormEditable(!configFormEditable);\n fetchConfigInfo();\n clearConfigErrors();\n };\n\n const configInfoHasChanges = () => {\n const {\n databaseName,\n accountId,\n userName,\n password,\n role,\n warehouse,\n poweredBySnowflakeEnabled,\n } = configFormState;\n const {\n databaseName: loadedDatabaseName,\n accountId: loadedAccountId,\n userName: loadedUserName,\n password: loadedPassword,\n role: loadedRole,\n warehouse: loadedWarehouse,\n poweredBySnowflakeEnabled: loadedPoweredBySnowflakeEnabled,\n } = configFormState.loadedConfigInfo;\n\n if (\n databaseName !== loadedDatabaseName ||\n accountId !== loadedAccountId ||\n userName !== loadedUserName ||\n password !== loadedPassword ||\n role !== loadedRole ||\n warehouse !== loadedWarehouse ||\n poweredBySnowflakeEnabled !== loadedPoweredBySnowflakeEnabled\n ) {\n return true;\n }\n return false;\n };\n\n const configInfoHasEmptyFields = () => {\n const { databaseName, accountId, userName, password, role, warehouse } =\n configFormState;\n\n return (\n !databaseName ||\n !accountId ||\n !userName ||\n !password ||\n !role ||\n !warehouse\n );\n };\n\n const buttonSection = configFormEditable ? (\n \n {\n upsertConfigInfo();\n }}\n >\n Save\n \n \n {\n if (!configInfoHasEmptyFields() && configInfoHasChanges()) {\n setShowConfirmCancelModal(true);\n } else {\n refreshConfigInfoForm();\n }\n }}\n >\n Cancel\n \n \n \n ) : (\n <>\n );\n\n const configFormEditButton = !configFormEditable ? (\n {\n setConfigFormEditable(!configFormEditable);\n }}\n >\n Edit\n \n ) : (\n <>\n );\n\n const getConfirmCancelModalContent = () => {\n return (\n \n Are you sure you want to cancel? Your updates will be lost.\n \n {\n setShowConfirmCancelModal(false);\n }}\n >\n Continue Editing\n \n \n {\n refreshConfigInfoForm();\n setShowConfirmCancelModal(false);\n }}\n >\n Confirm Cancel\n \n \n \n \n );\n };\n\n const getModalContent = (message) => {\n return (\n \n {message}\n \n \n );\n };\n\n const content = (\n <>\n
\n \n This option gives Zuora applications (Zuora Reporting, Zuora Data Query, AQuA, Data Source Exports, and Finance Trial Balance reports) \n the option to use Snowflake Compute resources from your Snowflake account\n (Snowflake fees apply) to run queries and reports faster and at higher scale.\n \n
\n \n
\n \n {\n configFormDispatch({\n type: 'setDatabaseName',\n payload: target.value,\n });\n }}\n value={configFormState.databaseName}\n />\n \n {}}\n dsOnOpen={() => {}}\n e2e=\"\"\n title={}\n >\n <>\n \n \n \n \n \n
\n
\n
\n \n \n {\n configFormDispatch({\n type: 'setAccountId',\n payload: target.value,\n });\n }}\n value={configFormState.accountId}\n />\n \n \n \n preferred format\n \n \n \n
\n
\n \n \n {\n configFormDispatch({\n type: 'setUserName',\n payload: target.value,\n });\n }}\n value={configFormState.userName}\n />\n \n \n {\n configFormDispatch({\n type: 'setPassword',\n payload: target.value,\n });\n }}\n value={configFormState.password}\n />\n \n \n \n \n {\n configFormDispatch({\n type: 'setRole',\n payload: target.value,\n });\n }}\n value={configFormState.role}\n />\n \n \n {\n configFormDispatch({\n type: 'setWarehouse',\n payload: target.value,\n });\n }}\n value={configFormState.warehouse}\n />\n \n \n \n {\n if (!configFormState.poweredBySnowflakeEnabled) {\n validateConfigInfo();\n } else {\n configFormDispatch({ type: 'togglePoweredBySnowflake' });\n }\n }}\n />\n \n
\n {buttonSection}\n \n );\n\n return (\n <>\n \n\n {}}\n body={getModalContent('Validating the Snowflake configuration.')}\n />\n {}}\n body={getModalContent('Saving the Snowflake configuration.')}\n />\n {}}\n body={getConfirmCancelModalContent()}\n />\n \n );\n};\n\nexport default ConfigInfo;\n","import ConfigInfo from './ConfigInfo';\nexport default ConfigInfo;","export interface AccountInfoState {\n region: String;\n accountName: String;\n accountEdition: String;\n installerFirstName: String;\n installerLastName: String;\n installerEmail: String;\n installDate: Number;\n alreadyInstalled: boolean;\n validating: boolean;\n}\n\nconst initialState: AccountInfoState = {\n region: '',\n accountName: '',\n accountEdition: '',\n installerFirstName: '',\n installerLastName: '',\n installerEmail: '',\n installDate: 0,\n alreadyInstalled: false,\n validating: false,\n};\n\nconst reducer = (state: AccountInfoState, action) => {\n switch (action.type) {\n case 'setRegion':\n return { ...state, region: action.payload };\n case 'setAccountName':\n return { ...state, accountName: action.payload };\n case 'setAccountEdition':\n return { ...state, accountEdition: action.payload };\n case 'setInstallerFirstName':\n return { ...state, installerFirstName: action.payload };\n case 'setInstallerLastName':\n return { ...state, installerLastName: action.payload };\n case 'setInstallerEmail':\n return { ...state, installerEmail: action.payload };\n case 'setInstallDate':\n return { ...state, installDate: action.payload };\n case 'setAlreadyInstalled':\n return { ...state, alreadyInstalled: !!action.payload }; // AlreadyInstalled will be true when the payload exists\n case 'loadAccountInfo':\n return {\n ...state,\n region: action.payload.region,\n accountName: action.payload.accountName,\n accountEdition: action.payload.accountEdition,\n installerFirstName: action.payload.userFirstName,\n installerLastName: action.payload.userLastName,\n installerEmail: action.payload.userEmail,\n installDate: action.payload.installationDate,\n alreadyInstalled: Boolean(action.payload.installationDate),\n };\n case 'setValidating':\n return {\n ...state,\n validating: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport { initialState, reducer };","const initialState = {\n databaseName: '',\n accountId: '',\n userName: '',\n password: '',\n role: '',\n warehouse: '',\n poweredBySnowflakeEnabled: false,\n validating: false,\n saving: false,\n savingSucceeded: true,\n loadedConfigInfo: {\n databaseName: '',\n accountId: '',\n userName: '',\n password: '',\n role: '',\n warehouse: '',\n poweredBySnowflakeEnabled: false,\n loaded: false,\n },\n fieldErrors: [],\n};\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'setDatabaseName':\n return { ...state, databaseName: action.payload };\n case 'setAccountId':\n return { ...state, accountId: action.payload };\n case 'setUserName':\n return { ...state, userName: action.payload };\n case 'setPassword':\n return { ...state, password: action.payload };\n case 'setRole':\n return { ...state, role: action.payload };\n case 'setWarehouse':\n return { ...state, warehouse: action.payload };\n case 'togglePoweredBySnowflake':\n return {\n ...state,\n poweredBySnowflakeEnabled: !state.poweredBySnowflakeEnabled,\n };\n case 'loadConfigInfo':\n return {\n ...state,\n databaseName: action.payload.database,\n accountId: action.payload.accountId,\n userName: action.payload.username,\n password: action.payload.password,\n role: action.payload.role,\n warehouse: action.payload.warehouse,\n poweredBySnowflakeEnabled: action.payload.poweredBySnowflake,\n loadedConfigInfo: {\n databaseName: action.payload.database,\n accountId: action.payload.accountId,\n userName: action.payload.username,\n password: action.payload.password,\n role: action.payload.role,\n warehouse: action.payload.warehouse,\n poweredBySnowflakeEnabled: action.payload.poweredBySnowflake,\n loaded: !!action.payload.database,\n },\n };\n case 'setFieldErrors':\n return {\n ...state,\n fieldErrors: action.payload,\n validating: false,\n };\n case 'clearErrors':\n return {\n ...state,\n fieldErrors: [],\n };\n case 'setValidating':\n return {\n ...state,\n validating: action.payload,\n };\n case 'setSaving':\n return {\n ...state,\n saving: true,\n };\n case 'setSavingSucceeded':\n return {\n ...state,\n saving: false,\n savingSucceeded: true,\n };\n case 'setSavingFailed':\n return {\n ...state,\n saving: false,\n savingSucceeded: false,\n };\n default:\n return state;\n }\n};\n\nexport { initialState, reducer };","import styled from '@emotion/styled';\n\nexport const ContentPaddingStyle = styled.div`\n padding-top: 10px;\n`;\n\nexport const ButtonSectionStyle = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 20px;\n`;\n\nexport const SnowflakeInputSectionStyle = styled.div`\n display: inline;\n margin-right: 20px;\n`;\n\nexport const SnowflakeInputRowSectionStyle = styled.div`\n margin-top: 20px;\n`;\n\nexport const TopMessageInProgress = styled.div`\n margin-top: -15px;\n margin-bottom: 15px;\n padding: 5px;\n`;\n\nexport const TopMessageCompleted = styled.div`\n margin-top: -15px;\n margin-bottom: 15px;\n padding: 5px;\n`;"],"names":["_ref","title","open","e2e","dsOnClose","dsOnOpen","children","placement","onOpen","onClose","style","display","concat","ConnectionSettings","hasPermission","useIdentity","snowflakeConfigEnabled","snowflakeConfigLoading","useFlipperHook","React","Alert","center","variant","severity","body","Card","id","Spinner","ContentPaddingStyle","AccountInfo","ConfigInfo","setToast","useToast","regions","setRegions","useState","provisionStatusMessage","setProvisionStatusMessage","objectsList","setObjectsList","selectedObjects","setSelectedObjects","provisionedObjectsList","setProvisionedObjectsList","provisionCompletionStatus","setProvisionCompletionStatus","confirmationModalOpen","setConfirmationModalOpen","accountInfoFormState","accountInfoFormDispatch","useReducer","accountInfoReducer","accountInfoInitialState","isClickedClosedIcon","setIsClickedClosedIcon","loadingProvisionStatus","setLoadingProvisionStatus","identity","zdsLocale","timezone","proxyPath","window","location","host","includes","tenantId","control","useForm","fetchProvisionCompletionStatus","async","response","Connect","proxyCall","undefined","Accept","ok","Error","statusText","data","json","error","log","message","keyRender","Date","now","fetchAccountInfo","payload","status","type","fetchProvisionedObjects","provisionedObjectsListValue","objects","map","objectName","useEffect","fetchRegions","zobjects","index","fetchObjectsList","provisionTenantShare","region","accountEdition","snowflakeAccountEdition","businessCritical","shareObjects","length","serviceType","shareLatency","warehouse","then","catch","validateAccountInfo","snowflakeAccountRegion","accountName","snowflakeAccountName","installationUserFirstName","firstName","installationUserLastName","lastName","installationUserEmail","workEmail","saveAccountInfo","hasMissingAccountInfo","InstallButtonSection","ButtonSectionStyle","Button","disabled","alreadyInstalled","dsOnClick","InstalledBySection","Typography","installerFirstName","installerLastName","installerEmail","getDatetime","datetime","locale","Intl","DateTimeFormat","day","month","year","hour","minute","second","timeZone","timeZoneName","format","Number","installDate","content","Grid","container","item","xs","direction","spacing","Select","label","labelPostfix","Icon","fontSize","color","Tooltip","arrow","placeholder","value","dsOnChange","e","target","sort","SelectItem","key","TextField","FormLabel","sx","designTokens","colors","coolGray400","ObjectsListModel","rows","onSelectionChange","selectedObjectNames","onSubmitObjectProvision","snowflakeAlreadyInstalled","AllowInstallationModal","openInstallationModal","onInstallation","connectionStatusChip","PopoverComp","transformOrigin","vertical","horizontal","anchorOrigin","onFirstOpen","anchor","Chip","Box","alignItems","gap","state","size","width","padding","justify","fontWeight","IconButton","onClick","opacity","displayPopover","popoverId","header","Modal","maxWidth","fullWidth","ModalTitle","icon","validating","marginRight","justifyContent","pb","footer","ModalActions","allCurrentAndFutureModelsSelected","setAllCurrentAndFutureModelsSelected","rowSelectionModel","setRowSelectionModel","prevRowSelection","setPrevRowSelectionModel","modalOpen","setModalOpen","paginationModel","setPaginationModel","page","pageSize","matchedRows","filter","row","handleRowSelectionChange","newRowSelectionModel","find","Boolean","Controller","name","rules","validate","render","fieldState","flexDirection","marginBottom","subtitle","DataGrid","disableRowSelectionOnClick","pagination","pageSizeOptions","onPaginationModelChange","isRowSelectable","margin","height","disableColumnFilter","checkboxSelection","disableColumnSelector","disableDensitySelector","disableColumnMenu","slots","toolbar","GridToolbar","noRowsOverlay","slotProps","showQuickFilter","csvOptions","disableToolbarButton","printOptions","filterPanel","disableAddFilterButton","onRowSelectionModelChange","columns","field","headerName","sortable","FormGroup","Checkbox","checked","Array","from","_","coolGray300","_templateObject","StyledPopover","$emphasis","contextHigh","_ref2","$pointerEventsNone","_ref3","$arrow","$theme","_getArrowPosition","calcPosition","origin","position","getArrowPosition","arrowStyle","palette","background","paper","_ref4","a11yId","className","disableRestoreFocus","_ref4$anchorEl","anchorEl","_ref4$anchorOrigin","_ref4$transformOrigin","paperProps","_ref4$arrow","_ref4$pointerEventsNo","pointerEventsNone","_ref4$disablePortal","disablePortal","theme","useTheme","themeTokens","PaperProps","paddingTop","paddingBottom","paddingLeft","paddingRight","pointerEvents","AnchorWrapper","styled","div","customStyle","cursor","anchorStyle","setAnchorEl","setOpen","handleMouseLeave","useCallback","debounce","handleMouseEnter","cancel","onMouseEnter","event","currentTarget","onMouseLeave","Popover","configFormEditable","setConfigFormEditable","showConfirmCancelModal","setShowConfirmCancelModal","configFormState","configFormDispatch","configReducer","configInitialState","hasErrors","fieldName","fieldErrors","fetchConfigInfo","refreshConfigInfoForm","configInfoHasChanges","databaseName","accountId","userName","password","role","poweredBySnowflakeEnabled","loadedDatabaseName","loadedAccountId","loadedUserName","loadedPassword","loadedRole","loadedWarehouse","loadedPoweredBySnowflakeEnabled","loadedConfigInfo","configInfoHasEmptyFields","buttonSection","upsertConfigInfo","username","database","poweredBySnowflake","loaded","marginLeft","configFormEditButton","getModalContent","SnowflakeInputRowSectionStyle","required","alignSelf","SnowflakeInputSectionStyle","Link","href","underline","navy600","valid","reasons","validateConfigInfo","headerAction","saving","initialState","reducer","action","userFirstName","userLastName","userEmail","installationDate","savingSucceeded"],"sourceRoot":""}