@flarehr/apollo-super-selection 4.16.26580 → 4.18.26731

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 (16) hide show
  1. package/dist/lib/apollo-super-selection/apollo-super-selection.esm.js +1 -1
  2. package/dist/lib/apollo-super-selection/{p-d6c596db.entry.js → p-17281f24.entry.js} +4 -4
  3. package/dist/lib/apollo-super-selection/{p-2158618c.system.entry.js → p-2711b863.system.entry.js} +10 -10
  4. package/dist/lib/apollo-super-selection/p-bdcfc026.system.js +1 -1
  5. package/dist/lib/cjs/sss-button_29.cjs.entry.js +13 -7
  6. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/my-own-fund/my-own-fund-inputs.js +6 -5
  7. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/my-own-fund/my-own-fund.js +3 -1
  8. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund-inputs.js +5 -4
  9. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund.js +1 -1
  10. package/dist/lib/collection/components/super-selection-app/funds/slate-super/services/slate-iframe-builder.js +2 -0
  11. package/dist/lib/esm/sss-button_29.entry.js +13 -7
  12. package/dist/lib/esm-es5/sss-button_29.entry.js +1 -1
  13. package/dist/lib/types/components/super-selection-app/funds/custom-fund/my-own-fund/my-own-fund-inputs.d.ts +1 -0
  14. package/dist/lib/types/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund-inputs.d.ts +1 -0
  15. package/dist/lib/types/components/super-selection-app/funds/slate-super/api/slate-choice.api.dto.d.ts +2 -0
  16. package/package.json +1 -1
@@ -1 +1 @@
1
- System.register(["./p-44bec843.system.js","./p-14885f78.system.js","./p-15f0e5eb.system.js"],(function(s,e){"use strict";var t,o,i;return{setters:[function(s){t=s.p;o=s.b},function(){},function(s){i=s.g}],execute:function(){var s=function(){var s=e.meta.url;var o={};if(s!==""){o.resourcesUrl=new URL(".",s).href}return t(o)};s().then((function(s){i();return o([["p-6ac8791e.system",[[0,"context-consumer",{context:[16],renderer:[16],subscribe:[16],unsubscribe:[32]}]]],["p-02f24922.system",[[0,"stencil-async-content",{documentLocation:[1,"document-location"],content:[32]}]]],["p-ef3afa00.system",[[0,"stencil-route-title",{titleSuffix:[1,"title-suffix"],pageTitle:[1,"page-title"]}]]],["p-f29066b9.system",[[0,"stencil-router-prompt",{when:[4],message:[1],history:[16],unblock:[32]}]]],["p-51aefdb1.system",[[0,"stencil-router-redirect",{history:[16],root:[1],url:[1]}]]],["p-2158618c.system",[[0,"sss-my-own-fund",{history:[16],formState:[32],isNotAllInformationProvidedMessageVisible:[32],isSubmitDisabled:[32]}],[0,"sss-self-managed-fund",{history:[16],formState:[32],isSubmitDisabled:[32]}],[0,"sss-super-choice-page",{history:[16],promotedFunds:[32]}],[1,"super-selection-app-host",{sessionState:[32],jwt:[32],appConfiguration:[32],ignoreExistingSelection:[32]}],[0,"sss-default-fund",{history:[16],defaultFundProductName:[32]}],[0,"sss-standard-choice-form",{history:[16],standardChoiceFormSignature:[32],formState:[32],isSubmitDisabled:[32]}],[0,"sss-consent-page",{history:[16]}],[0,"sss-existing-choice-page",{history:[16],existingFund:[32]}],[0,"sss-promoted-fund-join-v1-page",{history:[16]}],[0,"sss-promoted-fund-join-v2-page",{history:[16]}],[0,"sss-slate-join-page",{history:[16]}],[0,"sss-success"],[1,"super-selection-app",{ignoreExistingSelection:[4,"ignore-existing-selection"],accessToken:[1,"access-token"],backendUrl:[1,"backend-url"],appBaseUrl:[1,"app-base-url"],history:[16],location:[16],isSelfHosted:[4,"is-self-hosted"],isAppInitialised:[32]}],[0,"sss-my-own-fund-inputs",{myOwnFundForm:[16],showValidationErrors:[4,"show-validation-errors"],selectedOption:[32]}],[0,"sss-super-choice-item-bottom",{disclaimer:[16],abnInfo:[1,"abn-info"],abn:[1]}],[0,"sss-loading-page"],[0,"sss-self-managed-fund-inputs",{fundForm:[16],showValidationErrors:[4,"show-validation-errors"],isAbnValid:[32],isAbnTouched:[32],isAbnUsedForRegulated:[32],currentBank:[32],addressErrorMessage:[32]}],[0,"sss-super-choice-item-top",{name:[1],logo:[1],features:[16],featureSubText:[16]}],[0,"sss-dropdown-async",{placeholder:[1],searchFunction:[16],value:[16],required:[4],requiredValidationMessage:[1,"required-validation-message"],disabled:[4],minSearchStringLength:[2,"min-search-string-length"],showValidationErrors:[4,"show-validation-errors"],searchState:[32],inputValue:[32],isDropdownVisible:[32],filteredOptions:[32],highlightedOptionIndex:[32],selectedOption:[32]},[[2,"focus","handleFocus"],[2,"blur","handleBlur"],[2,"keydown","handleKeyDown"]]],[0,"sss-footer-section"],[4,"stencil-route-switch",{group:[513],scrollTopOffset:[2,"scroll-top-offset"],location:[16],routeViewsUpdated:[16]}],[4,"stencil-router",{root:[1],historyType:[1,"history-type"],titleSuffix:[1,"title-suffix"],scrollTopOffset:[2,"scroll-top-offset"],location:[32],history:[32]}],[4,"sss-custom-fund",{history:[16],currentCustomFund:[32],fundOptionsList:[32],showFundOptionsSelection:[32]}],[0,"sss-iframe-host",{build:[16]}],[0,"sss-header-section",{currentPage:[1,"current-page"]}],[4,"stencil-route-link",{url:[1],urlMatch:[1,"url-match"],activeClass:[1,"active-class"],exact:[4],strict:[4],custom:[1],anchorClass:[1,"anchor-class"],anchorRole:[1,"anchor-role"],anchorTitle:[1,"anchor-title"],anchorTabIndex:[1,"anchor-tab-index"],anchorId:[1,"anchor-id"],history:[16],location:[16],root:[1],ariaHaspopup:[1,"aria-haspopup"],ariaPosinset:[1,"aria-posinset"],ariaSetsize:[2,"aria-setsize"],ariaLabel:[1,"aria-label"],match:[32]}],[4,"sss-button",{fillWidth:[4,"fill-width"],fillWidthOnMobile:[4,"fill-width-on-mobile"],disabled:[4],variant:[1],size:[1],promiseFn:[16],state:[32]}],[0,"sss-loading-indicator",{theme:[1],size:[2]}],[0,"stencil-route",{group:[513],componentUpdated:[16],match:[1040],url:[1],component:[1],componentProps:[16],exact:[4],routeRender:[16],scrollTopOffset:[2,"scroll-top-offset"],routeViewsUpdated:[16],location:[16],history:[16],historyType:[1,"history-type"]}]]]],s)}))}}}));
1
+ System.register(["./p-44bec843.system.js","./p-14885f78.system.js","./p-15f0e5eb.system.js"],(function(s,e){"use strict";var t,o,i;return{setters:[function(s){t=s.p;o=s.b},function(){},function(s){i=s.g}],execute:function(){var s=function(){var s=e.meta.url;var o={};if(s!==""){o.resourcesUrl=new URL(".",s).href}return t(o)};s().then((function(s){i();return o([["p-6ac8791e.system",[[0,"context-consumer",{context:[16],renderer:[16],subscribe:[16],unsubscribe:[32]}]]],["p-02f24922.system",[[0,"stencil-async-content",{documentLocation:[1,"document-location"],content:[32]}]]],["p-ef3afa00.system",[[0,"stencil-route-title",{titleSuffix:[1,"title-suffix"],pageTitle:[1,"page-title"]}]]],["p-f29066b9.system",[[0,"stencil-router-prompt",{when:[4],message:[1],history:[16],unblock:[32]}]]],["p-51aefdb1.system",[[0,"stencil-router-redirect",{history:[16],root:[1],url:[1]}]]],["p-2711b863.system",[[0,"sss-my-own-fund",{history:[16],formState:[32],isNotAllInformationProvidedMessageVisible:[32],isSubmitDisabled:[32]}],[0,"sss-self-managed-fund",{history:[16],formState:[32],isSubmitDisabled:[32]}],[0,"sss-super-choice-page",{history:[16],promotedFunds:[32]}],[1,"super-selection-app-host",{sessionState:[32],jwt:[32],appConfiguration:[32],ignoreExistingSelection:[32]}],[0,"sss-default-fund",{history:[16],defaultFundProductName:[32]}],[0,"sss-standard-choice-form",{history:[16],standardChoiceFormSignature:[32],formState:[32],isSubmitDisabled:[32]}],[0,"sss-consent-page",{history:[16]}],[0,"sss-existing-choice-page",{history:[16],existingFund:[32]}],[0,"sss-promoted-fund-join-v1-page",{history:[16]}],[0,"sss-promoted-fund-join-v2-page",{history:[16]}],[0,"sss-slate-join-page",{history:[16]}],[0,"sss-success"],[1,"super-selection-app",{ignoreExistingSelection:[4,"ignore-existing-selection"],accessToken:[1,"access-token"],backendUrl:[1,"backend-url"],appBaseUrl:[1,"app-base-url"],history:[16],location:[16],isSelfHosted:[4,"is-self-hosted"],isAppInitialised:[32]}],[0,"sss-my-own-fund-inputs",{myOwnFundForm:[16],showValidationErrors:[4,"show-validation-errors"],selectedOption:[32]}],[0,"sss-super-choice-item-bottom",{disclaimer:[16],abnInfo:[1,"abn-info"],abn:[1]}],[0,"sss-loading-page"],[0,"sss-self-managed-fund-inputs",{fundForm:[16],showValidationErrors:[4,"show-validation-errors"],isAbnValid:[32],isAbnTouched:[32],isAbnUsedForRegulated:[32],currentBank:[32],addressErrorMessage:[32]}],[0,"sss-super-choice-item-top",{name:[1],logo:[1],features:[16],featureSubText:[16]}],[0,"sss-dropdown-async",{placeholder:[1],searchFunction:[16],value:[16],required:[4],requiredValidationMessage:[1,"required-validation-message"],disabled:[4],minSearchStringLength:[2,"min-search-string-length"],showValidationErrors:[4,"show-validation-errors"],searchState:[32],inputValue:[32],isDropdownVisible:[32],filteredOptions:[32],highlightedOptionIndex:[32],selectedOption:[32]},[[2,"focus","handleFocus"],[2,"blur","handleBlur"],[2,"keydown","handleKeyDown"]]],[0,"sss-footer-section"],[4,"stencil-route-switch",{group:[513],scrollTopOffset:[2,"scroll-top-offset"],location:[16],routeViewsUpdated:[16]}],[4,"stencil-router",{root:[1],historyType:[1,"history-type"],titleSuffix:[1,"title-suffix"],scrollTopOffset:[2,"scroll-top-offset"],location:[32],history:[32]}],[4,"sss-custom-fund",{history:[16],currentCustomFund:[32],fundOptionsList:[32],showFundOptionsSelection:[32]}],[0,"sss-iframe-host",{build:[16]}],[0,"sss-header-section",{currentPage:[1,"current-page"]}],[4,"stencil-route-link",{url:[1],urlMatch:[1,"url-match"],activeClass:[1,"active-class"],exact:[4],strict:[4],custom:[1],anchorClass:[1,"anchor-class"],anchorRole:[1,"anchor-role"],anchorTitle:[1,"anchor-title"],anchorTabIndex:[1,"anchor-tab-index"],anchorId:[1,"anchor-id"],history:[16],location:[16],root:[1],ariaHaspopup:[1,"aria-haspopup"],ariaPosinset:[1,"aria-posinset"],ariaSetsize:[2,"aria-setsize"],ariaLabel:[1,"aria-label"],match:[32]}],[4,"sss-button",{fillWidth:[4,"fill-width"],fillWidthOnMobile:[4,"fill-width-on-mobile"],disabled:[4],variant:[1],size:[1],promiseFn:[16],state:[32]}],[0,"sss-loading-indicator",{theme:[1],size:[2]}],[0,"stencil-route",{group:[513],componentUpdated:[16],match:[1040],url:[1],component:[1],componentProps:[16],exact:[4],routeRender:[16],scrollTopOffset:[2,"scroll-top-offset"],routeViewsUpdated:[16],location:[16],history:[16],historyType:[1,"history-type"]}]]]],s)}))}}}));
@@ -264,7 +264,7 @@ class TapSubscriber extends datoramaAkita.Subscriber {
264
264
  }
265
265
  }
266
266
 
267
- const AppVersion = '4.16.26580';
267
+ const AppVersion = '4.18.26731';
268
268
 
269
269
  // -------------------------------------------------------------------------------------
270
270
  // guards
@@ -4471,7 +4471,9 @@ const MyOwnFund = class {
4471
4471
  }, ref: (el) => (this.formElement = el), onInput: (_) => (this.isSubmitDisabled = !this.formElement.checkValidity()) }, index.h("div", { class: "p-4 sm:p-6 pb-6 sm:pb-8 border shadow-sm rounded-lg" }, index.h("p", { class: "sm:text-lg font-bold mb-3" }, "Fund details"), index.h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-3 sm:mb-4" }, index.h("div", { class: "flex" }, index.h("div", { class: "flex-shrink-0" }, index.h("img", { class: "h-5 w-5", src: index.getAssetPath('assets/icon-exclamation.svg') })), index.h("div", { class: "ml-2" }, index.h("ul", { class: "list-disc list-outside ml-6 space-y-2 text-sm text-yellow-700 leading-5" }, index.h("li", null, "Make sure you are a current member of the fund before completing this step."), index.h("li", null, "Please check that the fund USI is correct as some funds have similar names."))))), index.h("sss-my-own-fund-inputs", { myOwnFundForm: state$1.myOwnFundForm, showValidationErrors: this.formState === 'validated', onFormChanged: (event) => {
4472
4472
  state$1.myOwnFundForm = Object.assign(Object.assign({}, state$1.myOwnFundForm), event.detail);
4473
4473
  this.isNotAllInformationProvidedMessageVisible = false;
4474
- } }), this.isNotAllInformationProvidedMessageVisible && (index.h("div", { class: "mt-4 rounded-md bg-red-50 p-4 text-sm text-red-700" }, "All fields are required to complete submission. Make sure you have selected a fund."))), index.h("div", { class: "flex justify-center mt-8" }, index.h("div", { class: "sm:max-w-320 w-full" }, index.h("div", { class: "mb-4" }, index.h("sss-button", { fillWidth: true, promiseFn: () => this.handleSubmitForm(), disabled: this.isSubmitDisabled }, "Continue")), index.h("stencil-route-link", { url: SuperSelectionAppRoutes.ChoicePage }, index.h("sss-button", { fillWidth: true, variant: "secondary" }, "Back")))))))));
4474
+ } }), this.isNotAllInformationProvidedMessageVisible && (index.h("div", { class: "mt-4 rounded-md bg-red-50 p-4 text-sm text-red-700" }, "All fields are required to complete submission. Make sure you have selected a fund."))), index.h("div", { class: "flex justify-center mt-8" }, index.h("div", { class: "sm:max-w-320 w-full" }, index.h("div", { class: "mb-4", onClick:
4475
+ // user clicks on disabled button (div wrapper) then validation errors will show
4476
+ () => (this.formState = 'validated') }, index.h("sss-button", { fillWidth: true, promiseFn: () => this.handleSubmitForm(), disabled: this.isSubmitDisabled }, "Continue")), index.h("stencil-route-link", { url: SuperSelectionAppRoutes.ChoicePage }, index.h("sss-button", { fillWidth: true, variant: "secondary" }, "Back")))))))));
4475
4477
  }
4476
4478
  async handleSubmitForm() {
4477
4479
  this.formState = 'validated';
@@ -4515,6 +4517,7 @@ const MyOwnFundInputs = class {
4515
4517
  this.formChanged = index.createEvent(this, "formChanged", 7);
4516
4518
  this.MIN_SEARCH_STRING_LENGTH = 3;
4517
4519
  this.MAX_RECORD_COUNT = 25;
4520
+ this.NAME_PATTERN = "[A-Za-z][A-Za-z']+(( |-)[A-Za-z][A-Za-z']+)*";
4518
4521
  this.searchFundsAsync = async (searchBy) => {
4519
4522
  const response = await australianFundLookupService.searchFundsAsync(searchBy, this.MAX_RECORD_COUNT);
4520
4523
  switch (response.result) {
@@ -4541,15 +4544,15 @@ const MyOwnFundInputs = class {
4541
4544
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
4542
4545
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4543
4546
  .showValidationErrors
4544
- }, required: true, pattern: "[A-Za-z0-9]{4,16}", name: "memberNumber", id: "memberNumber", value: toUndefined(state$1.myOwnFundForm.memberNumber), onChange: (ev) => this.updateMemberNumber(ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid member number (only numbers and / or letters)"))), index.h("div", { class: "flex space-x-4" }, index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Given names(s)"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: {
4547
+ }, required: true, pattern: "[A-Za-z0-9]{4,16}", name: "memberNumber", id: "memberNumber", value: toUndefined(state$1.myOwnFundForm.memberNumber), onChange: (ev) => this.updateMemberNumber(ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid member number (only numbers and / or letters)"))), index.h("div", { class: "flex space-x-4" }, index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: {
4545
4548
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
4546
4549
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4547
4550
  .showValidationErrors
4548
- }, required: true, pattern: "^[A-Za-z][A-Za-z]+([\\ A-Za-z][A-Za-z\\-]+)*$", name: "memberFirstName", id: "memberFirstName", value: toUndefined(state$1.myOwnFundForm.memberFirstName), onChange: (ev) => this.updateMemberFirstName(ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid given name(s)"))), index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: {
4551
+ }, required: true, pattern: this.NAME_PATTERN, name: "memberFirstName", id: "memberFirstName", value: toUndefined(state$1.myOwnFundForm.memberFirstName), onChange: (ev) => this.updateMemberFirstName(ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member given name(s) contains unsupported special characters"))), index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: {
4549
4552
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
4550
4553
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4551
4554
  .showValidationErrors
4552
- }, required: true, pattern: "^[A-Za-z][A-Za-z]+([\\ A-Za-z][A-Za-z\\-]+)*$", name: "memberFamilyName", id: "memberFamilyName", value: toUndefined(state$1.myOwnFundForm.memberFamilyName), onChange: (ev) => this.updateMemberFamilyName(ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid last name"))))));
4555
+ }, required: true, pattern: this.NAME_PATTERN, name: "memberFamilyName", id: "memberFamilyName", value: toUndefined(state$1.myOwnFundForm.memberFamilyName), onChange: (ev) => this.updateMemberFamilyName(ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member last name contains unsupported special characters"))))));
4553
4556
  }
4554
4557
  updateFund(fund) {
4555
4558
  this.formChanged.emit({ fundUsi: some(fund.value), fundName: some(fund.label) });
@@ -4871,7 +4874,7 @@ const SelfManagedFund = class {
4871
4874
  render() {
4872
4875
  return (index.h(index.Host, null, index.h("sss-header-section", { currentPage: "own-fund" }), index.h("div", { class: "flex justify-center mt-11" }, index.h("sss-custom-fund", null, index.h("form", { noValidate: true, onSubmit: (ev) => ev.preventDefault(), class: {
4873
4876
  'was-validated': this.formState === 'validated'
4874
- }, ref: (el) => (this.formElement = el) }, index.h("div", { class: "p-4 sm:p-6 pb-6 sm:pb-8 border shadow-sm rounded-lg max-w-560" }, index.h("p", { class: "sm:text-lg font-bold" }, "Fund details"), index.h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 my-3" }, index.h("div", { class: "flex" }, index.h("div", { class: "flex-shrink-0" }, index.h("img", { class: "h-5 w-5", src: index.getAssetPath('assets/icon-exclamation.svg') })), index.h("div", { class: "ml-3 text-sm text-yellow-700 leading-5" }, "Make sure your Self-managed super fund (SMSF) is a registered fund before completing this step."))), index.h("sss-self-managed-fund-inputs", { fundForm: state$1.selfManagedFundForm, showValidationErrors: this.formState === 'validated', onFormChanged: (event) => {
4877
+ }, ref: (el) => (this.formElement = el), onInput: (_) => this.updateIsSubmitDisabled() }, index.h("div", { class: "p-4 sm:p-6 pb-6 sm:pb-8 border shadow-sm rounded-lg max-w-560" }, index.h("p", { class: "sm:text-lg font-bold" }, "Fund details"), index.h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 my-3" }, index.h("div", { class: "flex" }, index.h("div", { class: "flex-shrink-0" }, index.h("img", { class: "h-5 w-5", src: index.getAssetPath('assets/icon-exclamation.svg') })), index.h("div", { class: "ml-3 text-sm text-yellow-700 leading-5" }, "Make sure your Self-managed super fund (SMSF) is a registered fund before completing this step."))), index.h("sss-self-managed-fund-inputs", { fundForm: state$1.selfManagedFundForm, showValidationErrors: this.formState === 'validated', onFormChanged: (event) => {
4875
4878
  state$1.selfManagedFundForm = Object.assign(Object.assign({}, state$1.selfManagedFundForm), event.detail);
4876
4879
  if (event.detail.isAbnValid !== undefined)
4877
4880
  this.isAbnValid = event.detail.isAbnValid;
@@ -5024,6 +5027,7 @@ const SelfManagedFundInputs = class {
5024
5027
  ];
5025
5028
  this.bsbRegex = new RegExp(/^[0-9]{3}[0-9]{3}$/);
5026
5029
  this.bankAccountNumberRegex = new RegExp(/^[0-9]{2,10}$/);
5030
+ this.NAME_PATTERN = "[A-Za-z][A-Za-z']+(( |-)[A-Za-z][A-Za-z']+)*";
5027
5031
  }
5028
5032
  render() {
5029
5033
  const inputClass = {
@@ -5050,7 +5054,7 @@ const SelfManagedFundInputs = class {
5050
5054
  }, ref: (el) => (this.postcodeElement = el) })), index.h("div", { class: "flex-1 min-w-0" }, index.h("select", { class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-br-md shadow-none': true, 'text-gray-500': this.fundForm.state !== undefined }), name: "state", required: true, id: "state", onChange: (ev) => {
5051
5055
  this.updateFormField('state', ev.target.value.trim());
5052
5056
  this.updateAddressErrorMessage();
5053
- }, ref: (el) => (this.stateElement = el) }, index.h("option", { disabled: true, selected: this.fundForm.state !== undefined, value: "" }, "State"), this.stateOptions.map((s) => (index.h("option", { value: s.value, selected: this.fundForm.state === s.value }, s.label))))))), isSome(this.addressErrorMessage) && this.showValidationErrors && (index.h("div", { class: "mt-2 text-sm text-red-600" }, this.addressErrorMessage.value))), index.h("div", { class: "flex space-x-4" }, index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "memberFirstName", id: "memberFirstName", value: state$1.selfManagedFundForm.memberFirstName, onChange: (ev) => this.updateFormField('memberFirstName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid given name"))), index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "memberFamilyName", id: "memberFamilyName", value: state$1.selfManagedFundForm.memberFamilyName, onChange: (ev) => this.updateFormField('memberFamilyName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid last name")))), index.h("h3", { class: "text-lg font-bold mt-6" }, "Fund bank details"), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Account name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", required: true, class: inputClass, name: "bankAccountName", minlength: "2", id: "bankAccountName", value: state$1.selfManagedFundForm.bankAccountName, onChange: (ev) => this.updateFormField('bankAccountName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account name"))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "BSB"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", required: true, class: inputClass, name: "bsb", id: "bsb", minlength: "6", maxlength: "7", inputmode: "numeric", onKeyUp: (ev) => this.updateCurrentBank(ev), pattern: this.bsbRegex.source, value: state$1.selfManagedFundForm.bsb }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid BSB"))), isSome(this.currentBank) && (index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Bank name"), index.h("div", { class: "mt-1 shadow-sm px-3 py-2 rounded-md border border-gray-300 bg-gray-50 text-gray-500 text-sm" }, this.currentBank.value))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Account number"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", required: true, class: inputClass, name: "bankAccountNumber", id: "bankAccountNumber", minlength: "2", maxlength: "11", pattern: this.bankAccountNumberRegex.source, inputmode: "numeric", value: state$1.selfManagedFundForm.bankAccountNumber, onKeyUp: (ev) => this.updateCurrentBankAccountNumber(ev), onChange: (ev) => this.updateFormField('bankAccountNumber', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account number")))));
5057
+ }, ref: (el) => (this.stateElement = el) }, index.h("option", { disabled: true, selected: this.fundForm.state !== undefined, value: "" }, "State"), this.stateOptions.map((s) => (index.h("option", { value: s.value, selected: this.fundForm.state === s.value }, s.label))))))), isSome(this.addressErrorMessage) && this.showValidationErrors && (index.h("div", { class: "mt-2 text-sm text-red-600" }, this.addressErrorMessage.value))), index.h("div", { class: "flex space-x-4" }, index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, pattern: this.NAME_PATTERN, name: "memberFirstName", id: "memberFirstName", value: state$1.selfManagedFundForm.memberFirstName, onChange: (ev) => this.updateFormField('memberFirstName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member given name(s) contains unsupported special characters"))), index.h("div", { class: "mt-3 w-1/2" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, pattern: this.NAME_PATTERN, name: "memberFamilyName", id: "memberFamilyName", value: state$1.selfManagedFundForm.memberFamilyName, onChange: (ev) => this.updateFormField('memberFamilyName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member last name contains unsupported special characters")))), index.h("h3", { class: "text-lg font-bold mt-6" }, "Fund bank details"), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Account name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", required: true, class: inputClass, name: "bankAccountName", minlength: "2", id: "bankAccountName", value: state$1.selfManagedFundForm.bankAccountName, onChange: (ev) => this.updateFormField('bankAccountName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account name"))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "BSB"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", required: true, class: inputClass, name: "bsb", id: "bsb", minlength: "6", maxlength: "7", inputmode: "numeric", onKeyUp: (ev) => this.updateCurrentBank(ev), pattern: this.bsbRegex.source, value: state$1.selfManagedFundForm.bsb }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid BSB"))), isSome(this.currentBank) && (index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Bank name"), index.h("div", { class: "mt-1 shadow-sm px-3 py-2 rounded-md border border-gray-300 bg-gray-50 text-gray-500 text-sm" }, this.currentBank.value))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Account number"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", required: true, class: inputClass, name: "bankAccountNumber", id: "bankAccountNumber", minlength: "2", maxlength: "11", pattern: this.bankAccountNumberRegex.source, inputmode: "numeric", value: state$1.selfManagedFundForm.bankAccountNumber, onKeyUp: (ev) => this.updateCurrentBankAccountNumber(ev), onChange: (ev) => this.updateFormField('bankAccountNumber', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account number")))));
5054
5058
  }
5055
5059
  updateFormField(key, value) {
5056
5060
  this.formChanged.emit({ [key]: value });
@@ -5227,6 +5231,8 @@ class SlateIFrameBuilder {
5227
5231
  fundName: Slate.Name,
5228
5232
  handleSubmitFn: (standardChoiceFormSignature) => slateChoiceApi.submitSlateChoiceAsync({
5229
5233
  memberNumber: data.memberNumber,
5234
+ memberFirstName: data.memberFirstName,
5235
+ memberFamilyName: data.memberFamilyName,
5230
5236
  standardChoiceFormSignature,
5231
5237
  shownFunds: superSelectionAppService.promotedFunds,
5232
5238
  defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi)
@@ -6,6 +6,7 @@ export class MyOwnFundInputs {
6
6
  constructor() {
7
7
  this.MIN_SEARCH_STRING_LENGTH = 3;
8
8
  this.MAX_RECORD_COUNT = 25;
9
+ this.NAME_PATTERN = "[A-Za-z][A-Za-z']+(( |-)[A-Za-z][A-Za-z']+)*";
9
10
  this.searchFundsAsync = async (searchBy) => {
10
11
  const response = await australianFundLookupService.searchFundsAsync(searchBy, this.MAX_RECORD_COUNT);
11
12
  switch (response.result) {
@@ -47,14 +48,14 @@ export class MyOwnFundInputs {
47
48
  h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid member number (only numbers and / or letters)"))),
48
49
  h("div", { class: "flex space-x-4" },
49
50
  h("div", { class: "mt-3 w-1/2" },
50
- h("label", { class: "text-sm font-medium text-gray-700" }, "Given names(s)"),
51
+ h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"),
51
52
  h("div", { class: "mt-1" },
52
53
  h("input", { type: "text", class: {
53
54
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
54
55
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
55
56
  .showValidationErrors
56
- }, required: true, pattern: "^[A-Za-z][A-Za-z]+([\\ A-Za-z][A-Za-z\\-]+)*$", name: "memberFirstName", id: "memberFirstName", value: O.toUndefined(customFundState.myOwnFundForm.memberFirstName), onChange: (ev) => this.updateMemberFirstName(ev.target.value.trim()) }),
57
- h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid given name(s)"))),
57
+ }, required: true, pattern: this.NAME_PATTERN, name: "memberFirstName", id: "memberFirstName", value: O.toUndefined(customFundState.myOwnFundForm.memberFirstName), onChange: (ev) => this.updateMemberFirstName(ev.target.value.trim()) }),
58
+ h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member given name(s) contains unsupported special characters"))),
58
59
  h("div", { class: "mt-3 w-1/2" },
59
60
  h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"),
60
61
  h("div", { class: "mt-1" },
@@ -62,8 +63,8 @@ export class MyOwnFundInputs {
62
63
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
63
64
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
64
65
  .showValidationErrors
65
- }, required: true, pattern: "^[A-Za-z][A-Za-z]+([\\ A-Za-z][A-Za-z\\-]+)*$", name: "memberFamilyName", id: "memberFamilyName", value: O.toUndefined(customFundState.myOwnFundForm.memberFamilyName), onChange: (ev) => this.updateMemberFamilyName(ev.target.value.trim()) }),
66
- h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid last name"))))));
66
+ }, required: true, pattern: this.NAME_PATTERN, name: "memberFamilyName", id: "memberFamilyName", value: O.toUndefined(customFundState.myOwnFundForm.memberFamilyName), onChange: (ev) => this.updateMemberFamilyName(ev.target.value.trim()) }),
67
+ h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member last name contains unsupported special characters"))))));
67
68
  }
68
69
  updateFund(fund) {
69
70
  this.formChanged.emit({ fundUsi: O.some(fund.value), fundName: O.some(fund.label) });
@@ -45,7 +45,9 @@ export class MyOwnFund {
45
45
  this.isNotAllInformationProvidedMessageVisible && (h("div", { class: "mt-4 rounded-md bg-red-50 p-4 text-sm text-red-700" }, "All fields are required to complete submission. Make sure you have selected a fund."))),
46
46
  h("div", { class: "flex justify-center mt-8" },
47
47
  h("div", { class: "sm:max-w-320 w-full" },
48
- h("div", { class: "mb-4" },
48
+ h("div", { class: "mb-4", onClick:
49
+ // user clicks on disabled button (div wrapper) then validation errors will show
50
+ () => (this.formState = 'validated') },
49
51
  h("sss-button", { fillWidth: true, promiseFn: () => this.handleSubmitForm(), disabled: this.isSubmitDisabled }, "Continue")),
50
52
  h("stencil-route-link", { url: SuperSelectionAppRoutes.ChoicePage },
51
53
  h("sss-button", { fillWidth: true, variant: "secondary" }, "Back")))))))));
@@ -23,6 +23,7 @@ export class SelfManagedFundInputs {
23
23
  ];
24
24
  this.bsbRegex = new RegExp(/^[0-9]{3}[0-9]{3}$/);
25
25
  this.bankAccountNumberRegex = new RegExp(/^[0-9]{2,10}$/);
26
+ this.NAME_PATTERN = "[A-Za-z][A-Za-z']+(( |-)[A-Za-z][A-Za-z']+)*";
26
27
  }
27
28
  render() {
28
29
  const inputClass = {
@@ -83,13 +84,13 @@ export class SelfManagedFundInputs {
83
84
  h("div", { class: "mt-3 w-1/2" },
84
85
  h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"),
85
86
  h("div", { class: "mt-1" },
86
- h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "memberFirstName", id: "memberFirstName", value: customFundState.selfManagedFundForm.memberFirstName, onChange: (ev) => this.updateFormField('memberFirstName', ev.target.value.trim()) }),
87
- h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid given name"))),
87
+ h("input", { type: "text", class: inputClass, required: true, pattern: this.NAME_PATTERN, name: "memberFirstName", id: "memberFirstName", value: customFundState.selfManagedFundForm.memberFirstName, onChange: (ev) => this.updateFormField('memberFirstName', ev.target.value.trim()) }),
88
+ h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member given name(s) contains unsupported special characters"))),
88
89
  h("div", { class: "mt-3 w-1/2" },
89
90
  h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"),
90
91
  h("div", { class: "mt-1" },
91
- h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "memberFamilyName", id: "memberFamilyName", value: customFundState.selfManagedFundForm.memberFamilyName, onChange: (ev) => this.updateFormField('memberFamilyName', ev.target.value.trim()) }),
92
- h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid last name")))),
92
+ h("input", { type: "text", class: inputClass, required: true, pattern: this.NAME_PATTERN, name: "memberFamilyName", id: "memberFamilyName", value: customFundState.selfManagedFundForm.memberFamilyName, onChange: (ev) => this.updateFormField('memberFamilyName', ev.target.value.trim()) }),
93
+ h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member last name contains unsupported special characters")))),
93
94
  h("h3", { class: "text-lg font-bold mt-6" }, "Fund bank details"),
94
95
  h("div", { class: "mt-3" },
95
96
  h("label", { class: "text-sm font-medium text-gray-700" }, "Account name"),
@@ -57,7 +57,7 @@ export class SelfManagedFund {
57
57
  h("sss-custom-fund", null,
58
58
  h("form", { noValidate: true, onSubmit: (ev) => ev.preventDefault(), class: {
59
59
  'was-validated': this.formState === 'validated'
60
- }, ref: (el) => (this.formElement = el) },
60
+ }, ref: (el) => (this.formElement = el), onInput: (_) => this.updateIsSubmitDisabled() },
61
61
  h("div", { class: "p-4 sm:p-6 pb-6 sm:pb-8 border shadow-sm rounded-lg max-w-560" },
62
62
  h("p", { class: "sm:text-lg font-bold" }, "Fund details"),
63
63
  h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 my-3" },
@@ -53,6 +53,8 @@ class SlateIFrameBuilder {
53
53
  fundName: Slate.Name,
54
54
  handleSubmitFn: (standardChoiceFormSignature) => slateChoiceApi.submitSlateChoiceAsync({
55
55
  memberNumber: data.memberNumber,
56
+ memberFirstName: data.memberFirstName,
57
+ memberFamilyName: data.memberFamilyName,
56
58
  standardChoiceFormSignature,
57
59
  shownFunds: superSelectionAppService.promotedFunds,
58
60
  defaultFundUsiSet: O.toUndefined(superSelectionAppService.defaultFundUsi)
@@ -260,7 +260,7 @@ class TapSubscriber extends Subscriber {
260
260
  }
261
261
  }
262
262
 
263
- const AppVersion = '4.16.26580';
263
+ const AppVersion = '4.18.26731';
264
264
 
265
265
  // -------------------------------------------------------------------------------------
266
266
  // guards
@@ -4467,7 +4467,9 @@ const MyOwnFund = class {
4467
4467
  }, ref: (el) => (this.formElement = el), onInput: (_) => (this.isSubmitDisabled = !this.formElement.checkValidity()) }, h("div", { class: "p-4 sm:p-6 pb-6 sm:pb-8 border shadow-sm rounded-lg" }, h("p", { class: "sm:text-lg font-bold mb-3" }, "Fund details"), h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-3 sm:mb-4" }, h("div", { class: "flex" }, h("div", { class: "flex-shrink-0" }, h("img", { class: "h-5 w-5", src: getAssetPath('assets/icon-exclamation.svg') })), h("div", { class: "ml-2" }, h("ul", { class: "list-disc list-outside ml-6 space-y-2 text-sm text-yellow-700 leading-5" }, h("li", null, "Make sure you are a current member of the fund before completing this step."), h("li", null, "Please check that the fund USI is correct as some funds have similar names."))))), h("sss-my-own-fund-inputs", { myOwnFundForm: state$1.myOwnFundForm, showValidationErrors: this.formState === 'validated', onFormChanged: (event) => {
4468
4468
  state$1.myOwnFundForm = Object.assign(Object.assign({}, state$1.myOwnFundForm), event.detail);
4469
4469
  this.isNotAllInformationProvidedMessageVisible = false;
4470
- } }), this.isNotAllInformationProvidedMessageVisible && (h("div", { class: "mt-4 rounded-md bg-red-50 p-4 text-sm text-red-700" }, "All fields are required to complete submission. Make sure you have selected a fund."))), h("div", { class: "flex justify-center mt-8" }, h("div", { class: "sm:max-w-320 w-full" }, h("div", { class: "mb-4" }, h("sss-button", { fillWidth: true, promiseFn: () => this.handleSubmitForm(), disabled: this.isSubmitDisabled }, "Continue")), h("stencil-route-link", { url: SuperSelectionAppRoutes.ChoicePage }, h("sss-button", { fillWidth: true, variant: "secondary" }, "Back")))))))));
4470
+ } }), this.isNotAllInformationProvidedMessageVisible && (h("div", { class: "mt-4 rounded-md bg-red-50 p-4 text-sm text-red-700" }, "All fields are required to complete submission. Make sure you have selected a fund."))), h("div", { class: "flex justify-center mt-8" }, h("div", { class: "sm:max-w-320 w-full" }, h("div", { class: "mb-4", onClick:
4471
+ // user clicks on disabled button (div wrapper) then validation errors will show
4472
+ () => (this.formState = 'validated') }, h("sss-button", { fillWidth: true, promiseFn: () => this.handleSubmitForm(), disabled: this.isSubmitDisabled }, "Continue")), h("stencil-route-link", { url: SuperSelectionAppRoutes.ChoicePage }, h("sss-button", { fillWidth: true, variant: "secondary" }, "Back")))))))));
4471
4473
  }
4472
4474
  async handleSubmitForm() {
4473
4475
  this.formState = 'validated';
@@ -4511,6 +4513,7 @@ const MyOwnFundInputs = class {
4511
4513
  this.formChanged = createEvent(this, "formChanged", 7);
4512
4514
  this.MIN_SEARCH_STRING_LENGTH = 3;
4513
4515
  this.MAX_RECORD_COUNT = 25;
4516
+ this.NAME_PATTERN = "[A-Za-z][A-Za-z']+(( |-)[A-Za-z][A-Za-z']+)*";
4514
4517
  this.searchFundsAsync = async (searchBy) => {
4515
4518
  const response = await australianFundLookupService.searchFundsAsync(searchBy, this.MAX_RECORD_COUNT);
4516
4519
  switch (response.result) {
@@ -4537,15 +4540,15 @@ const MyOwnFundInputs = class {
4537
4540
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
4538
4541
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4539
4542
  .showValidationErrors
4540
- }, required: true, pattern: "[A-Za-z0-9]{4,16}", name: "memberNumber", id: "memberNumber", value: toUndefined(state$1.myOwnFundForm.memberNumber), onChange: (ev) => this.updateMemberNumber(ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid member number (only numbers and / or letters)"))), h("div", { class: "flex space-x-4" }, h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Given names(s)"), h("div", { class: "mt-1" }, h("input", { type: "text", class: {
4543
+ }, required: true, pattern: "[A-Za-z0-9]{4,16}", name: "memberNumber", id: "memberNumber", value: toUndefined(state$1.myOwnFundForm.memberNumber), onChange: (ev) => this.updateMemberNumber(ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid member number (only numbers and / or letters)"))), h("div", { class: "flex space-x-4" }, h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"), h("div", { class: "mt-1" }, h("input", { type: "text", class: {
4541
4544
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
4542
4545
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4543
4546
  .showValidationErrors
4544
- }, required: true, pattern: "^[A-Za-z][A-Za-z]+([\\ A-Za-z][A-Za-z\\-]+)*$", name: "memberFirstName", id: "memberFirstName", value: toUndefined(state$1.myOwnFundForm.memberFirstName), onChange: (ev) => this.updateMemberFirstName(ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid given name(s)"))), h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), h("div", { class: "mt-1" }, h("input", { type: "text", class: {
4547
+ }, required: true, pattern: this.NAME_PATTERN, name: "memberFirstName", id: "memberFirstName", value: toUndefined(state$1.myOwnFundForm.memberFirstName), onChange: (ev) => this.updateMemberFirstName(ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member given name(s) contains unsupported special characters"))), h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), h("div", { class: "mt-1" }, h("input", { type: "text", class: {
4545
4548
  'shadow-sm focus:ring-primary-focus focus:border-primary-base block w-full text-base sm:text-sm border-gray-300 rounded-md': true,
4546
4549
  'invalid:border-red-300 invalid:text-red-900 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4547
4550
  .showValidationErrors
4548
- }, required: true, pattern: "^[A-Za-z][A-Za-z]+([\\ A-Za-z][A-Za-z\\-]+)*$", name: "memberFamilyName", id: "memberFamilyName", value: toUndefined(state$1.myOwnFundForm.memberFamilyName), onChange: (ev) => this.updateMemberFamilyName(ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid last name"))))));
4551
+ }, required: true, pattern: this.NAME_PATTERN, name: "memberFamilyName", id: "memberFamilyName", value: toUndefined(state$1.myOwnFundForm.memberFamilyName), onChange: (ev) => this.updateMemberFamilyName(ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member last name contains unsupported special characters"))))));
4549
4552
  }
4550
4553
  updateFund(fund) {
4551
4554
  this.formChanged.emit({ fundUsi: some(fund.value), fundName: some(fund.label) });
@@ -4867,7 +4870,7 @@ const SelfManagedFund = class {
4867
4870
  render() {
4868
4871
  return (h(Host, null, h("sss-header-section", { currentPage: "own-fund" }), h("div", { class: "flex justify-center mt-11" }, h("sss-custom-fund", null, h("form", { noValidate: true, onSubmit: (ev) => ev.preventDefault(), class: {
4869
4872
  'was-validated': this.formState === 'validated'
4870
- }, ref: (el) => (this.formElement = el) }, h("div", { class: "p-4 sm:p-6 pb-6 sm:pb-8 border shadow-sm rounded-lg max-w-560" }, h("p", { class: "sm:text-lg font-bold" }, "Fund details"), h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 my-3" }, h("div", { class: "flex" }, h("div", { class: "flex-shrink-0" }, h("img", { class: "h-5 w-5", src: getAssetPath('assets/icon-exclamation.svg') })), h("div", { class: "ml-3 text-sm text-yellow-700 leading-5" }, "Make sure your Self-managed super fund (SMSF) is a registered fund before completing this step."))), h("sss-self-managed-fund-inputs", { fundForm: state$1.selfManagedFundForm, showValidationErrors: this.formState === 'validated', onFormChanged: (event) => {
4873
+ }, ref: (el) => (this.formElement = el), onInput: (_) => this.updateIsSubmitDisabled() }, h("div", { class: "p-4 sm:p-6 pb-6 sm:pb-8 border shadow-sm rounded-lg max-w-560" }, h("p", { class: "sm:text-lg font-bold" }, "Fund details"), h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 my-3" }, h("div", { class: "flex" }, h("div", { class: "flex-shrink-0" }, h("img", { class: "h-5 w-5", src: getAssetPath('assets/icon-exclamation.svg') })), h("div", { class: "ml-3 text-sm text-yellow-700 leading-5" }, "Make sure your Self-managed super fund (SMSF) is a registered fund before completing this step."))), h("sss-self-managed-fund-inputs", { fundForm: state$1.selfManagedFundForm, showValidationErrors: this.formState === 'validated', onFormChanged: (event) => {
4871
4874
  state$1.selfManagedFundForm = Object.assign(Object.assign({}, state$1.selfManagedFundForm), event.detail);
4872
4875
  if (event.detail.isAbnValid !== undefined)
4873
4876
  this.isAbnValid = event.detail.isAbnValid;
@@ -5020,6 +5023,7 @@ const SelfManagedFundInputs = class {
5020
5023
  ];
5021
5024
  this.bsbRegex = new RegExp(/^[0-9]{3}[0-9]{3}$/);
5022
5025
  this.bankAccountNumberRegex = new RegExp(/^[0-9]{2,10}$/);
5026
+ this.NAME_PATTERN = "[A-Za-z][A-Za-z']+(( |-)[A-Za-z][A-Za-z']+)*";
5023
5027
  }
5024
5028
  render() {
5025
5029
  const inputClass = {
@@ -5046,7 +5050,7 @@ const SelfManagedFundInputs = class {
5046
5050
  }, ref: (el) => (this.postcodeElement = el) })), h("div", { class: "flex-1 min-w-0" }, h("select", { class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-br-md shadow-none': true, 'text-gray-500': this.fundForm.state !== undefined }), name: "state", required: true, id: "state", onChange: (ev) => {
5047
5051
  this.updateFormField('state', ev.target.value.trim());
5048
5052
  this.updateAddressErrorMessage();
5049
- }, ref: (el) => (this.stateElement = el) }, h("option", { disabled: true, selected: this.fundForm.state !== undefined, value: "" }, "State"), this.stateOptions.map((s) => (h("option", { value: s.value, selected: this.fundForm.state === s.value }, s.label))))))), isSome(this.addressErrorMessage) && this.showValidationErrors && (h("div", { class: "mt-2 text-sm text-red-600" }, this.addressErrorMessage.value))), h("div", { class: "flex space-x-4" }, h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "memberFirstName", id: "memberFirstName", value: state$1.selfManagedFundForm.memberFirstName, onChange: (ev) => this.updateFormField('memberFirstName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid given name"))), h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "memberFamilyName", id: "memberFamilyName", value: state$1.selfManagedFundForm.memberFamilyName, onChange: (ev) => this.updateFormField('memberFamilyName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid last name")))), h("h3", { class: "text-lg font-bold mt-6" }, "Fund bank details"), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Account name"), h("div", { class: "mt-1" }, h("input", { type: "text", required: true, class: inputClass, name: "bankAccountName", minlength: "2", id: "bankAccountName", value: state$1.selfManagedFundForm.bankAccountName, onChange: (ev) => this.updateFormField('bankAccountName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account name"))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "BSB"), h("div", { class: "mt-1" }, h("input", { type: "text", required: true, class: inputClass, name: "bsb", id: "bsb", minlength: "6", maxlength: "7", inputmode: "numeric", onKeyUp: (ev) => this.updateCurrentBank(ev), pattern: this.bsbRegex.source, value: state$1.selfManagedFundForm.bsb }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid BSB"))), isSome(this.currentBank) && (h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Bank name"), h("div", { class: "mt-1 shadow-sm px-3 py-2 rounded-md border border-gray-300 bg-gray-50 text-gray-500 text-sm" }, this.currentBank.value))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Account number"), h("div", { class: "mt-1" }, h("input", { type: "text", required: true, class: inputClass, name: "bankAccountNumber", id: "bankAccountNumber", minlength: "2", maxlength: "11", pattern: this.bankAccountNumberRegex.source, inputmode: "numeric", value: state$1.selfManagedFundForm.bankAccountNumber, onKeyUp: (ev) => this.updateCurrentBankAccountNumber(ev), onChange: (ev) => this.updateFormField('bankAccountNumber', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account number")))));
5053
+ }, ref: (el) => (this.stateElement = el) }, h("option", { disabled: true, selected: this.fundForm.state !== undefined, value: "" }, "State"), this.stateOptions.map((s) => (h("option", { value: s.value, selected: this.fundForm.state === s.value }, s.label))))))), isSome(this.addressErrorMessage) && this.showValidationErrors && (h("div", { class: "mt-2 text-sm text-red-600" }, this.addressErrorMessage.value))), h("div", { class: "flex space-x-4" }, h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Given name(s)"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, pattern: this.NAME_PATTERN, name: "memberFirstName", id: "memberFirstName", value: state$1.selfManagedFundForm.memberFirstName, onChange: (ev) => this.updateFormField('memberFirstName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member given name(s) contains unsupported special characters"))), h("div", { class: "mt-3 w-1/2" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Last name"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, pattern: this.NAME_PATTERN, name: "memberFamilyName", id: "memberFamilyName", value: state$1.selfManagedFundForm.memberFamilyName, onChange: (ev) => this.updateFormField('memberFamilyName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Member last name contains unsupported special characters")))), h("h3", { class: "text-lg font-bold mt-6" }, "Fund bank details"), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Account name"), h("div", { class: "mt-1" }, h("input", { type: "text", required: true, class: inputClass, name: "bankAccountName", minlength: "2", id: "bankAccountName", value: state$1.selfManagedFundForm.bankAccountName, onChange: (ev) => this.updateFormField('bankAccountName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account name"))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "BSB"), h("div", { class: "mt-1" }, h("input", { type: "text", required: true, class: inputClass, name: "bsb", id: "bsb", minlength: "6", maxlength: "7", inputmode: "numeric", onKeyUp: (ev) => this.updateCurrentBank(ev), pattern: this.bsbRegex.source, value: state$1.selfManagedFundForm.bsb }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid BSB"))), isSome(this.currentBank) && (h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Bank name"), h("div", { class: "mt-1 shadow-sm px-3 py-2 rounded-md border border-gray-300 bg-gray-50 text-gray-500 text-sm" }, this.currentBank.value))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Account number"), h("div", { class: "mt-1" }, h("input", { type: "text", required: true, class: inputClass, name: "bankAccountNumber", id: "bankAccountNumber", minlength: "2", maxlength: "11", pattern: this.bankAccountNumberRegex.source, inputmode: "numeric", value: state$1.selfManagedFundForm.bankAccountNumber, onKeyUp: (ev) => this.updateCurrentBankAccountNumber(ev), onChange: (ev) => this.updateFormField('bankAccountNumber', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account number")))));
5050
5054
  }
5051
5055
  updateFormField(key, value) {
5052
5056
  this.formChanged.emit({ [key]: value });
@@ -5223,6 +5227,8 @@ class SlateIFrameBuilder {
5223
5227
  fundName: Slate.Name,
5224
5228
  handleSubmitFn: (standardChoiceFormSignature) => slateChoiceApi.submitSlateChoiceAsync({
5225
5229
  memberNumber: data.memberNumber,
5230
+ memberFirstName: data.memberFirstName,
5231
+ memberFamilyName: data.memberFamilyName,
5226
5232
  standardChoiceFormSignature,
5227
5233
  shownFunds: superSelectionAppService.promotedFunds,
5228
5234
  defaultFundUsiSet: Option.toUndefined(superSelectionAppService.defaultFundUsi)