surveysparrow-ionic-plugin 2.0.2-beta.1 → 2.0.2-beta.3

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 (32) hide show
  1. package/dist/angular-ui/esm2022/spotchecks/SpotCheckComponent.mjs +87 -58
  2. package/dist/angular-ui/esm2022/spotchecks/SpotCheckEventListener.mjs +26 -0
  3. package/dist/angular-ui/esm2022/spotchecks/api.mjs +1 -1
  4. package/dist/angular-ui/esm2022/spotchecks/helpers.mjs +6 -3
  5. package/dist/angular-ui/esm2022/spotchecks/index.mjs +2 -1
  6. package/dist/angular-ui/fesm2022/angular-ui.mjs +116 -61
  7. package/dist/angular-ui/fesm2022/angular-ui.mjs.map +1 -1
  8. package/dist/angular-ui/spotchecks/SpotCheckComponent.d.ts +10 -4
  9. package/dist/angular-ui/spotchecks/SpotCheckEventListener.d.ts +16 -0
  10. package/dist/angular-ui/spotchecks/index.d.ts +1 -0
  11. package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.d.ts +10 -4
  12. package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js +82 -55
  13. package/dist/esm/angular-ui/lib/spotchecks/SpotCheckComponent.js.map +1 -1
  14. package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.d.ts +16 -0
  15. package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.js +28 -0
  16. package/dist/esm/angular-ui/lib/spotchecks/SpotCheckEventListener.js.map +1 -0
  17. package/dist/esm/angular-ui/lib/spotchecks/api.js.map +1 -1
  18. package/dist/esm/angular-ui/lib/spotchecks/helpers.js +5 -2
  19. package/dist/esm/angular-ui/lib/spotchecks/helpers.js.map +1 -1
  20. package/dist/esm/angular-ui/lib/spotchecks/index.d.ts +1 -0
  21. package/dist/esm/angular-ui/lib/spotchecks/index.js +1 -0
  22. package/dist/esm/angular-ui/lib/spotchecks/index.js.map +1 -1
  23. package/dist/plugin.cjs.js +110 -54
  24. package/dist/plugin.cjs.js.map +1 -1
  25. package/dist/plugin.js +110 -54
  26. package/dist/plugin.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/angular-ui/lib/spotchecks/SpotCheckComponent.ts +94 -62
  29. package/src/angular-ui/lib/spotchecks/SpotCheckEventListener.ts +50 -0
  30. package/src/angular-ui/lib/spotchecks/api.ts +2 -2
  31. package/src/angular-ui/lib/spotchecks/helpers.ts +6 -4
  32. package/src/angular-ui/lib/spotchecks/index.ts +3 -0
@@ -51138,6 +51138,33 @@ SpotcheckStateService = __decorate$2([
51138
51138
  })
51139
51139
  ], SpotcheckStateService);
51140
51140
 
51141
+ class SpotCheckEventListenerService {
51142
+ constructor() {
51143
+ this.eventSubject = new Subject();
51144
+ this.event$ = this.eventSubject.asObservable();
51145
+ }
51146
+ emit(type, data) {
51147
+ this.eventSubject.next({ type, data });
51148
+ }
51149
+ addListener(eventType, callback) {
51150
+ return this.event$.subscribe((event) => {
51151
+ if (event.type === eventType) {
51152
+ callback(event.data);
51153
+ }
51154
+ });
51155
+ }
51156
+ }
51157
+ let globalInstance;
51158
+ const getSpotCheckEventListener = () => {
51159
+ if (!globalInstance) {
51160
+ globalInstance = new SpotCheckEventListenerService();
51161
+ }
51162
+ return globalInstance;
51163
+ };
51164
+ const addSpotCheckListener = (eventType, callback) => {
51165
+ return getSpotCheckEventListener().addListener(eventType, callback);
51166
+ };
51167
+
51141
51168
  let globalSpotcheckStateService;
51142
51169
  let globalOS = null;
51143
51170
  const getSpotcheckStateService = () => {
@@ -51316,7 +51343,10 @@ const closeSpotCheck = async () => {
51316
51343
  },
51317
51344
  body: JSON.stringify(payload),
51318
51345
  });
51319
- if (response.status != 200) {
51346
+ if (response.status == 200) {
51347
+ getSpotCheckEventListener().emit('surveyDismissed');
51348
+ }
51349
+ else {
51320
51350
  console.log(`Error: ${response.status}`);
51321
51351
  }
51322
51352
  }
@@ -51429,7 +51459,6 @@ const getSpotcheckComponentCssStyles = (state) => {
51429
51459
  };
51430
51460
  };
51431
51461
  const closeSpotCheckAndHandleSurveyEnd = async () => {
51432
- await closeSpotCheck();
51433
51462
  handleSurveyEnd();
51434
51463
  };
51435
51464
 
@@ -51443,8 +51472,10 @@ var __metadata = (undefined && undefined.__metadata) || function (k, v) {
51443
51472
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
51444
51473
  };
51445
51474
  let WebViewComponent = class WebViewComponent {
51446
- constructor(sanitizer) {
51475
+ constructor(sanitizer, ngZone, cdr) {
51447
51476
  this.sanitizer = sanitizer;
51477
+ this.ngZone = ngZone;
51478
+ this.cdr = cdr;
51448
51479
  this.url = '';
51449
51480
  this.webviewType = 'classic';
51450
51481
  this.isMiniCard = false;
@@ -51475,14 +51506,16 @@ let WebViewComponent = class WebViewComponent {
51475
51506
  setupIframeLoadListener() {
51476
51507
  const iframe = this.iframe.nativeElement;
51477
51508
  iframe.addEventListener('load', () => {
51478
- this.injectNativeBridgeAdapters(iframe);
51479
- const stateService = getSpotcheckStateService();
51480
- if (this.webviewType === 'classic') {
51481
- stateService.setState({ isClassicLoading: false });
51482
- }
51483
- else {
51484
- stateService.setState({ isChatLoading: false });
51485
- }
51509
+ this.ngZone.run(() => {
51510
+ this.injectNativeBridgeAdapters(iframe);
51511
+ const stateService = getSpotcheckStateService();
51512
+ if (this.webviewType === 'classic') {
51513
+ stateService.setState({ isClassicLoading: false });
51514
+ }
51515
+ else {
51516
+ stateService.setState({ isChatLoading: false });
51517
+ }
51518
+ });
51486
51519
  });
51487
51520
  }
51488
51521
  injectNativeBridgeAdapters(iframe) {
@@ -51525,40 +51558,45 @@ let WebViewComponent = class WebViewComponent {
51525
51558
  }
51526
51559
  }
51527
51560
  onMessage(event) {
51528
- const stateService = getSpotcheckStateService();
51529
- const { data } = event;
51530
- switch (data.type) {
51531
- case 'slideInFrame':
51532
- if (data.mounted) {
51533
- stateService.setState({ isMounted: true });
51534
- }
51535
- break;
51536
- case 'resizeWindow':
51537
- if (data.size) {
51538
- stateService.setState({
51539
- currentQuestionHeight: data.size.height,
51540
- });
51541
- }
51542
- else if (data.isCloseButtonEnabled) {
51543
- stateService.setState({
51544
- isCloseButtonEnabled: data.isCloseButtonEnabled,
51561
+ this.ngZone.run(() => {
51562
+ const stateService = getSpotcheckStateService();
51563
+ const { data } = event;
51564
+ switch (data.type) {
51565
+ case 'slideInFrame':
51566
+ if (data.mounted) {
51567
+ stateService.setState({ isMounted: true });
51568
+ }
51569
+ break;
51570
+ case 'resizeWindow':
51571
+ if (data.size) {
51572
+ stateService.setState({
51573
+ currentQuestionHeight: data.size.height,
51574
+ });
51575
+ }
51576
+ else if (data.isCloseButtonEnabled) {
51577
+ stateService.setState({
51578
+ isCloseButtonEnabled: data.isCloseButtonEnabled,
51579
+ });
51580
+ }
51581
+ break;
51582
+ case 'surveyCompleted':
51583
+ closeSpotCheckAndHandleSurveyEnd().then(() => {
51584
+ getSpotCheckEventListener().emit('surveyCompleted', data.response);
51585
+ this.cdr.detectChanges();
51545
51586
  });
51546
- }
51547
- break;
51548
- case 'surveyCompleted':
51549
- closeSpotCheckAndHandleSurveyEnd();
51550
- // spotchecksListener.emitSurveyCompleted(data.response);
51551
- break;
51552
- case 'surveyLoadStarted':
51553
- // spotchecksListener.emitSurveyLoadStarted(data.surveyDetails);
51554
- break;
51555
- case 'classicLoadEvent':
51556
- stateService.setState({ isClassicLoadEventReceived: true });
51557
- break;
51558
- case 'chatLoadEvent':
51559
- stateService.setState({ isChatLoadEventReceived: true });
51560
- break;
51561
- }
51587
+ break;
51588
+ case 'surveyLoadStarted':
51589
+ getSpotCheckEventListener().emit('surveyLoadStarted', data.surveyDetails);
51590
+ break;
51591
+ case 'classicLoadEvent':
51592
+ stateService.setState({ isClassicLoadEventReceived: true });
51593
+ break;
51594
+ case 'chatLoadEvent':
51595
+ stateService.setState({ isChatLoadEventReceived: true });
51596
+ break;
51597
+ }
51598
+ this.cdr.detectChanges();
51599
+ });
51562
51600
  }
51563
51601
  };
51564
51602
  __decorate$1([
@@ -51602,7 +51640,9 @@ WebViewComponent = __decorate$1([
51602
51640
  standalone: true,
51603
51641
  imports: [CommonModule],
51604
51642
  }),
51605
- __metadata("design:paramtypes", [DomSanitizer])
51643
+ __metadata("design:paramtypes", [DomSanitizer,
51644
+ NgZone,
51645
+ ChangeDetectorRef])
51606
51646
  ], WebViewComponent);
51607
51647
  let CloseSVGComponent = class CloseSVGComponent {
51608
51648
  constructor() {
@@ -51648,7 +51688,9 @@ CloseSVGComponent = __decorate$1([
51648
51688
  })
51649
51689
  ], CloseSVGComponent);
51650
51690
  let CloseButtonComponent = class CloseButtonComponent {
51651
- constructor() {
51691
+ constructor(ngZone, cdr) {
51692
+ this.ngZone = ngZone;
51693
+ this.cdr = cdr;
51652
51694
  this.size = 30;
51653
51695
  this.strokeWidth = 1.2;
51654
51696
  this.isVisible = false;
@@ -51657,13 +51699,19 @@ let CloseButtonComponent = class CloseButtonComponent {
51657
51699
  this.onClick = async () => {
51658
51700
  await closeSpotCheck();
51659
51701
  handleSurveyEnd();
51702
+ this.ngZone.run(() => {
51703
+ this.cdr.detectChanges();
51704
+ });
51660
51705
  };
51661
51706
  this.stateService = getSpotcheckStateService();
51662
51707
  this.state = this.stateService.getState();
51663
51708
  this.updateComponentState();
51664
51709
  this.stateSubscription = this.stateService.state$.subscribe((newState) => {
51665
- this.state = newState;
51666
- this.updateComponentState();
51710
+ this.ngZone.run(() => {
51711
+ this.state = newState;
51712
+ this.updateComponentState();
51713
+ this.cdr.detectChanges();
51714
+ });
51667
51715
  });
51668
51716
  }
51669
51717
  ngOnDestroy() {
@@ -51707,10 +51755,13 @@ CloseButtonComponent = __decorate$1([
51707
51755
  standalone: true,
51708
51756
  imports: [CommonModule, CloseSVGComponent],
51709
51757
  }),
51710
- __metadata("design:paramtypes", [])
51758
+ __metadata("design:paramtypes", [NgZone,
51759
+ ChangeDetectorRef])
51711
51760
  ], CloseButtonComponent);
51712
51761
  let SpotCheckComponent = class SpotCheckComponent {
51713
- constructor() {
51762
+ constructor(ngZone, cdr) {
51763
+ this.ngZone = ngZone;
51764
+ this.cdr = cdr;
51714
51765
  this.componentStyles = {};
51715
51766
  this.avatarUrl = '';
51716
51767
  this.initializeComponent = async () => {
@@ -51753,9 +51804,12 @@ let SpotCheckComponent = class SpotCheckComponent {
51753
51804
  this.state = this.spotcheckStateService.getState();
51754
51805
  this.updateComponentStyles();
51755
51806
  this.stateSubscription = this.spotcheckStateService.state$.subscribe((newState) => {
51756
- this.state = newState;
51757
- this.updateComponentStyles();
51758
- this.avatarUrl = this.state.avatarUrl || "https://static.surveysparrow.com/application/images/profile.png";
51807
+ this.ngZone.run(() => {
51808
+ this.state = newState;
51809
+ this.updateComponentStyles();
51810
+ this.avatarUrl = this.state.avatarUrl || "https://static.surveysparrow.com/application/images/profile.png";
51811
+ this.cdr.detectChanges();
51812
+ });
51759
51813
  });
51760
51814
  }
51761
51815
  ngOnInit() {
@@ -51778,7 +51832,8 @@ SpotCheckComponent = __decorate$1([
51778
51832
  standalone: true,
51779
51833
  imports: [CommonModule, WebViewComponent, CloseButtonComponent],
51780
51834
  }),
51781
- __metadata("design:paramtypes", [])
51835
+ __metadata("design:paramtypes", [NgZone,
51836
+ ChangeDetectorRef])
51782
51837
  ], SpotCheckComponent);
51783
51838
 
51784
51839
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -52085,6 +52140,7 @@ const trackEvent = async ({ screen, event }) => {
52085
52140
  const SurveySparrowIonicPlugin = core.registerPlugin('SurveySparrowIonicPlugin');
52086
52141
 
52087
52142
  exports.SurveySparrowIonicPlugin = SurveySparrowIonicPlugin;
52143
+ exports.addSpotCheckListener = addSpotCheckListener;
52088
52144
  exports.initializeSpotChecks = initializeSpotChecks;
52089
52145
  exports.trackEvent = trackEvent;
52090
52146
  exports.trackScreen = trackScreen;