@sparrowengg/integrations-templates-frontend 5.1.16 → 6.0.0
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/dist/cjs/commons/constants/index.js +1 -0
- package/dist/cjs/commons/constants/index.js.map +1 -1
- package/dist/cjs/mapping/constants/index.js.map +1 -1
- package/dist/cjs/triggers/components/EventSetup.js +1 -2
- package/dist/cjs/triggers/components/EventSetup.js.map +1 -1
- package/dist/cjs/triggers/components/TriggerHeader.js +4 -3
- package/dist/cjs/triggers/components/TriggerHeader.js.map +1 -1
- package/dist/cjs/triggers/components/trigger.js +70 -27
- package/dist/cjs/triggers/components/trigger.js.map +1 -1
- package/dist/cjs/triggers/hooks/use-contact-unique-constraint.js +35 -0
- package/dist/cjs/triggers/hooks/use-contact-unique-constraint.js.map +1 -0
- package/dist/cjs/triggers/index.js +12 -3
- package/dist/cjs/triggers/index.js.map +1 -1
- package/dist/cjs/triggers/services/index.js +15 -0
- package/dist/cjs/triggers/services/index.js.map +1 -1
- package/dist/cjs/triggers/utils/validation.utils.js +10 -14
- package/dist/cjs/triggers/utils/validation.utils.js.map +1 -1
- package/dist/es/commons/constants/index.js +1 -0
- package/dist/es/commons/constants/index.js.map +1 -1
- package/dist/es/mapping/constants/index.js.map +1 -1
- package/dist/es/triggers/components/EventSetup.js +1 -2
- package/dist/es/triggers/components/EventSetup.js.map +1 -1
- package/dist/es/triggers/components/TriggerHeader.js +4 -3
- package/dist/es/triggers/components/TriggerHeader.js.map +1 -1
- package/dist/es/triggers/components/trigger.js +72 -29
- package/dist/es/triggers/components/trigger.js.map +1 -1
- package/dist/es/triggers/hooks/use-contact-unique-constraint.js +33 -0
- package/dist/es/triggers/hooks/use-contact-unique-constraint.js.map +1 -0
- package/dist/es/triggers/index.js +12 -3
- package/dist/es/triggers/index.js.map +1 -1
- package/dist/es/triggers/services/index.js +15 -1
- package/dist/es/triggers/services/index.js.map +1 -1
- package/dist/es/triggers/utils/validation.utils.js +11 -14
- package/dist/es/triggers/utils/validation.utils.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/triggers/services/index.tsx"],"sourcesContent":["\nconst apiHeader = (token: string) => ({\n headers: {\n Authorization: `Bearer ${token}`\n }\n});\n\nexport const fetchSurveyChannels = async (\n token: string,\n apiURL: string,\n surveyId: number | string\n) => {\n let channels: Array<{}> = []\n try {\n const data = (\n await fetch(\n `${apiURL}/v3/channels?survey_id=${surveyId}`,\n apiHeader(token)\n )\n ).json();\n const response = await data;\n channels = response.data.map((item:any, id:any) => ({\n label: item.name,\n value: item.id,\n type: item.type,\n id\n }));\n return channels;\n } catch (error) {\n console.error(error);\n }\n return channels;\n};\n"],"names":[],"mappings":"AACA,MAAM,SAAA,GAAY,CAAC,KAAA,MAAmB;AAAA,EACpC,OAAA,EAAS;AAAA,IACP,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA;AAElC,CAAA,CAAA;AAEO,MAAM,mBAAA,GAAsB,OACjC,KAAA,EACA,MAAA,EACA,QAAA,KACG;AACF,EAAA,IAAI,WAAsB,EAAC;AAC5B,EAAA,IAAI;AACA,IAAA,MAAM,QACJ,MAAM,KAAA;AAAA,MACJ,CAAA,EAAG,MAAM,CAAA,uBAAA,EAA0B,QAAQ,CAAA,CAAA;AAAA,MAC3C,UAAU,KAAK;AAAA,OAEjB,IAAA,EAAK;AACP,IAAA,MAAM,WAAW,MAAM,IAAA;AACvB,IAAA,QAAA,GAAW,QAAA,CAAS,IAAA,CAAK,GAAA,CAAI,CAAC,MAAU,EAAA,MAAY;AAAA,MAClD,OAAO,IAAA,CAAK,IAAA;AAAA,MACZ,OAAO,IAAA,CAAK,EAAA;AAAA,MACZ,MAAM,IAAA,CAAK,IAAA;AAAA,MACX;AAAA,KACF,CAAE,CAAA;AACJ,IAAA,OAAO,QAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,EACrB;AACA,EAAA,OAAO,QAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/triggers/services/index.tsx"],"sourcesContent":["\nconst apiHeader = (token: string) => ({\n headers: {\n Authorization: `Bearer ${token}`\n }\n});\n\nexport const fetchSurveyChannels = async (\n token: string,\n apiURL: string,\n surveyId: number | string\n) => {\n let channels: Array<{}> = []\n try {\n const data = (\n await fetch(\n `${apiURL}/v3/channels?survey_id=${surveyId}`,\n apiHeader(token)\n )\n ).json();\n const response = await data;\n channels = response.data.map((item:any, id:any) => ({\n label: item.name,\n value: item.id,\n type: item.type,\n id\n }));\n return channels;\n } catch (error) {\n console.error(error);\n }\n return channels;\n};\n\nexport const fetchContactUniqueConstraint = async (\n token: string,\n apiURL: string\n) => {\n try {\n const data = (\n await fetch(\n `${apiURL}/v3/contacts/unique-constraint`,\n apiHeader(token)\n )\n ).json();\n const response = await data;\n return response?.data ?? null;\n } catch (error) {\n console.error(error);\n }\n return null;\n};\n"],"names":[],"mappings":"AACA,MAAM,SAAA,GAAY,CAAC,KAAA,MAAmB;AAAA,EACpC,OAAA,EAAS;AAAA,IACP,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA;AAElC,CAAA,CAAA;AAEO,MAAM,mBAAA,GAAsB,OACjC,KAAA,EACA,MAAA,EACA,QAAA,KACG;AACF,EAAA,IAAI,WAAsB,EAAC;AAC5B,EAAA,IAAI;AACA,IAAA,MAAM,QACJ,MAAM,KAAA;AAAA,MACJ,CAAA,EAAG,MAAM,CAAA,uBAAA,EAA0B,QAAQ,CAAA,CAAA;AAAA,MAC3C,UAAU,KAAK;AAAA,OAEjB,IAAA,EAAK;AACP,IAAA,MAAM,WAAW,MAAM,IAAA;AACvB,IAAA,QAAA,GAAW,QAAA,CAAS,IAAA,CAAK,GAAA,CAAI,CAAC,MAAU,EAAA,MAAY;AAAA,MAClD,OAAO,IAAA,CAAK,IAAA;AAAA,MACZ,OAAO,IAAA,CAAK,EAAA;AAAA,MACZ,MAAM,IAAA,CAAK,IAAA;AAAA,MACX;AAAA,KACF,CAAE,CAAA;AACJ,IAAA,OAAO,QAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,EACrB;AACA,EAAA,OAAO,QAAA;AACT;AAEO,MAAM,4BAAA,GAA+B,OAC1C,KAAA,EACA,MAAA,KACG;AArCL,EAAA,IAAA,EAAA;AAsCE,EAAA,IAAI;AACF,IAAA,MAAM,QACJ,MAAM,KAAA;AAAA,MACJ,GAAG,MAAM,CAAA,8BAAA,CAAA;AAAA,MACT,UAAU,KAAK;AAAA,OAEjB,IAAA,EAAK;AACP,IAAA,MAAM,WAAW,MAAM,IAAA;AACvB,IAAA,OAAA,CAAO,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,SAAV,IAAA,GAAA,EAAA,GAAkB,IAAA;AAAA,EAC3B,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,EACrB;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
|
|
@@ -2,17 +2,14 @@ const isEmpty = (object) => {
|
|
|
2
2
|
var _a;
|
|
3
3
|
return ((_a = Object.entries(object != null ? object : {})) == null ? void 0 : _a.length) === 0;
|
|
4
4
|
};
|
|
5
|
-
const isTriggerDetailsValid = (triggerDetails) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
|
|
14
|
-
}
|
|
15
|
-
);
|
|
5
|
+
const isTriggerDetailsValid = (triggerDetails, contactUniqueConstraint) => {
|
|
6
|
+
const baseValid = !isEmpty(triggerDetails.shareChannel) && !isEmpty(triggerDetails.shareRecipient) && !isEmpty(triggerDetails.shareType);
|
|
7
|
+
if (!baseValid)
|
|
8
|
+
return false;
|
|
9
|
+
if (contactUniqueConstraint == null ? void 0 : contactUniqueConstraint.hasUniqueConstraint) {
|
|
10
|
+
return !isEmpty(triggerDetails.contactUniqueField);
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
16
13
|
};
|
|
17
14
|
const isEventSetupDisabled = (actions, objects, eventFields) => {
|
|
18
15
|
return (!actions.value || !objects.value) && (!objects.options.find((object) => object.value === (eventFields == null ? void 0 : eventFields.object)) || !actions.options.find(
|
|
@@ -35,9 +32,9 @@ const areAllFiltersComplete = (fields) => {
|
|
|
35
32
|
}
|
|
36
33
|
);
|
|
37
34
|
};
|
|
38
|
-
const isSaveDisabled = (fields, triggerDetails) => {
|
|
39
|
-
return !areAllFiltersComplete(fields) || !isTriggerDetailsValid(triggerDetails);
|
|
35
|
+
const isSaveDisabled = (fields, triggerDetails, contactUniqueConstraint) => {
|
|
36
|
+
return !areAllFiltersComplete(fields) || !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint);
|
|
40
37
|
};
|
|
41
38
|
|
|
42
|
-
export { areAllFiltersComplete,
|
|
39
|
+
export { areAllFiltersComplete, isEmpty, isEventSetupDisabled, isSaveDisabled, isTriggerDetailsValid };
|
|
43
40
|
//# sourceMappingURL=validation.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (triggerDetails: any): boolean => {\n
|
|
1
|
+
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n const baseValid =\n !isEmpty(triggerDetails.shareChannel) &&\n !isEmpty(triggerDetails.shareRecipient) &&\n !isEmpty(triggerDetails.shareType);\n\n if (!baseValid) return false;\n\n if (contactUniqueConstraint?.hasUniqueConstraint) {\n return !isEmpty(triggerDetails.contactUniqueField);\n }\n\n return true;\n};\n\n/**\n * Checks if any filter has a value\n * @param fields - Fields object with filters\n * @returns boolean indicating if any filter has value\n */\nexport const hasFiltersWithValues = (fields: any): boolean => {\n return fields?.filters?.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n );\n};\n\n/**\n * Checks if event setup is disabled\n * @param actions - Actions configuration\n * @param objects - Objects configuration\n * @param eventFields - Event fields\n * @returns boolean indicating if setup is disabled\n */\nexport const isEventSetupDisabled = (\n actions: any,\n objects: any,\n eventFields?: any\n): boolean => {\n return (\n (!actions.value || !objects.value) &&\n (!objects.options.find((object: any) => object.value === eventFields?.object) ||\n !actions.options.find((action: any) =>\n eventFields?.action?.includes(action?.value)\n ))\n );\n};\n\n/**\n * Checks if all filter conditions are completely filled out,\n * including nested conditions (field, comparator, and value).\n * @param fields - Fields object with filters\n * @returns boolean indicating if all filters are complete\n */\nexport const areAllFiltersComplete = (fields: any): boolean => {\n if (!fields?.filters?.length) return false;\n\n return fields.filters.every((filterGroup: any) =>\n filterGroup?.filter?.length > 0 &&\n filterGroup.filter.every(\n (currentFilter: any) =>\n !!currentFilter?.field && !!currentFilter?.comparator && !!currentFilter?.value\n )\n );\n};\n\n/**\n * Checks if save button should be disabled\n * @param fields - Fields with filters\n * @param triggerDetails - Trigger details\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if save should be disabled\n */\nexport const isSaveDisabled = (\n fields: any,\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n return (\n !areAllFiltersComplete(fields) ||\n !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint)\n );\n};\n\n"],"names":["_a"],"mappings":"AASO,MAAM,OAAA,GAAU,CAAC,MAAA,KAAyB;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,OAAA,CAAA,CAAO,YAAO,OAAA,CAAQ,MAAA,IAAA,IAAA,GAAA,MAAA,GAAU,EAAE,CAAA,KAA3B,mBAA8B,MAAA,MAAW,CAAA;AAClD;AAQO,MAAM,qBAAA,GAAwB,CACnC,cAAA,EACA,uBAAA,KACY;AACZ,EAAA,MAAM,SAAA,GACJ,CAAC,OAAA,CAAQ,cAAA,CAAe,YAAY,CAAA,IACpC,CAAC,OAAA,CAAQ,cAAA,CAAe,cAAc,CAAA,IACtC,CAAC,OAAA,CAAQ,eAAe,SAAS,CAAA;AAEnC,EAAA,IAAI,CAAC,SAAA;AAAW,IAAA,OAAO,KAAA;AAEvB,EAAA,IAAI,mEAAyB,mBAAA,EAAqB;AAChD,IAAA,OAAO,CAAC,OAAA,CAAQ,cAAA,CAAe,kBAAkB,CAAA;AAAA,EACnD;AAEA,EAAA,OAAO,IAAA;AACT;AAoBO,MAAM,oBAAA,GAAuB,CAClC,OAAA,EACA,OAAA,EACA,WAAA,KACY;AACZ,EAAA,OAAA,CACG,CAAC,OAAA,CAAQ,KAAA,IAAS,CAAC,OAAA,CAAQ,KAAA,MAC3B,CAAC,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAC,MAAA,KAAgB,OAAO,KAAA,MAAU,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,OAAM,CAAA,IAC1E,CAAC,QAAQ,OAAA,CAAQ,IAAA;AAAA,IAAK,CAAC,MAAA,KAAa;AA/D1C,MAAA,IAAA,EAAA;AAgEQ,MAAA,OAAA,CAAA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,MAAA,KAAb,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,QAAA,CAAS,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,KAAA,CAAA;AAAA,IAAA;AAAA,GACxC,CAAA;AAEN;AAQO,MAAM,qBAAA,GAAwB,CAAC,MAAA,KAAyB;AA3E/D,EAAA,IAAA,EAAA;AA4EE,EAAA,IAAI,EAAA,CAAC,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,OAAA,KAAR,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiB,MAAA,CAAA;AAAQ,IAAA,OAAO,KAAA;AAErC,EAAA,OAAO,OAAO,OAAA,CAAQ,KAAA;AAAA,IAAM,CAAC,WAAA,KAAkB;AA9EjD,MAAA,IAAAA,GAAAA;AA+EI,MAAA,OAAA,CAAA,CAAAA,GAAAA,GAAA,2CAAa,MAAA,KAAb,IAAA,GAAA,MAAA,GAAAA,IAAqB,MAAA,IAAS,CAAA,IAC9B,YAAY,MAAA,CAAO,KAAA;AAAA,QACjB,CAAC,aAAA,KACC,CAAC,EAAC,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,KAAA,CAAA,IAAS,CAAC,EAAC,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,UAAA,CAAA,IAAc,CAAC,EAAC,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,KAAA;AAAA,OAC9E;AAAA,IAAA;AAAA,GACF;AACF;AASO,MAAM,cAAA,GAAiB,CAC5B,MAAA,EACA,cAAA,EACA,uBAAA,KACY;AACZ,EAAA,OACE,CAAC,qBAAA,CAAsB,MAAM,KAC7B,CAAC,qBAAA,CAAsB,gBAAgB,uBAAuB,CAAA;AAElE;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -380,8 +380,15 @@ type TriggerDetails = {
|
|
|
380
380
|
shareChannel: any;
|
|
381
381
|
shareRecipient: any;
|
|
382
382
|
shareType: any;
|
|
383
|
+
contactUniqueField?: any;
|
|
383
384
|
[key: string]: any;
|
|
384
385
|
};
|
|
386
|
+
type ContactUniqueConstraint = {
|
|
387
|
+
id: string;
|
|
388
|
+
value: string;
|
|
389
|
+
label: string;
|
|
390
|
+
hasUniqueConstraint: boolean;
|
|
391
|
+
} | null;
|
|
385
392
|
type EventFields = {
|
|
386
393
|
account?: string;
|
|
387
394
|
object?: string;
|
|
@@ -419,6 +426,7 @@ type TriggersProps = {
|
|
|
419
426
|
editField?: EditField;
|
|
420
427
|
fieldOptions: any[];
|
|
421
428
|
variableOptions: any[];
|
|
429
|
+
contactUniqueConstraint?: ContactUniqueConstraint;
|
|
422
430
|
};
|
|
423
431
|
|
|
424
432
|
/**
|