surveysparrow-ionic-plugin 1.0.7-beta.4 → 2.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.
Files changed (94) hide show
  1. package/dist/angular-ui/esm2022/angular-ui.mjs +5 -0
  2. package/dist/angular-ui/esm2022/public-api.mjs +3 -0
  3. package/dist/angular-ui/esm2022/spotcheck.component.mjs +17 -0
  4. package/dist/angular-ui/esm2022/spotchecks/SpotCheck.mjs +51 -0
  5. package/dist/angular-ui/esm2022/spotchecks/SpotCheckComponent.mjs +323 -0
  6. package/dist/angular-ui/esm2022/spotchecks/SpotcheckStateService.mjs +65 -0
  7. package/dist/angular-ui/esm2022/spotchecks/api.mjs +230 -0
  8. package/dist/angular-ui/esm2022/spotchecks/helpers.mjs +328 -0
  9. package/dist/angular-ui/esm2022/spotchecks/index.mjs +2 -0
  10. package/dist/angular-ui/esm2022/spotchecks/storage.mjs +7 -0
  11. package/dist/angular-ui/esm2022/spotchecks/types.mjs +2 -0
  12. package/dist/angular-ui/fesm2022/angular-ui.mjs +1013 -0
  13. package/dist/angular-ui/fesm2022/angular-ui.mjs.map +1 -0
  14. package/dist/angular-ui/index.d.ts +5 -0
  15. package/dist/angular-ui/public-api.d.ts +2 -0
  16. package/dist/angular-ui/spotcheck.component.d.ts +5 -0
  17. package/dist/angular-ui/spotchecks/SpotCheckComponent.d.ts +56 -0
  18. package/dist/angular-ui/spotchecks/SpotcheckStateService.d.ts +12 -0
  19. package/dist/{esm → angular-ui}/spotchecks/helpers.d.ts +1 -4
  20. package/dist/angular-ui/spotchecks/index.d.ts +2 -0
  21. package/dist/angular-ui/spotchecks/storage.d.ts +2 -0
  22. package/dist/{esm → angular-ui}/spotchecks/types.d.ts +5 -4
  23. package/dist/esm/angular-ui/lib/public-api.d.ts +2 -0
  24. package/dist/esm/angular-ui/lib/public-api.js +3 -0
  25. package/dist/esm/angular-ui/lib/public-api.js.map +1 -0
  26. package/dist/esm/angular-ui/lib/spotcheck.component.d.ts +2 -0
  27. package/dist/esm/angular-ui/lib/spotcheck.component.js +20 -0
  28. package/dist/esm/angular-ui/lib/spotcheck.component.js.map +1 -0
  29. package/dist/esm/angular-ui/lib/spotchecks/SpotCheck.d.ts +4 -0
  30. package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotCheck.js +1 -3
  31. package/dist/esm/angular-ui/lib/spotchecks/SpotCheck.js.map +1 -0
  32. package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotCheckComponent.d.ts +1 -0
  33. package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotCheckComponent.js +13 -7
  34. package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js.map +1 -0
  35. package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotcheckStateService.js +1 -0
  36. package/dist/esm/angular-ui/lib/spotchecks/SpotcheckStateService.js.map +1 -0
  37. package/dist/esm/angular-ui/lib/spotchecks/api.d.ts +15 -0
  38. package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/api.js +20 -29
  39. package/dist/esm/angular-ui/lib/spotchecks/api.js.map +1 -0
  40. package/dist/esm/angular-ui/lib/spotchecks/helpers.d.ts +29 -0
  41. package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/helpers.js +6 -19
  42. package/dist/esm/angular-ui/lib/spotchecks/helpers.js.map +1 -0
  43. package/dist/esm/angular-ui/lib/spotchecks/index.d.ts +2 -0
  44. package/dist/esm/angular-ui/lib/spotchecks/index.js +2 -0
  45. package/dist/esm/angular-ui/lib/spotchecks/index.js.map +1 -0
  46. package/dist/esm/angular-ui/lib/spotchecks/storage.js.map +1 -0
  47. package/dist/esm/angular-ui/lib/spotchecks/types.d.ts +78 -0
  48. package/dist/esm/angular-ui/lib/spotchecks/types.js.map +1 -0
  49. package/dist/esm/index.d.ts +1 -1
  50. package/dist/esm/index.js +1 -1
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/plugin.cjs.js +51510 -527
  53. package/dist/plugin.cjs.js.map +1 -1
  54. package/dist/plugin.js +51511 -524
  55. package/dist/plugin.js.map +1 -1
  56. package/package.json +31 -4
  57. package/src/angular-ui/lib/public-api.ts +2 -0
  58. package/src/angular-ui/lib/spotcheck.component.ts +10 -0
  59. package/src/angular-ui/lib/spotchecks/SpotCheck.ts +54 -0
  60. package/src/angular-ui/lib/spotchecks/SpotCheckComponent.css +7 -0
  61. package/src/angular-ui/lib/spotchecks/SpotCheckComponent.html +27 -0
  62. package/src/angular-ui/lib/spotchecks/SpotCheckComponent.ts +295 -0
  63. package/src/angular-ui/lib/spotchecks/SpotcheckStateService.ts +64 -0
  64. package/src/angular-ui/lib/spotchecks/api.ts +286 -0
  65. package/src/angular-ui/lib/spotchecks/helpers.ts +401 -0
  66. package/src/angular-ui/lib/spotchecks/index.ts +9 -0
  67. package/src/angular-ui/lib/spotchecks/storage.ts +7 -0
  68. package/src/angular-ui/lib/spotchecks/types.ts +84 -0
  69. package/src/angular-ui/ng-package.json +13 -0
  70. package/src/angular-ui/package.json +10 -0
  71. package/src/definitions.ts +17 -0
  72. package/src/index.ts +10 -0
  73. package/dist/esm/spotchecks/SpotCheck.js.map +0 -1
  74. package/dist/esm/spotchecks/SpotCheckComponent.js.map +0 -1
  75. package/dist/esm/spotchecks/SpotCheckService.d.ts +0 -8
  76. package/dist/esm/spotchecks/SpotCheckService.js +0 -45
  77. package/dist/esm/spotchecks/SpotCheckService.js.map +0 -1
  78. package/dist/esm/spotchecks/SpotcheckStateService.js.map +0 -1
  79. package/dist/esm/spotchecks/SpotchecksListener.d.ts +0 -9
  80. package/dist/esm/spotchecks/SpotchecksListener.js +0 -37
  81. package/dist/esm/spotchecks/SpotchecksListener.js.map +0 -1
  82. package/dist/esm/spotchecks/api.js.map +0 -1
  83. package/dist/esm/spotchecks/helpers.js.map +0 -1
  84. package/dist/esm/spotchecks/index.d.ts +0 -5
  85. package/dist/esm/spotchecks/index.js +0 -6
  86. package/dist/esm/spotchecks/index.js.map +0 -1
  87. package/dist/esm/spotchecks/storage.js.map +0 -1
  88. package/dist/esm/spotchecks/types.js.map +0 -1
  89. /package/dist/{esm → angular-ui}/spotchecks/SpotCheck.d.ts +0 -0
  90. /package/dist/{esm → angular-ui}/spotchecks/api.d.ts +0 -0
  91. /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotcheckStateService.d.ts +0 -0
  92. /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/storage.d.ts +0 -0
  93. /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/storage.js +0 -0
  94. /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/types.js +0 -0
@@ -6,17 +6,17 @@ export const sendTrackScreenRequest = async ({ screen, options, }) => {
6
6
  try {
7
7
  const spotcheckStateService = getSpotcheckStateService();
8
8
  const oldState = spotcheckStateService.getState();
9
- let variables = {};
10
- let customProperties = {};
11
- let userDetails = {};
12
- if (options.variables && Object.keys(options.variables).length > 0) {
13
- variables = Object.assign(Object.assign({}, oldState.variables), options.variables);
9
+ let variables = Object.assign({}, oldState.variables);
10
+ let customProperties = Object.assign({}, oldState.customProperties);
11
+ let userDetails = Object.assign({}, oldState.userDetails);
12
+ if (options && options.variables && Object.keys(options.variables).length > 0) {
13
+ variables = Object.assign(Object.assign({}, variables), options.variables);
14
14
  }
15
- if (options.customProperties && Object.keys(options.customProperties).length > 0) {
16
- customProperties = Object.assign(Object.assign({}, oldState.customProperties), options.customProperties);
15
+ if (options && options.customProperties && Object.keys(options.customProperties).length > 0) {
16
+ customProperties = Object.assign(Object.assign({}, customProperties), options.customProperties);
17
17
  }
18
- if (options.userDetails && Object.keys(options.userDetails).length > 0) {
19
- userDetails = Object.assign(Object.assign({}, oldState.userDetails), options.userDetails);
18
+ if (options && options.userDetails && Object.keys(options.userDetails).length > 0) {
19
+ userDetails = Object.assign(Object.assign({}, userDetails), options.userDetails);
20
20
  }
21
21
  let traceId = oldState.traceId;
22
22
  if (!traceId) {
@@ -30,16 +30,16 @@ export const sendTrackScreenRequest = async ({ screen, options, }) => {
30
30
  }
31
31
  spotcheckStateService.setState({
32
32
  traceId,
33
- variables,
34
- customProperties,
35
- userDetails,
33
+ screenwiseUserDetails: {
34
+ [screen]: userDetails
35
+ },
36
36
  });
37
37
  const state = spotcheckStateService.getState();
38
38
  let { isSpotPassed, isChecksPassed } = state;
39
39
  const payload = {
40
40
  screenName: screen,
41
- variables: state.variables,
42
- userDetails: state.userDetails,
41
+ variables: variables,
42
+ userDetails: userDetails,
43
43
  visitor: {
44
44
  deviceType: 'MOBILE',
45
45
  operatingSystem: await getOS(),
@@ -51,9 +51,9 @@ export const sendTrackScreenRequest = async ({ screen, options, }) => {
51
51
  timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
52
52
  },
53
53
  traceId: state.traceId,
54
- customProperties: state.customProperties,
54
+ customProperties: customProperties,
55
55
  };
56
- const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/properties?isSpotCheck=true&sdk=IOS`;
56
+ const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/properties?isSpotCheck=true`;
57
57
  const response = await axios.post(url, payload, {
58
58
  headers: {
59
59
  'Content-Type': 'application/json',
@@ -66,7 +66,7 @@ export const sendTrackScreenRequest = async ({ screen, options, }) => {
66
66
  }
67
67
  if (responseJson === null || responseJson === void 0 ? void 0 : responseJson.show) {
68
68
  if (responseJson === null || responseJson === void 0 ? void 0 : responseJson.show) {
69
- const appearance_response = await setAppearance(responseJson, screen, state.domainName, traceId, state.variables);
69
+ const appearance_response = await setAppearance(responseJson, screen, state.domainName, traceId, variables);
70
70
  if (appearance_response) {
71
71
  isSpotPassed = true;
72
72
  spotcheckStateService.setState({ isSpotPassed });
@@ -86,7 +86,7 @@ export const sendTrackScreenRequest = async ({ screen, options, }) => {
86
86
  throw new Error('');
87
87
  }
88
88
  }
89
- const appearance_response = await setAppearance(responseJson, screen, state.domainName, traceId, state.variables);
89
+ const appearance_response = await setAppearance(responseJson, screen, state.domainName, traceId, variables);
90
90
  if (appearance_response) {
91
91
  isChecksPassed = true;
92
92
  spotcheckStateService.setState({ isChecksPassed });
@@ -114,7 +114,7 @@ export const sendTrackScreenRequest = async ({ screen, options, }) => {
114
114
  }
115
115
  if (Object.keys(selectedSpotCheck).length > 0) {
116
116
  spotcheckStateService.setState({ afterDelay: minDelay });
117
- const appearance_response = await setAppearance(selectedSpotCheck, screen, state.domainName, traceId, state.variables);
117
+ const appearance_response = await setAppearance(selectedSpotCheck, screen, state.domainName, traceId, variables);
118
118
  if (appearance_response) {
119
119
  return { valid: true };
120
120
  }
@@ -147,20 +147,11 @@ export const sendTrackEventRequest = async ({ screen, event }) => {
147
147
  if (eventKeys.includes(customEvent === null || customEvent === void 0 ? void 0 : customEvent.eventName)) {
148
148
  selectedSpotCheckID =
149
149
  (_c = (_b = spotCheck === null || spotCheck === void 0 ? void 0 : spotCheck['id']) !== null && _b !== void 0 ? _b : spotCheck === null || spotCheck === void 0 ? void 0 : spotCheck['spotCheckId']) !== null && _c !== void 0 ? _c : intMax;
150
- let payloadUserDetails = Object.assign({}, state.userDetails);
151
150
  if (selectedSpotCheckID !== intMax) {
152
- if (!(payloadUserDetails === null || payloadUserDetails === void 0 ? void 0 : payloadUserDetails.email) &&
153
- !(payloadUserDetails === null || payloadUserDetails === void 0 ? void 0 : payloadUserDetails.uuid) &&
154
- !(payloadUserDetails === null || payloadUserDetails === void 0 ? void 0 : payloadUserDetails.mobile)) {
155
- const uuid = getStoredUUID();
156
- if (uuid) {
157
- payloadUserDetails.uuid = uuid;
158
- }
159
- }
160
151
  const payload = {
161
152
  screenName: screen,
162
153
  variables: state.variables,
163
- userDetails: payloadUserDetails,
154
+ userDetails: state.screenwiseUserDetails[screen] || {},
164
155
  visitor: {
165
156
  deviceType: 'MOBILE',
166
157
  operatingSystem: await getOS(),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/angular-ui/lib/spotchecks/api.ts"],"names":[],"mappings":"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","sourcesContent":["import { generateTraceId, getOS, setAppearance } from './helpers';\nimport { getStoredUUID, setUUID } from './storage';\nimport { TrackScreenProps, UserDetails, Variables, CustomProperties, TrackEventProps } from './types';\nimport { getSpotcheckStateService } from './helpers';\nimport axios from 'axios';\n\nexport const sendTrackScreenRequest = async ({\n screen,\n options,\n}: TrackScreenProps) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n const oldState = spotcheckStateService.getState();\n let variables = { ...oldState.variables } as Variables;\n let customProperties = { ...oldState.customProperties } as CustomProperties;\n let userDetails = { ...oldState.userDetails } as UserDetails; \n\n if (options && options.variables && Object.keys(options.variables).length > 0) {\n variables = { ...variables, ...options.variables };\n }\n if (options && options.customProperties && Object.keys(options.customProperties).length > 0) {\n customProperties = { ...customProperties, ...options.customProperties };\n }\n if (options && options.userDetails && Object.keys(options.userDetails).length > 0) {\n userDetails = { ...userDetails, ...options.userDetails };\n }\n\n let traceId = oldState.traceId;\n if (!traceId) {\n traceId = generateTraceId();\n }\n\n if (!userDetails.uuid && !userDetails.email && !userDetails.mobile) {\n const uuid = getStoredUUID();\n if (uuid) {\n userDetails.uuid = uuid;\n }\n }\n\n spotcheckStateService.setState({\n traceId,\n screenwiseUserDetails: {\n [screen]: userDetails\n },\n });\n\n const state = spotcheckStateService.getState();\n let { isSpotPassed, isChecksPassed } = state;\n const payload = {\n screenName: screen,\n variables: variables,\n userDetails: userDetails,\n visitor: {\n deviceType: 'MOBILE',\n operatingSystem: await getOS(),\n screenResolution: {\n height: window.innerHeight,\n width: window.innerWidth,\n },\n currentDate: new Date().toISOString(),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n traceId: state.traceId,\n customProperties: customProperties,\n };\n\n const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/properties?isSpotCheck=true`;\n const response = await axios.post(url, payload, {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if(response.status === 200) {\n const responseJson = response.data;\n\n if (responseJson.uuid) {\n setUUID(responseJson.uuid);\n }\n\n if (responseJson?.show) {\n if (responseJson?.show) {\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n traceId,\n variables\n );\n if (appearance_response) {\n isSpotPassed = true;\n spotcheckStateService.setState({ isSpotPassed });\n return { valid: true };\n }\n } else {\n throw new Error('');\n }\n }\n \n if (!isSpotPassed && responseJson?.checkPassed) {\n if (responseJson.checkCondition) {\n const checkCondition = responseJson.checkCondition;\n spotcheckStateService.setState({ afterDelay: checkCondition.afterDelay || 0 });\n if (checkCondition.customEvent) {\n spotcheckStateService.setState({ customEventsSpotChecks: [responseJson] });\n throw new Error('');\n }\n }\n\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n traceId,\n variables\n );\n if (appearance_response) {\n isChecksPassed = true;\n spotcheckStateService.setState({ isChecksPassed });\n return { valid: true };\n }\n }\n\n if (!isSpotPassed && !isChecksPassed && responseJson?.multiShow != null) {\n if (responseJson.multiShow) {\n spotcheckStateService.setState({ customEventsSpotChecks: responseJson.resultantSpotCheck });\n\n let selectedSpotCheck = {};\n let minDelay: number = Number.POSITIVE_INFINITY;\n\n for (const spotcheck of responseJson.resultantSpotCheck) {\n const checks = spotcheck?.checks || {};\n if (Object.keys(checks).length === 0) {\n minDelay = 0;\n selectedSpotCheck = spotcheck;\n } else if (checks.afterDelay != null) {\n const delay = parseFloat(checks.afterDelay);\n if (minDelay > delay) {\n minDelay = delay;\n selectedSpotCheck = spotcheck;\n }\n }\n }\n\n if (Object.keys(selectedSpotCheck).length > 0) {\n spotcheckStateService.setState({ afterDelay: minDelay });\n const appearance_response = await setAppearance(\n selectedSpotCheck,\n screen,\n state.domainName,\n traceId,\n variables\n );\n if (appearance_response) {\n return { valid: true };\n }\n }\n }\n }\n\n throw new Error(responseJson?.reason.toString());\n } else {\n throw new Error(`Received status code ${response.status}`);\n }\n } catch (error: any) {\n return { valid: false, error: error.message };\n }\n};\n\n\nexport const sendTrackEventRequest = async ({ screen, event }: TrackEventProps) => {\n try {\n const intMax = Number.POSITIVE_INFINITY;\n const state = getSpotcheckStateService().getState();\n let selectedSpotCheckID = intMax;\n let { isSpotPassed } = state;\n if (state.customEventsSpotChecks.length > 0) {\n const eventKeys = Object.keys(event);\n for (const spotCheck of state.customEventsSpotChecks) {\n const checks = spotCheck?.['checks'] ?? spotCheck?.['checkCondition'];\n\n if (checks) {\n const customEvent = checks?.customEvent;\n\n if (eventKeys.includes(customEvent?.eventName)) {\n selectedSpotCheckID =\n spotCheck?.['id'] ?? spotCheck?.['spotCheckId'] ?? intMax;\n\n if (selectedSpotCheckID !== intMax) {\n const payload = {\n screenName: screen,\n variables: state.variables,\n userDetails: state.screenwiseUserDetails[screen] || {},\n visitor: {\n deviceType: 'MOBILE',\n operatingSystem: await getOS(),\n screenResolution: {\n height: window.innerHeight,\n width: window.innerWidth,\n },\n currentDate: new Date().toISOString(),\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n },\n spotCheckId: selectedSpotCheckID,\n eventTrigger: {\n customEvent: event,\n },\n traceId: state.traceId,\n customProperties: state.customProperties,\n };\n\n const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/eventTrigger?isSpotCheck=true`;\n\n try {\n const response = await axios.post(url, payload, {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n\n if (response.status === 200) {\n const responseJson = response.data;\n if (responseJson?.show != null) {\n if (responseJson?.show) {\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n state.traceId,\n state.variables\n );\n\n if (appearance_response) {\n getSpotcheckStateService().setState({ isSpotPassed: true });\n isSpotPassed = true;\n return { valid: true };\n }\n }\n }\n\n if (!isSpotPassed && responseJson?.eventShow) {\n if (responseJson?.checkCondition != null) {\n const checkCondition = responseJson?.checkCondition;\n getSpotcheckStateService().setState({\n afterDelay: checkCondition?.afterDelay ?? 0,\n });\n\n if (checkCondition?.customEvent != null) {\n getSpotcheckStateService().setState({\n afterDelay: checkCondition?.customEvent?.delayInSeconds ?? 0,\n });\n }\n }\n\n const appearance_response = await setAppearance(\n responseJson,\n screen,\n state.domainName,\n state.traceId,\n state.variables\n );\n\n if (appearance_response) {\n return { valid: true };\n }\n }\n\n throw new Error(responseJson?.reason.toString());\n } else {\n throw new Error(`Received status code ${response.status}`);\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n }\n }\n }\n throw new Error('');\n } else {\n throw new Error('');\n }\n } catch (error: any) {\n return { valid: false, error: error.message };\n }\n};"]}
@@ -0,0 +1,29 @@
1
+ import { SpotcheckState } from './types';
2
+ import { SpotcheckStateService } from './SpotcheckStateService';
3
+ export declare const getSpotcheckStateService: () => SpotcheckStateService;
4
+ export declare function generateTraceId(): string;
5
+ export declare const ischatSurvey: (type: String) => boolean;
6
+ export declare const getOS: () => Promise<import("@capacitor/device").OperatingSystem>;
7
+ export declare const setAppearance: (responseJson: any, screen: string, domainName: string, traceId: string, variables: Record<string, any>) => Promise<boolean>;
8
+ export declare const start: () => void;
9
+ export declare const closeSpotCheck: () => Promise<void>;
10
+ export declare const handleSurveyEnd: () => void;
11
+ export declare const getSpotcheckComponentCssStyles: (state: SpotcheckState) => {
12
+ wrapperStyles: {
13
+ position: string;
14
+ width: string;
15
+ height: string;
16
+ top: string;
17
+ left: string;
18
+ backgroundColor: string;
19
+ zIndex: string;
20
+ display: string;
21
+ flexDirection: string;
22
+ };
23
+ styles: {
24
+ display: string;
25
+ flexDirection: string;
26
+ paddingTop: string;
27
+ };
28
+ };
29
+ export declare const closeSpotCheckAndHandleSurveyEnd: () => Promise<void>;
@@ -2,30 +2,13 @@ import { v4 as uuidv4 } from 'uuid';
2
2
  import { Device } from '@capacitor/device';
3
3
  import axios from 'axios';
4
4
  import { SpotcheckStateService } from './SpotcheckStateService';
5
- import { SpotchecksListener } from './SpotchecksListener';
6
- import { SpotCheckService } from './SpotCheckService';
7
- import { inject } from '@angular/core';
8
5
  let globalSpotcheckStateService;
9
- let globalSpotchecksListener;
10
- let globalSpotCheckService;
11
- export const getSpotCheckService = () => {
12
- if (!globalSpotCheckService) {
13
- globalSpotCheckService = inject(SpotCheckService);
14
- }
15
- return globalSpotCheckService;
16
- };
17
6
  export const getSpotcheckStateService = () => {
18
7
  if (!globalSpotcheckStateService) {
19
8
  globalSpotcheckStateService = new SpotcheckStateService();
20
9
  }
21
10
  return globalSpotcheckStateService;
22
11
  };
23
- export const getSpotchecksListener = () => {
24
- if (!globalSpotchecksListener) {
25
- globalSpotchecksListener = new SpotchecksListener();
26
- }
27
- return globalSpotchecksListener;
28
- };
29
12
  export function generateTraceId() {
30
13
  const uuidString = uuidv4();
31
14
  const timestamp = Date.now();
@@ -168,7 +151,7 @@ export const setAppearance = async (responseJson, screen, domainName, traceId, v
168
151
  throw new Error(error.message);
169
152
  }
170
153
  }
171
- throw new Error('212');
154
+ throw new Error('Something went wrong');
172
155
  }
173
156
  catch (error) {
174
157
  throw new Error(error.message);
@@ -241,6 +224,7 @@ export const handleSurveyEnd = () => {
241
224
  export const getSpotcheckComponentCssStyles = (state) => {
242
225
  let styles = {};
243
226
  let wrapperStyles = {};
227
+ let extraPaddingForMiniCardCloseButtonIfTopPosition = 0;
244
228
  if (state.isFullScreenMode && state.isVisible) {
245
229
  wrapperStyles = {
246
230
  display: 'flex',
@@ -281,6 +265,9 @@ export const getSpotcheckComponentCssStyles = (state) => {
281
265
  display: 'flex',
282
266
  justifyContent: 'flex-start',
283
267
  };
268
+ if (state.spotChecksMode === 'miniCard' && state.isCloseButtonEnabled) {
269
+ extraPaddingForMiniCardCloseButtonIfTopPosition = 30;
270
+ }
284
271
  break;
285
272
  case 'center':
286
273
  styles = {
@@ -298,7 +285,7 @@ export const getSpotcheckComponentCssStyles = (state) => {
298
285
  }
299
286
  return {
300
287
  wrapperStyles: Object.assign({ position: 'fixed', width: '100%', height: '100%', top: '0', left: '0', backgroundColor: 'rgba(0, 0, 0, 0.3)', zIndex: '99999999', display: 'none', flexDirection: 'column' }, wrapperStyles),
301
- styles: Object.assign({ display: 'none', flexDirection: 'column' }, styles)
288
+ styles: Object.assign({ display: 'none', flexDirection: 'column', paddingTop: extraPaddingForMiniCardCloseButtonIfTopPosition + 'px' }, styles)
302
289
  };
303
290
  };
304
291
  export const closeSpotCheckAndHandleSurveyEnd = async () => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/angular-ui/lib/spotchecks/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { Device } from '@capacitor/device';\nimport { SpotcheckState } from './types';\nimport axios from 'axios';\nimport { SpotcheckStateService } from './SpotcheckStateService';\n\nlet globalSpotcheckStateService: SpotcheckStateService;\n\nexport const getSpotcheckStateService = (): SpotcheckStateService => {\n if (!globalSpotcheckStateService) {\n globalSpotcheckStateService = new SpotcheckStateService();\n }\n return globalSpotcheckStateService;\n};\n\nexport function generateTraceId() {\n const uuidString = uuidv4();\n const timestamp = Date.now();\n return `${uuidString}-${timestamp}`;\n}\n\nexport const ischatSurvey = (type: String) => {\n return (\n type === 'Conversational' ||\n type === 'CESChat' ||\n type === 'NPSChat' ||\n type === 'CSATChat'\n );\n};\n\nexport const getOS = async () => {\n const info = await Device.getInfo();\n return info.operatingSystem;\n};\n\nexport const setAppearance = async (\n responseJson: any,\n screen: string,\n domainName: string,\n traceId: string,\n variables: Record<string, any>\n) => {\n try {\n const spotcheckStateService = getSpotcheckStateService();\n let state = spotcheckStateService.getState();\n\n if (responseJson) {\n const currentSpotcheck = state.filteredSpotChecks.find(\n (spotcheck) =>\n spotcheck['id'] === responseJson?.spotCheckId ||\n spotcheck['id'] === responseJson?.id\n );\n\n const appearance = responseJson?.appearance;\n let chat = false;\n\n let updatedState: Partial<SpotcheckState> = {};\n\n if (appearance) {\n const {\n position,\n closeButton,\n colors,\n cardProperties,\n mode,\n bannerImage,\n } = appearance;\n const { maxHeight } = cardProperties || {};\n\n updatedState = {\n spotcheckPosition:\n position === 'top_full' || position === 'center_top'\n ? 'top'\n : position === 'center_center'\n ? 'center'\n : 'bottom',\n isCloseButtonEnabled: closeButton ?? true,\n closeButtonStyle: colors?.overrides ?? {},\n maxHeight: maxHeight ? parseFloat(maxHeight) / 100 : 0,\n spotCheckType:\n ischatSurvey(currentSpotcheck?.['survey']?.surveyType) &&\n mode === 'fullScreen'\n ? 'chat'\n : 'classic',\n isFullScreenMode: mode === 'fullScreen',\n isBannerImageOn: bannerImage?.enabled ?? false,\n spotChecksMode: mode,\n avatarEnabled: appearance?.avatar?.enabled ?? false,\n avatarUrl: appearance?.avatar?.avatarUrl ?? '',\n };\n\n chat = updatedState.spotCheckType === 'chat';\n }\n\n const spotCheckId = responseJson?.spotCheckId ?? 0;\n const spotCheckContactId =\n responseJson?.spotCheckContactId ??\n responseJson?.spotCheckContact?.id ??\n 0;\n const triggerToken = responseJson?.triggerToken ?? '';\n\n updatedState = {\n ...updatedState,\n spotcheckID: spotCheckId,\n spotcheckContactID: spotCheckContactId,\n triggerToken,\n };\n\n const baseSpotcheckURL = `https://${domainName}/s/spotcheck/${triggerToken}/${\n chat ? 'config' : 'bootstrap'\n }?spotcheckContactId=${spotCheckContactId}&traceId=${traceId}&spotcheckUrl=${screen}`;\n\n let fullSpotcheckURL = baseSpotcheckURL;\n\n Object.entries(variables).forEach(([key, value]) => {\n fullSpotcheckURL += `&${key}=${value}`;\n });\n\n updatedState.spotcheckURL = fullSpotcheckURL;\n spotcheckStateService.setState(updatedState);\n\n try {\n const response = await axios.get(fullSpotcheckURL);\n const themeInfo = response.data.config.generatedCSS;\n const theme_payload = { type: 'THEME_UPDATE_SPOTCHECK', themeInfo };\n state = spotcheckStateService.getState();\n\n let webViewRef = chat ? state.chatWebViewRef : state.classicWebViewRef;\n let isLoading = chat ? state.isChatLoading : state.isClassicLoading;\n\n const resetStateData = {\n type: 'RESET_STATE',\n state: {\n ...(response.data || {}),\n skip: true,\n spotCheckAppearance: {\n ...(appearance || {}),\n targetType: 'MOBILE',\n },\n spotcheckUrl: screen,\n traceId,\n elementBuilderParams: {\n ...(variables || {}),\n },\n },\n };\n\n const sendMessageToIframe = (iframe: HTMLIFrameElement, data: any) => {\n if (iframe && iframe.contentWindow) {\n try {\n iframe.contentWindow.postMessage(data, '*');\n } catch (error) {\n console.error('❌ Failed to send message to iframe:', error);\n }\n }\n };\n\n const communicateWithWebView = async (iframe: HTMLIFrameElement) => {\n await new Promise(resolve => setTimeout(() => {\n sendMessageToIframe(iframe, resetStateData);\n sendMessageToIframe(iframe, theme_payload);\n resolve(true);\n }, 2000));\n };\n\n if (webViewRef) {\n if (isLoading === false) {\n communicateWithWebView(webViewRef);\n start();\n return true;\n } else {\n // todo: recheck this\n const unsubscribe = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const {\n isChatLoading,\n isClassicLoading,\n chatWebViewRef,\n classicWebViewRef,\n } = currentState;\n\n if ((!isChatLoading && chat) || (!isClassicLoading && !chat)) {\n unsubscribe.unsubscribe();\n const activeWebViewRef = chat\n ? chatWebViewRef\n : classicWebViewRef;\n if (activeWebViewRef) {\n communicateWithWebView(activeWebViewRef);\n start();\n } else {\n console.warn(\n '⚠️ Active WebView ref is null after loading completed'\n );\n }\n }\n }\n );\n return true;\n }\n } else {\n const unsubscribeWebView = spotcheckStateService.state$.subscribe(\n (currentState) => {\n const updatedWebViewRef = chat\n ? currentState.chatWebViewRef\n : currentState.classicWebViewRef;\n const updatedIsLoading = chat\n ? currentState.isChatLoading\n : currentState.isClassicLoading;\n\n if (updatedWebViewRef) {\n if (!updatedIsLoading) {\n unsubscribeWebView.unsubscribe();\n communicateWithWebView(updatedWebViewRef);\n start();\n } else {\n console.log('⏳ WebView ref available but still loading...');\n }\n }\n }\n );\n return true;\n }\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n throw new Error('Something went wrong');\n } catch (error: any) {\n throw new Error(error.message);\n }\n};\n\nexport const start = () => {\n const state = getSpotcheckStateService().getState();\n setTimeout(() => {\n getSpotcheckStateService().setState({ isVisible: true });\n }, state.afterDelay * 1000);\n};\n\nexport const closeSpotCheck = async () => {\n try {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const payload = {\n traceId: state.traceId,\n triggerToken: state.triggerToken,\n };\n\n const response = await fetch(\n `https://${state.domainName}/api/internal/spotcheck/dismiss/${state.spotcheckContactID}`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n }\n );\n\n if (response.status != 200) {\n console.log(`Error: ${response.status}`);\n }\n } catch (error) {\n console.log('Error parsing JSON:', error);\n }\n};\n\nexport const handleSurveyEnd = () => {\n const stateService = getSpotcheckStateService();\n const state = stateService.getState();\n const webViewRef =\n state.spotCheckType === 'chat'\n ? state.chatWebViewRef\n : state.classicWebViewRef;\n\n webViewRef?.current?.injectJavaScript(`\n (function() {\n window.dispatchEvent(new MessageEvent('message', {\n data: ${JSON.stringify({ type: 'UNMOUNT_APP' })}\n }));\n })();\n `);\n\n const updatedState: Partial<SpotcheckState> = {\n isVisible: false,\n isCloseButtonEnabled: false,\n isFullScreenMode: false,\n spotcheckID: 0,\n currentQuestionHeight: 0,\n closeButtonStyle: {},\n spotcheckContactID: 0,\n spotcheckURL: '',\n spotcheckPosition: 'bottom',\n isMounted: false,\n spotCheckType: '',\n screenHeight: 0,\n keyBoardHeight: 0,\n textPosition: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n\n stateService.setState(updatedState);\n};\n\nexport const getSpotcheckComponentCssStyles = (state: SpotcheckState) => { \n let styles = {}\n let wrapperStyles = {}\n let extraPaddingForMiniCardCloseButtonIfTopPosition = 0;\n if (state.isFullScreenMode && state.isVisible) {\n wrapperStyles = {\n display: 'flex',\n height: '100%',\n };\n styles = {\n display: 'flex',\n height: '100%',\n };\n }\n \n if (state.isVisible && state.isMounted) {\n\n let height = Math.min(state.currentQuestionHeight, (state.maxHeight * window.innerHeight));\n if(state.spotChecksMode === 'miniCard') {\n if(state.avatarEnabled) {\n height = height - 56;\n }\n if(state.isCloseButtonEnabled) {\n height = height - 40;\n }\n }\n\n switch (state.spotcheckPosition) {\n case 'bottom':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-end',\n };\n break;\n \n case 'top':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'flex-start',\n };\n if(state.spotChecksMode === 'miniCard' && state.isCloseButtonEnabled) {\n extraPaddingForMiniCardCloseButtonIfTopPosition = 30;\n }\n break;\n \n case 'center':\n styles = {\n display: 'flex',\n height: height+'px',\n };\n wrapperStyles = {\n display: 'flex',\n justifyContent: 'center',\n };\n break;\n \n default:\n break;\n }\n }\n \n return {\n wrapperStyles: {\n position: 'fixed', \n width: '100%', \n height: '100%', \n top: '0', \n left: '0', \n backgroundColor: 'rgba(0, 0, 0, 0.3)', \n zIndex: '99999999',\n display: 'none',\n flexDirection: 'column',\n ...wrapperStyles\n },\n styles: {\n display: 'none',\n flexDirection: 'column',\n paddingTop: extraPaddingForMiniCardCloseButtonIfTopPosition+'px',\n ...styles,\n }\n };\n};\n\nexport const closeSpotCheckAndHandleSurveyEnd = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n};"]}
@@ -0,0 +1,2 @@
1
+ export { initializeSpotChecks, trackScreen, trackEvent } from './SpotCheck';
2
+ export type { UserDetails, Variables, CustomProperties, TrackScreenProps, TrackEventProps, InitializeSpotChecksProps, } from './types';
@@ -0,0 +1,2 @@
1
+ export { initializeSpotChecks, trackScreen, trackEvent } from './SpotCheck';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/angular-ui/lib/spotchecks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { initializeSpotChecks, trackScreen, trackEvent } from './SpotCheck';\nexport type {\n UserDetails,\n Variables,\n CustomProperties,\n TrackScreenProps,\n TrackEventProps,\n InitializeSpotChecksProps,\n} from './types';\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../src/angular-ui/lib/spotchecks/storage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAC9B,OAAO,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC;AAC7D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;IACpC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC,CAAA","sourcesContent":["export const getStoredUUID = () => {\n return localStorage.getItem('SurveySparrowUUID') || null;\n}\n\nexport const setUUID = (uuid: string) => {\n localStorage.setItem('SurveySparrowUUID', uuid);\n}"]}
@@ -0,0 +1,78 @@
1
+ export interface SpotcheckState {
2
+ isVisible: boolean;
3
+ spotcheckPosition: string;
4
+ spotcheckURL: string;
5
+ spotcheckID: number;
6
+ spotcheckContactID: number;
7
+ afterDelay: number;
8
+ maxHeight: number;
9
+ currentQuestionHeight: number;
10
+ isFullScreenMode: boolean;
11
+ isBannerImageOn: boolean;
12
+ triggerToken: string;
13
+ closeButtonStyle: Record<string, string>;
14
+ isCloseButtonEnabled: boolean;
15
+ isSpotPassed: boolean;
16
+ isChecksPassed: boolean;
17
+ customEventsSpotChecks: Record<string, any>[];
18
+ targetToken: string;
19
+ domainName: string;
20
+ userDetails: UserDetails;
21
+ variables: Variables;
22
+ customProperties: CustomProperties;
23
+ traceId: string;
24
+ isClassicLoading: boolean;
25
+ isChatLoading: boolean;
26
+ classicUrl: string;
27
+ chatUrl: string;
28
+ classicWebViewRef: any | null;
29
+ chatWebViewRef: any | null;
30
+ filteredSpotChecks: Record<string, any>[];
31
+ spotCheckType: String;
32
+ isMounted: boolean;
33
+ textPosition: number;
34
+ screenHeight: number;
35
+ keyBoardHeight: number;
36
+ spotChecksMode: string;
37
+ avatarEnabled: boolean;
38
+ avatarUrl: string;
39
+ screenwiseUserDetails: Record<string, UserDetails | undefined>;
40
+ }
41
+ export interface UserDetails {
42
+ uuid?: string;
43
+ email?: string;
44
+ firstName?: string;
45
+ lastName?: string;
46
+ mobile?: number;
47
+ [key: string]: any;
48
+ }
49
+ export interface Variables {
50
+ sparrowLang?: string;
51
+ [key: string]: any;
52
+ }
53
+ export interface CustomProperties {
54
+ [key: string]: any;
55
+ }
56
+ export interface TrackScreenProps {
57
+ screen: string;
58
+ options?: {
59
+ variables?: Variables;
60
+ customProperties?: CustomProperties;
61
+ userDetails?: UserDetails;
62
+ };
63
+ }
64
+ export interface TrackEventProps {
65
+ screen: string;
66
+ event: {
67
+ [key: string]: {
68
+ [key: string]: string;
69
+ };
70
+ };
71
+ }
72
+ export interface InitializeSpotChecksProps {
73
+ domainName: string;
74
+ targetToken: string;
75
+ userDetails?: UserDetails;
76
+ variables?: Variables;
77
+ customProperties?: CustomProperties;
78
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/angular-ui/lib/spotchecks/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface SpotcheckState {\n isVisible: boolean;\n spotcheckPosition: string;\n spotcheckURL: string;\n spotcheckID: number;\n spotcheckContactID: number;\n afterDelay: number;\n maxHeight: number;\n currentQuestionHeight: number;\n isFullScreenMode: boolean;\n isBannerImageOn: boolean;\n triggerToken: string;\n closeButtonStyle: Record<string, string>;\n isCloseButtonEnabled: boolean;\n isSpotPassed: boolean;\n isChecksPassed: boolean;\n customEventsSpotChecks: Record<string, any>[];\n targetToken: string;\n domainName: string;\n userDetails: UserDetails;\n variables: Variables;\n customProperties: CustomProperties;\n traceId: string;\n isClassicLoading: boolean;\n isChatLoading: boolean;\n classicUrl: string;\n chatUrl: string;\n classicWebViewRef: any | null;\n chatWebViewRef: any | null;\n filteredSpotChecks: Record<string, any>[];\n spotCheckType: String;\n isMounted: boolean;\n textPosition: number;\n screenHeight: number;\n keyBoardHeight: number;\n spotChecksMode: string;\n avatarEnabled: boolean;\n avatarUrl: string;\n screenwiseUserDetails: Record<string, UserDetails | undefined>;\n}\n\nexport interface UserDetails {\n uuid?: string;\n email?: string;\n firstName?: string;\n lastName?: string;\n mobile?: number;\n [key: string]: any;\n}\n\nexport interface Variables {\n sparrowLang?: string;\n [key: string]: any;\n}\n\nexport interface CustomProperties {\n [key: string]: any;\n}\n\nexport interface TrackScreenProps {\n screen: string;\n options?: {\n variables?: Variables;\n customProperties?: CustomProperties;\n userDetails?: UserDetails;\n };\n}\n\nexport interface TrackEventProps {\n screen: string;\n event: {\n [key: string]: {\n [key: string]: string;\n };\n };\n}\n\nexport interface InitializeSpotChecksProps {\n domainName: string;\n targetToken: string;\n userDetails?: UserDetails;\n variables?: Variables;\n customProperties?: CustomProperties;\n}\n"]}
@@ -2,4 +2,4 @@ import type { SurveySparrowIonicPluginPlugin } from './definitions';
2
2
  declare const SurveySparrowIonicPlugin: SurveySparrowIonicPluginPlugin;
3
3
  export * from './definitions';
4
4
  export { SurveySparrowIonicPlugin };
5
- export * from './spotchecks';
5
+ export * from './angular-ui/lib/public-api';
package/dist/esm/index.js CHANGED
@@ -2,5 +2,5 @@ import { registerPlugin } from '@capacitor/core';
2
2
  const SurveySparrowIonicPlugin = registerPlugin('SurveySparrowIonicPlugin');
3
3
  export * from './definitions';
4
4
  export { SurveySparrowIonicPlugin };
5
- export * from './spotchecks';
5
+ export * from './angular-ui/lib/public-api';
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,wBAAwB,GAAG,cAAc,CAAiC,0BAA0B,CAAC,CAAC;AAE5G,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,cAAc,cAAc,CAAC","sourcesContent":["import { registerPlugin } from '@capacitor/core';\n\nimport type { SurveySparrowIonicPluginPlugin } from './definitions';\n\nconst SurveySparrowIonicPlugin = registerPlugin<SurveySparrowIonicPluginPlugin>('SurveySparrowIonicPlugin');\n\nexport * from './definitions';\nexport { SurveySparrowIonicPlugin };\n\nexport * from './spotchecks';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,wBAAwB,GAAG,cAAc,CAAiC,0BAA0B,CAAC,CAAC;AAE5G,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,cAAc,6BAA6B,CAAC","sourcesContent":["import { registerPlugin } from '@capacitor/core';\n\nimport type { SurveySparrowIonicPluginPlugin } from './definitions';\n\nconst SurveySparrowIonicPlugin = registerPlugin<SurveySparrowIonicPluginPlugin>('SurveySparrowIonicPlugin');\n\nexport * from './definitions';\nexport { SurveySparrowIonicPlugin };\n\nexport * from './angular-ui/lib/public-api';"]}