@flarehr/apollo-super-selection 4.27.29425 → 4.29.30453

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 (56) hide show
  1. package/dist/lib/apollo-super-selection/apollo-super-selection.css +1 -1
  2. package/dist/lib/apollo-super-selection/apollo-super-selection.esm.js +1 -1
  3. package/dist/lib/apollo-super-selection/p-16367be3.system.entry.js +69 -0
  4. package/dist/lib/apollo-super-selection/{p-77f20abe.entry.js → p-29a35f2a.entry.js} +4 -4
  5. package/dist/lib/apollo-super-selection/p-bdcfc026.system.js +1 -1
  6. package/dist/lib/cjs/apollo-super-selection.cjs.js +1 -1
  7. package/dist/lib/cjs/loader.cjs.js +1 -1
  8. package/dist/lib/cjs/sss-button_30.cjs.entry.js +248 -199
  9. package/dist/lib/collection/apollo-super-selection.css +1 -1
  10. package/dist/lib/collection/components/super-selection-app/api/super-selection.api.dto.js +71 -86
  11. package/dist/lib/collection/components/super-selection-app/api/super-selection.api.js +12 -0
  12. package/dist/lib/collection/components/super-selection-app/consent/consent.js +2 -6
  13. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/default-fund/default-fund.js +1 -1
  14. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/my-own-fund/my-own-fund.js +1 -7
  15. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund.js +2 -5
  16. package/dist/lib/collection/components/super-selection-app/funds/promoted-fund/api/promoted-fund-choice.api.js +9 -0
  17. package/dist/lib/collection/components/super-selection-app/funds/promoted-fund/funds/hesta-default.js +23 -0
  18. package/dist/lib/collection/components/super-selection-app/funds/promoted-fund/promoted-fund.store.js +4 -5
  19. package/dist/lib/collection/components/super-selection-app/funds/promoted-fund/services/promoted-fund-join-v1-iframe-builder.js +1 -10
  20. package/dist/lib/collection/components/super-selection-app/funds/promoted-fund/services/promoted-fund-join-v2-iframe-builder.js +14 -14
  21. package/dist/lib/collection/components/super-selection-app/funds/slate-super/services/slate-iframe-builder.js +1 -8
  22. package/dist/lib/collection/components/super-selection-app/services/existing-super-choice-info.service.js +61 -45
  23. package/dist/lib/collection/components/super-selection-app/services/misc.service.js +7 -0
  24. package/dist/lib/collection/components/super-selection-app/services/super-selection-app.service.js +33 -0
  25. package/dist/lib/collection/components/super-selection-app/services/super-selection.store.js +4 -1
  26. package/dist/lib/collection/components/super-selection-app/super-choice-page/super-choice-item/super-choice-item-top.js +19 -1
  27. package/dist/lib/collection/components/super-selection-app/super-choice-page/super-choice-page.js +39 -11
  28. package/dist/lib/collection/utils/index.js +3 -0
  29. package/dist/lib/esm/apollo-super-selection.js +1 -1
  30. package/dist/lib/esm/loader.js +1 -1
  31. package/dist/lib/esm/sss-button_30.entry.js +248 -199
  32. package/dist/lib/esm-es5/apollo-super-selection.js +1 -1
  33. package/dist/lib/esm-es5/loader.js +1 -1
  34. package/dist/lib/esm-es5/sss-button_30.entry.js +4 -4
  35. package/dist/lib/types/components/super-selection-app/api/super-selection-events.model.d.ts +2 -6
  36. package/dist/lib/types/components/super-selection-app/api/super-selection.api.d.ts +3 -1
  37. package/dist/lib/types/components/super-selection-app/api/super-selection.api.dto.d.ts +35 -0
  38. package/dist/lib/types/components/super-selection-app/consent/consent.d.ts +0 -1
  39. package/dist/lib/types/components/super-selection-app/funds/custom-fund/api/custom-fund-choice.api.dto.d.ts +11 -7
  40. package/dist/lib/types/components/super-selection-app/funds/custom-fund/member-name-input.d.ts +1 -1
  41. package/dist/lib/types/components/super-selection-app/funds/promoted-fund/api/promoted-fund-choice.api.d.ts +2 -1
  42. package/dist/lib/types/components/super-selection-app/funds/promoted-fund/api/promoted-fund-choice.api.dto.d.ts +12 -0
  43. package/dist/lib/types/components/super-selection-app/funds/promoted-fund/funds/hesta-default.d.ts +3 -0
  44. package/dist/lib/types/components/super-selection-app/funds/promoted-fund/promoted-fund.store.d.ts +3 -2
  45. package/dist/lib/types/components/super-selection-app/funds/promoted-fund/types.d.ts +2 -1
  46. package/dist/lib/types/components/super-selection-app/funds/slate-super/api/slate-choice.api.dto.d.ts +3 -0
  47. package/dist/lib/types/components/super-selection-app/services/existing-super-choice-info.service.d.ts +9 -1
  48. package/dist/lib/types/components/super-selection-app/services/misc.service.d.ts +6 -0
  49. package/dist/lib/types/components/super-selection-app/services/super-selection-app.service.d.ts +9 -1
  50. package/dist/lib/types/components/super-selection-app/services/super-selection.store.d.ts +4 -1
  51. package/dist/lib/types/components/super-selection-app/super-choice-page/super-choice-item/super-choice-item-top.d.ts +1 -0
  52. package/dist/lib/types/components/super-selection-app/super-choice-page/super-choice-page.d.ts +1 -0
  53. package/dist/lib/types/components.d.ts +2 -0
  54. package/dist/lib/types/utils/index.d.ts +1 -0
  55. package/package.json +1 -1
  56. package/dist/lib/apollo-super-selection/p-3457c8b6.system.entry.js +0 -69
@@ -264,7 +264,7 @@ class TapSubscriber extends datoramaAkita.Subscriber {
264
264
  }
265
265
  }
266
266
 
267
- const AppVersion = '4.27.29425';
267
+ const AppVersion = '4.29.30453';
268
268
 
269
269
  // -------------------------------------------------------------------------------------
270
270
  // guards
@@ -3305,6 +3305,18 @@ class SuperSelectionApi {
3305
3305
  })
3306
3306
  .json();
3307
3307
  }
3308
+ async getCampaignConnectAsync() {
3309
+ return buildBackendApiClient()
3310
+ .url('campaign-connect')
3311
+ .get()
3312
+ .notFound(() => {
3313
+ throw new Error('Failed to fetch campaign connect.');
3314
+ })
3315
+ .json();
3316
+ }
3317
+ async clickPromotedTileAsync(payload) {
3318
+ return buildBackendApiClient().url('click-promoted-tile').post(payload).res();
3319
+ }
3308
3320
  toSearchFilterQueryString(searchFilter) {
3309
3321
  return (`search=${searchFilter.searchString}` +
3310
3322
  (searchFilter.maxRecordCount > 0 ? '&maxRecordCount=' + searchFilter.maxRecordCount : ''));
@@ -3328,7 +3340,10 @@ const initialState = {
3328
3340
  accountConfiguration: Option.none,
3329
3341
  profileConfiguration: Option.none,
3330
3342
  hasSuccessPageBeenAcknowledged: false,
3331
- hasSuperSelectionBeenSubmitted: false
3343
+ hasSuperSelectionBeenSubmitted: false,
3344
+ campaignConnectEnabled: false,
3345
+ campaignConnectPromise: Option.none,
3346
+ campaignConnect: Option.none
3332
3347
  };
3333
3348
 
3334
3349
  class SuperSelectionAppService {
@@ -3365,11 +3380,29 @@ class SuperSelectionAppService {
3365
3380
  return this._state.appBaseUrl.value;
3366
3381
  }
3367
3382
  get promotedFunds() {
3383
+ if (this._state.campaignConnectEnabled && Option.isSome(this._state.campaignConnect)) {
3384
+ return this._state.campaignConnect.value.promotedFunds;
3385
+ }
3368
3386
  if (Option.isNone(this._state.promotedFunds)) {
3369
3387
  throw Error('Promoted Funds is not set');
3370
3388
  }
3371
3389
  return this._state.promotedFunds.value;
3372
3390
  }
3391
+ get promotedDefaultFundPosition() {
3392
+ if (this._state.campaignConnectEnabled && Option.isSome(this._state.campaignConnect)) {
3393
+ return Option.fromNullable(this._state.campaignConnect.value.promotedDefaultFundPosition);
3394
+ }
3395
+ return Option.none;
3396
+ }
3397
+ get promotedFundsConfig() {
3398
+ return {
3399
+ shownFunds: this.promotedFunds,
3400
+ promotedDefaultFundPosition: Option.toUndefined(this.promotedDefaultFundPosition),
3401
+ promotedFundsConfigSource: Option.isSome(this._state.campaignConnect)
3402
+ ? 'campaignConnect'
3403
+ : 'superSelection'
3404
+ };
3405
+ }
3373
3406
  get profileId() {
3374
3407
  if (Option.isNone(this._state.profileId)) {
3375
3408
  throw Error('Failed to get Profile ID from JWT');
@@ -3407,6 +3440,21 @@ class SuperSelectionAppService {
3407
3440
  this._state.profileConfiguration = Option.fromNullable(appStateResponse.profileConfiguration);
3408
3441
  this._state.superBuyer = Option.fromNullable(appStateResponse.superBuyer);
3409
3442
  this._state.promotedFunds = Option.fromNullable(appStateResponse.promotedFunds);
3443
+ this._state.campaignConnectEnabled = appStateResponse.campaignConnectEnabled;
3444
+ if (this._state.campaignConnectEnabled) {
3445
+ this._state.campaignConnectPromise = Option.fromNullable(superSelectionApi.getCampaignConnectAsync());
3446
+ }
3447
+ }
3448
+ async completeCampaignConnectRequestSafe() {
3449
+ if (this._state.campaignConnectEnabled) {
3450
+ try {
3451
+ const campaignConnect = await _function.pipe(this._state.campaignConnectPromise, Option.getOrElse(() => superSelectionApi.getCampaignConnectAsync()));
3452
+ this._state.campaignConnect = Option.fromNullable(campaignConnect);
3453
+ }
3454
+ catch (_a) {
3455
+ return;
3456
+ }
3457
+ }
3410
3458
  }
3411
3459
  }
3412
3460
  const superSelectionAppService = new SuperSelectionAppService();
@@ -3629,19 +3677,16 @@ const navigationService = new NavigationService();
3629
3677
  const Consent = class {
3630
3678
  constructor(hostRef) {
3631
3679
  index.registerInstance(this, hostRef);
3632
- this.promotedFunds = superSelectionAppService.promotedFunds;
3633
3680
  this.eventTrackingService = EventTrackingService.Instance;
3634
3681
  }
3635
3682
  componentDidLoad() {
3636
- const detail = { promotedFundsShown: this.promotedFunds };
3637
- return this.eventTrackingService.TrackSuperFundDisclaimerViewedAsync(detail);
3683
+ return this.eventTrackingService.TrackSuperFundDisclaimerViewedAsync({});
3638
3684
  }
3639
3685
  render() {
3640
3686
  return (index.h("div", null, index.h("div", { class: "text-2xl sm:text-3xl font-bold text-center leading-8" }, "Important information about super"), index.h("div", { class: "sm:text-lg text-gray-600 mt-3 sm:mt-4 max-w-800 text-center leading-7 sm:leading-8" }, "The choice of superannuation fund is an important personal financial decision. Next, you\u2019ll be asked to nominate a super fund to receive your employer contributions."), index.h("div", { class: "flex justify-center mt-8 sm:mt-12" }, index.h("div", { class: "border shadow-sm p-4 pb-6 sm:p-6 sm:pb-8 max-w-560 rounded-lg" }, index.h("div", { class: "sm:text-lg font-bold leading-6" }, "By clicking \u201CContinue\u201D you acknowledge that:"), index.h("ul", { class: "list-disc list-outside ml-6 mt-3 mb-6 space-y-2 text-sm leading-6" }, index.h("li", null, "Flare (we/us) provides this paperless employee management service, will feature superannuation funds and offer you employee benefits that you may be interested in;"), index.h("li", null, "all content contained in the following pages does not take into account any of your objectives, financial situation or needs and does not constitute financial product advice;"), index.h("li", null, "in featuring any superannuation funds, we, the technology partner you are accessing us via, or your employer, are not providing any opinion or recommendation (actual or implied) in relation to the suitability or appropriateness of the featured funds;"), index.h("li", null, "if you do choose one of the featured superannuation funds, we and our associates will normally receive a fee for you doing so;"), index.h("li", null, "in the event that you choose one of the featured superannuation funds, we may pass on your personal information and TFN to a related party for the purpose of completing your chosen fund's application form.")), index.h("sss-button", { fillWidth: true, promiseFn: () => this.handleSuperFundDisclaimerAccepted() }, "Continue")))));
3641
3687
  }
3642
3688
  async handleSuperFundDisclaimerAccepted() {
3643
- const detail = { promotedFundsShown: this.promotedFunds };
3644
- await this.eventTrackingService.TrackSuperFundDisclaimerAcceptedAsync(detail);
3689
+ await this.eventTrackingService.TrackSuperFundDisclaimerAcceptedAsync({});
3645
3690
  navigationService.navigateInternally(this.history, SuperSelectionAppRoutes.ChoicePage);
3646
3691
  }
3647
3692
  };
@@ -3831,7 +3876,7 @@ const DefaultFund = class {
3831
3876
  history: this.history,
3832
3877
  fundName: `Employer’s default fund`,
3833
3878
  handleSubmitFn: async (standardChoiceFormSignature) => {
3834
- await customFundChoiceApi.submitDefaultFundChoiceAsync({ standardChoiceFormSignature });
3879
+ await customFundChoiceApi.submitDefaultFundChoiceAsync(Object.assign({ standardChoiceFormSignature }, superSelectionAppService.promotedFundsConfig));
3835
3880
  }
3836
3881
  });
3837
3882
  }
@@ -4301,101 +4346,81 @@ const getFundUsiByFundId = (fundId) => fundId == fund$6.fundId ? some(slateUsi)
4301
4346
  const getLogoSrcByFundId = (fundId) => fundsById[fundId] != undefined ? some(index.getAssetPath(`assets/${fundsById[fundId].logo}`)) : none;
4302
4347
 
4303
4348
  function getPromotedFundUsi(dto) {
4304
- if ('slate' in dto) {
4305
- return none;
4306
- }
4307
- else if ('australianRetirementTrust' in dto) {
4308
- return some(dto.australianRetirementTrust.usi);
4309
- }
4310
- else if ('aware' in dto) {
4311
- return some(dto.aware.usi);
4312
- }
4313
- else if ('active' in dto) {
4314
- return some(dto.active.usi);
4315
- }
4316
- else if ('australianEthical' in dto) {
4317
- return some(dto.australianEthical.usi);
4318
- }
4319
- else if ('virgin' in dto) {
4320
- return some(dto.virgin.usi);
4321
- }
4322
- else if ('spirit' in dto) {
4323
- return some(dto.spirit.usi);
4324
- }
4325
- else if ('firstSuper' in dto) {
4326
- return some(dto.firstSuper.usi);
4327
- }
4328
- else if ('mercerMyChoice' in dto) {
4329
- return some(dto.mercerMyChoice.usi);
4330
- }
4331
- else {
4332
- return none;
4349
+ switch (dto.kind) {
4350
+ case 'slate':
4351
+ return none;
4352
+ case 'australianRetirementTrust':
4353
+ return some(dto.australianRetirementTrust.usi);
4354
+ case 'aware':
4355
+ return some(dto.aware.usi);
4356
+ case 'active':
4357
+ return some(dto.active.usi);
4358
+ case 'australianEthical':
4359
+ return some(dto.australianEthical.usi);
4360
+ case 'virgin':
4361
+ return some(dto.virgin.usi);
4362
+ case 'spirit':
4363
+ return some(dto.spirit.usi);
4364
+ case 'firstSuper':
4365
+ return some(dto.firstSuper.usi);
4366
+ case 'mercerMyChoice':
4367
+ return some(dto.mercerMyChoice.usi);
4368
+ default:
4369
+ return none;
4333
4370
  }
4334
4371
  }
4335
4372
  function getSuperChoiceUsi(dto) {
4336
- if ('promoted' in dto) {
4337
- return getPromotedFundUsi(dto.promoted);
4338
- }
4339
- else if ('myOwnFund' in dto) {
4340
- return some(dto.myOwnFund.usi);
4341
- }
4342
- else if ('smsf' in dto) {
4343
- return none;
4344
- }
4345
- else if ('default' in dto) {
4346
- return some(dto.default.usi);
4347
- }
4348
- else {
4349
- return none;
4373
+ switch (dto.kind) {
4374
+ case 'Promoted':
4375
+ return getPromotedFundUsi(dto.promoted);
4376
+ case 'MyOwnFund':
4377
+ return some(dto.myOwnFund.usi);
4378
+ case 'SMSF':
4379
+ return none;
4380
+ case 'Default':
4381
+ return some(dto.default.usi);
4382
+ case 'PromotedDefault':
4383
+ return some(dto.promotedDefault.usi);
4384
+ default:
4385
+ return none;
4350
4386
  }
4351
4387
  }
4352
4388
  function getPromotedFundMemberNumber(dto) {
4353
- if ('slate' in dto) {
4354
- return some(dto.slate.memberNumber);
4355
- }
4356
- else if ('australianRetirementTrust' in dto) {
4357
- return some(dto.australianRetirementTrust.memberNumber);
4358
- }
4359
- else if ('aware' in dto) {
4360
- return some(dto.aware.memberNumber);
4361
- }
4362
- else if ('active' in dto) {
4363
- return some(dto.active.memberNumber);
4364
- }
4365
- else if ('australianEthical' in dto) {
4366
- return some(dto.australianEthical.memberNumber);
4367
- }
4368
- else if ('virgin' in dto) {
4369
- return some(dto.virgin.memberNumber);
4370
- }
4371
- else if ('spirit' in dto) {
4372
- return some(dto.spirit.memberNumber);
4373
- }
4374
- else if ('firstSuper' in dto) {
4375
- return some(dto.firstSuper.memberNumber);
4376
- }
4377
- else if ('mercerMyChoice' in dto) {
4378
- return some(dto.mercerMyChoice.memberNumber);
4379
- }
4380
- else {
4381
- return none;
4389
+ switch (dto.kind) {
4390
+ case 'slate':
4391
+ return some(dto.slate.memberNumber);
4392
+ case 'australianRetirementTrust':
4393
+ return some(dto.australianRetirementTrust.memberNumber);
4394
+ case 'aware':
4395
+ return some(dto.aware.memberNumber);
4396
+ case 'active':
4397
+ return some(dto.active.memberNumber);
4398
+ case 'australianEthical':
4399
+ return some(dto.australianEthical.memberNumber);
4400
+ case 'virgin':
4401
+ return some(dto.virgin.memberNumber);
4402
+ case 'spirit':
4403
+ return some(dto.spirit.memberNumber);
4404
+ case 'firstSuper':
4405
+ return some(dto.firstSuper.memberNumber);
4406
+ case 'mercerMyChoice':
4407
+ return some(dto.mercerMyChoice.memberNumber);
4408
+ default:
4409
+ return none;
4382
4410
  }
4383
4411
  }
4384
4412
  function getSuperChoiceMemberNumber(dto) {
4385
- if ('promoted' in dto) {
4386
- return getPromotedFundMemberNumber(dto.promoted);
4387
- }
4388
- else if ('myOwnFund' in dto) {
4389
- return some(dto.myOwnFund.memberNumber);
4390
- }
4391
- else if ('smsf' in dto) {
4392
- return none;
4393
- }
4394
- else if ('default' in dto) {
4395
- return none;
4396
- }
4397
- else {
4398
- return none;
4413
+ switch (dto.kind) {
4414
+ case 'Promoted':
4415
+ return getPromotedFundMemberNumber(dto.promoted);
4416
+ case 'MyOwnFund':
4417
+ return some(dto.myOwnFund.memberNumber);
4418
+ case 'SMSF':
4419
+ case 'Default':
4420
+ case 'PromotedDefault':
4421
+ return none;
4422
+ default:
4423
+ return none;
4399
4424
  }
4400
4425
  }
4401
4426
 
@@ -4411,53 +4436,67 @@ class ExistingFundService {
4411
4436
  const dateSubmitted = choice.dateSubmitted == undefined ? none : some(new Date(choice.dateSubmitted));
4412
4437
  const usi = getSuperChoiceUsi(choiceDetails);
4413
4438
  const memberNumber = getSuperChoiceMemberNumber(choiceDetails);
4414
- if ('promoted' in choiceDetails) {
4415
- const dtoPropName = Object.keys(choiceDetails.promoted)[0];
4416
- const fund = getFundByDtoPropName(dtoPropName);
4417
- if (isNone(fund))
4439
+ switch (choiceDetails.kind) {
4440
+ case 'Promoted': {
4441
+ const dtoPropName = Object.keys(choiceDetails.promoted)[0];
4442
+ const fund = getFundByDtoPropName(dtoPropName);
4443
+ if (isNone(fund))
4444
+ return none;
4445
+ return some({
4446
+ type: 'Promoted Fund',
4447
+ id: fund.value.fundId,
4448
+ name: fund.value.name,
4449
+ usi: usi,
4450
+ valid: 'Active',
4451
+ memberNumber: memberNumber,
4452
+ lastNominatedAt: dateSubmitted
4453
+ });
4454
+ }
4455
+ case 'MyOwnFund': {
4456
+ const fundUsi = choiceDetails.myOwnFund.usi;
4457
+ const fund = await this.getFundByUsiAsync(fundUsi);
4458
+ return some({
4459
+ type: 'My Own Fund',
4460
+ name: isSome(fund) ? fund.value.productName : fundUsi,
4461
+ usi: usi,
4462
+ valid: this.toFundValidState(fund),
4463
+ memberNumber: memberNumber,
4464
+ lastNominatedAt: dateSubmitted
4465
+ });
4466
+ }
4467
+ case 'SMSF':
4468
+ return some({
4469
+ type: 'Self Managed Fund',
4470
+ name: choiceDetails.smsf.fundName,
4471
+ valid: 'Unknown',
4472
+ lastNominatedAt: dateSubmitted
4473
+ });
4474
+ case 'Default': {
4475
+ const defaultUsi = choiceDetails.default.usi;
4476
+ const defaultFund = await this.getFundByUsiAsync(defaultUsi);
4477
+ return some({
4478
+ type: 'Default Fund',
4479
+ name: isSome(defaultFund) ? defaultFund.value.productName : defaultUsi,
4480
+ usi: usi,
4481
+ valid: this.toFundValidState(defaultFund),
4482
+ lastNominatedAt: dateSubmitted
4483
+ });
4484
+ }
4485
+ case 'PromotedDefault': {
4486
+ const defaultUsi = choiceDetails.promotedDefault.usi;
4487
+ const defaultFund = await this.getFundByUsiAsync(defaultUsi);
4488
+ return some({
4489
+ type: 'Promoted Default Fund',
4490
+ id: choiceDetails.promotedDefault.fundId,
4491
+ name: isSome(defaultFund) ? defaultFund.value.productName : defaultUsi,
4492
+ usi: usi,
4493
+ valid: this.toFundValidState(defaultFund),
4494
+ lastNominatedAt: dateSubmitted
4495
+ });
4496
+ }
4497
+ default:
4418
4498
  return none;
4419
- return some({
4420
- type: 'Promoted Fund',
4421
- id: fund.value.fundId,
4422
- name: fund.value.name,
4423
- usi: usi,
4424
- valid: 'Active',
4425
- memberNumber: memberNumber,
4426
- lastNominatedAt: dateSubmitted
4427
- });
4428
4499
  }
4429
- else if ('smsf' in choiceDetails) {
4430
- return some({
4431
- type: 'Self Managed Fund',
4432
- name: choiceDetails.smsf.fundName,
4433
- valid: 'Unknown',
4434
- lastNominatedAt: dateSubmitted
4435
- });
4436
- }
4437
- else if ('myOwnFund' in choiceDetails) {
4438
- const fundUsi = choiceDetails.myOwnFund.usi;
4439
- const fund = await this.getFundByUsiAsync(fundUsi);
4440
- return some({
4441
- type: 'My Own Fund',
4442
- name: isSome(fund) ? fund.value.productName : fundUsi,
4443
- usi: usi,
4444
- valid: this.toFundValidState(fund),
4445
- memberNumber: memberNumber,
4446
- lastNominatedAt: dateSubmitted
4447
- });
4448
- }
4449
- else if ('default' in choiceDetails) {
4450
- const defaultUsi = choiceDetails.default.usi;
4451
- const defaultFund = await this.getFundByUsiAsync(defaultUsi);
4452
- return some({
4453
- type: 'Default Fund',
4454
- name: isSome(defaultFund) ? defaultFund.value.productName : defaultUsi,
4455
- usi: usi,
4456
- valid: this.toFundValidState(defaultFund),
4457
- lastNominatedAt: dateSubmitted
4458
- });
4459
- }
4460
- return none;
4461
4500
  }
4462
4501
  async submitRetainSuperFundAsync(dto) {
4463
4502
  return buildBackendApiClient()
@@ -4672,13 +4711,7 @@ const MyOwnFund = class {
4672
4711
  history: this.history,
4673
4712
  fundName: this.getOrError(state$1.myOwnFundForm.fundName),
4674
4713
  handleSubmitFn: async (standardChoiceFormSignature) => {
4675
- const customFundChoiceDto = {
4676
- fundUsi: this.getOrError(state$1.myOwnFundForm.fundUsi),
4677
- memberNumber: this.getOrError(state$1.myOwnFundForm.memberNumber),
4678
- memberFirstName: this.getOrError(state$1.myOwnFundForm.memberFirstName),
4679
- memberFamilyName: this.getOrError(state$1.myOwnFundForm.memberFamilyName),
4680
- standardChoiceFormSignature
4681
- };
4714
+ const customFundChoiceDto = Object.assign({ fundUsi: this.getOrError(state$1.myOwnFundForm.fundUsi), memberNumber: this.getOrError(state$1.myOwnFundForm.memberNumber), memberFirstName: this.getOrError(state$1.myOwnFundForm.memberFirstName), memberFamilyName: this.getOrError(state$1.myOwnFundForm.memberFamilyName), standardChoiceFormSignature }, superSelectionAppService.promotedFundsConfig);
4682
4715
  await customFundChoiceApi.submitCustomFundChoiceAsync(customFundChoiceDto);
4683
4716
  }
4684
4717
  });
@@ -4809,16 +4842,23 @@ class PromotedFundChoiceApi {
4809
4842
  })
4810
4843
  .text();
4811
4844
  }
4845
+ async submitDefaultChoiceAsync(dto) {
4846
+ return buildBackendApiClient()
4847
+ .url('super-choice/promoted-fund/default')
4848
+ .post(dto)
4849
+ .badRequest(() => {
4850
+ throw new Error('Failed to process Promoted Default Fund choice request');
4851
+ })
4852
+ .text();
4853
+ }
4812
4854
  }
4813
4855
  const promotedFundChoiceApi = new PromotedFundChoiceApi();
4814
4856
 
4815
4857
  const initial$1 = {
4816
- fundId: ''
4858
+ fundId: '',
4859
+ isPromotedDefault: false
4817
4860
  };
4818
- const { state: state$2 } = createStore(initial$1);
4819
- function reset$1() {
4820
- state$2.fundId = initial$1.fundId;
4821
- }
4861
+ const { state: state$2, reset: reset$1 } = createStore(initial$1);
4822
4862
 
4823
4863
  class PromotedFundJoinV1IFrameBuilder {
4824
4864
  constructor() {
@@ -4854,16 +4894,7 @@ class PromotedFundJoinV1IFrameBuilder {
4854
4894
  navigationService.navigateInternallyToStandardChoice({
4855
4895
  history,
4856
4896
  fundName: Option.isSome(fundName) ? fundName.value : '',
4857
- handleSubmitFn: (standardChoiceFormSignature) => promotedFundChoiceApi.submitChoiceAsync({
4858
- fundId: promotedFundId,
4859
- memberNumber: data.memberNumber,
4860
- memberFirstName: data.memberFirstName,
4861
- memberFamilyName: data.memberFamilyName,
4862
- usi: data.usi.replace(/ /g, ''),
4863
- standardChoiceFormSignature,
4864
- shownFunds: superSelectionAppService.promotedFunds,
4865
- defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi)
4866
- }),
4897
+ handleSubmitFn: (standardChoiceFormSignature) => promotedFundChoiceApi.submitChoiceAsync(Object.assign({ fundId: promotedFundId, memberNumber: data.memberNumber, memberFirstName: data.memberFirstName, memberFamilyName: data.memberFamilyName, usi: data.usi.replace(/ /g, ''), standardChoiceFormSignature, defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi) }, superSelectionAppService.promotedFundsConfig)),
4867
4898
  promotedFundId
4868
4899
  });
4869
4900
  break;
@@ -4964,7 +4995,7 @@ class PromotedFundJoinV2IFrameBuilder {
4964
4995
  build(iframe$1, history) {
4965
4996
  if (!(iframe$1 === null || iframe$1 === void 0 ? void 0 : iframe$1.contentDocument))
4966
4997
  return;
4967
- const postData = Object.assign(Object.assign({}, this.getMemberData()), { partnerId: superSelectionAppService.partnerIdOrDefault, accountId: superSelectionAppService.accountIdOrDefault, fundId: state$2.fundId, authToken: superSelectionAppService.jwt });
4998
+ const postData = Object.assign(Object.assign({}, this.getMemberData()), { partnerId: superSelectionAppService.partnerIdOrDefault, accountId: superSelectionAppService.accountIdOrDefault, fundId: state$2.fundId, authToken: superSelectionAppService.jwt, employerDefault: state$2.isPromotedDefault });
4968
4999
  const handleMessage = (event) => {
4969
5000
  const { data } = event;
4970
5001
  if (!data) {
@@ -4983,17 +5014,10 @@ class PromotedFundJoinV2IFrameBuilder {
4983
5014
  navigationService.navigateInternallyToStandardChoice({
4984
5015
  history,
4985
5016
  fundName: Option.isSome(fundName) ? fundName.value : '',
4986
- handleSubmitFn: (standardChoiceFormSignature) => promotedFundChoiceApi.submitChoiceAsync({
4987
- fundId: promotedFundId,
4988
- memberNumber: data.memberNumber,
4989
- memberFirstName: data.memberFirstName,
4990
- memberFamilyName: data.memberFamilyName,
4991
- usi: data.usi.replace(/ /g, ''),
4992
- standardChoiceFormSignature,
4993
- shownFunds: superSelectionAppService.promotedFunds,
4994
- defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi)
4995
- }),
4996
- promotedFundId
5017
+ promotedFundId,
5018
+ handleSubmitFn: state$2.isPromotedDefault
5019
+ ? (standardChoiceFormSignature) => promotedFundChoiceApi.submitDefaultChoiceAsync(Object.assign({ fundId: promotedFundId, usi: data.usi.replace(/ /g, ''), standardChoiceFormSignature, defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi) }, superSelectionAppService.promotedFundsConfig))
5020
+ : (standardChoiceFormSignature) => promotedFundChoiceApi.submitChoiceAsync(Object.assign({ fundId: promotedFundId, memberNumber: data.memberNumber, memberFirstName: data.memberFirstName, memberFamilyName: data.memberFamilyName, usi: data.usi.replace(/ /g, ''), standardChoiceFormSignature, defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi) }, superSelectionAppService.promotedFundsConfig))
4997
5021
  });
4998
5022
  break;
4999
5023
  }
@@ -5030,9 +5054,16 @@ class PromotedFundJoinV2IFrameBuilder {
5030
5054
  const value = postData[prop];
5031
5055
  if (value !== undefined) {
5032
5056
  const input = document.createElement('input');
5033
- input.type = 'hidden';
5034
5057
  input.name = prop;
5035
- input.value = value;
5058
+ if (typeof value === 'boolean') {
5059
+ input.type = 'checkbox';
5060
+ input.checked = value;
5061
+ input.style.visibility = 'hidden';
5062
+ }
5063
+ else {
5064
+ input.type = 'hidden';
5065
+ input.value = value;
5066
+ }
5036
5067
  form.append(input);
5037
5068
  }
5038
5069
  }
@@ -5095,8 +5126,7 @@ const SelfManagedFund = class {
5095
5126
  history: this.history,
5096
5127
  fundName: 'Self-managed super fund',
5097
5128
  handleSubmitFn: async (standardChoiceFormSignature) => {
5098
- const requestDto = {
5099
- smsfChoice: {
5129
+ const requestDto = Object.assign({ smsfChoice: {
5100
5130
  abn: state$1.selfManagedFundForm.fundAbn,
5101
5131
  fundName: state$1.selfManagedFundForm.fundName,
5102
5132
  fundAddress: {
@@ -5112,9 +5142,7 @@ const SelfManagedFund = class {
5112
5142
  electronicServiceAddress: state$1.selfManagedFundForm.fundEsa,
5113
5143
  memberFirstName: state$1.selfManagedFundForm.memberFirstName,
5114
5144
  memberFamilyName: state$1.selfManagedFundForm.memberFamilyName
5115
- },
5116
- standardChoiceFormSignature
5117
- };
5145
+ }, standardChoiceFormSignature }, superSelectionAppService.promotedFundsConfig);
5118
5146
  await customFundChoiceApi.submitSelfManagedFundChoiceAsync(requestDto);
5119
5147
  }
5120
5148
  });
@@ -5484,14 +5512,7 @@ class SlateIFrameBuilder {
5484
5512
  navigationService.navigateInternallyToStandardChoice({
5485
5513
  history,
5486
5514
  fundName: fund$6.name,
5487
- handleSubmitFn: (standardChoiceFormSignature) => slateChoiceApi.submitSlateChoiceAsync({
5488
- memberNumber: data.memberNumber,
5489
- memberFirstName: data.memberFirstName,
5490
- memberFamilyName: data.memberFamilyName,
5491
- standardChoiceFormSignature,
5492
- shownFunds: superSelectionAppService.promotedFunds,
5493
- defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi)
5494
- }),
5515
+ handleSubmitFn: (standardChoiceFormSignature) => slateChoiceApi.submitSlateChoiceAsync(Object.assign({ memberNumber: data.memberNumber, memberFirstName: data.memberFirstName, memberFamilyName: data.memberFamilyName, standardChoiceFormSignature, defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi) }, superSelectionAppService.promotedFundsConfig)),
5495
5516
  promotedFundId: fund$6.fundId
5496
5517
  });
5497
5518
  break;
@@ -5646,17 +5667,27 @@ const SuperChoiceItemTop = class {
5646
5667
  index.registerInstance(this, hostRef);
5647
5668
  }
5648
5669
  render() {
5649
- return (index.h(index.Host, null, index.h("div", { class: "px-4 lg:px-6 pt-6" }, index.h("div", { class: "text-right w-100 -mt-5 -mr-3.5 lg:-mr-5" }, index.h("span", { class: "text-xs bg-gray-100 text-gray-800 font-medium rounded-xl py-0.5 px-2.5 mr-0.5" }, "Featured")), index.h("div", { class: "flex lg:block mt-2 md:mt-0 lg:mt-4" }, index.h("img", { class: "h-12 md:h-14 lg:h-16 object-contain w-auto w-[80px] md:w-[96px] lg:w-[140px] md:hidden lg:block lg:object-left", alt: this.name, src: index.getAssetPath(`assets/${this.logo}`) }), index.h("div", { class: "grid content-center" }, index.h("p", { class: "text-base md:text-lg font-bold ml-4 md:ml-0 md:mb-0 lg:mt-4" }, this.name))), index.h("div", { class: "mt-4 sm:mt-2 text-sm space-y-2" }, this.features.map((feature) => (index.h("div", { class: "flex" }, index.h("div", { class: "h-5 w-5 flex-none mr-1.5" }, index.h("img", { alt: "checked", src: index.getAssetPath(`assets/icon-check.svg`) })), index.h("div", { class: "leading-5" }, feature))))), this.featureSubText && (index.h("p", { class: "text-xs text-gray-500 italic mt-4 leading-4" }, this.featureSubText)))));
5670
+ return (index.h(index.Host, null, index.h("div", { class: "px-4 lg:px-6 pt-6" }, index.h("div", { class: "text-right w-100 -mt-5 -mr-3.5 lg:-mr-5" }, this.isPromotedDefault && (index.h("span", { class: "text-xs bg-blue-100 text-blue-800 font-medium rounded-xl py-0.5 px-2.5 mr-1" }, "Employer Default")), index.h("span", { class: "text-xs bg-gray-100 text-gray-800 font-medium rounded-xl py-0.5 px-2.5 mr-0.5" }, "Featured")), index.h("div", { class: "flex lg:block mt-2 md:mt-0 lg:mt-4" }, index.h("img", { class: "h-12 md:h-14 lg:h-16 object-contain w-[80px] md:w-[96px] lg:w-[140px] md:hidden lg:block lg:object-left", alt: this.name, src: index.getAssetPath(`assets/${this.logo}`) }), index.h("div", { class: "grid content-center" }, index.h("p", { class: "text-base md:text-lg font-bold ml-4 md:ml-0 md:mb-0 lg:mt-4" }, this.name))), index.h("div", { class: "mt-4 sm:mt-2 text-sm space-y-2" }, this.features.map((feature) => (index.h("div", { class: "flex" }, index.h("div", { class: "h-5 w-5 flex-none mr-1.5" }, index.h("img", { alt: "checked", src: index.getAssetPath(`assets/icon-check.svg`) })), index.h("div", { class: "leading-5" }, feature))))), this.featureSubText && (index.h("p", { class: "text-xs text-gray-500 italic mt-4 leading-4" }, this.featureSubText)))));
5650
5671
  }
5651
5672
  };
5652
5673
 
5674
+ class MiscService {
5675
+ trackClickPromotedTileAsync(payload) {
5676
+ return superSelectionApi.clickPromotedTileAsync(payload);
5677
+ }
5678
+ }
5679
+ const miscService = new MiscService();
5680
+
5653
5681
  const SuperChoicePage = class {
5654
5682
  constructor(hostRef) {
5655
5683
  index.registerInstance(this, hostRef);
5656
- this.promotedFunds = this.getPromotedFunds();
5684
+ this.campaignConnectRequestInProgress = true;
5657
5685
  this.eventTrackingService = EventTrackingService.Instance;
5658
5686
  }
5659
- componentDidLoad() {
5687
+ async componentDidLoad() {
5688
+ await superSelectionAppService.completeCampaignConnectRequestSafe();
5689
+ this.promotedFunds = this.getPromotedFunds();
5690
+ this.campaignConnectRequestInProgress = false;
5660
5691
  const promotedFundsShown = this.promotedFunds.map((item) => item.fundId);
5661
5692
  return this.eventTrackingService.TrackSuperFundPanelViewedAsync({
5662
5693
  promotedFundsShown,
@@ -5668,6 +5699,9 @@ const SuperChoicePage = class {
5668
5699
  const mygovLinkDisplay = 'www.my.gov.au';
5669
5700
  const superfundsLink = 'https://www.apra.gov.au/register-of-superannuation-institutions';
5670
5701
  const superfundsLinkDisplay = 'www.apra.gov.au';
5702
+ if (this.campaignConnectRequestInProgress) {
5703
+ return (index.h("div", { class: "w-[327px] sm:w-full bg-white flex flex-col items-center" }, index.h("div", { class: "w-full sm:w-[440px] h-9 bg-gray-200 animate-pulse rounded" }), index.h("div", { class: "mt-6 w-full sm:w-[720px] h-6 bg-gray-200 animate-pulse rounded" }), index.h("div", { class: "mt-2 w-[220px] sm:w-[560px] h-6 bg-gray-200 animate-pulse rounded" }), index.h("div", { class: "mt-10 w-full sm:w-[560px] h-80 bg-gray-200 animate-pulse rounded" }), index.h("div", { class: "mt-10 w-full sm:w-[200px] h-11 bg-gray-200 animate-pulse rounded" })));
5704
+ }
5671
5705
  return (index.h(index.Host, null, index.h("div", null, index.h("sss-header-section", { currentPage: "choice" }), index.h("div", { class: "mt-8 text-sm text-center leading-6" }, index.h("p", { class: "leading-6" }, "Not ready to join a new fund, or want to nominate another super fund?"), index.h("stencil-route-link", { url: SuperSelectionAppRoutes.MyOwnFund }, index.h("span", { class: "inline-block text-primary-base font-medium mt-3" }, "Skip Featured Funds\u00A0", index.h("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", class: "inline h-5 w-5 fill-primary-base group-hover:fill-white" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M17.25 8.25L21 12m0 0l-3.75 3.75M21 12H3" }))))), index.h("div", { class: "flex justify-center mt-8" }, index.h("div", { class: {
5672
5706
  'lg:grid border-l border-t lg:border-b rounded-lg': true,
5673
5707
  'lg:grid-cols-1 max-w-400': this.promotedFunds.length === 1,
@@ -5681,7 +5715,7 @@ const SuperChoicePage = class {
5681
5715
  } }, index.h("div", { class: {
5682
5716
  'flex border-b lg:border-b-0': true,
5683
5717
  'rounded-b-lg': index$1 === this.promotedFunds.length - 1
5684
- } }, index.h("div", { class: "hidden md:flex lg:hidden w-36 justify-center pt-6 pl-6" }, index.h("img", { class: "h-16 object-contain w-full max-w-[96px]", alt: fund.name, src: index.getAssetPath(`assets/${fund.logo}`) })), index.h("div", { class: "w-full" }, index.h("sss-super-choice-item-top", { logo: fund.logo, name: fund.name, features: fund.features, featureSubText: fund.featureSubText }), index.h("div", { class: "lg:hidden" }, index.h("sss-super-choice-item-bottom", { disclaimer: fund.disclaimer, abnInfo: fund.abnInfo, abn: fund.abn, onJoinFundClicked: async () => this.handleJoinSuperClickAsync(fund) }))))))), this.promotedFunds.map((fund, index$1) => (index.h("div", { class: {
5718
+ } }, index.h("div", { class: "hidden md:flex lg:hidden w-36 justify-center pt-6 pl-6" }, index.h("img", { class: "h-16 object-contain w-full max-w-[96px]", alt: fund.name, src: index.getAssetPath(`assets/${fund.logo}`) })), index.h("div", { class: "w-full" }, index.h("sss-super-choice-item-top", { logo: fund.logo, name: fund.name, features: fund.features, featureSubText: fund.featureSubText, isPromotedDefault: fund.isPromotedDefault }), index.h("div", { class: "lg:hidden" }, index.h("sss-super-choice-item-bottom", { disclaimer: fund.disclaimer, abnInfo: fund.abnInfo, abn: fund.abn, onJoinFundClicked: async () => this.handleJoinSuperClickAsync(fund) }))))))), this.promotedFunds.map((fund, index$1) => (index.h("div", { class: {
5685
5719
  'hidden lg:block border-r': true,
5686
5720
  'rounded-br-lg': index$1 === this.promotedFunds.length - 1
5687
5721
  } }, index.h("sss-super-choice-item-bottom", { disclaimer: fund.disclaimer, abnInfo: fund.abnInfo, abn: fund.abn, onJoinFundClicked: async () => this.handleJoinSuperClickAsync(fund) })))))), index.h("div", { class: "flex justify-center mt-8 sm:mt-12" }, index.h("div", { class: "pb-8 sm:pb-12 max-w-720 border-b" }, index.h("h5", { class: "font-bold sm:text-lg" }, "Or, choose another super fund:"), index.h("ul", { class: "list-disc list-outside ml-6 mt-3 mb-6 space-y-2 leading-6 text-sm sm:text-base" }, index.h("li", null, "Select this option if you'd like to use your current account with another super fund, your self-managed super fund, or your employer's default fund."), index.h("li", null, "If you are unsure of your current super fund details, you can find out at", ' ', index.h("a", { class: "text-primary-base font-medium hover:text-primary-hover", target: "_blank", href: navigationService.toExternalUrl(mygovLink) }, mygovLinkDisplay)), index.h("li", null, "A full list of super funds can be viewed at", ' ', index.h("a", { class: "text-primary-base font-medium hover:text-primary-hover", target: "_blank", href: navigationService.toExternalUrl(superfundsLink) }, superfundsLinkDisplay))), index.h("stencil-route-link", { url: SuperSelectionAppRoutes.MyOwnFund }, index.h("sss-button", { fillWidthOnMobile: true }, "Choose another super fund")))), index.h("div", { class: "flex justify-center" }, index.h("div", { class: "pt-8 sm:pt-12 max-w-720" }, index.h("h5", { class: "font-semibold" }, "IMPORTANT INFORMATION:"), index.h("ul", { class: "list-disc list-outside ml-6 mt-3 space-y-2 text-sm leading-6" }, index.h("li", null, "The superannuation funds featured above are for your information only. The order, position and placement of content should not be interpreted as an opinion or recommendation (actual or implied) by Flare as to the suitability or appropriateness of any superannuation fund for you. In featuring these superannuation funds, Flare has not taken into account your objectives, financial situation or needs."), index.h("li", null, "This is not a comparison service. This page contains factual information only and does not constitute either general or personal advice about any financial products. We do not take into account your objectives, financial situation or needs. If you have questions or need help making a decision about your superannuation fund, you should speak to a licensed financial product advice provider."), index.h("li", null, "Flare, the technology partner you are accessing Flare via and your employer do not endorse or accept responsibility for any financial product advice or services provided by the promoters or trustees of the featured superannuation funds. Flare does not endorse or accept responsibility for any of the content shown about any of the featured superannuation funds."), index.h("li", null, "You should consider the relevant superannuation fund\u2019s PDS and TMD (if applicable) in deciding whether to apply to join the superannuation fund. Each of the superannuation funds featured above include a link to their PDS and TMD (if applicable) for your convenience. If you are considering joining another superannuation fund, you can typically find the PDS and TMD (if applicable) on that fund\u2019s website."), index.h("li", null, "You should be aware that, if you do choose one of the featured superannuation funds, Flare and it\u2019s associates will normally receive a fee for you doing so (this includes Simple Financial Choices Pty Ltd, a wholly owned subsidiary of Flare, which is a sub-promoter of Slate Super).")))))));
@@ -5697,17 +5731,32 @@ const SuperChoicePage = class {
5697
5731
  return fundTiles;
5698
5732
  }
5699
5733
  async handleJoinSuperClickAsync(fund) {
5734
+ var _a;
5700
5735
  const promotedFundsShown = superSelectionAppService.promotedFunds;
5701
5736
  const fundUsi = getFundUsiByFundId(fund.fundId);
5702
5737
  const fundName = getFundNameByFundId(fund.fundId);
5703
- await this.eventTrackingService.TrackPromotedSuperFundDetailViewedAsync({
5704
- fundUsi: Option.isSome(fundUsi) ? fundUsi.value : undefined,
5705
- fundName: Option.isSome(fundName) ? fundName.value : '',
5706
- promotedFundId: fund.fundId,
5707
- promotedFundsShown,
5708
- defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi)
5709
- });
5738
+ await Promise.all([
5739
+ this.eventTrackingService.TrackPromotedSuperFundDetailViewedAsync({
5740
+ fundUsi: Option.isSome(fundUsi) ? fundUsi.value : undefined,
5741
+ fundName: Option.isSome(fundName) ? fundName.value : '',
5742
+ promotedFundId: fund.fundId,
5743
+ promotedFundsShown,
5744
+ defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi)
5745
+ }),
5746
+ miscService.trackClickPromotedTileAsync(fund.isPromotedDefault
5747
+ ? {
5748
+ promotedDefault: {
5749
+ fundId: fund.fundId
5750
+ }
5751
+ }
5752
+ : {
5753
+ promoted: {
5754
+ fundId: fund.fundId
5755
+ }
5756
+ })
5757
+ ]);
5710
5758
  state$2.fundId = fund.fundId;
5759
+ state$2.isPromotedDefault = (_a = fund.isPromotedDefault) !== null && _a !== void 0 ? _a : false;
5711
5760
  return navigationService.navigateInternally(this.history, fund.route);
5712
5761
  }
5713
5762
  static get assetsDirs() { return ["assets"]; }