@flarehr/apollo-super-selection 3.61.64036 → 3.64.64582

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 (22) hide show
  1. package/dist/lib/apollo-super-selection/apollo-super-selection.esm.js +1 -1
  2. package/dist/lib/apollo-super-selection/p-0f723eb4.system.js +1 -1
  3. package/dist/lib/apollo-super-selection/{p-11954377.entry.js → p-1c2481c7.entry.js} +4 -4
  4. package/dist/lib/apollo-super-selection/{p-4b744211.system.entry.js → p-5139d22d.system.entry.js} +18 -18
  5. package/dist/lib/cjs/apollo-super-selection.cjs.js +1 -1
  6. package/dist/lib/cjs/loader.cjs.js +1 -1
  7. package/dist/lib/cjs/sss-button_30.cjs.entry.js +34 -6
  8. package/dist/lib/collection/collection-manifest.json +1 -1
  9. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/self-managed-fund/abn-validation.js +11 -0
  10. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund-inputs.js +18 -10
  11. package/dist/lib/collection/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund.js +13 -2
  12. package/dist/lib/esm/apollo-super-selection.js +1 -1
  13. package/dist/lib/esm/loader.js +1 -1
  14. package/dist/lib/esm/sss-button_30.entry.js +34 -6
  15. package/dist/lib/esm-es5/apollo-super-selection.js +1 -1
  16. package/dist/lib/esm-es5/loader.js +1 -1
  17. package/dist/lib/esm-es5/sss-button_30.entry.js +1 -1
  18. package/dist/lib/types/components/super-selection-app/funds/custom-fund/self-managed-fund/abn-validation.d.ts +1 -0
  19. package/dist/lib/types/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund-inputs.d.ts +6 -1
  20. package/dist/lib/types/components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund.d.ts +2 -0
  21. package/dist/lib/types/components.d.ts +2 -1
  22. package/package.json +1 -1
@@ -18,5 +18,5 @@ const patchBrowser = () => {
18
18
 
19
19
  patchBrowser().then(options => {
20
20
  appGlobals.globalScripts();
21
- return index.bootstrapLazy([["context-consumer.cjs",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content.cjs",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title.cjs",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt.cjs",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect.cjs",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30.cjs",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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"],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
21
+ return index.bootstrapLazy([["context-consumer.cjs",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content.cjs",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title.cjs",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt.cjs",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect.cjs",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30.cjs",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
22
22
  });
@@ -17,7 +17,7 @@ const defineCustomElements = (win, options) => {
17
17
  if (typeof window === 'undefined') return Promise.resolve();
18
18
  return patchEsm().then(() => {
19
19
  appGlobals.globalScripts();
20
- return index.bootstrapLazy([["context-consumer.cjs",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content.cjs",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title.cjs",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt.cjs",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect.cjs",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30.cjs",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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"],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
20
+ return index.bootstrapLazy([["context-consumer.cjs",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content.cjs",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title.cjs",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt.cjs",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect.cjs",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30.cjs",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
21
21
  });
22
22
  };
23
23
 
@@ -264,7 +264,7 @@ class TapSubscriber extends datoramaAkita.Subscriber {
264
264
  }
265
265
  }
266
266
 
267
- const AppVersion = '3.61.64036';
267
+ const AppVersion = '3.64.64582';
268
268
 
269
269
  // -------------------------------------------------------------------------------------
270
270
  // guards
@@ -4721,11 +4721,24 @@ const PromotedFundJoinV2Page = class {
4721
4721
  }
4722
4722
  };
4723
4723
 
4724
+ function validateAbn(abn) {
4725
+ const digitArray = abn.split('').map(Number);
4726
+ const isAllDigits = digitArray.every((d) => !isNaN(d));
4727
+ const weightingFactors = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
4728
+ if (!isAllDigits || digitArray.length !== weightingFactors.length) {
4729
+ return false;
4730
+ }
4731
+ digitArray[0]--;
4732
+ const sum = digitArray.reduce((sum, digit, i) => sum + digit * weightingFactors[i], 0);
4733
+ return sum % 89 === 0;
4734
+ }
4735
+
4724
4736
  const SelfManagedFund = class {
4725
4737
  constructor(hostRef) {
4726
4738
  index.registerInstance(this, hostRef);
4727
4739
  this.showSmsfNotSupported = false;
4728
4740
  this.isSubmitDisabled = true;
4741
+ this.isAbnValid = validateAbn(state$1.selfManagedFundForm.fundAbn);
4729
4742
  this.eventTrackingService = EventTrackingService.Instance;
4730
4743
  this.success = () => {
4731
4744
  navigationService.navigateInternallyToStandardChoice({
@@ -4756,6 +4769,7 @@ const SelfManagedFund = class {
4756
4769
  };
4757
4770
  }
4758
4771
  componentDidLoad() {
4772
+ this.updateIsSubmitDisabled();
4759
4773
  return this.eventTrackingService.TrackSmsfSuperFundDetailViewedAsync({
4760
4774
  promotedFundsShown: superSelectionAppService.promotedFunds
4761
4775
  });
@@ -4763,14 +4777,22 @@ const SelfManagedFund = class {
4763
4777
  render() {
4764
4778
  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: {
4765
4779
  'was-validated': this.formState === 'validated'
4766
- }, ref: (el) => (this.formElement = el), onInput: (_) => (this.isSubmitDisabled = !this.formElement.checkValidity()) }, index.h("div", { class: "p-4 sm:p-6 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) => {
4780
+ }, ref: (el) => (this.formElement = el) }, index.h("div", { class: "p-4 sm:p-6 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) => {
4767
4781
  state$1.selfManagedFundForm = Object.assign(Object.assign({}, state$1.selfManagedFundForm), event.detail);
4768
- } })), 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")))), this.showSmsfNotSupported && (index.h("sss-smsf-not-supported-dialog", { ref: (el) => (this.notSupportedDialog = el), onContinue: this.success })))))));
4782
+ if (event.detail.isAbnValid !== undefined)
4783
+ this.isAbnValid = event.detail.isAbnValid;
4784
+ this.updateIsSubmitDisabled();
4785
+ } })), 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:
4786
+ // user clicks on disabled button (div wrapper) then validation errors will show
4787
+ () => (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")))), this.showSmsfNotSupported && (index.h("sss-smsf-not-supported-dialog", { ref: (el) => (this.notSupportedDialog = el), onContinue: this.success })))))));
4769
4788
  }
4770
4789
  componentDidRender() {
4771
4790
  var _a;
4772
4791
  this.showSmsfNotSupported && ((_a = this.notSupportedDialog) === null || _a === void 0 ? void 0 : _a.scrollIntoView());
4773
4792
  }
4793
+ updateIsSubmitDisabled() {
4794
+ this.isSubmitDisabled = !this.formElement.checkValidity() || !this.isAbnValid;
4795
+ }
4774
4796
  async handleSubmitForm() {
4775
4797
  this.formState = 'validated';
4776
4798
  if (this.formElement.checkValidity()) {
@@ -4901,6 +4923,8 @@ const SelfManagedFundInputs = class {
4901
4923
  constructor(hostRef) {
4902
4924
  index.registerInstance(this, hostRef);
4903
4925
  this.formChanged = index.createEvent(this, "formChanged", 7);
4926
+ this.isAbnValid = false;
4927
+ this.isAbnTouched = false;
4904
4928
  this.currentBank = none;
4905
4929
  this.addressErrorMessage = none;
4906
4930
  this.stateOptions = [
@@ -4922,19 +4946,23 @@ const SelfManagedFundInputs = class {
4922
4946
  'invalid:border-red-300 invalid:text-red-900 invalid:placeholder-red-300 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4923
4947
  .showValidationErrors
4924
4948
  };
4925
- return (index.h("div", null, index.h("div", null, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Fund name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundName", id: "fundName", value: state$1.selfManagedFundForm.fundName, onChange: (ev) => this.updateFormField('fundName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund name"))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Fund ABN"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundAbn", id: "fundAbn", value: state$1.selfManagedFundForm.fundAbn, onChange: (ev) => this.updateFormField('fundAbn', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund ABN"))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Electronic service address alias (ESA)"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundEsa", id: "fundEsa", value: state$1.selfManagedFundForm.fundEsa, onChange: (ev) => this.updateFormField('fundEsa', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund ESA"))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Fund address"), index.h("div", { class: "mt-1 rounded-md shadow-sm -space-y-px" }, index.h("input", { placeholder: "Address line 1", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-t-md shadow-none': true }), required: true, minlength: "2", name: "addressLine1", id: "addressLine1", value: state$1.selfManagedFundForm.addressLine1, onChange: (ev) => {
4949
+ return (index.h("div", null, index.h("div", null, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Fund name"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundName", id: "fundName", value: state$1.selfManagedFundForm.fundName, onChange: (ev) => this.updateFormField('fundName', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund name"))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Fund ABN"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundAbn", id: "fundAbn", value: state$1.selfManagedFundForm.fundAbn, inputmode: "numeric", pattern: "[0-9]*", onKeyUp: (ev) => {
4950
+ this.updateFormField('fundAbn', ev.target.value.trim());
4951
+ this.isAbnValid = validateAbn(ev.target.value);
4952
+ this.updateFormField('isAbnValid', this.isAbnValid);
4953
+ }, onBlur: () => (this.isAbnTouched = true) }), (this.isAbnTouched || this.showValidationErrors) && !this.isAbnValid && (index.h("div", { class: "mt-2 text-sm text-red-600" }, "Enter a valid fund ABN (digits only)")))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Electronic service address alias (ESA)"), index.h("div", { class: "mt-1" }, index.h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundEsa", id: "fundEsa", value: state$1.selfManagedFundForm.fundEsa, onChange: (ev) => this.updateFormField('fundEsa', ev.target.value.trim()) }), index.h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund ESA"))), index.h("div", { class: "mt-3" }, index.h("label", { class: "text-sm font-medium text-gray-700" }, "Fund address"), index.h("div", { class: "mt-1 rounded-md shadow-sm -space-y-px" }, index.h("input", { placeholder: "Address line 1", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-t-md shadow-none': true }), required: true, minlength: "2", name: "addressLine1", id: "addressLine1", value: state$1.selfManagedFundForm.addressLine1, onChange: (ev) => {
4926
4954
  this.updateFormField('addressLine1', ev.target.value.trim());
4927
4955
  this.updateAddressErrorMessage();
4928
4956
  }, ref: (el) => (this.addressLine1Element = el) }), index.h("input", { placeholder: "Address line 2 (optional)", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none shadow-none': true }), name: "addressLine2", id: "addressLine2", value: state$1.selfManagedFundForm.addressLine2, onChange: (ev) => this.updateFormField('addressLine2', ev.target.value.trim()) }), index.h("input", { placeholder: "City/suburb", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none shadow-none': true }), name: "city", required: true, id: "city", value: state$1.selfManagedFundForm.city, onChange: (ev) => {
4929
4957
  this.updateFormField('city', ev.target.value.trim());
4930
4958
  this.updateAddressErrorMessage();
4931
- }, ref: (el) => (this.cityElement = el) }), index.h("div", { class: "flex -space-x-px" }, index.h("div", { class: "w-1/2 flex-1 min-w-0" }, index.h("input", { placeholder: "Postcode", type: "text", required: true, class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-bl-md shadow-none': true }), name: "postcode", minlength: "4", maxlength: "4", pattern: "[0-9]{4}", id: "postcode", value: state$1.selfManagedFundForm.postcode, onChange: (ev) => {
4959
+ }, ref: (el) => (this.cityElement = el) }), index.h("div", { class: "flex -space-x-px" }, index.h("div", { class: "w-1/2 flex-1 min-w-0" }, index.h("input", { placeholder: "Postcode", type: "text", required: true, class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-bl-md shadow-none': true }), name: "postcode", minlength: "4", maxlength: "4", pattern: "[0-9]{4}", id: "postcode", value: state$1.selfManagedFundForm.postcode, inputmode: "numeric", onChange: (ev) => {
4932
4960
  this.updateFormField('postcode', ev.target.value.trim());
4933
4961
  this.updateAddressErrorMessage();
4934
4962
  }, 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) => {
4935
4963
  this.updateFormField('state', ev.target.value.trim());
4936
4964
  this.updateAddressErrorMessage();
4937
- }, 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("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", 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, 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")))));
4965
+ }, 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("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")))));
4938
4966
  }
4939
4967
  updateFormField(key, value) {
4940
4968
  this.formChanged.emit({ [key]: value });
@@ -2,6 +2,7 @@
2
2
  "entries": [
3
3
  "./components/super-selection-app/misc/button.js",
4
4
  "./components/super-selection-app/misc/dropdown-async.js",
5
+ "./components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund-inputs.js",
5
6
  "./components/super-selection-app/super-selection-app.js",
6
7
  "./components/app-host/loading-page.js",
7
8
  "./components/app-host/super-selection-app-host.js",
@@ -13,7 +14,6 @@
13
14
  "./components/super-selection-app/funds/custom-fund/default-fund/default-fund.js",
14
15
  "./components/super-selection-app/funds/custom-fund/my-own-fund/my-own-fund-inputs.js",
15
16
  "./components/super-selection-app/funds/custom-fund/my-own-fund/my-own-fund.js",
16
- "./components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund-inputs.js",
17
17
  "./components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-fund.js",
18
18
  "./components/super-selection-app/funds/custom-fund/self-managed-fund/self-managed-not-supported.js",
19
19
  "./components/super-selection-app/funds/promoted-fund/promoted-fund-join-v1-page.js",
@@ -0,0 +1,11 @@
1
+ export function validateAbn(abn) {
2
+ const digitArray = abn.split('').map(Number);
3
+ const isAllDigits = digitArray.every((d) => !isNaN(d));
4
+ const weightingFactors = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
5
+ if (!isAllDigits || digitArray.length !== weightingFactors.length) {
6
+ return false;
7
+ }
8
+ digitArray[0]--;
9
+ const sum = digitArray.reduce((sum, digit, i) => sum + digit * weightingFactors[i], 0);
10
+ return sum % 89 === 0;
11
+ }
@@ -1,9 +1,12 @@
1
1
  import { Component, Event, h, Prop, State } from '@stencil/core';
2
2
  import { isNone, isSome, none, some } from 'fp-ts/Option';
3
3
  import customFundState from '../custom-fund.store';
4
+ import { validateAbn } from './abn-validation';
4
5
  import bsbNumbers from './bankBsbNumbers';
5
6
  export class SelfManagedFundInputs {
6
7
  constructor() {
8
+ this.isAbnValid = false;
9
+ this.isAbnTouched = false;
7
10
  this.currentBank = none;
8
11
  this.addressErrorMessage = none;
9
12
  this.stateOptions = [
@@ -34,8 +37,12 @@ export class SelfManagedFundInputs {
34
37
  h("div", { class: "mt-3" },
35
38
  h("label", { class: "text-sm font-medium text-gray-700" }, "Fund ABN"),
36
39
  h("div", { class: "mt-1" },
37
- h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundAbn", id: "fundAbn", value: customFundState.selfManagedFundForm.fundAbn, onChange: (ev) => this.updateFormField('fundAbn', ev.target.value.trim()) }),
38
- h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund ABN"))),
40
+ h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundAbn", id: "fundAbn", value: customFundState.selfManagedFundForm.fundAbn, inputmode: "numeric", pattern: "[0-9]*", onKeyUp: (ev) => {
41
+ this.updateFormField('fundAbn', ev.target.value.trim());
42
+ this.isAbnValid = validateAbn(ev.target.value);
43
+ this.updateFormField('isAbnValid', this.isAbnValid);
44
+ }, onBlur: () => (this.isAbnTouched = true) }),
45
+ (this.isAbnTouched || this.showValidationErrors) && !this.isAbnValid && (h("div", { class: "mt-2 text-sm text-red-600" }, "Enter a valid fund ABN (digits only)")))),
39
46
  h("div", { class: "mt-3" },
40
47
  h("label", { class: "text-sm font-medium text-gray-700" }, "Electronic service address alias (ESA)"),
41
48
  h("div", { class: "mt-1" },
@@ -55,7 +62,7 @@ export class SelfManagedFundInputs {
55
62
  }, ref: (el) => (this.cityElement = el) }),
56
63
  h("div", { class: "flex -space-x-px" },
57
64
  h("div", { class: "w-1/2 flex-1 min-w-0" },
58
- h("input", { placeholder: "Postcode", type: "text", required: true, class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-bl-md shadow-none': true }), name: "postcode", minlength: "4", maxlength: "4", pattern: "[0-9]{4}", id: "postcode", value: customFundState.selfManagedFundForm.postcode, onChange: (ev) => {
65
+ h("input", { placeholder: "Postcode", type: "text", required: true, class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-bl-md shadow-none': true }), name: "postcode", minlength: "4", maxlength: "4", pattern: "[0-9]{4}", id: "postcode", value: customFundState.selfManagedFundForm.postcode, inputmode: "numeric", onChange: (ev) => {
59
66
  this.updateFormField('postcode', ev.target.value.trim());
60
67
  this.updateAddressErrorMessage();
61
68
  }, ref: (el) => (this.postcodeElement = el) })),
@@ -76,7 +83,7 @@ export class SelfManagedFundInputs {
76
83
  h("div", { class: "mt-3" },
77
84
  h("label", { class: "text-sm font-medium text-gray-700" }, "BSB"),
78
85
  h("div", { class: "mt-1" },
79
- h("input", { type: "text", required: true, class: inputClass, name: "bsb", id: "bsb", minlength: "6", maxlength: "7", onKeyUp: (ev) => this.updateCurrentBank(ev), pattern: this.bsbRegex.source, value: customFundState.selfManagedFundForm.bsb }),
86
+ 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: customFundState.selfManagedFundForm.bsb }),
80
87
  h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid BSB"))),
81
88
  isSome(this.currentBank) && (h("div", { class: "mt-3" },
82
89
  h("label", { class: "text-sm font-medium text-gray-700" }, "Bank name"),
@@ -84,7 +91,7 @@ export class SelfManagedFundInputs {
84
91
  h("div", { class: "mt-3" },
85
92
  h("label", { class: "text-sm font-medium text-gray-700" }, "Account number"),
86
93
  h("div", { class: "mt-1" },
87
- h("input", { type: "text", required: true, class: inputClass, name: "bankAccountNumber", id: "bankAccountNumber", minlength: "2", maxlength: "11", pattern: this.bankAccountNumberRegex.source, value: customFundState.selfManagedFundForm.bankAccountNumber, onKeyUp: (ev) => this.updateCurrentBankAccountNumber(ev), onChange: (ev) => this.updateFormField('bankAccountNumber', ev.target.value.trim()) }),
94
+ h("input", { type: "text", required: true, class: inputClass, name: "bankAccountNumber", id: "bankAccountNumber", minlength: "2", maxlength: "11", pattern: this.bankAccountNumberRegex.source, inputmode: "numeric", value: customFundState.selfManagedFundForm.bankAccountNumber, onKeyUp: (ev) => this.updateCurrentBankAccountNumber(ev), onChange: (ev) => this.updateFormField('bankAccountNumber', ev.target.value.trim()) }),
88
95
  h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid bank account number")))));
89
96
  }
90
97
  updateFormField(key, value) {
@@ -171,6 +178,8 @@ export class SelfManagedFundInputs {
171
178
  }
172
179
  }; }
173
180
  static get states() { return {
181
+ "isAbnValid": {},
182
+ "isAbnTouched": {},
174
183
  "currentBank": {},
175
184
  "addressErrorMessage": {}
176
185
  }; }
@@ -185,15 +194,14 @@ export class SelfManagedFundInputs {
185
194
  "text": ""
186
195
  },
187
196
  "complexType": {
188
- "original": "Partial<SelfManagedFundForm>",
189
- "resolved": "{ fundName?: string | undefined; fundAbn?: string | undefined; fundEsa?: string | undefined; addressLine1?: string | undefined; addressLine2?: string | undefined; state?: string | undefined; postcode?: string | undefined; city?: string | undefined; bankAccountName?: string | undefined; bsb?: string | undefined; bankAccountNumber?: string | undefined; }",
197
+ "original": "Partial<FormChangedEvent>",
198
+ "resolved": "{ isAbnValid?: boolean | undefined; fundName?: string | undefined; fundAbn?: string | undefined; fundEsa?: string | undefined; addressLine1?: string | undefined; addressLine2?: string | undefined; state?: string | undefined; postcode?: string | undefined; city?: string | undefined; bankAccountName?: string | undefined; bsb?: string | undefined; bankAccountNumber?: string | undefined; }",
190
199
  "references": {
191
200
  "Partial": {
192
201
  "location": "global"
193
202
  },
194
- "SelfManagedFundForm": {
195
- "location": "import",
196
- "path": "./self-managed-fund.form"
203
+ "FormChangedEvent": {
204
+ "location": "local"
197
205
  }
198
206
  }
199
207
  }
@@ -6,10 +6,12 @@ import { SuperSelectionAppRoutes } from '../../../services/super-selection-app.r
6
6
  import superSelectionAppService from '../../../services/super-selection-app.service';
7
7
  import customFundChoiceApi from '../api/custom-fund-choice.api';
8
8
  import customFundState from '../custom-fund.store';
9
+ import { validateAbn } from './abn-validation';
9
10
  export class SelfManagedFund {
10
11
  constructor() {
11
12
  this.showSmsfNotSupported = false;
12
13
  this.isSubmitDisabled = true;
14
+ this.isAbnValid = validateAbn(customFundState.selfManagedFundForm.fundAbn);
13
15
  this.eventTrackingService = EventTrackingService.Instance;
14
16
  this.success = () => {
15
17
  navigationService.navigateInternallyToStandardChoice({
@@ -40,6 +42,7 @@ export class SelfManagedFund {
40
42
  };
41
43
  }
42
44
  componentDidLoad() {
45
+ this.updateIsSubmitDisabled();
43
46
  return this.eventTrackingService.TrackSmsfSuperFundDetailViewedAsync({
44
47
  promotedFundsShown: superSelectionAppService.promotedFunds
45
48
  });
@@ -51,7 +54,7 @@ export class SelfManagedFund {
51
54
  h("sss-custom-fund", null,
52
55
  h("form", { noValidate: true, onSubmit: (ev) => ev.preventDefault(), class: {
53
56
  'was-validated': this.formState === 'validated'
54
- }, ref: (el) => (this.formElement = el), onInput: (_) => (this.isSubmitDisabled = !this.formElement.checkValidity()) },
57
+ }, ref: (el) => (this.formElement = el) },
55
58
  h("div", { class: "p-4 sm:p-6 border shadow-sm rounded-lg max-w-560" },
56
59
  h("p", { class: "sm:text-lg font-bold" }, "Fund details"),
57
60
  h("div", { class: "bg-yellow-50 border-l-4 border-yellow-400 p-4 my-3" },
@@ -61,10 +64,15 @@ export class SelfManagedFund {
61
64
  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."))),
62
65
  h("sss-self-managed-fund-inputs", { fundForm: customFundState.selfManagedFundForm, showValidationErrors: this.formState === 'validated', onFormChanged: (event) => {
63
66
  customFundState.selfManagedFundForm = Object.assign(Object.assign({}, customFundState.selfManagedFundForm), event.detail);
67
+ if (event.detail.isAbnValid !== undefined)
68
+ this.isAbnValid = event.detail.isAbnValid;
69
+ this.updateIsSubmitDisabled();
64
70
  } })),
65
71
  h("div", { class: "flex justify-center mt-8" },
66
72
  h("div", { class: "sm:max-w-320 w-full" },
67
- h("div", { class: "mb-4" },
73
+ h("div", { class: "mb-4", onClick:
74
+ // user clicks on disabled button (div wrapper) then validation errors will show
75
+ () => (this.formState = 'validated') },
68
76
  h("sss-button", { fillWidth: true, promiseFn: () => this.handleSubmitForm(), disabled: this.isSubmitDisabled }, "Continue")),
69
77
  h("stencil-route-link", { url: SuperSelectionAppRoutes.ChoicePage },
70
78
  h("sss-button", { fillWidth: true, variant: "secondary" }, "Back")))),
@@ -74,6 +82,9 @@ export class SelfManagedFund {
74
82
  var _a;
75
83
  this.showSmsfNotSupported && ((_a = this.notSupportedDialog) === null || _a === void 0 ? void 0 : _a.scrollIntoView());
76
84
  }
85
+ updateIsSubmitDisabled() {
86
+ this.isSubmitDisabled = !this.formElement.checkValidity() || !this.isAbnValid;
87
+ }
77
88
  async handleSubmitForm() {
78
89
  this.formState = 'validated';
79
90
  if (this.formElement.checkValidity()) {
@@ -16,5 +16,5 @@ const patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(options => {
18
18
  globalScripts();
19
- return bootstrapLazy([["context-consumer",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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"],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
19
+ return bootstrapLazy([["context-consumer",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
20
20
  });
@@ -13,7 +13,7 @@ const defineCustomElements = (win, options) => {
13
13
  if (typeof window === 'undefined') return Promise.resolve();
14
14
  return patchEsm().then(() => {
15
15
  globalScripts();
16
- return bootstrapLazy([["context-consumer",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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"],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
16
+ return bootstrapLazy([["context-consumer",[[0,"context-consumer",{"context":[16],"renderer":[16],"subscribe":[16],"unsubscribe":[32]}]]],["stencil-async-content",[[0,"stencil-async-content",{"documentLocation":[1,"document-location"],"content":[32]}]]],["stencil-route-title",[[0,"stencil-route-title",{"titleSuffix":[1,"title-suffix"],"pageTitle":[1,"page-title"]}]]],["stencil-router-prompt",[[0,"stencil-router-prompt",{"when":[4],"message":[1],"history":[16],"unblock":[32]}]]],["stencil-router-redirect",[[0,"stencil-router-redirect",{"history":[16],"root":[1],"url":[1]}]]],["sss-button_30",[[0,"sss-my-own-fund",{"history":[16],"formState":[32],"isNotAllInformationProvidedMessageVisible":[32],"isSubmitDisabled":[32]}],[0,"sss-self-managed-fund",{"history":[16],"formState":[32],"showSmsfNotSupported":[32],"isSubmitDisabled":[32]}],[0,"sss-super-choice-page",{"history":[16],"promotedFunds":[32]}],[1,"super-selection-app-host",{"sessionState":[32],"jwt":[32],"appConfiguration":[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",{"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-smsf-not-supported-dialog"],[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],"currentBank":[32],"addressErrorMessage":[32]}],[0,"sss-super-choice-item-top",{"name":[1],"logo":[1],"features":[1],"featureSubText":[1,"feature-sub-text"]}],[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],"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"]}]]]], options);
17
17
  });
18
18
  };
19
19
 
@@ -260,7 +260,7 @@ class TapSubscriber extends Subscriber {
260
260
  }
261
261
  }
262
262
 
263
- const AppVersion = '3.61.64036';
263
+ const AppVersion = '3.64.64582';
264
264
 
265
265
  // -------------------------------------------------------------------------------------
266
266
  // guards
@@ -4717,11 +4717,24 @@ const PromotedFundJoinV2Page = class {
4717
4717
  }
4718
4718
  };
4719
4719
 
4720
+ function validateAbn(abn) {
4721
+ const digitArray = abn.split('').map(Number);
4722
+ const isAllDigits = digitArray.every((d) => !isNaN(d));
4723
+ const weightingFactors = [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
4724
+ if (!isAllDigits || digitArray.length !== weightingFactors.length) {
4725
+ return false;
4726
+ }
4727
+ digitArray[0]--;
4728
+ const sum = digitArray.reduce((sum, digit, i) => sum + digit * weightingFactors[i], 0);
4729
+ return sum % 89 === 0;
4730
+ }
4731
+
4720
4732
  const SelfManagedFund = class {
4721
4733
  constructor(hostRef) {
4722
4734
  registerInstance(this, hostRef);
4723
4735
  this.showSmsfNotSupported = false;
4724
4736
  this.isSubmitDisabled = true;
4737
+ this.isAbnValid = validateAbn(state$1.selfManagedFundForm.fundAbn);
4725
4738
  this.eventTrackingService = EventTrackingService.Instance;
4726
4739
  this.success = () => {
4727
4740
  navigationService.navigateInternallyToStandardChoice({
@@ -4752,6 +4765,7 @@ const SelfManagedFund = class {
4752
4765
  };
4753
4766
  }
4754
4767
  componentDidLoad() {
4768
+ this.updateIsSubmitDisabled();
4755
4769
  return this.eventTrackingService.TrackSmsfSuperFundDetailViewedAsync({
4756
4770
  promotedFundsShown: superSelectionAppService.promotedFunds
4757
4771
  });
@@ -4759,14 +4773,22 @@ const SelfManagedFund = class {
4759
4773
  render() {
4760
4774
  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: {
4761
4775
  'was-validated': this.formState === 'validated'
4762
- }, ref: (el) => (this.formElement = el), onInput: (_) => (this.isSubmitDisabled = !this.formElement.checkValidity()) }, h("div", { class: "p-4 sm:p-6 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) => {
4776
+ }, ref: (el) => (this.formElement = el) }, h("div", { class: "p-4 sm:p-6 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) => {
4763
4777
  state$1.selfManagedFundForm = Object.assign(Object.assign({}, state$1.selfManagedFundForm), event.detail);
4764
- } })), 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")))), this.showSmsfNotSupported && (h("sss-smsf-not-supported-dialog", { ref: (el) => (this.notSupportedDialog = el), onContinue: this.success })))))));
4778
+ if (event.detail.isAbnValid !== undefined)
4779
+ this.isAbnValid = event.detail.isAbnValid;
4780
+ this.updateIsSubmitDisabled();
4781
+ } })), h("div", { class: "flex justify-center mt-8" }, h("div", { class: "sm:max-w-320 w-full" }, h("div", { class: "mb-4", onClick:
4782
+ // user clicks on disabled button (div wrapper) then validation errors will show
4783
+ () => (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")))), this.showSmsfNotSupported && (h("sss-smsf-not-supported-dialog", { ref: (el) => (this.notSupportedDialog = el), onContinue: this.success })))))));
4765
4784
  }
4766
4785
  componentDidRender() {
4767
4786
  var _a;
4768
4787
  this.showSmsfNotSupported && ((_a = this.notSupportedDialog) === null || _a === void 0 ? void 0 : _a.scrollIntoView());
4769
4788
  }
4789
+ updateIsSubmitDisabled() {
4790
+ this.isSubmitDisabled = !this.formElement.checkValidity() || !this.isAbnValid;
4791
+ }
4770
4792
  async handleSubmitForm() {
4771
4793
  this.formState = 'validated';
4772
4794
  if (this.formElement.checkValidity()) {
@@ -4897,6 +4919,8 @@ const SelfManagedFundInputs = class {
4897
4919
  constructor(hostRef) {
4898
4920
  registerInstance(this, hostRef);
4899
4921
  this.formChanged = createEvent(this, "formChanged", 7);
4922
+ this.isAbnValid = false;
4923
+ this.isAbnTouched = false;
4900
4924
  this.currentBank = none;
4901
4925
  this.addressErrorMessage = none;
4902
4926
  this.stateOptions = [
@@ -4918,19 +4942,23 @@ const SelfManagedFundInputs = class {
4918
4942
  'invalid:border-red-300 invalid:text-red-900 invalid:placeholder-red-300 invalid:focus:ring-red-500 invalid:focus:border-red-500': this
4919
4943
  .showValidationErrors
4920
4944
  };
4921
- return (h("div", null, h("div", null, h("label", { class: "text-sm font-medium text-gray-700" }, "Fund name"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundName", id: "fundName", value: state$1.selfManagedFundForm.fundName, onChange: (ev) => this.updateFormField('fundName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund name"))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Fund ABN"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundAbn", id: "fundAbn", value: state$1.selfManagedFundForm.fundAbn, onChange: (ev) => this.updateFormField('fundAbn', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund ABN"))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Electronic service address alias (ESA)"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundEsa", id: "fundEsa", value: state$1.selfManagedFundForm.fundEsa, onChange: (ev) => this.updateFormField('fundEsa', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund ESA"))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Fund address"), h("div", { class: "mt-1 rounded-md shadow-sm -space-y-px" }, h("input", { placeholder: "Address line 1", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-t-md shadow-none': true }), required: true, minlength: "2", name: "addressLine1", id: "addressLine1", value: state$1.selfManagedFundForm.addressLine1, onChange: (ev) => {
4945
+ return (h("div", null, h("div", null, h("label", { class: "text-sm font-medium text-gray-700" }, "Fund name"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundName", id: "fundName", value: state$1.selfManagedFundForm.fundName, onChange: (ev) => this.updateFormField('fundName', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund name"))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Fund ABN"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundAbn", id: "fundAbn", value: state$1.selfManagedFundForm.fundAbn, inputmode: "numeric", pattern: "[0-9]*", onKeyUp: (ev) => {
4946
+ this.updateFormField('fundAbn', ev.target.value.trim());
4947
+ this.isAbnValid = validateAbn(ev.target.value);
4948
+ this.updateFormField('isAbnValid', this.isAbnValid);
4949
+ }, onBlur: () => (this.isAbnTouched = true) }), (this.isAbnTouched || this.showValidationErrors) && !this.isAbnValid && (h("div", { class: "mt-2 text-sm text-red-600" }, "Enter a valid fund ABN (digits only)")))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Electronic service address alias (ESA)"), h("div", { class: "mt-1" }, h("input", { type: "text", class: inputClass, required: true, minlength: "2", name: "fundEsa", id: "fundEsa", value: state$1.selfManagedFundForm.fundEsa, onChange: (ev) => this.updateFormField('fundEsa', ev.target.value.trim()) }), h("div", { class: "invalid-feedback mt-2 text-sm text-red-600" }, "Enter a valid fund ESA"))), h("div", { class: "mt-3" }, h("label", { class: "text-sm font-medium text-gray-700" }, "Fund address"), h("div", { class: "mt-1 rounded-md shadow-sm -space-y-px" }, h("input", { placeholder: "Address line 1", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-t-md shadow-none': true }), required: true, minlength: "2", name: "addressLine1", id: "addressLine1", value: state$1.selfManagedFundForm.addressLine1, onChange: (ev) => {
4922
4950
  this.updateFormField('addressLine1', ev.target.value.trim());
4923
4951
  this.updateAddressErrorMessage();
4924
4952
  }, ref: (el) => (this.addressLine1Element = el) }), h("input", { placeholder: "Address line 2 (optional)", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none shadow-none': true }), name: "addressLine2", id: "addressLine2", value: state$1.selfManagedFundForm.addressLine2, onChange: (ev) => this.updateFormField('addressLine2', ev.target.value.trim()) }), h("input", { placeholder: "City/suburb", type: "text", class: Object.assign(Object.assign({}, inputClass), { 'rounded-none shadow-none': true }), name: "city", required: true, id: "city", value: state$1.selfManagedFundForm.city, onChange: (ev) => {
4925
4953
  this.updateFormField('city', ev.target.value.trim());
4926
4954
  this.updateAddressErrorMessage();
4927
- }, ref: (el) => (this.cityElement = el) }), h("div", { class: "flex -space-x-px" }, h("div", { class: "w-1/2 flex-1 min-w-0" }, h("input", { placeholder: "Postcode", type: "text", required: true, class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-bl-md shadow-none': true }), name: "postcode", minlength: "4", maxlength: "4", pattern: "[0-9]{4}", id: "postcode", value: state$1.selfManagedFundForm.postcode, onChange: (ev) => {
4955
+ }, ref: (el) => (this.cityElement = el) }), h("div", { class: "flex -space-x-px" }, h("div", { class: "w-1/2 flex-1 min-w-0" }, h("input", { placeholder: "Postcode", type: "text", required: true, class: Object.assign(Object.assign({}, inputClass), { 'rounded-none rounded-bl-md shadow-none': true }), name: "postcode", minlength: "4", maxlength: "4", pattern: "[0-9]{4}", id: "postcode", value: state$1.selfManagedFundForm.postcode, inputmode: "numeric", onChange: (ev) => {
4928
4956
  this.updateFormField('postcode', ev.target.value.trim());
4929
4957
  this.updateAddressErrorMessage();
4930
4958
  }, 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) => {
4931
4959
  this.updateFormField('state', ev.target.value.trim());
4932
4960
  this.updateAddressErrorMessage();
4933
- }, 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("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", 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, 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")))));
4961
+ }, 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("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")))));
4934
4962
  }
4935
4963
  updateFormField(key, value) {
4936
4964
  this.formChanged.emit({ [key]: value });