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.
- package/dist/angular-ui/esm2022/angular-ui.mjs +5 -0
- package/dist/angular-ui/esm2022/public-api.mjs +3 -0
- package/dist/angular-ui/esm2022/spotcheck.component.mjs +17 -0
- package/dist/angular-ui/esm2022/spotchecks/SpotCheck.mjs +51 -0
- package/dist/angular-ui/esm2022/spotchecks/SpotCheckComponent.mjs +323 -0
- package/dist/angular-ui/esm2022/spotchecks/SpotcheckStateService.mjs +65 -0
- package/dist/angular-ui/esm2022/spotchecks/api.mjs +230 -0
- package/dist/angular-ui/esm2022/spotchecks/helpers.mjs +328 -0
- package/dist/angular-ui/esm2022/spotchecks/index.mjs +2 -0
- package/dist/angular-ui/esm2022/spotchecks/storage.mjs +7 -0
- package/dist/angular-ui/esm2022/spotchecks/types.mjs +2 -0
- package/dist/angular-ui/fesm2022/angular-ui.mjs +1013 -0
- package/dist/angular-ui/fesm2022/angular-ui.mjs.map +1 -0
- package/dist/angular-ui/index.d.ts +5 -0
- package/dist/angular-ui/public-api.d.ts +2 -0
- package/dist/angular-ui/spotcheck.component.d.ts +5 -0
- package/dist/angular-ui/spotchecks/SpotCheckComponent.d.ts +56 -0
- package/dist/angular-ui/spotchecks/SpotcheckStateService.d.ts +12 -0
- package/dist/{esm → angular-ui}/spotchecks/helpers.d.ts +1 -4
- package/dist/angular-ui/spotchecks/index.d.ts +2 -0
- package/dist/angular-ui/spotchecks/storage.d.ts +2 -0
- package/dist/{esm → angular-ui}/spotchecks/types.d.ts +5 -4
- package/dist/esm/angular-ui/lib/public-api.d.ts +2 -0
- package/dist/esm/angular-ui/lib/public-api.js +3 -0
- package/dist/esm/angular-ui/lib/public-api.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotcheck.component.d.ts +2 -0
- package/dist/esm/angular-ui/lib/spotcheck.component.js +20 -0
- package/dist/esm/angular-ui/lib/spotcheck.component.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheck.d.ts +4 -0
- package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotCheck.js +1 -3
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheck.js.map +1 -0
- package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotCheckComponent.d.ts +1 -0
- package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotCheckComponent.js +13 -7
- package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js.map +1 -0
- package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotcheckStateService.js +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/SpotcheckStateService.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/api.d.ts +15 -0
- package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/api.js +20 -29
- package/dist/esm/angular-ui/lib/spotchecks/api.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/helpers.d.ts +29 -0
- package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/helpers.js +6 -19
- package/dist/esm/angular-ui/lib/spotchecks/helpers.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.d.ts +2 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js +2 -0
- package/dist/esm/angular-ui/lib/spotchecks/index.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/storage.js.map +1 -0
- package/dist/esm/angular-ui/lib/spotchecks/types.d.ts +78 -0
- package/dist/esm/angular-ui/lib/spotchecks/types.js.map +1 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/plugin.cjs.js +51510 -527
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +51511 -524
- package/dist/plugin.js.map +1 -1
- package/package.json +31 -4
- package/src/angular-ui/lib/public-api.ts +2 -0
- package/src/angular-ui/lib/spotcheck.component.ts +10 -0
- package/src/angular-ui/lib/spotchecks/SpotCheck.ts +54 -0
- package/src/angular-ui/lib/spotchecks/SpotCheckComponent.css +7 -0
- package/src/angular-ui/lib/spotchecks/SpotCheckComponent.html +27 -0
- package/src/angular-ui/lib/spotchecks/SpotCheckComponent.ts +295 -0
- package/src/angular-ui/lib/spotchecks/SpotcheckStateService.ts +64 -0
- package/src/angular-ui/lib/spotchecks/api.ts +286 -0
- package/src/angular-ui/lib/spotchecks/helpers.ts +401 -0
- package/src/angular-ui/lib/spotchecks/index.ts +9 -0
- package/src/angular-ui/lib/spotchecks/storage.ts +7 -0
- package/src/angular-ui/lib/spotchecks/types.ts +84 -0
- package/src/angular-ui/ng-package.json +13 -0
- package/src/angular-ui/package.json +10 -0
- package/src/definitions.ts +17 -0
- package/src/index.ts +10 -0
- package/dist/esm/spotchecks/SpotCheck.js.map +0 -1
- package/dist/esm/spotchecks/SpotCheckComponent.js.map +0 -1
- package/dist/esm/spotchecks/SpotCheckService.d.ts +0 -8
- package/dist/esm/spotchecks/SpotCheckService.js +0 -45
- package/dist/esm/spotchecks/SpotCheckService.js.map +0 -1
- package/dist/esm/spotchecks/SpotcheckStateService.js.map +0 -1
- package/dist/esm/spotchecks/SpotchecksListener.d.ts +0 -9
- package/dist/esm/spotchecks/SpotchecksListener.js +0 -37
- package/dist/esm/spotchecks/SpotchecksListener.js.map +0 -1
- package/dist/esm/spotchecks/api.js.map +0 -1
- package/dist/esm/spotchecks/helpers.js.map +0 -1
- package/dist/esm/spotchecks/index.d.ts +0 -5
- package/dist/esm/spotchecks/index.js +0 -6
- package/dist/esm/spotchecks/index.js.map +0 -1
- package/dist/esm/spotchecks/storage.js.map +0 -1
- package/dist/esm/spotchecks/types.js.map +0 -1
- /package/dist/{esm → angular-ui}/spotchecks/SpotCheck.d.ts +0 -0
- /package/dist/{esm → angular-ui}/spotchecks/api.d.ts +0 -0
- /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/SpotcheckStateService.d.ts +0 -0
- /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/storage.d.ts +0 -0
- /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/storage.js +0 -0
- /package/dist/esm/{spotchecks → angular-ui/lib/spotchecks}/types.js +0 -0
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
|
|
42
|
+
export interface UserDetails {
|
|
43
|
+
uuid?: string;
|
|
44
|
+
email?: string;
|
|
45
|
+
firstName?: string;
|
|
46
|
+
lastName?: string;
|
|
47
|
+
mobile?: number;
|
|
48
|
+
[key: string]: any;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface Variables {
|
|
52
|
+
sparrowLang?: string;
|
|
53
|
+
[key: string]: any;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface CustomProperties {
|
|
57
|
+
[key: string]: any;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface TrackScreenProps {
|
|
61
|
+
screen: string;
|
|
62
|
+
options?: {
|
|
63
|
+
variables?: Variables;
|
|
64
|
+
customProperties?: CustomProperties;
|
|
65
|
+
userDetails?: UserDetails;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface TrackEventProps {
|
|
70
|
+
screen: string;
|
|
71
|
+
event: {
|
|
72
|
+
[key: string]: {
|
|
73
|
+
[key: string]: string;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export interface InitializeSpotChecksProps {
|
|
79
|
+
domainName: string;
|
|
80
|
+
targetToken: string;
|
|
81
|
+
userDetails?: UserDetails;
|
|
82
|
+
variables?: Variables;
|
|
83
|
+
customProperties?: CustomProperties;
|
|
84
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface SurveySparrowIonicPluginPlugin {
|
|
2
|
+
|
|
3
|
+
loadFullScreenSurvey(options: {
|
|
4
|
+
domain: String;
|
|
5
|
+
token: String;
|
|
6
|
+
params: Object;
|
|
7
|
+
properties: Object;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
|
|
10
|
+
loadFullScreenSurveyWithValidation(options: {
|
|
11
|
+
domain: String;
|
|
12
|
+
token: String;
|
|
13
|
+
params: Object;
|
|
14
|
+
properties: Object;
|
|
15
|
+
}): Promise<void>;
|
|
16
|
+
|
|
17
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { registerPlugin } from '@capacitor/core';
|
|
2
|
+
|
|
3
|
+
import type { SurveySparrowIonicPluginPlugin } from './definitions';
|
|
4
|
+
|
|
5
|
+
const SurveySparrowIonicPlugin = registerPlugin<SurveySparrowIonicPluginPlugin>('SurveySparrowIonicPlugin');
|
|
6
|
+
|
|
7
|
+
export * from './definitions';
|
|
8
|
+
export { SurveySparrowIonicPlugin };
|
|
9
|
+
|
|
10
|
+
export * from './angular-ui/lib/public-api';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpotCheck.js","sourceRoot":"","sources":["../../../src/spotchecks/SpotCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE1E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,UAAU,EACV,WAAW,EACX,WAAW,GAAG,EAAE,EAChB,SAAS,GAAG,EAAE,EACd,gBAAgB,GAAG,EAAE,GACK,EAAE,EAAE;IAE9B,MAAM,qBAAqB,GAAG,wBAAwB,EAAE,CAAC;IACzD,qBAAqB,CAAC,QAAQ,CAAC;QAC7B,UAAU;QACV,WAAW;QACX,WAAW;QACX,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,gBAAgB,CAAC,wBAAwB,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAoB,EAAE,EAAE;IACzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAmB,EAAE,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { InitializeSpotChecksProps, TrackEventProps, TrackScreenProps } from './types';\nimport { sendTrackScreenRequest, sendTrackEventRequest } from './api';\nimport { getSpotCheckService, getSpotcheckStateService } from './helpers';\n\nexport const initializeSpotChecks = ({\n domainName,\n targetToken,\n userDetails = {},\n variables = {},\n customProperties = {},\n}: InitializeSpotChecksProps) => {\n \n const spotcheckStateService = getSpotcheckStateService();\n spotcheckStateService.setState({\n domainName,\n targetToken,\n userDetails,\n variables,\n customProperties,\n });\n\n const spotCheckService = getSpotCheckService();\n spotCheckService.createSpotCheckComponent();\n};\n\nexport const trackScreen = async ({ screen, options }: TrackScreenProps) => {\n try {\n const response = await sendTrackScreenRequest({ screen, options });\n if (response.valid) {\n console.log('Screen Tracking succeeded.');\n } else {\n if ('error' in response) {\n throw new Error(response.error.toString());\n } else {\n throw new Error('Tracking failed without an explicit error.');\n }\n }\n } catch (error: any) {\n console.log(`Screen Tracking Failed. ${error.message}`);\n }\n};\n\nexport const trackEvent = async ({ screen, event }: TrackEventProps) => {\n try {\n const response = await sendTrackEventRequest({ screen, event });\n if (response.valid) {\n console.log('TrackEvent succeeded.');\n } else {\n if ('error' in response) {\n throw new Error(response.error.toString());\n } else {\n throw new Error('Tracking failed without an explicit error.');\n }\n }\n } catch (error: any) {\n console.log(`Event Tracking Failed. ${error.message}`);\n }\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpotCheckComponent.js","sourceRoot":"","sources":["../../../src/spotchecks/SpotCheckComponent.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n OnInit,\n Component,\n Input,\n OnDestroy,\n ViewChild,\n ElementRef,\n AfterViewInit,\n HostListener,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport axios from 'axios';\nimport { closeSpotCheck, closeSpotCheckAndHandleSurveyEnd, getSpotcheckComponentCssStyles, getSpotchecksListener, handleSurveyEnd, ischatSurvey } from './helpers';\nimport { SpotcheckState } from './types';\nimport { getSpotcheckStateService } from './helpers';\nimport { SpotcheckStateService } from './SpotcheckStateService';\n\n@Component({\n selector: 'WebViewComponent',\n template: `\n <div style=\"overflow: hidden; height: 100%;\">\n <iframe\n #iframeRef\n [src]=\"safeUrl\"\n style=\"width: 100%; height: 100%; display: block;\"\n frameborder=\"0\"\n >\n </iframe>\n </div>\n `,\n standalone: true,\n imports: [CommonModule],\n})\nexport class WebViewComponent implements OnInit, AfterViewInit {\n @Input() url: string = '';\n @Input() webviewType: 'classic' | 'chat' = 'classic';\n\n safeUrl: SafeResourceUrl | null = null;\n @ViewChild('iframeRef') iframe!: ElementRef<HTMLIFrameElement>;\n\n constructor(private sanitizer: DomSanitizer) {}\n ngOnInit() {\n if (this.url) {\n this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.url);\n }\n }\n\n ngAfterViewInit() {\n const stateService = getSpotcheckStateService();\n const webViewRef = this.iframe.nativeElement;\n\n if (this.webviewType === 'classic') {\n stateService.setState({\n classicWebViewRef: webViewRef,\n isClassicLoading: false,\n });\n } else {\n stateService.setState({\n chatWebViewRef: webViewRef,\n isChatLoading: false,\n });\n }\n this.setupIframeLoadListener();\n }\n\n private setupIframeLoadListener() {\n const iframe = this.iframe.nativeElement;\n iframe.addEventListener('load', () => {\n const stateService = getSpotcheckStateService();\n if (this.webviewType === 'classic') {\n stateService.setState({ isClassicLoading: false });\n } else {\n stateService.setState({ isChatLoading: false });\n }\n });\n }\n\n @HostListener('window:message', ['$event'])\n onMessage(event: MessageEvent) {\n const stateService = getSpotcheckStateService();\n const spotchecksListener = getSpotchecksListener();\n const { data } = event;\n switch (data.type) {\n case 'slideInFrame':\n if (data.mounted) {\n stateService.setState({ isMounted: true });\n }\n break;\n\n case 'resizeWindow':\n if (data.size) {\n stateService.setState({\n currentQuestionHeight: data.size.height,\n });\n } else if (data.isCloseButtonEnabled) {\n stateService.setState({\n isCloseButtonEnabled: data.isCloseButtonEnabled,\n });\n }\n break;\n\n case 'surveyCompleted':\n closeSpotCheckAndHandleSurveyEnd();\n spotchecksListener.emitSurveyCompleted(data.response);\n break;\n\n case 'surveyLoadStarted':\n spotchecksListener.emitSurveyLoadStarted(data.surveyDetails);\n break;\n\n default:\n break;\n }\n }\n}\n\n@Component({\n selector: 'close-svg',\n template: `\n <svg\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"https://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.6665 10.667L21.3332 21.3337M21.3332 10.667L10.6665 21.3337\"\n [attr.stroke]=\"stroke\"\n [attr.stroke-width]=\"strokeWidth\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `,\n standalone: true,\n imports: [CommonModule],\n})\nexport class CloseSVGComponent {\n @Input() size: number = 32;\n @Input() stroke: string = '#919191';\n @Input() strokeWidth: number = 1.5;\n}\n\n@Component({\n selector: 'spotcheck-close-button',\n template: `\n <div style=\"position: absolute; top: -36px; right: 16px; z-index: 100001; cursor: pointer; background-color: white; border-radius: 50px;\" (click)=\"onClick()\" *ngIf=\"isVisible && isMiniCard\">\n <close-svg [size]=\"size\" [stroke]=\"stroke\" [strokeWidth]=\"strokeWidth\" style=\"display: flex; align-items: center; justify-content: center;\"/>\n </div>\n <div style=\"position: absolute; top: 16px; right: 16px; z-index: 100001; cursor: pointer;\" (click)=\"onClick()\" *ngIf=\"isVisible && !isMiniCard\">\n <close-svg [size]=\"size\" [stroke]=\"stroke\" [strokeWidth]=\"strokeWidth\"/>\n </div>\n `,\n standalone: true,\n imports: [CommonModule, CloseSVGComponent],\n})\nexport class CloseButtonComponent implements OnDestroy {\n @Input() size: number = 30;\n @Input() strokeWidth: number = 1.2;\n \n state: SpotcheckState;\n private stateService: SpotcheckStateService;\n private stateSubscription!: Subscription;\n \n isVisible: boolean = false;\n isMiniCard: boolean = false;\n stroke: string = 'black';\n \n constructor() {\n this.stateService = getSpotcheckStateService();\n this.state = this.stateService.getState();\n this.updateComponentState();\n\n this.stateSubscription = this.stateService.state$.subscribe(\n (newState: SpotcheckState) => {\n this.state = newState;\n this.updateComponentState();\n }\n );\n }\n\n ngOnDestroy(): void {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n }\n }\n\n private updateComponentState(): void {\n this.isVisible =\n this.state.isCloseButtonEnabled &&\n ((this.state.currentQuestionHeight > 0 && !this.state.isFullScreenMode) ||\n (this.state.isFullScreenMode &&\n ((!this.state.isClassicLoading &&\n this.state.spotCheckType === 'classic') ||\n (!this.state.isChatLoading &&\n this.state.spotCheckType === 'chat'))));\n this.isMiniCard = this.state.spotChecksMode === 'miniCard';\n this.stroke = this.isMiniCard ? 'black' : this.state.closeButtonStyle?.['ctaButton'] || 'black';\n }\n\n onClick = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n };\n}\n\n@Component({\n selector: 'SpotCheckComponent',\n templateUrl: './SpotCheckComponent.html',\n standalone: true,\n imports: [CommonModule, WebViewComponent, CloseButtonComponent],\n})\nexport class SpotCheckComponent implements OnInit, OnDestroy {\n state: SpotcheckState;\n private spotcheckStateService: SpotcheckStateService;\n private stateSubscription: Subscription;\n componentStyles: any = {};\n avatarUrl: string = '';\n\n constructor() {\n this.spotcheckStateService = getSpotcheckStateService();\n this.state = this.spotcheckStateService.getState();\n this.updateComponentStyles();\n\n this.stateSubscription = this.spotcheckStateService.state$.subscribe(\n (newState: SpotcheckState) => {\n this.state = newState;\n this.updateComponentStyles();\n this.avatarUrl = this.state.avatarUrl || \"https://static.surveysparrow.com/application/images/profile.png\";\n }\n );\n }\n\n ngOnInit(): void {\n this.initializeComponent();\n }\n\n ngOnDestroy(): void {\n if (this.stateSubscription) {\n this.stateSubscription.unsubscribe();\n }\n }\n\n private updateComponentStyles(): void {\n this.componentStyles = getSpotcheckComponentCssStyles(this.state);\n }\n\n initializeComponent = async () => {\n try {\n const domainName = this.state.domainName;\n const targetToken = this.state.targetToken;\n const response = await axios.get(\n `https://${domainName}/api/internal/spotcheck/widget/${targetToken}/init`\n );\n const data = response.data;\n\n if (data.filteredSpotChecks && data.filteredSpotChecks.length > 0) {\n let classicIframe = false;\n let chatIframe = false;\n\n data.filteredSpotChecks.forEach((spotcheck: any) => {\n if (\n spotcheck.appearance.mode === 'fullScreen' &&\n ischatSurvey(spotcheck?.survey?.surveyType)\n ) {\n chatIframe = true;\n } else {\n classicIframe = true;\n }\n });\n\n const newClassicUrl = classicIframe\n ? `https://${domainName}/eui-template/classic`\n : '';\n const newChatUrl = chatIframe\n ? `https://${domainName}/eui-template/chat`\n : '';\n\n this.spotcheckStateService.setState({\n filteredSpotChecks: data.filteredSpotChecks,\n classicUrl: newClassicUrl,\n chatUrl: newChatUrl,\n });\n }\n } catch (error) {\n console.log('Error initializing widget:', JSON.stringify(error));\n }\n };\n}\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { EnvironmentInjector, ApplicationRef } from '@angular/core';
|
|
2
|
-
export declare class SpotCheckService {
|
|
3
|
-
private environmentInjector;
|
|
4
|
-
private applicationRef;
|
|
5
|
-
private componentRef;
|
|
6
|
-
constructor(environmentInjector: EnvironmentInjector, applicationRef: ApplicationRef);
|
|
7
|
-
createSpotCheckComponent(): void;
|
|
8
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { Injectable, createComponent, EnvironmentInjector, ApplicationRef } from '@angular/core';
|
|
11
|
-
import { SpotCheckComponent } from './SpotCheckComponent';
|
|
12
|
-
let SpotCheckService = class SpotCheckService {
|
|
13
|
-
constructor(environmentInjector, applicationRef) {
|
|
14
|
-
this.environmentInjector = environmentInjector;
|
|
15
|
-
this.applicationRef = applicationRef;
|
|
16
|
-
this.componentRef = null;
|
|
17
|
-
}
|
|
18
|
-
createSpotCheckComponent() {
|
|
19
|
-
setTimeout(() => {
|
|
20
|
-
try {
|
|
21
|
-
const spotcheckContainer = document.createElement('div');
|
|
22
|
-
spotcheckContainer.id = 'spotcheck-container';
|
|
23
|
-
document.body.appendChild(spotcheckContainer);
|
|
24
|
-
this.componentRef = createComponent(SpotCheckComponent, {
|
|
25
|
-
environmentInjector: this.environmentInjector,
|
|
26
|
-
hostElement: spotcheckContainer
|
|
27
|
-
});
|
|
28
|
-
this.applicationRef.attachView(this.componentRef.hostView);
|
|
29
|
-
this.componentRef.changeDetectorRef.detectChanges();
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
console.error('Failed to create SpotCheck component:', error);
|
|
33
|
-
}
|
|
34
|
-
}, 100);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
SpotCheckService = __decorate([
|
|
38
|
-
Injectable({
|
|
39
|
-
providedIn: 'root'
|
|
40
|
-
}),
|
|
41
|
-
__metadata("design:paramtypes", [EnvironmentInjector,
|
|
42
|
-
ApplicationRef])
|
|
43
|
-
], SpotCheckService);
|
|
44
|
-
export { SpotCheckService };
|
|
45
|
-
//# sourceMappingURL=SpotCheckService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpotCheckService.js","sourceRoot":"","sources":["../../../src/spotchecks/SpotCheckService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAgB,eAAe,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAKnD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAG3B,YACU,mBAAwC,EACxC,cAA8B;QAD9B,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,mBAAc,GAAd,cAAc,CAAgB;QAJhC,iBAAY,GAA4C,IAAI,CAAC;IAKlE,CAAC;IAEJ,wBAAwB;QACtB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC;gBACH,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACzD,kBAAkB,CAAC,EAAE,GAAG,qBAAqB,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAE9C,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,kBAAkB,EAAE;oBACtD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;oBAC7C,WAAW,EAAE,kBAAkB;iBAChC,CAAC,CAAC;gBACH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC3D,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;CAgBF,CAAA;AAzCY,gBAAgB;IAH5B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;qCAK+B,mBAAmB;QACxB,cAAc;GAL7B,gBAAgB,CAyC5B","sourcesContent":["import { Injectable, ComponentRef, createComponent, EnvironmentInjector, ApplicationRef } from '@angular/core';\nimport { SpotCheckComponent } from './SpotCheckComponent';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpotCheckService {\n private componentRef: ComponentRef<SpotCheckComponent> | null = null;\n\n constructor(\n private environmentInjector: EnvironmentInjector,\n private applicationRef: ApplicationRef\n ) {}\n\n createSpotCheckComponent(): void {\n setTimeout(() => {\n try {\n const spotcheckContainer = document.createElement('div');\n spotcheckContainer.id = 'spotcheck-container';\n document.body.appendChild(spotcheckContainer);\n\n this.componentRef = createComponent(SpotCheckComponent, {\n environmentInjector: this.environmentInjector,\n hostElement: spotcheckContainer\n });\n this.applicationRef.attachView(this.componentRef.hostView);\n this.componentRef.changeDetectorRef.detectChanges();\n } catch (error) {\n console.error('Failed to create SpotCheck component:', error);\n }\n }, 100);\n }\n \n// May be used later\n// destroySpotCheckComponent(): void {\n// if (this.componentRef) {\n// this.applicationRef.detachView(this.componentRef.hostView);\n// this.componentRef.destroy();\n// this.componentRef = null;\n// }\n\n// // Remove the container\n// const container = document.getElementById('spotcheck-container');\n// if (container) {\n// container.remove();\n// }\n// }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpotcheckStateService.js","sourceRoot":"","sources":["../../../src/spotchecks/SpotcheckStateService.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAMhC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QACG,iBAAY,GAAmB;YACrC,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,QAAQ;YAC3B,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,CAAC;YACd,kBAAkB,EAAE,CAAC;YACrB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,GAAG;YACd,qBAAqB,EAAE,CAAC;YACxB,gBAAgB,EAAE,KAAK;YACvB,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,EAAE;YACpB,oBAAoB,EAAE,KAAK;YAC3B,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,KAAK;YACrB,sBAAsB,EAAE,EAAE;YAC1B,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,EAAE;YACpB,OAAO,EAAE,EAAE;YACX,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,EAAE;YACtB,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,EAAE;YAClB,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,EAAE;SACd,CAAC;QAEM,mBAAc,GAAG,IAAI,eAAe,CAAiB,IAAI,CAAC,YAAY,CAAC,CAAC;QAChF,WAAM,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAa9C,CAAC;IAXC,QAAQ,CAAC,KAA8B;QACrC,IAAI,CAAC,cAAc,CAAC,IAAI,iCAAM,IAAI,CAAC,cAAc,CAAC,KAAK,GAAK,KAAK,EAAG,CAAC;IACvE,CAAC;IAED,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;CACF,CAAA;AAvDY,qBAAqB;IAHjC,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,qBAAqB,CAuDjC","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SpotcheckState } from './types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SpotcheckStateService {\n private initialState: SpotcheckState = {\n isVisible: false,\n spotcheckPosition: 'bottom',\n spotcheckURL: '',\n spotcheckID: 0,\n spotcheckContactID: 0,\n afterDelay: 0.0,\n maxHeight: 0.5,\n currentQuestionHeight: 0,\n isFullScreenMode: false,\n isBannerImageOn: false,\n triggerToken: '',\n closeButtonStyle: {},\n isCloseButtonEnabled: false,\n isSpotPassed: false,\n isChecksPassed: false,\n customEventsSpotChecks: [],\n targetToken: '',\n domainName: '',\n userDetails: {},\n variables: {},\n customProperties: {},\n traceId: '',\n isClassicLoading: true,\n isChatLoading: true,\n classicUrl: '',\n chatUrl: '',\n classicWebViewRef: null,\n chatWebViewRef: null,\n filteredSpotChecks: [],\n spotCheckType: '',\n isMounted: false,\n textPosition: 0,\n screenHeight: 0,\n keyBoardHeight: 0,\n spotChecksMode: '',\n avatarEnabled: false,\n avatarUrl: '',\n };\n \n private spotcheckState = new BehaviorSubject<SpotcheckState>(this.initialState);\n state$ = this.spotcheckState.asObservable();\n\n setState(state: Partial<SpotcheckState>) {\n this.spotcheckState.next({ ...this.spotcheckState.value, ...state });\n }\n \n clearState() {\n this.spotcheckState.next(this.initialState);\n }\n\n getState() {\n return this.spotcheckState.getValue();\n }\n}\n"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare class SpotchecksListener {
|
|
2
|
-
private surveyLoadStartedSubject;
|
|
3
|
-
private surveyCompletedSubject;
|
|
4
|
-
surveyLoadStarted$: import("rxjs").Observable<any>;
|
|
5
|
-
surveyCompleted$: import("rxjs").Observable<any>;
|
|
6
|
-
emitSurveyLoadStarted(data?: any): void;
|
|
7
|
-
emitSurveyCompleted(data?: any): void;
|
|
8
|
-
destroy(): void;
|
|
9
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { Injectable } from '@angular/core';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
let SpotchecksListener = class SpotchecksListener {
|
|
10
|
-
constructor() {
|
|
11
|
-
// Event subjects for survey events
|
|
12
|
-
this.surveyLoadStartedSubject = new Subject();
|
|
13
|
-
this.surveyCompletedSubject = new Subject();
|
|
14
|
-
// Observable streams that components can subscribe to
|
|
15
|
-
this.surveyLoadStarted$ = this.surveyLoadStartedSubject.asObservable();
|
|
16
|
-
this.surveyCompleted$ = this.surveyCompletedSubject.asObservable();
|
|
17
|
-
}
|
|
18
|
-
// Methods to emit survey events
|
|
19
|
-
emitSurveyLoadStarted(data) {
|
|
20
|
-
this.surveyLoadStartedSubject.next(data);
|
|
21
|
-
}
|
|
22
|
-
emitSurveyCompleted(data) {
|
|
23
|
-
this.surveyCompletedSubject.next(data);
|
|
24
|
-
}
|
|
25
|
-
// Method to clean up resources if needed
|
|
26
|
-
destroy() {
|
|
27
|
-
this.surveyLoadStartedSubject.complete();
|
|
28
|
-
this.surveyCompletedSubject.complete();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
SpotchecksListener = __decorate([
|
|
32
|
-
Injectable({
|
|
33
|
-
providedIn: 'root',
|
|
34
|
-
})
|
|
35
|
-
], SpotchecksListener);
|
|
36
|
-
export { SpotchecksListener };
|
|
37
|
-
//# sourceMappingURL=SpotchecksListener.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpotchecksListener.js","sourceRoot":"","sources":["../../../src/spotchecks/SpotchecksListener.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAKxB,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QACL,mCAAmC;QAC3B,6BAAwB,GAAG,IAAI,OAAO,EAAO,CAAC;QAC9C,2BAAsB,GAAG,IAAI,OAAO,EAAO,CAAC;QAEpD,sDAAsD;QACtD,uBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;QAClE,qBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;IAgBhE,CAAC;IAdC,gCAAgC;IAChC,qBAAqB,CAAC,IAAU;QAC9B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,mBAAmB,CAAC,IAAU;QAC5B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,yCAAyC;IACzC,OAAO;QACL,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;CACF,CAAA;AAvBY,kBAAkB;IAH9B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,kBAAkB,CAuB9B","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SpotchecksListener {\n // Event subjects for survey events\n private surveyLoadStartedSubject = new Subject<any>();\n private surveyCompletedSubject = new Subject<any>();\n \n // Observable streams that components can subscribe to\n surveyLoadStarted$ = this.surveyLoadStartedSubject.asObservable();\n surveyCompleted$ = this.surveyCompletedSubject.asObservable();\n\n // Methods to emit survey events\n emitSurveyLoadStarted(data?: any) {\n this.surveyLoadStartedSubject.next(data);\n }\n\n emitSurveyCompleted(data?: any) {\n this.surveyCompletedSubject.next(data);\n }\n\n // Method to clean up resources if needed\n destroy() {\n this.surveyLoadStartedSubject.complete();\n this.surveyCompletedSubject.complete();\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/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 = {} as Variables;\n let customProperties = {} as CustomProperties;\n let userDetails = {} as UserDetails; \n\n if (options.variables && Object.keys(options.variables).length > 0) {\n variables = { ...oldState.variables, ...options.variables };\n }\n if (options.customProperties && Object.keys(options.customProperties).length > 0) {\n customProperties = { ...oldState.customProperties, ...options.customProperties };\n }\n if (options.userDetails && Object.keys(options.userDetails).length > 0) {\n userDetails = { ...oldState.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 variables,\n customProperties,\n userDetails,\n });\n\n const state = spotcheckStateService.getState();\n let { isSpotPassed, isChecksPassed } = state;\n const payload = {\n screenName: screen,\n variables: state.variables,\n userDetails: state.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: state.customProperties,\n };\n\n const url = `https://${state.domainName}/api/internal/spotcheck/widget/${state.targetToken}/properties?isSpotCheck=true&sdk=IOS`;\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 state.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 state.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 state.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 let payloadUserDetails = { ...state.userDetails };\n\n if (selectedSpotCheckID !== intMax) {\n if (\n !payloadUserDetails?.email &&\n !payloadUserDetails?.uuid &&\n !payloadUserDetails?.mobile\n ) {\n const uuid = getStoredUUID();\n if (uuid) {\n payloadUserDetails.uuid = uuid;\n }\n }\n\n const payload = {\n screenName: screen,\n variables: state.variables,\n userDetails: payloadUserDetails,\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};"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/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';\nimport { SpotchecksListener } from './SpotchecksListener';\nimport { SpotCheckService } from './SpotCheckService';\nimport { inject } from '@angular/core';\n\nlet globalSpotcheckStateService: SpotcheckStateService;\nlet globalSpotchecksListener: SpotchecksListener;\nlet globalSpotCheckService: SpotCheckService;\n\nexport const getSpotCheckService = (): SpotCheckService => {\n if (!globalSpotCheckService) {\n globalSpotCheckService = inject(SpotCheckService);\n }\n return globalSpotCheckService;\n};\n\n\nexport const getSpotcheckStateService = (): SpotcheckStateService => {\n if (!globalSpotcheckStateService) {\n globalSpotcheckStateService = new SpotcheckStateService();\n }\n return globalSpotcheckStateService;\n};\n\nexport const getSpotchecksListener = (): SpotchecksListener => {\n if (!globalSpotchecksListener) {\n globalSpotchecksListener = new SpotchecksListener();\n }\n return globalSpotchecksListener;\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('212');\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 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 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 ...styles,\n }\n };\n};\n\nexport const closeSpotCheckAndHandleSurveyEnd = async () => {\n await closeSpotCheck();\n handleSurveyEnd();\n};"]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { initializeSpotChecks, trackScreen, trackEvent } from './SpotCheck';
|
|
2
|
-
export { getSpotchecksListener } from './helpers';
|
|
3
|
-
export { SpotCheckComponent } from './SpotCheckComponent';
|
|
4
|
-
export { SpotchecksListener } from './SpotchecksListener';
|
|
5
|
-
export * from './types';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export { initializeSpotChecks, trackScreen, trackEvent } from './SpotCheck';
|
|
2
|
-
export { getSpotchecksListener } from './helpers';
|
|
3
|
-
export { SpotCheckComponent } from './SpotCheckComponent';
|
|
4
|
-
export { SpotchecksListener } from './SpotchecksListener';
|
|
5
|
-
export * from './types';
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spotchecks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,SAAS,CAAC","sourcesContent":["export { initializeSpotChecks, trackScreen, trackEvent } from './SpotCheck';\nexport { getSpotchecksListener } from './helpers';\nexport { SpotCheckComponent } from './SpotCheckComponent';\nexport { SpotchecksListener } from './SpotchecksListener';\nexport * from './types';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/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}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/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}\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"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|