@dextinity/brevo-admin 2.0.0-canary-20260729062014
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +24 -0
- package/lib/blocks/NewsletterImageBlock.d.ts +8 -0
- package/lib/blocks/NewsletterImageBlock.d.ts.map +1 -0
- package/lib/blocks/NewsletterImageBlock.js +20 -0
- package/lib/blocks.generated.d.ts +206 -0
- package/lib/blocks.generated.d.ts.map +1 -0
- package/lib/blocks.generated.js +1 -0
- package/lib/brevoConfiguration/BrevoConfigForm.d.ts +8 -0
- package/lib/brevoConfiguration/BrevoConfigForm.d.ts.map +1 -0
- package/lib/brevoConfiguration/BrevoConfigForm.generated.d.ts +12 -0
- package/lib/brevoConfiguration/BrevoConfigForm.generated.d.ts.map +1 -0
- package/lib/brevoConfiguration/BrevoConfigForm.generated.js +1 -0
- package/lib/brevoConfiguration/BrevoConfigForm.gql.d.ts +6 -0
- package/lib/brevoConfiguration/BrevoConfigForm.gql.d.ts.map +1 -0
- package/lib/brevoConfiguration/BrevoConfigForm.gql.generated.d.ts +102 -0
- package/lib/brevoConfiguration/BrevoConfigForm.gql.generated.d.ts.map +1 -0
- package/lib/brevoConfiguration/BrevoConfigForm.gql.generated.js +14 -0
- package/lib/brevoConfiguration/BrevoConfigForm.gql.js +9 -0
- package/lib/brevoConfiguration/BrevoConfigForm.js +351 -0
- package/lib/brevoConfiguration/BrevoConfigPage.d.ts +3 -0
- package/lib/brevoConfiguration/BrevoConfigPage.d.ts.map +1 -0
- package/lib/brevoConfiguration/BrevoConfigPage.js +17 -0
- package/lib/brevoContacts/BrevoContactsGrid.d.ts +13 -0
- package/lib/brevoContacts/BrevoContactsGrid.d.ts.map +1 -0
- package/lib/brevoContacts/BrevoContactsGrid.generated.d.ts +65 -0
- package/lib/brevoContacts/BrevoContactsGrid.generated.d.ts.map +1 -0
- package/lib/brevoContacts/BrevoContactsGrid.generated.js +12 -0
- package/lib/brevoContacts/BrevoContactsGrid.js +238 -0
- package/lib/brevoContacts/BrevoContactsPage.d.ts +16 -0
- package/lib/brevoContacts/BrevoContactsPage.d.ts.map +1 -0
- package/lib/brevoContacts/BrevoContactsPage.js +77 -0
- package/lib/brevoContacts/form/BrevoContactForm.d.ts +19 -0
- package/lib/brevoContacts/form/BrevoContactForm.d.ts.map +1 -0
- package/lib/brevoContacts/form/BrevoContactForm.generated.d.ts +10 -0
- package/lib/brevoContacts/form/BrevoContactForm.generated.d.ts.map +1 -0
- package/lib/brevoContacts/form/BrevoContactForm.generated.js +5 -0
- package/lib/brevoContacts/form/BrevoContactForm.gql.d.ts +6 -0
- package/lib/brevoContacts/form/BrevoContactForm.gql.d.ts.map +1 -0
- package/lib/brevoContacts/form/BrevoContactForm.gql.generated.d.ts +58 -0
- package/lib/brevoContacts/form/BrevoContactForm.gql.generated.d.ts.map +1 -0
- package/lib/brevoContacts/form/BrevoContactForm.gql.generated.js +10 -0
- package/lib/brevoContacts/form/BrevoContactForm.gql.js +11 -0
- package/lib/brevoContacts/form/BrevoContactForm.js +346 -0
- package/lib/brevoTestContacts/BrevoTestContactsGrid.d.ts +13 -0
- package/lib/brevoTestContacts/BrevoTestContactsGrid.d.ts.map +1 -0
- package/lib/brevoTestContacts/BrevoTestContactsGrid.generated.d.ts +52 -0
- package/lib/brevoTestContacts/BrevoTestContactsGrid.generated.d.ts.map +1 -0
- package/lib/brevoTestContacts/BrevoTestContactsGrid.generated.js +11 -0
- package/lib/brevoTestContacts/BrevoTestContactsGrid.js +205 -0
- package/lib/brevoTestContacts/BrevoTestContactsPage.d.ts +18 -0
- package/lib/brevoTestContacts/BrevoTestContactsPage.d.ts.map +1 -0
- package/lib/brevoTestContacts/BrevoTestContactsPage.js +78 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.d.ts +19 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.d.ts.map +1 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.generated.d.ts +13 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.generated.d.ts.map +1 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.generated.js +5 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.gql.d.ts +6 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.gql.d.ts.map +1 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.gql.generated.d.ts +64 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.gql.generated.d.ts.map +1 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.gql.generated.js +10 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.gql.js +11 -0
- package/lib/brevoTestContacts/form/BrevoTestContactForm.js +266 -0
- package/lib/common/BrevoConfigProvider.d.ts +21 -0
- package/lib/common/BrevoConfigProvider.d.ts.map +1 -0
- package/lib/common/BrevoConfigProvider.js +33 -0
- package/lib/common/contactImport/useContactImportFromCsv.d.ts +18 -0
- package/lib/common/contactImport/useContactImportFromCsv.d.ts.map +1 -0
- package/lib/common/contactImport/useContactImportFromCsv.gql.d.ts +2 -0
- package/lib/common/contactImport/useContactImportFromCsv.gql.d.ts.map +1 -0
- package/lib/common/contactImport/useContactImportFromCsv.gql.generated.d.ts +26 -0
- package/lib/common/contactImport/useContactImportFromCsv.gql.generated.d.ts.map +1 -0
- package/lib/common/contactImport/useContactImportFromCsv.gql.generated.js +5 -0
- package/lib/common/contactImport/useContactImportFromCsv.gql.js +4 -0
- package/lib/common/contactImport/useContactImportFromCsv.js +462 -0
- package/lib/configVerification/ConfigVerification.d.ts +8 -0
- package/lib/configVerification/ConfigVerification.d.ts.map +1 -0
- package/lib/configVerification/ConfigVerification.gql.d.ts +2 -0
- package/lib/configVerification/ConfigVerification.gql.d.ts.map +1 -0
- package/lib/configVerification/ConfigVerification.gql.generated.d.ts +17 -0
- package/lib/configVerification/ConfigVerification.gql.generated.d.ts.map +1 -0
- package/lib/configVerification/ConfigVerification.gql.generated.js +5 -0
- package/lib/configVerification/ConfigVerification.gql.js +4 -0
- package/lib/configVerification/ConfigVerification.js +41 -0
- package/lib/dataGrid/DataGrid.d.ts +3 -0
- package/lib/dataGrid/DataGrid.d.ts.map +1 -0
- package/lib/dataGrid/DataGrid.js +19 -0
- package/lib/emailCampaigns/EmailCampaignsGrid.d.ts +7 -0
- package/lib/emailCampaigns/EmailCampaignsGrid.d.ts.map +1 -0
- package/lib/emailCampaigns/EmailCampaignsGrid.generated.d.ts +81 -0
- package/lib/emailCampaigns/EmailCampaignsGrid.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/EmailCampaignsGrid.generated.js +12 -0
- package/lib/emailCampaigns/EmailCampaignsGrid.js +281 -0
- package/lib/emailCampaigns/EmailCampaignsPage.d.ts +8 -0
- package/lib/emailCampaigns/EmailCampaignsPage.d.ts.map +1 -0
- package/lib/emailCampaigns/EmailCampaignsPage.js +85 -0
- package/lib/emailCampaigns/SendingStateColumn.d.ts +7 -0
- package/lib/emailCampaigns/SendingStateColumn.d.ts.map +1 -0
- package/lib/emailCampaigns/SendingStateColumn.js +104 -0
- package/lib/emailCampaigns/form/ConfigFields.d.ts +2 -0
- package/lib/emailCampaigns/form/ConfigFields.d.ts.map +1 -0
- package/lib/emailCampaigns/form/ConfigFields.js +26 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.d.ts +9 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.d.ts.map +1 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.gql.d.ts +4 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.gql.d.ts.map +1 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.gql.generated.d.ts +93 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.gql.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.gql.generated.js +12 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.gql.js +7 -0
- package/lib/emailCampaigns/form/EmailCampaignForm.js +418 -0
- package/lib/emailCampaigns/form/SendEmailCampaignNowDialog.d.ts +8 -0
- package/lib/emailCampaigns/form/SendEmailCampaignNowDialog.d.ts.map +1 -0
- package/lib/emailCampaigns/form/SendEmailCampaignNowDialog.js +35 -0
- package/lib/emailCampaigns/form/SendManagerFields.d.ts +10 -0
- package/lib/emailCampaigns/form/SendManagerFields.d.ts.map +1 -0
- package/lib/emailCampaigns/form/SendManagerFields.gql.d.ts +3 -0
- package/lib/emailCampaigns/form/SendManagerFields.gql.d.ts.map +1 -0
- package/lib/emailCampaigns/form/SendManagerFields.gql.generated.d.ts +39 -0
- package/lib/emailCampaigns/form/SendManagerFields.gql.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/form/SendManagerFields.gql.generated.js +11 -0
- package/lib/emailCampaigns/form/SendManagerFields.gql.js +6 -0
- package/lib/emailCampaigns/form/SendManagerFields.js +171 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.d.ts +8 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.d.ts.map +1 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.gql.d.ts +2 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.gql.d.ts.map +1 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.gql.generated.d.ts +14 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.gql.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.gql.generated.js +5 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.gql.js +4 -0
- package/lib/emailCampaigns/form/SendManagerWrapper.js +39 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.d.ts +10 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.d.ts.map +1 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.generated.d.ts +33 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.generated.js +8 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.gql.d.ts +2 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.gql.d.ts.map +1 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.gql.generated.d.ts +15 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.gql.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.gql.generated.js +5 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.gql.js +4 -0
- package/lib/emailCampaigns/form/TestEmailCampaignForm.js +146 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.d.ts +7 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.d.ts.map +1 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.gql.d.ts +2 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.gql.d.ts.map +1 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.gql.generated.d.ts +23 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.gql.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.gql.generated.js +5 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.gql.js +4 -0
- package/lib/emailCampaigns/statistics/EmailCampaignStatistics.js +133 -0
- package/lib/emailCampaigns/statistics/PercentageCard.d.ts +10 -0
- package/lib/emailCampaigns/statistics/PercentageCard.d.ts.map +1 -0
- package/lib/emailCampaigns/statistics/PercentageCard.js +145 -0
- package/lib/emailCampaigns/view/EmailCampaignView.d.ts +8 -0
- package/lib/emailCampaigns/view/EmailCampaignView.d.ts.map +1 -0
- package/lib/emailCampaigns/view/EmailCampaignView.gql.d.ts +2 -0
- package/lib/emailCampaigns/view/EmailCampaignView.gql.d.ts.map +1 -0
- package/lib/emailCampaigns/view/EmailCampaignView.gql.generated.d.ts +18 -0
- package/lib/emailCampaigns/view/EmailCampaignView.gql.generated.d.ts.map +1 -0
- package/lib/emailCampaigns/view/EmailCampaignView.gql.generated.js +5 -0
- package/lib/emailCampaigns/view/EmailCampaignView.gql.js +4 -0
- package/lib/emailCampaigns/view/EmailCampaignView.js +81 -0
- package/lib/graphql.generated.d.ts +596 -0
- package/lib/graphql.generated.d.ts.map +1 -0
- package/lib/graphql.generated.js +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +7 -0
- package/lib/targetGroups/TargetGroupDialog.d.ts +8 -0
- package/lib/targetGroups/TargetGroupDialog.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupDialog.gql.d.ts +2 -0
- package/lib/targetGroups/TargetGroupDialog.gql.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupDialog.gql.generated.d.ts +18 -0
- package/lib/targetGroups/TargetGroupDialog.gql.generated.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupDialog.gql.generated.js +5 -0
- package/lib/targetGroups/TargetGroupDialog.gql.js +4 -0
- package/lib/targetGroups/TargetGroupDialog.js +72 -0
- package/lib/targetGroups/TargetGroupForm.d.ts +20 -0
- package/lib/targetGroups/TargetGroupForm.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupForm.gql.d.ts +4 -0
- package/lib/targetGroups/TargetGroupForm.gql.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupForm.gql.generated.d.ts +37 -0
- package/lib/targetGroups/TargetGroupForm.gql.generated.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupForm.gql.generated.js +8 -0
- package/lib/targetGroups/TargetGroupForm.gql.js +9 -0
- package/lib/targetGroups/TargetGroupForm.js +219 -0
- package/lib/targetGroups/TargetGroupsGrid.d.ts +18 -0
- package/lib/targetGroups/TargetGroupsGrid.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupsGrid.generated.d.ts +90 -0
- package/lib/targetGroups/TargetGroupsGrid.generated.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupsGrid.generated.js +14 -0
- package/lib/targetGroups/TargetGroupsGrid.js +280 -0
- package/lib/targetGroups/TargetGroupsPage.d.ts +26 -0
- package/lib/targetGroups/TargetGroupsPage.d.ts.map +1 -0
- package/lib/targetGroups/TargetGroupsPage.js +63 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.d.ts +10 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.d.ts.map +1 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.gql.d.ts +5 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.gql.d.ts.map +1 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.gql.generated.d.ts +84 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.gql.generated.d.ts.map +1 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.gql.generated.js +13 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.gql.js +8 -0
- package/lib/targetGroups/addContacts/AddContactsGridSelect.js +346 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.d.ts +10 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.d.ts.map +1 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.gql.d.ts +2 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.gql.d.ts.map +1 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.gql.generated.d.ts +42 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.gql.generated.d.ts.map +1 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.gql.generated.js +8 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.gql.js +5 -0
- package/lib/targetGroups/allAssignedContacts/AllAssignedContactsGrid.js +112 -0
- package/package.json +109 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Types from '../../graphql.generated';
|
|
2
|
+
export declare const namedOperations: {
|
|
3
|
+
Mutation: {
|
|
4
|
+
StartBrevoContactImport: string;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
export type GQLStartBrevoContactImportMutationVariables = Types.Exact<{
|
|
8
|
+
scope: Types.GQLEmailCampaignContentScopeInput;
|
|
9
|
+
fileId: Types.Scalars['ID']['input'];
|
|
10
|
+
sendDoubleOptIn: Types.Scalars['Boolean']['input'];
|
|
11
|
+
targetGroupIds?: Types.InputMaybe<Array<Types.Scalars['ID']['input']> | Types.Scalars['ID']['input']>;
|
|
12
|
+
}>;
|
|
13
|
+
export type GQLStartBrevoContactImportMutation = {
|
|
14
|
+
__typename?: 'Mutation';
|
|
15
|
+
startBrevoContactImport: {
|
|
16
|
+
__typename?: 'CsvImportInformation';
|
|
17
|
+
created: number;
|
|
18
|
+
updated: number;
|
|
19
|
+
failed: number;
|
|
20
|
+
blacklisted: number;
|
|
21
|
+
failedColumns: Array<any> | null;
|
|
22
|
+
blacklistedColumns: Array<any> | null;
|
|
23
|
+
errorMessage: string | null;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=useContactImportFromCsv.gql.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useContactImportFromCsv.gql.generated.d.ts","sourceRoot":"","sources":["../../../src/common/contactImport/useContactImportFromCsv.gql.generated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAEjD,eAAO,MAAM,eAAe;;;;CAI3B,CAAA;AACD,MAAM,MAAM,2CAA2C,GAAG,KAAK,CAAC,KAAK,CAAC;IACpE,KAAK,EAAE,KAAK,CAAC,iCAAiC,CAAC;IAC/C,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IACrC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CACvG,CAAC,CAAC;AAGH,MAAM,MAAM,kCAAkC,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,uBAAuB,EAAE;QAAE,UAAU,CAAC,EAAE,sBAAsB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var _templateObject;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
3
|
+
import { gql } from "@apollo/client";
|
|
4
|
+
export var startBrevoContactImportMutation = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n mutation StartBrevoContactImport($scope: EmailCampaignContentScopeInput!, $fileId: ID!, $sendDoubleOptIn: Boolean!, $targetGroupIds: [ID!]) {\n startBrevoContactImport(scope: $scope, fileId: $fileId, sendDoubleOptIn: $sendDoubleOptIn, targetGroupIds: $targetGroupIds) {\n created\n updated\n failed\n blacklisted\n failedColumns\n blacklistedColumns\n errorMessage\n }\n }\n"])));
|
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
3
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
4
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
5
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
6
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
7
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
8
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
10
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
11
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
18
|
+
import { useApolloClient } from "@apollo/client";
|
|
19
|
+
import { Alert, Button, CheckboxField, Dialog, downloadFile, FinalForm, Loading, messages, useErrorDialog } from "@dextinity/admin";
|
|
20
|
+
import { Upload } from "@dextinity/admin-icons";
|
|
21
|
+
import { Box, DialogActions, DialogContent, DialogTitle } from "@mui/material";
|
|
22
|
+
import { styled } from "@mui/material/styles";
|
|
23
|
+
import { useMemo, useRef, useState } from "react";
|
|
24
|
+
import { useDropzone } from "react-dropzone";
|
|
25
|
+
import { FormattedMessage, useIntl } from "react-intl";
|
|
26
|
+
import { useBrevoConfig } from "../BrevoConfigProvider";
|
|
27
|
+
import { startBrevoContactImportMutation } from "./useContactImportFromCsv.gql";
|
|
28
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
29
|
+
export var useContactImportFromCsv = function useContactImportFromCsv(_ref) {
|
|
30
|
+
var scope = _ref.scope,
|
|
31
|
+
targetGroupId = _ref.targetGroupId,
|
|
32
|
+
refetchQueries = _ref.refetchQueries;
|
|
33
|
+
var fileInputRef = useRef(null);
|
|
34
|
+
var _useState = useState(false),
|
|
35
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
36
|
+
open = _useState2[0],
|
|
37
|
+
setOpen = _useState2[1];
|
|
38
|
+
var _useState3 = useState(true),
|
|
39
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
+
sendDoubleOptIn = _useState4[0],
|
|
41
|
+
setSendDoubleOptIn = _useState4[1];
|
|
42
|
+
var _useBrevoConfig = useBrevoConfig(),
|
|
43
|
+
allowAddingContactsWithoutDoi = _useBrevoConfig.allowAddingContactsWithoutDoi;
|
|
44
|
+
var moreActionsMenuItem = useMemo(function () {
|
|
45
|
+
return {
|
|
46
|
+
type: "action",
|
|
47
|
+
label: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
48
|
+
id: "cometBrevoModule.targetGroup.assignedContacts.actions.importFromCsv",
|
|
49
|
+
defaultMessage: "Import contacts from CSV"
|
|
50
|
+
}),
|
|
51
|
+
startAdornment: /*#__PURE__*/_jsx(Upload, {}),
|
|
52
|
+
onClick: function onClick() {
|
|
53
|
+
return setOpen(true);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}, []);
|
|
57
|
+
var handleClose = function handleClose() {
|
|
58
|
+
return setOpen(false);
|
|
59
|
+
};
|
|
60
|
+
var dialog = /*#__PURE__*/_jsxs(Dialog, {
|
|
61
|
+
open: open,
|
|
62
|
+
onClose: handleClose,
|
|
63
|
+
children: [/*#__PURE__*/_jsx(DialogTitle, {
|
|
64
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
65
|
+
id: "cometBrevoModule.contactImport.title",
|
|
66
|
+
defaultMessage: "Importing contacts from CSV"
|
|
67
|
+
})
|
|
68
|
+
}), /*#__PURE__*/_jsx(DialogContent, {
|
|
69
|
+
children: /*#__PURE__*/_jsx(FinalForm, {
|
|
70
|
+
onSubmit: function onSubmit(values) {
|
|
71
|
+
var _fileInputRef$current;
|
|
72
|
+
(_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
|
|
73
|
+
},
|
|
74
|
+
mode: "add",
|
|
75
|
+
initialValues: {
|
|
76
|
+
sendDoubleOptIn: true
|
|
77
|
+
},
|
|
78
|
+
children: function children(_ref2) {
|
|
79
|
+
var values = _ref2.values;
|
|
80
|
+
setSendDoubleOptIn(values.sendDoubleOptIn);
|
|
81
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
82
|
+
children: [values.sendDoubleOptIn ? /*#__PURE__*/_jsx(Alert, {
|
|
83
|
+
severity: "warning",
|
|
84
|
+
sx: {
|
|
85
|
+
marginBottom: 5
|
|
86
|
+
},
|
|
87
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
88
|
+
id: "cometBrevoModule.contactImport.contactAddAlert",
|
|
89
|
+
defaultMessage: "The contact will get a double opt-in email to confirm the subscription. After the contact's confirmation, the contact will be added to the corresponding target groups in this scope depending on the contact's attributes. Before the confirmation the contact will not be shown on the contacts page."
|
|
90
|
+
})
|
|
91
|
+
}) : /*#__PURE__*/_jsx(Alert, {
|
|
92
|
+
severity: "error",
|
|
93
|
+
sx: {
|
|
94
|
+
marginBottom: 5
|
|
95
|
+
},
|
|
96
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
97
|
+
id: "cometBrevoModule.contactImport.contactNoOptInAlert",
|
|
98
|
+
defaultMessage: "No Double Opt-In email will be sent. Please ensure recipients have given their consent before proceeding."
|
|
99
|
+
})
|
|
100
|
+
}), allowAddingContactsWithoutDoi && /*#__PURE__*/_jsx(CheckboxField, {
|
|
101
|
+
name: "sendDoubleOptIn",
|
|
102
|
+
label: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
103
|
+
id: "cometBrevoModule.contactImport.sendDoubleOptInMail",
|
|
104
|
+
defaultMessage: "Send double opt-in email"
|
|
105
|
+
}),
|
|
106
|
+
fullWidth: true
|
|
107
|
+
})]
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
}), /*#__PURE__*/_jsxs(DialogActions, {
|
|
112
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
113
|
+
onClick: handleClose,
|
|
114
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, _objectSpread({}, messages.cancel))
|
|
115
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
116
|
+
variant: "primary",
|
|
117
|
+
onClick: function onClick() {
|
|
118
|
+
var _fileInputRef$current2;
|
|
119
|
+
return (_fileInputRef$current2 = fileInputRef.current) === null || _fileInputRef$current2 === void 0 ? void 0 : _fileInputRef$current2.click();
|
|
120
|
+
},
|
|
121
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
122
|
+
id: "cometBrevoModule.contactImport.importContacts",
|
|
123
|
+
defaultMessage: "Import Contacts"
|
|
124
|
+
})
|
|
125
|
+
})]
|
|
126
|
+
})]
|
|
127
|
+
});
|
|
128
|
+
var component = useMemo(function () {
|
|
129
|
+
return /*#__PURE__*/_jsx(ContactImportComponent, {
|
|
130
|
+
scope: scope,
|
|
131
|
+
targetGroupId: targetGroupId,
|
|
132
|
+
fileInputRef: fileInputRef,
|
|
133
|
+
sendDoubleOptIn: sendDoubleOptIn,
|
|
134
|
+
refetchQueries: refetchQueries
|
|
135
|
+
});
|
|
136
|
+
}, [refetchQueries, scope, targetGroupId, sendDoubleOptIn]);
|
|
137
|
+
return [moreActionsMenuItem, /*#__PURE__*/_jsxs(_Fragment, {
|
|
138
|
+
children: [dialog, component]
|
|
139
|
+
})];
|
|
140
|
+
};
|
|
141
|
+
var ContactImportComponent = function ContactImportComponent(_ref3) {
|
|
142
|
+
var scope = _ref3.scope,
|
|
143
|
+
targetGroupId = _ref3.targetGroupId,
|
|
144
|
+
fileInputRef = _ref3.fileInputRef,
|
|
145
|
+
sendDoubleOptIn = _ref3.sendDoubleOptIn,
|
|
146
|
+
refetchQueries = _ref3.refetchQueries;
|
|
147
|
+
var apolloClient = useApolloClient();
|
|
148
|
+
var _useState5 = useState(false),
|
|
149
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
150
|
+
importingCsv = _useState6[0],
|
|
151
|
+
setImportingCsv = _useState6[1];
|
|
152
|
+
var _useState7 = useState(null),
|
|
153
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
154
|
+
importInformation = _useState8[0],
|
|
155
|
+
setImportInformation = _useState8[1];
|
|
156
|
+
var dialogOpen = importingCsv || !!importInformation;
|
|
157
|
+
var errorDialog = useErrorDialog();
|
|
158
|
+
var config = useBrevoConfig();
|
|
159
|
+
var intl = useIntl();
|
|
160
|
+
var client = useApolloClient();
|
|
161
|
+
function upload(_x, _x2, _x3) {
|
|
162
|
+
return _upload.apply(this, arguments);
|
|
163
|
+
}
|
|
164
|
+
function _upload() {
|
|
165
|
+
_upload = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(file, scope, listIds) {
|
|
166
|
+
var formData, response, fileUploadId, _yield$client$mutate, data;
|
|
167
|
+
return _regenerator().w(function (_context2) {
|
|
168
|
+
while (1) switch (_context2.n) {
|
|
169
|
+
case 0:
|
|
170
|
+
formData = new FormData();
|
|
171
|
+
formData.append("file", file);
|
|
172
|
+
_context2.n = 1;
|
|
173
|
+
return fetch("".concat(config.apiUrl, "/file-uploads/upload"), {
|
|
174
|
+
method: "POST",
|
|
175
|
+
body: formData
|
|
176
|
+
});
|
|
177
|
+
case 1:
|
|
178
|
+
response = _context2.v;
|
|
179
|
+
if (response.ok) {
|
|
180
|
+
_context2.n = 2;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
throw new Error(intl.formatMessage({
|
|
184
|
+
id: "cometBrevoModule.useContactImport.error.fileUpload",
|
|
185
|
+
defaultMessage: "Could not upload file"
|
|
186
|
+
}));
|
|
187
|
+
case 2:
|
|
188
|
+
_context2.n = 3;
|
|
189
|
+
return response.json();
|
|
190
|
+
case 3:
|
|
191
|
+
fileUploadId = _context2.v.id;
|
|
192
|
+
_context2.n = 4;
|
|
193
|
+
return client.mutate({
|
|
194
|
+
mutation: startBrevoContactImportMutation,
|
|
195
|
+
variables: {
|
|
196
|
+
fileId: fileUploadId,
|
|
197
|
+
scope: scope,
|
|
198
|
+
sendDoubleOptIn: sendDoubleOptIn,
|
|
199
|
+
targetGroupIds: listIds
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
case 4:
|
|
203
|
+
_yield$client$mutate = _context2.v;
|
|
204
|
+
data = _yield$client$mutate.data;
|
|
205
|
+
if (data) {
|
|
206
|
+
_context2.n = 5;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
throw new Error(intl.formatMessage({
|
|
210
|
+
id: "cometBrevoModule.useContactImport.error.defaultMessage",
|
|
211
|
+
defaultMessage: "An error occurred during the import. Please try again in a while or contact your administrator if the error persists."
|
|
212
|
+
}));
|
|
213
|
+
case 5:
|
|
214
|
+
return _context2.a(2, data.startBrevoContactImport);
|
|
215
|
+
}
|
|
216
|
+
}, _callee2);
|
|
217
|
+
}));
|
|
218
|
+
return _upload.apply(this, arguments);
|
|
219
|
+
}
|
|
220
|
+
var saveErrorFile = function saveErrorFile() {
|
|
221
|
+
var failedColumns = importInformation === null || importInformation === void 0 ? void 0 : importInformation.failedColumns;
|
|
222
|
+
if (!failedColumns || failedColumns.length === 0) {
|
|
223
|
+
throw new Error(intl.formatMessage({
|
|
224
|
+
id: "export",
|
|
225
|
+
defaultMessage: "No failed columns to save"
|
|
226
|
+
}));
|
|
227
|
+
}
|
|
228
|
+
var errorData = "";
|
|
229
|
+
|
|
230
|
+
// Add headers to the file without trailing semicolon
|
|
231
|
+
var headers = Object.keys(failedColumns[0]);
|
|
232
|
+
var headerStr = headers.join(";");
|
|
233
|
+
errorData = "".concat(headerStr.replace(/;+$/, ""), "\n"); // Remove trailing semicolon from the header
|
|
234
|
+
|
|
235
|
+
// Add each row of failed columns data
|
|
236
|
+
var _iterator = _createForOfIteratorHelper(failedColumns),
|
|
237
|
+
_step;
|
|
238
|
+
try {
|
|
239
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
240
|
+
var column = _step.value;
|
|
241
|
+
// Use Object.values to get the values of each column
|
|
242
|
+
var row = Object.values(column); // No need to check for undefined/null
|
|
243
|
+
|
|
244
|
+
// Join row values and remove the trailing semicolon if not needed
|
|
245
|
+
var rowStr = row.join(";");
|
|
246
|
+
errorData += "".concat(rowStr.replace(/;+$/, ""), "\n");
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// Create and download the file
|
|
250
|
+
} catch (err) {
|
|
251
|
+
_iterator.e(err);
|
|
252
|
+
} finally {
|
|
253
|
+
_iterator.f();
|
|
254
|
+
}
|
|
255
|
+
downloadFile(new Blob([errorData], {
|
|
256
|
+
type: "text/csv;charset=utf-8"
|
|
257
|
+
}), "error-log-".concat(new Date().toISOString(), ".csv"));
|
|
258
|
+
};
|
|
259
|
+
var saveBlacklistedContactsFile = function saveBlacklistedContactsFile() {
|
|
260
|
+
var blacklistedContactsColumns = importInformation === null || importInformation === void 0 ? void 0 : importInformation.blacklistedColumns;
|
|
261
|
+
if (!blacklistedContactsColumns || blacklistedContactsColumns.length === 0) {
|
|
262
|
+
throw new Error(intl.formatMessage({
|
|
263
|
+
id: "export",
|
|
264
|
+
defaultMessage: "No failed columns to save"
|
|
265
|
+
}));
|
|
266
|
+
}
|
|
267
|
+
var blacklistedContactsData = "";
|
|
268
|
+
|
|
269
|
+
// Add headers to the file without trailing semicolon
|
|
270
|
+
var headers = Object.keys(blacklistedContactsColumns[0]);
|
|
271
|
+
var headerStr = headers.join(";");
|
|
272
|
+
blacklistedContactsData = "".concat(headerStr.replace(/;+$/, ""), "\n"); // Remove trailing semicolon from the header
|
|
273
|
+
|
|
274
|
+
// Add each row of failed columns data
|
|
275
|
+
var _iterator2 = _createForOfIteratorHelper(blacklistedContactsColumns),
|
|
276
|
+
_step2;
|
|
277
|
+
try {
|
|
278
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
279
|
+
var column = _step2.value;
|
|
280
|
+
// Use Object.values to get the values of each column
|
|
281
|
+
var row = Object.values(column); // No need to check for undefined/null
|
|
282
|
+
|
|
283
|
+
// Join row values and remove the trailing semicolon if not needed
|
|
284
|
+
var rowStr = row.join(";");
|
|
285
|
+
blacklistedContactsData += "".concat(rowStr.replace(/;+$/, ""), "\n");
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
// Create and download the file
|
|
289
|
+
} catch (err) {
|
|
290
|
+
_iterator2.e(err);
|
|
291
|
+
} finally {
|
|
292
|
+
_iterator2.f();
|
|
293
|
+
}
|
|
294
|
+
downloadFile(new Blob([blacklistedContactsData], {
|
|
295
|
+
type: "text/csv;charset=utf-8"
|
|
296
|
+
}), "blacklisted-contact-log-".concat(new Date().toISOString(), ".csv"));
|
|
297
|
+
};
|
|
298
|
+
var _useDropzone = useDropzone({
|
|
299
|
+
accept: {
|
|
300
|
+
"text/csv": []
|
|
301
|
+
},
|
|
302
|
+
multiple: false,
|
|
303
|
+
onDrop: function () {
|
|
304
|
+
var _onDrop = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(acceptedFiles) {
|
|
305
|
+
var file, data, userMessage, _t;
|
|
306
|
+
return _regenerator().w(function (_context) {
|
|
307
|
+
while (1) switch (_context.p = _context.n) {
|
|
308
|
+
case 0:
|
|
309
|
+
setImportingCsv(true);
|
|
310
|
+
_context.p = 1;
|
|
311
|
+
file = acceptedFiles[0];
|
|
312
|
+
_context.n = 2;
|
|
313
|
+
return upload(file, scope, targetGroupId ? [targetGroupId] : []);
|
|
314
|
+
case 2:
|
|
315
|
+
data = _context.v;
|
|
316
|
+
apolloClient.refetchQueries({
|
|
317
|
+
include: refetchQueries
|
|
318
|
+
});
|
|
319
|
+
if (!data) {
|
|
320
|
+
_context.n = 3;
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
setImportingCsv(false);
|
|
324
|
+
if (data.errorMessage) {
|
|
325
|
+
errorDialog === null || errorDialog === void 0 || errorDialog.showError({
|
|
326
|
+
title: /*#__PURE__*/_jsx(FormattedMessage, _objectSpread({}, messages.error)),
|
|
327
|
+
userMessage: data.errorMessage,
|
|
328
|
+
error: data.errorMessage
|
|
329
|
+
});
|
|
330
|
+
} else {
|
|
331
|
+
setImportInformation(data);
|
|
332
|
+
}
|
|
333
|
+
_context.n = 4;
|
|
334
|
+
break;
|
|
335
|
+
case 3:
|
|
336
|
+
throw new Error(JSON.stringify(data));
|
|
337
|
+
case 4:
|
|
338
|
+
_context.n = 6;
|
|
339
|
+
break;
|
|
340
|
+
case 5:
|
|
341
|
+
_context.p = 5;
|
|
342
|
+
_t = _context.v;
|
|
343
|
+
setImportingCsv(false);
|
|
344
|
+
userMessage = /*#__PURE__*/_jsx(FormattedMessage, {
|
|
345
|
+
id: "cometBrevoModule.useContactImport.error.defaultMessage",
|
|
346
|
+
defaultMessage: "An error occurred during the import. Please try again in a while or contact your administrator if the error persists."
|
|
347
|
+
});
|
|
348
|
+
errorDialog === null || errorDialog === void 0 || errorDialog.showError({
|
|
349
|
+
title: /*#__PURE__*/_jsx(FormattedMessage, _objectSpread({}, messages.error)),
|
|
350
|
+
userMessage: userMessage,
|
|
351
|
+
error: String(_t)
|
|
352
|
+
});
|
|
353
|
+
case 6:
|
|
354
|
+
return _context.a(2);
|
|
355
|
+
}
|
|
356
|
+
}, _callee, null, [[1, 5]]);
|
|
357
|
+
}));
|
|
358
|
+
function onDrop(_x4) {
|
|
359
|
+
return _onDrop.apply(this, arguments);
|
|
360
|
+
}
|
|
361
|
+
return onDrop;
|
|
362
|
+
}()
|
|
363
|
+
}),
|
|
364
|
+
getInputProps = _useDropzone.getInputProps;
|
|
365
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
366
|
+
children: [/*#__PURE__*/_jsx("input", _objectSpread(_objectSpread({
|
|
367
|
+
type: "file",
|
|
368
|
+
hidden: true
|
|
369
|
+
}, getInputProps()), {}, {
|
|
370
|
+
ref: fileInputRef
|
|
371
|
+
})), /*#__PURE__*/_jsxs(Dialog, {
|
|
372
|
+
open: dialogOpen,
|
|
373
|
+
children: [/*#__PURE__*/_jsxs(DialogTitle, {
|
|
374
|
+
children: [importingCsv && /*#__PURE__*/_jsx(FormattedMessage, {
|
|
375
|
+
id: "cometBrevoModule.useContactImport.importing.title",
|
|
376
|
+
defaultMessage: "Importing contacts from CSV..."
|
|
377
|
+
}), importInformation && /*#__PURE__*/_jsx(FormattedMessage, {
|
|
378
|
+
id: "cometBrevoModule.useContactImport.importSuccessful.title",
|
|
379
|
+
defaultMessage: "Import successful"
|
|
380
|
+
})]
|
|
381
|
+
}), /*#__PURE__*/_jsxs(DialogContent, {
|
|
382
|
+
children: [importingCsv && /*#__PURE__*/_jsx(Loading, {}), importInformation && /*#__PURE__*/_jsxs(_Fragment, {
|
|
383
|
+
children: [importInformation.created > 0 && /*#__PURE__*/_jsx(FormattedMessage, {
|
|
384
|
+
id: "cometBrevoModule.useContactImport.importSuccessful.contactsImported",
|
|
385
|
+
defaultMessage: "{amount} contact(s) have been created successfully.",
|
|
386
|
+
values: {
|
|
387
|
+
amount: importInformation.created
|
|
388
|
+
}
|
|
389
|
+
}), importInformation.updated > 0 && /*#__PURE__*/_jsx(FormattedMessage, {
|
|
390
|
+
id: "cometBrevoModule.useContactImport.importSuccessful.contactsUpdated",
|
|
391
|
+
defaultMessage: "{amount} contact(s) have been updated.",
|
|
392
|
+
values: {
|
|
393
|
+
amount: importInformation.updated
|
|
394
|
+
}
|
|
395
|
+
}), importInformation.failed > 0 && /*#__PURE__*/_jsx(Box, {
|
|
396
|
+
mt: 2,
|
|
397
|
+
children: /*#__PURE__*/_jsx(Alert, {
|
|
398
|
+
severity: "error",
|
|
399
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
400
|
+
id: "cometBrevoModule.useContactImport.error.contactsCouldNotBeImported",
|
|
401
|
+
defaultMessage: "{amount} contact(s) could not be imported. <link>Download this file</link> to get the failing row(s).",
|
|
402
|
+
values: {
|
|
403
|
+
amount: importInformation.failed,
|
|
404
|
+
link: function link(chunks) {
|
|
405
|
+
return /*#__PURE__*/_jsx(CsvDownloadLink, {
|
|
406
|
+
onClick: saveErrorFile,
|
|
407
|
+
children: chunks
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
})
|
|
412
|
+
})
|
|
413
|
+
}), importInformation.blacklisted > 0 && /*#__PURE__*/_jsx(Box, {
|
|
414
|
+
mt: 2,
|
|
415
|
+
children: /*#__PURE__*/_jsx(Alert, {
|
|
416
|
+
severity: "error",
|
|
417
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
418
|
+
id: "cometBrevoModule.useContactImport.error.contactsAreBlacklisted",
|
|
419
|
+
defaultMessage: "{amount} contacts could not be imported as they are blacklisted. <link>Download this file</link> to get the blacklisted contact(s).",
|
|
420
|
+
values: {
|
|
421
|
+
amount: importInformation.blacklisted,
|
|
422
|
+
link: function link(chunks) {
|
|
423
|
+
return /*#__PURE__*/_jsx(CsvDownloadLink, {
|
|
424
|
+
onClick: saveBlacklistedContactsFile,
|
|
425
|
+
children: chunks
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
})
|
|
430
|
+
})
|
|
431
|
+
}), (importInformation.created > 0 || importInformation.updated > 0) && sendDoubleOptIn && /*#__PURE__*/_jsx(Box, {
|
|
432
|
+
mt: 2,
|
|
433
|
+
children: /*#__PURE__*/_jsx(Alert, {
|
|
434
|
+
severity: "warning",
|
|
435
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, {
|
|
436
|
+
id: "cometBrevoModule.useContactImport.importSuccessful.doiNotice",
|
|
437
|
+
defaultMessage: "Contacts who have not yet confirmed their subscription will receive a double opt-in email to complete the process. These contacts will not appear in this list until they confirm their subscription. Once confirmed, they will automatically be added to the appropriate target group(s)."
|
|
438
|
+
})
|
|
439
|
+
})
|
|
440
|
+
})]
|
|
441
|
+
})]
|
|
442
|
+
}), /*#__PURE__*/_jsx(DialogActions, {
|
|
443
|
+
children: importInformation && /*#__PURE__*/_jsx(Button, {
|
|
444
|
+
onClick: function onClick() {
|
|
445
|
+
return setImportInformation(null);
|
|
446
|
+
},
|
|
447
|
+
variant: "primary",
|
|
448
|
+
children: /*#__PURE__*/_jsx(FormattedMessage, _objectSpread({}, messages.ok))
|
|
449
|
+
})
|
|
450
|
+
})]
|
|
451
|
+
})]
|
|
452
|
+
});
|
|
453
|
+
};
|
|
454
|
+
var CsvDownloadLink = /*#__PURE__*/styled("span", process.env.NODE_ENV === "production" ? {
|
|
455
|
+
target: "e1e38cse0"
|
|
456
|
+
} : {
|
|
457
|
+
target: "e1e38cse0",
|
|
458
|
+
label: "CsvDownloadLink"
|
|
459
|
+
})("color:", function (_ref4) {
|
|
460
|
+
var theme = _ref4.theme;
|
|
461
|
+
return theme.palette.info.main;
|
|
462
|
+
}, ";text-decoration:underline;cursor:pointer;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vY29udGFjdEltcG9ydC91c2VDb250YWN0SW1wb3J0RnJvbUNzdi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNlhzQyIsImZpbGUiOiIuLi8uLi8uLi9zcmMvY29tbW9uL2NvbnRhY3RJbXBvcnQvdXNlQ29udGFjdEltcG9ydEZyb21Dc3YudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQXBvbGxvQ2xpZW50IH0gZnJvbSBcIkBhcG9sbG8vY2xpZW50XCI7XG5pbXBvcnQgdHlwZSB7IFJlZmV0Y2hRdWVyaWVzSW5jbHVkZSB9IGZyb20gXCJAYXBvbGxvL2NsaWVudC9jb3JlL3R5cGVzXCI7XG5pbXBvcnQgeyBBbGVydCwgQnV0dG9uLCBDaGVja2JveEZpZWxkLCBEaWFsb2csIGRvd25sb2FkRmlsZSwgRmluYWxGb3JtLCBMb2FkaW5nLCBtZXNzYWdlcywgdXNlRXJyb3JEaWFsb2cgfSBmcm9tIFwiQGRleHRpbml0eS9hZG1pblwiO1xuaW1wb3J0IHsgVXBsb2FkIH0gZnJvbSBcIkBkZXh0aW5pdHkvYWRtaW4taWNvbnNcIjtcbmltcG9ydCB7IEJveCwgRGlhbG9nQWN0aW9ucywgRGlhbG9nQ29udGVudCwgRGlhbG9nVGl0bGUsIHR5cGUgTWVudUl0ZW0gfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgeyB0eXBlIENvbXBvbmVudFByb3BzLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBSZWZPYmplY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZURyb3B6b25lIH0gZnJvbSBcInJlYWN0LWRyb3B6b25lXCI7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsIH0gZnJvbSBcInJlYWN0LWludGxcIjtcblxuaW1wb3J0IHR5cGUgeyBHUUxDc3ZJbXBvcnRJbmZvcm1hdGlvbiwgR1FMRW1haWxDYW1wYWlnbkNvbnRlbnRTY29wZUlucHV0IH0gZnJvbSBcIi4uLy4uL2dyYXBocWwuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgeyB1c2VCcmV2b0NvbmZpZyB9IGZyb20gXCIuLi9CcmV2b0NvbmZpZ1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBzdGFydEJyZXZvQ29udGFjdEltcG9ydE11dGF0aW9uIH0gZnJvbSBcIi4vdXNlQ29udGFjdEltcG9ydEZyb21Dc3YuZ3FsXCI7XG5pbXBvcnQgdHlwZSB7IEdRTFN0YXJ0QnJldm9Db250YWN0SW1wb3J0TXV0YXRpb24sIEdRTFN0YXJ0QnJldm9Db250YWN0SW1wb3J0TXV0YXRpb25WYXJpYWJsZXMgfSBmcm9tIFwiLi91c2VDb250YWN0SW1wb3J0RnJvbUNzdi5ncWwuZ2VuZXJhdGVkXCI7XG5cbmludGVyZmFjZSBVc2VDb250YWN0SW1wb3J0UHJvcHMge1xuICAgIHNjb3BlOiBHUUxFbWFpbENhbXBhaWduQ29udGVudFNjb3BlSW5wdXQ7XG4gICAgc2VuZERvdWJsZU9wdEluOiBib29sZWFuO1xuICAgIHRhcmdldEdyb3VwSWQ/OiBzdHJpbmc7XG4gICAgcmVmZXRjaFF1ZXJpZXM/OiBSZWZldGNoUXVlcmllc0luY2x1ZGU7XG59XG5cbnR5cGUgQ29udGFjdEltcG9ydEZyb21Dc3ZGb3JtID0ge1xuICAgIHNlbmREb3VibGVPcHRJbjogYm9vbGVhbjtcbn07XG5cbmludGVyZmFjZSBBY3Rpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50UHJvcHM8dHlwZW9mIE1lbnVJdGVtPiB7XG4gICAgdHlwZTogXCJhY3Rpb25cIjtcbiAgICBsYWJlbDogUmVhY3ROb2RlO1xuICAgIHN0YXJ0QWRvcm5tZW50PzogUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgdXNlQ29udGFjdEltcG9ydEZyb21Dc3YgPSAoeyBzY29wZSwgdGFyZ2V0R3JvdXBJZCwgcmVmZXRjaFF1ZXJpZXMgfTogVXNlQ29udGFjdEltcG9ydFByb3BzKTogW0FjdGlvbkl0ZW0sIFJlYWN0Tm9kZV0gPT4ge1xuICAgIGNvbnN0IGZpbGVJbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NlbmREb3VibGVPcHRJbiwgc2V0U2VuZERvdWJsZU9wdEluXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IHsgYWxsb3dBZGRpbmdDb250YWN0c1dpdGhvdXREb2kgfSA9IHVzZUJyZXZvQ29uZmlnKCk7XG5cbiAgICBjb25zdCBtb3JlQWN0aW9uc01lbnVJdGVtOiBBY3Rpb25JdGVtID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiYWN0aW9uXCIsXG4gICAgICAgICAgICBsYWJlbDogKFxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY29tZXRCcmV2b01vZHVsZS50YXJnZXRHcm91cC5hc3NpZ25lZENvbnRhY3RzLmFjdGlvbnMuaW1wb3J0RnJvbUNzdlwiXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlPVwiSW1wb3J0IGNvbnRhY3RzIGZyb20gQ1NWXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXJ0QWRvcm5tZW50OiA8VXBsb2FkIC8+LFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4gc2V0T3Blbih0cnVlKSxcbiAgICAgICAgfSksXG4gICAgICAgIFtdLFxuICAgICk7XG5cbiAgICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHNldE9wZW4oZmFsc2UpO1xuXG4gICAgY29uc3QgZGlhbG9nID0gKFxuICAgICAgICA8RGlhbG9nIG9wZW49e29wZW59IG9uQ2xvc2U9e2hhbmRsZUNsb3NlfT5cbiAgICAgICAgICAgIDxEaWFsb2dUaXRsZT5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImNvbWV0QnJldm9Nb2R1bGUuY29udGFjdEltcG9ydC50aXRsZVwiIGRlZmF1bHRNZXNzYWdlPVwiSW1wb3J0aW5nIGNvbnRhY3RzIGZyb20gQ1NWXCIgLz5cbiAgICAgICAgICAgIDwvRGlhbG9nVGl0bGU+XG4gICAgICAgICAgICA8RGlhbG9nQ29udGVudD5cbiAgICAgICAgICAgICAgICA8RmluYWxGb3JtPENvbnRhY3RJbXBvcnRGcm9tQ3N2Rm9ybT5cbiAgICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9eyh2YWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBtb2RlPVwiYWRkXCJcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlcz17eyBzZW5kRG91YmxlT3B0SW46IHRydWUgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHsoeyB2YWx1ZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VuZERvdWJsZU9wdEluKHZhbHVlcy5zZW5kRG91YmxlT3B0SW4pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZXMuc2VuZERvdWJsZU9wdEluID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IHNldmVyaXR5PVwid2FybmluZ1wiIHN4PXt7IG1hcmdpbkJvdHRvbTogNSB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNvbWV0QnJldm9Nb2R1bGUuY29udGFjdEltcG9ydC5jb250YWN0QWRkQWxlcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZT1cIlRoZSBjb250YWN0IHdpbGwgZ2V0IGEgZG91YmxlIG9wdC1pbiBlbWFpbCB0byBjb25maXJtIHRoZSBzdWJzY3JpcHRpb24uIEFmdGVyIHRoZSBjb250YWN0J3MgY29uZmlybWF0aW9uLCB0aGUgY29udGFjdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIHRhcmdldCBncm91cHMgaW4gdGhpcyBzY29wZSBkZXBlbmRpbmcgb24gdGhlIGNvbnRhY3QncyBhdHRyaWJ1dGVzLiBCZWZvcmUgdGhlIGNvbmZpcm1hdGlvbiB0aGUgY29udGFjdCB3aWxsIG5vdCBiZSBzaG93biBvbiB0aGUgY29udGFjdHMgcGFnZS5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IHNldmVyaXR5PVwiZXJyb3JcIiBzeD17eyBtYXJnaW5Cb3R0b206IDUgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21ldEJyZXZvTW9kdWxlLmNvbnRhY3RJbXBvcnQuY29udGFjdE5vT3B0SW5BbGVydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlPVwiTm8gRG91YmxlIE9wdC1JbiBlbWFpbCB3aWxsIGJlIHNlbnQuIFBsZWFzZSBlbnN1cmUgcmVjaXBpZW50cyBoYXZlIGdpdmVuIHRoZWlyIGNvbnNlbnQgYmVmb3JlIHByb2NlZWRpbmcuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FsbG93QWRkaW5nQ29udGFjdHNXaXRob3V0RG9pICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNlbmREb3VibGVPcHRJblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21ldEJyZXZvTW9kdWxlLmNvbnRhY3RJbXBvcnQuc2VuZERvdWJsZU9wdEluTWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZT1cIlNlbmQgZG91YmxlIG9wdC1pbiBlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9GaW5hbEZvcm0+XG4gICAgICAgICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICAgICA8RGlhbG9nQWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZUNsb3NlfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmNhbmNlbH0gLz5cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKCl9PlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImNvbWV0QnJldm9Nb2R1bGUuY29udGFjdEltcG9ydC5pbXBvcnRDb250YWN0c1wiIGRlZmF1bHRNZXNzYWdlPVwiSW1wb3J0IENvbnRhY3RzXCIgLz5cbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRGlhbG9nQWN0aW9ucz5cbiAgICAgICAgPC9EaWFsb2c+XG4gICAgKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudCA9IHVzZU1lbW8oXG4gICAgICAgICgpID0+IChcbiAgICAgICAgICAgIDxDb250YWN0SW1wb3J0Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgc2NvcGU9e3Njb3BlfVxuICAgICAgICAgICAgICAgIHRhcmdldEdyb3VwSWQ9e3RhcmdldEdyb3VwSWR9XG4gICAgICAgICAgICAgICAgZmlsZUlucHV0UmVmPXtmaWxlSW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgc2VuZERvdWJsZU9wdEluPXtzZW5kRG91YmxlT3B0SW59XG4gICAgICAgICAgICAgICAgcmVmZXRjaFF1ZXJpZXM9e3JlZmV0Y2hRdWVyaWVzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKSxcbiAgICAgICAgW3JlZmV0Y2hRdWVyaWVzLCBzY29wZSwgdGFyZ2V0R3JvdXBJZCwgc2VuZERvdWJsZU9wdEluXSxcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgbW9yZUFjdGlvbnNNZW51SXRlbSxcbiAgICAgICAgPD5cbiAgICAgICAgICAgIHtkaWFsb2d9XG4gICAgICAgICAgICB7Y29tcG9uZW50fVxuICAgICAgICA8Lz4sXG4gICAgXTtcbn07XG5cbmludGVyZmFjZSBVc2VDb250YWN0Q29tcG9uZW50UHJvcHMgZXh0ZW5kcyBVc2VDb250YWN0SW1wb3J0UHJvcHMge1xuICAgIGZpbGVJbnB1dFJlZjogUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsPjtcbn1cblxuY29uc3QgQ29udGFjdEltcG9ydENvbXBvbmVudCA9ICh7IHNjb3BlLCB0YXJnZXRHcm91cElkLCBmaWxlSW5wdXRSZWYsIHNlbmREb3VibGVPcHRJbiwgcmVmZXRjaFF1ZXJpZXMgfTogVXNlQ29udGFjdENvbXBvbmVudFByb3BzKSA9PiB7XG4gICAgY29uc3QgYXBvbGxvQ2xpZW50ID0gdXNlQXBvbGxvQ2xpZW50KCk7XG4gICAgY29uc3QgW2ltcG9ydGluZ0Nzdiwgc2V0SW1wb3J0aW5nQ3N2XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaW1wb3J0SW5mb3JtYXRpb24sIHNldEltcG9ydEluZm9ybWF0aW9uXSA9IHVzZVN0YXRlPEdRTENzdkltcG9ydEluZm9ybWF0aW9uIHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgZGlhbG9nT3BlbiA9IGltcG9ydGluZ0NzdiB8fCAhIWltcG9ydEluZm9ybWF0aW9uO1xuICAgIGNvbnN0IGVycm9yRGlhbG9nID0gdXNlRXJyb3JEaWFsb2coKTtcbiAgICBjb25zdCBjb25maWcgPSB1c2VCcmV2b0NvbmZpZygpO1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgY29uc3QgY2xpZW50ID0gdXNlQXBvbGxvQ2xpZW50KCk7XG5cbiAgICBhc3luYyBmdW5jdGlvbiB1cGxvYWQoZmlsZTogRmlsZSwgc2NvcGU6IEdRTEVtYWlsQ2FtcGFpZ25Db250ZW50U2NvcGVJbnB1dCwgbGlzdElkcz86IHN0cmluZ1tdKTogUHJvbWlzZTxHUUxDc3ZJbXBvcnRJbmZvcm1hdGlvbj4ge1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7Y29uZmlnLmFwaVVybH0vZmlsZS11cGxvYWRzL3VwbG9hZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGludGwuZm9ybWF0TWVzc2FnZSh7IGlkOiBcImNvbWV0QnJldm9Nb2R1bGUudXNlQ29udGFjdEltcG9ydC5lcnJvci5maWxlVXBsb2FkXCIsIGRlZmF1bHRNZXNzYWdlOiBcIkNvdWxkIG5vdCB1cGxvYWQgZmlsZVwiIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVVcGxvYWRJZCA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpLmlkO1xuXG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgY2xpZW50Lm11dGF0ZTxHUUxTdGFydEJyZXZvQ29udGFjdEltcG9ydE11dGF0aW9uLCBHUUxTdGFydEJyZXZvQ29udGFjdEltcG9ydE11dGF0aW9uVmFyaWFibGVzPih7XG4gICAgICAgICAgICBtdXRhdGlvbjogc3RhcnRCcmV2b0NvbnRhY3RJbXBvcnRNdXRhdGlvbixcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAgIGZpbGVJZDogZmlsZVVwbG9hZElkLFxuICAgICAgICAgICAgICAgIHNjb3BlLFxuICAgICAgICAgICAgICAgIHNlbmREb3VibGVPcHRJbixcbiAgICAgICAgICAgICAgICB0YXJnZXRHcm91cElkczogbGlzdElkcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcImNvbWV0QnJldm9Nb2R1bGUudXNlQ29udGFjdEltcG9ydC5lcnJvci5kZWZhdWx0TWVzc2FnZVwiLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBpbXBvcnQuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSB3aGlsZSBvciBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvciBpZiB0aGUgZXJyb3IgcGVyc2lzdHMuXCIsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhLnN0YXJ0QnJldm9Db250YWN0SW1wb3J0O1xuICAgIH1cblxuICAgIGNvbnN0IHNhdmVFcnJvckZpbGUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZhaWxlZENvbHVtbnMgPSBpbXBvcnRJbmZvcm1hdGlvbj8uZmFpbGVkQ29sdW1ucztcbiAgICAgICAgaWYgKCFmYWlsZWRDb2x1bW5zIHx8IGZhaWxlZENvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoaW50bC5mb3JtYXRNZXNzYWdlKHsgaWQ6IFwiZXhwb3J0XCIsIGRlZmF1bHRNZXNzYWdlOiBcIk5vIGZhaWxlZCBjb2x1bW5zIHRvIHNhdmVcIiB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZXJyb3JEYXRhID0gXCJcIjtcblxuICAgICAgICAvLyBBZGQgaGVhZGVycyB0byB0aGUgZmlsZSB3aXRob3V0IHRyYWlsaW5nIHNlbWljb2xvblxuICAgICAgICBjb25zdCBoZWFkZXJzID0gT2JqZWN0LmtleXMoZmFpbGVkQ29sdW1uc1swXSk7XG4gICAgICAgIGNvbnN0IGhlYWRlclN0ciA9IGhlYWRlcnMuam9pbihcIjtcIik7XG4gICAgICAgIGVycm9yRGF0YSA9IGAke2hlYWRlclN0ci5yZXBsYWNlKC87KyQvLCBcIlwiKX1cXG5gOyAvLyBSZW1vdmUgdHJhaWxpbmcgc2VtaWNvbG9uIGZyb20gdGhlIGhlYWRlclxuXG4gICAgICAgIC8vIEFkZCBlYWNoIHJvdyBvZiBmYWlsZWQgY29sdW1ucyBkYXRhXG4gICAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGZhaWxlZENvbHVtbnMpIHtcbiAgICAgICAgICAgIC8vIFVzZSBPYmplY3QudmFsdWVzIHRvIGdldCB0aGUgdmFsdWVzIG9mIGVhY2ggY29sdW1uXG4gICAgICAgICAgICBjb25zdCByb3cgPSBPYmplY3QudmFsdWVzKGNvbHVtbik7IC8vIE5vIG5lZWQgdG8gY2hlY2sgZm9yIHVuZGVmaW5lZC9udWxsXG5cbiAgICAgICAgICAgIC8vIEpvaW4gcm93IHZhbHVlcyBhbmQgcmVtb3ZlIHRoZSB0cmFpbGluZyBzZW1pY29sb24gaWYgbm90IG5lZWRlZFxuICAgICAgICAgICAgY29uc3Qgcm93U3RyID0gcm93LmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgZXJyb3JEYXRhICs9IGAke3Jvd1N0ci5yZXBsYWNlKC87KyQvLCBcIlwiKX1cXG5gO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ3JlYXRlIGFuZCBkb3dubG9hZCB0aGUgZmlsZVxuICAgICAgICBkb3dubG9hZEZpbGUobmV3IEJsb2IoW2Vycm9yRGF0YV0sIHsgdHlwZTogXCJ0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04XCIgfSksIGBlcnJvci1sb2ctJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9LmNzdmApO1xuICAgIH07XG5cbiAgICBjb25zdCBzYXZlQmxhY2tsaXN0ZWRDb250YWN0c0ZpbGUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJsYWNrbGlzdGVkQ29udGFjdHNDb2x1bW5zID0gaW1wb3J0SW5mb3JtYXRpb24/LmJsYWNrbGlzdGVkQ29sdW1ucztcbiAgICAgICAgaWYgKCFibGFja2xpc3RlZENvbnRhY3RzQ29sdW1ucyB8fCBibGFja2xpc3RlZENvbnRhY3RzQ29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihpbnRsLmZvcm1hdE1lc3NhZ2UoeyBpZDogXCJleHBvcnRcIiwgZGVmYXVsdE1lc3NhZ2U6IFwiTm8gZmFpbGVkIGNvbHVtbnMgdG8gc2F2ZVwiIH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBibGFja2xpc3RlZENvbnRhY3RzRGF0YSA9IFwiXCI7XG5cbiAgICAgICAgLy8gQWRkIGhlYWRlcnMgdG8gdGhlIGZpbGUgd2l0aG91dCB0cmFpbGluZyBzZW1pY29sb25cbiAgICAgICAgY29uc3QgaGVhZGVycyA9IE9iamVjdC5rZXlzKGJsYWNrbGlzdGVkQ29udGFjdHNDb2x1bW5zWzBdKTtcbiAgICAgICAgY29uc3QgaGVhZGVyU3RyID0gaGVhZGVycy5qb2luKFwiO1wiKTtcbiAgICAgICAgYmxhY2tsaXN0ZWRDb250YWN0c0RhdGEgPSBgJHtoZWFkZXJTdHIucmVwbGFjZSgvOyskLywgXCJcIil9XFxuYDsgLy8gUmVtb3ZlIHRyYWlsaW5nIHNlbWljb2xvbiBmcm9tIHRoZSBoZWFkZXJcblxuICAgICAgICAvLyBBZGQgZWFjaCByb3cgb2YgZmFpbGVkIGNvbHVtbnMgZGF0YVxuICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBibGFja2xpc3RlZENvbnRhY3RzQ29sdW1ucykge1xuICAgICAgICAgICAgLy8gVXNlIE9iamVjdC52YWx1ZXMgdG8gZ2V0IHRoZSB2YWx1ZXMgb2YgZWFjaCBjb2x1bW5cbiAgICAgICAgICAgIGNvbnN0IHJvdyA9IE9iamVjdC52YWx1ZXMoY29sdW1uKTsgLy8gTm8gbmVlZCB0byBjaGVjayBmb3IgdW5kZWZpbmVkL251bGxcblxuICAgICAgICAgICAgLy8gSm9pbiByb3cgdmFsdWVzIGFuZCByZW1vdmUgdGhlIHRyYWlsaW5nIHNlbWljb2xvbiBpZiBub3QgbmVlZGVkXG4gICAgICAgICAgICBjb25zdCByb3dTdHIgPSByb3cuam9pbihcIjtcIik7XG4gICAgICAgICAgICBibGFja2xpc3RlZENvbnRhY3RzRGF0YSArPSBgJHtyb3dTdHIucmVwbGFjZSgvOyskLywgXCJcIil9XFxuYDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENyZWF0ZSBhbmQgZG93bmxvYWQgdGhlIGZpbGVcbiAgICAgICAgZG93bmxvYWRGaWxlKFxuICAgICAgICAgICAgbmV3IEJsb2IoW2JsYWNrbGlzdGVkQ29udGFjdHNEYXRhXSwgeyB0eXBlOiBcInRleHQvY3N2O2NoYXJzZXQ9dXRmLThcIiB9KSxcbiAgICAgICAgICAgIGBibGFja2xpc3RlZC1jb250YWN0LWxvZy0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0uY3N2YCxcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgY29uc3QgeyBnZXRJbnB1dFByb3BzIH0gPSB1c2VEcm9wem9uZSh7XG4gICAgICAgIGFjY2VwdDogeyBcInRleHQvY3N2XCI6IFtdIH0sXG4gICAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgb25Ecm9wOiBhc3luYyAoYWNjZXB0ZWRGaWxlczogRmlsZVtdKSA9PiB7XG4gICAgICAgICAgICBzZXRJbXBvcnRpbmdDc3YodHJ1ZSk7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGFjY2VwdGVkRmlsZXNbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHVwbG9hZChmaWxlLCBzY29wZSwgdGFyZ2V0R3JvdXBJZCA/IFt0YXJnZXRHcm91cElkXSA6IFtdKTtcbiAgICAgICAgICAgICAgICBhcG9sbG9DbGllbnQucmVmZXRjaFF1ZXJpZXMoeyBpbmNsdWRlOiByZWZldGNoUXVlcmllcyB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEltcG9ydGluZ0NzdihmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvckRpYWxvZz8uc2hvd0Vycm9yKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzLmVycm9yfSAvPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyTWVzc2FnZTogZGF0YS5lcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGRhdGEuZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRJbXBvcnRJbmZvcm1hdGlvbihkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHNldEltcG9ydGluZ0NzdihmYWxzZSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyTWVzc2FnZSA9IChcbiAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY29tZXRCcmV2b01vZHVsZS51c2VDb250YWN0SW1wb3J0LmVycm9yLmRlZmF1bHRNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlPVwiQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBpbXBvcnQuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSB3aGlsZSBvciBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvciBpZiB0aGUgZXJyb3IgcGVyc2lzdHMuXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgZXJyb3JEaWFsb2c/LnNob3dFcnJvcih7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMuZXJyb3J9IC8+LFxuICAgICAgICAgICAgICAgICAgICB1c2VyTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IFN0cmluZyhlKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBoaWRkZW4gey4uLmdldElucHV0UHJvcHMoKX0gcmVmPXtmaWxlSW5wdXRSZWZ9IC8+XG4gICAgICAgICAgICA8RGlhbG9nIG9wZW49e2RpYWxvZ09wZW59PlxuICAgICAgICAgICAgICAgIDxEaWFsb2dUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAge2ltcG9ydGluZ0NzdiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImNvbWV0QnJldm9Nb2R1bGUudXNlQ29udGFjdEltcG9ydC5pbXBvcnRpbmcudGl0bGVcIiBkZWZhdWx0TWVzc2FnZT1cIkltcG9ydGluZyBjb250YWN0cyBmcm9tIENTVi4uLlwiIC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtpbXBvcnRJbmZvcm1hdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImNvbWV0QnJldm9Nb2R1bGUudXNlQ29udGFjdEltcG9ydC5pbXBvcnRTdWNjZXNzZnVsLnRpdGxlXCIgZGVmYXVsdE1lc3NhZ2U9XCJJbXBvcnQgc3VjY2Vzc2Z1bFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9EaWFsb2dUaXRsZT5cbiAgICAgICAgICAgICAgICA8RGlhbG9nQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAge2ltcG9ydGluZ0NzdiAmJiA8TG9hZGluZyAvPn1cbiAgICAgICAgICAgICAgICAgICAge2ltcG9ydEluZm9ybWF0aW9uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ltcG9ydEluZm9ybWF0aW9uLmNyZWF0ZWQgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY29tZXRCcmV2b01vZHVsZS51c2VDb250YWN0SW1wb3J0LmltcG9ydFN1Y2Nlc3NmdWwuY29udGFjdHNJbXBvcnRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZT1cInthbW91bnR9IGNvbnRhY3QocykgaGF2ZSBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3sgYW1vdW50OiBpbXBvcnRJbmZvcm1hdGlvbi5jcmVhdGVkIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW1wb3J0SW5mb3JtYXRpb24udXBkYXRlZCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21ldEJyZXZvTW9kdWxlLnVzZUNvbnRhY3RJbXBvcnQuaW1wb3J0U3VjY2Vzc2Z1bC5jb250YWN0c1VwZGF0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U9XCJ7YW1vdW50fSBjb250YWN0KHMpIGhhdmUgYmVlbiB1cGRhdGVkLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3sgYW1vdW50OiBpbXBvcnRJbmZvcm1hdGlvbi51cGRhdGVkIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpbXBvcnRJbmZvcm1hdGlvbi5mYWlsZWQgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBtdD17Mn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnQgc2V2ZXJpdHk9XCJlcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY29tZXRCcmV2b01vZHVsZS51c2VDb250YWN0SW1wb3J0LmVycm9yLmNvbnRhY3RzQ291bGROb3RCZUltcG9ydGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U9XCJ7YW1vdW50fSBjb250YWN0KHMpIGNvdWxkIG5vdCBiZSBpbXBvcnRlZC4gPGxpbms+RG93bmxvYWQgdGhpcyBmaWxlPC9saW5rPiB0byBnZXQgdGhlIGZhaWxpbmcgcm93KHMpLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBpbXBvcnRJbmZvcm1hdGlvbi5mYWlsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiAoY2h1bmtzOiBSZWFjdE5vZGUpID0+IDxDc3ZEb3dubG9hZExpbmsgb25DbGljaz17c2F2ZUVycm9yRmlsZX0+e2NodW5rc308L0NzdkRvd25sb2FkTGluaz4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWxlcnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aW1wb3J0SW5mb3JtYXRpb24uYmxhY2tsaXN0ZWQgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBtdD17Mn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWxlcnQgc2V2ZXJpdHk9XCJlcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY29tZXRCcmV2b01vZHVsZS51c2VDb250YWN0SW1wb3J0LmVycm9yLmNvbnRhY3RzQXJlQmxhY2tsaXN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZT1cInthbW91bnR9IGNvbnRhY3RzIGNvdWxkIG5vdCBiZSBpbXBvcnRlZCBhcyB0aGV5IGFyZSBibGFja2xpc3RlZC4gIDxsaW5rPkRvd25sb2FkIHRoaXMgZmlsZTwvbGluaz4gdG8gZ2V0IHRoZSBibGFja2xpc3RlZCBjb250YWN0KHMpLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50OiBpbXBvcnRJbmZvcm1hdGlvbi5ibGFja2xpc3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IChjaHVua3M6IFJlYWN0Tm9kZSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDc3ZEb3dubG9hZExpbmsgb25DbGljaz17c2F2ZUJsYWNrbGlzdGVkQ29udGFjdHNGaWxlfT57Y2h1bmtzfTwvQ3N2RG93bmxvYWRMaW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoaW1wb3J0SW5mb3JtYXRpb24uY3JlYXRlZCA+IDAgfHwgaW1wb3J0SW5mb3JtYXRpb24udXBkYXRlZCA+IDApICYmIHNlbmREb3VibGVPcHRJbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggbXQ9ezJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0IHNldmVyaXR5PVwid2FybmluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY29tZXRCcmV2b01vZHVsZS51c2VDb250YWN0SW1wb3J0LmltcG9ydFN1Y2Nlc3NmdWwuZG9pTm90aWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U9XCJDb250YWN0cyB3aG8gaGF2ZSBub3QgeWV0IGNvbmZpcm1lZCB0aGVpciBzdWJzY3JpcHRpb24gd2lsbCByZWNlaXZlIGEgZG91YmxlIG9wdC1pbiBlbWFpbCB0byBjb21wbGV0ZSB0aGUgcHJvY2Vzcy4gVGhlc2UgY29udGFjdHMgd2lsbCBub3QgYXBwZWFyIGluIHRoaXMgbGlzdCB1bnRpbCB0aGV5IGNvbmZpcm0gdGhlaXIgc3Vic2NyaXB0aW9uLiBPbmNlIGNvbmZpcm1lZCwgdGhleSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgYWRkZWQgdG8gdGhlIGFwcHJvcHJpYXRlIHRhcmdldCBncm91cChzKS5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FsZXJ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9EaWFsb2dDb250ZW50PlxuICAgICAgICAgICAgICAgIDxEaWFsb2dBY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgICB7aW1wb3J0SW5mb3JtYXRpb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRJbXBvcnRJbmZvcm1hdGlvbihudWxsKX0gdmFyaWFudD1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSB7Li4ubWVzc2FnZXMub2t9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L0RpYWxvZ0FjdGlvbnM+XG4gICAgICAgICAgICA8L0RpYWxvZz5cbiAgICAgICAgPC8+XG4gICAgKTtcbn07XG5cbmNvbnN0IENzdkRvd25sb2FkTGluayA9IHN0eWxlZChcInNwYW5cIilgXG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS5pbmZvLm1haW59O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbmA7XG4iXX0= */"));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ContentScope } from "@dextinity/cms-admin";
|
|
2
|
+
import type { JSX, PropsWithChildren } from "react";
|
|
3
|
+
interface ConfigCheckProps {
|
|
4
|
+
scope: ContentScope;
|
|
5
|
+
}
|
|
6
|
+
export declare function ConfigVerification({ scope, children }: PropsWithChildren<ConfigCheckProps>): JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ConfigVerification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigVerification.d.ts","sourceRoot":"","sources":["../../src/configVerification/ConfigVerification.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAMpD,UAAU,gBAAgB;IACtB,KAAK,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,OAAO,CA4BxG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigVerification.gql.d.ts","sourceRoot":"","sources":["../../src/configVerification/ConfigVerification.gql.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,gCAMjC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Types from '../graphql.generated';
|
|
2
|
+
export declare const namedOperations: {
|
|
3
|
+
Query: {
|
|
4
|
+
BrevoConfigCheck: string;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
export type GQLBrevoConfigCheckQueryVariables = Types.Exact<{
|
|
8
|
+
scope: Types.GQLEmailCampaignContentScopeInput;
|
|
9
|
+
}>;
|
|
10
|
+
export type GQLBrevoConfigCheckQuery = {
|
|
11
|
+
__typename?: 'Query';
|
|
12
|
+
brevoConfig: {
|
|
13
|
+
__typename?: 'BrevoConfig';
|
|
14
|
+
id: string;
|
|
15
|
+
} | null;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=ConfigVerification.gql.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigVerification.gql.generated.d.ts","sourceRoot":"","sources":["../../src/configVerification/ConfigVerification.gql.generated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAE9C,eAAO,MAAM,eAAe;;;;CAI3B,CAAA;AACD,MAAM,MAAM,iCAAiC,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1D,KAAK,EAAE,KAAK,CAAC,iCAAiC,CAAC;CAChD,CAAC,CAAC;AAGH,MAAM,MAAM,wBAAwB,GAAG;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE;QAAE,UAAU,CAAC,EAAE,aAAa,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var _templateObject;
|
|
2
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
3
|
+
import { gql } from "@apollo/client";
|
|
4
|
+
export var brevoConfigCheckQuery = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query BrevoConfigCheck($scope: EmailCampaignContentScopeInput!) {\n brevoConfig(scope: $scope) {\n id\n }\n }\n"])));
|