@salesforce/ui-bundle-template-app-angular-template-b2x 11.31.10 → 11.31.12

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 (191) hide show
  1. package/dist/CHANGELOG.md +16 -0
  2. package/dist/force-app/main/default/digitalExperienceConfigs/{angularexternalapp1.digitalExperienceConfig-meta.xml → angularextapp1.digitalExperienceConfig-meta.xml} +3 -3
  3. package/dist/force-app/main/default/digitalExperiences/site/{angularexternalapp1/angularexternalapp1.digitalExperience-meta.xml → angularextapp1/angularextapp1.digitalExperience-meta.xml} +1 -1
  4. package/dist/force-app/main/default/digitalExperiences/site/{angularexternalapp1/sfdc_cms__site/angularexternalapp1 → angularextapp1/sfdc_cms__site/angularextapp1}/_meta.json +1 -1
  5. package/dist/force-app/main/default/digitalExperiences/site/{angularexternalapp1/sfdc_cms__site/angularexternalapp1 → angularextapp1/sfdc_cms__site/angularextapp1}/content.json +3 -3
  6. package/dist/force-app/main/default/networks/{angularexternalapp.network-meta.xml → angularextapp.network-meta.xml} +4 -4
  7. package/dist/force-app/main/default/package.xml +5 -5
  8. package/dist/force-app/main/default/permissionsets/{angularexternalapp_Guest_User_Api_Access.permissionset-meta.xml → angularextapp_Guest_User_Api_Access.permissionset-meta.xml} +1 -1
  9. package/dist/force-app/main/default/sites/{angularexternalapp.site-meta.xml → angularextapp.site-meta.xml} +2 -2
  10. package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/angular.json +7 -4
  11. package/dist/force-app/main/default/uiBundles/{angularexternalapp/angularexternalapp.uibundle-meta.xml → angularextapp/angularextapp.uibundle-meta.xml} +1 -1
  12. package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.routes.ts +11 -11
  13. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/layout/app-layout/app-layout.component.html → angularextapp/src/app/components/layout/app-layout/app-layout.html} +17 -17
  14. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/layout/app-layout/app-layout.component.spec.ts → angularextapp/src/app/components/layout/app-layout/app-layout.spec.ts} +2 -2
  15. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/layout/app-layout/app-layout.component.ts → angularextapp/src/app/components/layout/app-layout/app-layout.ts} +2 -2
  16. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/alert/alert.component.ts → angularextapp/src/app/components/ui/alert/alert.ts} +1 -1
  17. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/button/button.component.ts → angularextapp/src/app/components/ui/button/button.ts} +2 -2
  18. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/card/card.component.ts → angularextapp/src/app/components/ui/card/card.ts} +1 -1
  19. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/collapsible/collapsible.component.ts → angularextapp/src/app/components/ui/collapsible/collapsible.ts} +1 -1
  20. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/date-picker/date-picker.component.ts → angularextapp/src/app/components/ui/date-picker/date-picker.ts} +2 -2
  21. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/date-range-picker/date-range-picker.component.ts → angularextapp/src/app/components/ui/date-range-picker/date-range-picker.ts} +2 -2
  22. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/dialog/dialog.component.ts → angularextapp/src/app/components/ui/dialog/dialog.ts} +1 -1
  23. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/field/field.component.ts → angularextapp/src/app/components/ui/field/field.ts} +1 -1
  24. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/input/input.component.ts → angularextapp/src/app/components/ui/input/input.ts} +2 -2
  25. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/label/label.component.ts → angularextapp/src/app/components/ui/label/label.ts} +1 -1
  26. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/paginator/paginator.component.ts → angularextapp/src/app/components/ui/paginator/paginator.ts} +1 -1
  27. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/popover/popover.component.ts → angularextapp/src/app/components/ui/popover/popover.ts} +1 -1
  28. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/select/select.component.ts → angularextapp/src/app/components/ui/select/select.ts} +2 -2
  29. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/separator/separator.component.ts → angularextapp/src/app/components/ui/separator/separator.ts} +2 -2
  30. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/skeleton/skeleton.component.ts → angularextapp/src/app/components/ui/skeleton/skeleton.ts} +2 -2
  31. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/auth-form/auth-form.html +34 -0
  32. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/forms/auth-form/auth-form.component.ts → angularextapp/src/app/features/authentication/auth-form/auth-form.ts} +6 -6
  33. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/layouts/auth-app-layout/auth-app-layout.component.ts → angularextapp/src/app/features/authentication/auth-layout/auth-layout.ts} +3 -3
  34. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/card-layout/card-layout.html +16 -0
  35. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/layouts/card-layout/card-layout.component.ts → angularextapp/src/app/features/authentication/card-layout/card-layout.ts} +2 -2
  36. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/forms/footer-link/footer-link.component.html → angularextapp/src/app/features/authentication/footer-link/footer-link.html} +1 -3
  37. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/forms/footer-link/footer-link.component.ts → angularextapp/src/app/features/authentication/footer-link/footer-link.ts} +1 -1
  38. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/menu/auth-menu/auth-menu.html +26 -0
  39. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/menu/auth-menu/auth-menu.component.ts → angularextapp/src/app/features/authentication/menu/auth-menu/auth-menu.ts} +2 -2
  40. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/session/session.html +55 -0
  41. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/session-timeout/session-timeout-validator/session-timeout-validator.component.ts → angularextapp/src/app/features/authentication/session/session.ts} +8 -8
  42. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/components/status-alert/status-alert.component.html → angularextapp/src/app/features/authentication/status-alert/status-alert.html} +2 -4
  43. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/components/status-alert/status-alert.component.ts → angularextapp/src/app/features/authentication/status-alert/status-alert.ts} +2 -2
  44. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/forms/submit-button/submit-button.component.html → angularextapp/src/app/features/authentication/submit-button/submit-button.html} +2 -5
  45. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/forms/submit-button/submit-button.component.ts → angularextapp/src/app/features/authentication/submit-button/submit-button.ts} +4 -4
  46. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/breadcrumb/breadcrumb.html +54 -0
  47. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/object-breadcrumb/object-breadcrumb.component.ts → angularextapp/src/app/features/object-search/breadcrumb/breadcrumb.ts} +2 -2
  48. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/active-filters.html +23 -0
  49. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/active-filters/active-filters.component.ts → angularextapp/src/app/features/object-search/filters/active-filters.ts} +4 -4
  50. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/date-filter/date-filter.component.ts → angularextapp/src/app/features/object-search/filters/date-filter.ts} +6 -6
  51. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/date-range-filter/date-range-filter.component.ts → angularextapp/src/app/features/object-search/filters/date-range-filter.ts} +6 -6
  52. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/filter-field-wrapper/filter-field-wrapper.component.html → angularextapp/src/app/features/object-search/filters/filter-field-wrapper.html} +2 -2
  53. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/filter-field-wrapper/filter-field-wrapper.component.ts → angularextapp/src/app/features/object-search/filters/filter-field-wrapper.ts} +3 -3
  54. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/multi-select-filter/multi-select-filter.component.ts → angularextapp/src/app/features/object-search/filters/multi-select-filter.ts} +6 -6
  55. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/numeric-range-filter/numeric-range-filter.component.ts → angularextapp/src/app/features/object-search/filters/numeric-range-filter.ts} +6 -6
  56. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/search-filter/search-filter.component.ts → angularextapp/src/app/features/object-search/filters/search-filter.ts} +6 -6
  57. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/select-filter/select-filter.component.ts → angularextapp/src/app/features/object-search/filters/select-filter.ts} +5 -5
  58. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/text-filter/text-filter.component.ts → angularextapp/src/app/features/object-search/filters/text-filter.ts} +6 -6
  59. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/pagination-controls/pagination-controls.component.ts → angularextapp/src/app/features/object-search/pagination/pagination.ts} +3 -3
  60. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/search-bar/search-bar.component.html → angularextapp/src/app/features/object-search/search-bar/search-bar.html} +5 -5
  61. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/search-bar/search-bar.component.ts → angularextapp/src/app/features/object-search/search-bar/search-bar.ts} +6 -6
  62. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/sort-control/sort-control.html +50 -0
  63. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/sort-control/sort-control.component.ts → angularextapp/src/app/features/object-search/sort-control/sort-control.ts} +5 -5
  64. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-detail/account-detail-page.html +164 -0
  65. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/account-detail/account-detail-page.component.ts → angularextapp/src/app/pages/account-detail/account-detail-page.ts} +9 -12
  66. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-search/account-search-page.html +111 -0
  67. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/account-search/account-search-page.component.ts → angularextapp/src/app/pages/account-search/account-search-page.ts} +15 -15
  68. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/change-password/change-password-page.component.ts → angularextapp/src/app/pages/change-password/change-password-page.ts} +5 -5
  69. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/forgot-password/forgot-password-page.component.ts → angularextapp/src/app/pages/forgot-password/forgot-password-page.ts} +5 -5
  70. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/home/home-page.component.ts → angularextapp/src/app/pages/home/home-page.ts} +3 -3
  71. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/home/home.component.spec.ts → angularextapp/src/app/pages/home/home.spec.ts} +1 -1
  72. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/home/home.component.ts → angularextapp/src/app/pages/home/home.ts} +1 -1
  73. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/login/login-page.component.ts → angularextapp/src/app/pages/login/login-page.ts} +5 -5
  74. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/not-found/not-found.component.spec.ts → angularextapp/src/app/pages/not-found/not-found.spec.ts} +1 -1
  75. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/not-found/not-found.component.ts → angularextapp/src/app/pages/not-found/not-found.ts} +1 -1
  76. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/profile/profile-page.html +116 -0
  77. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/profile/profile-page.component.ts → angularextapp/src/app/pages/profile/profile-page.ts} +7 -7
  78. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/register/register-page.component.ts → angularextapp/src/app/pages/register/register-page.ts} +5 -5
  79. package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/reset-password/reset-password-page.html +60 -0
  80. package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/reset-password/reset-password-page.component.ts → angularextapp/src/app/pages/reset-password/reset-password-page.ts} +7 -7
  81. package/dist/package-lock.json +2 -2
  82. package/dist/package.json +1 -1
  83. package/dist/scripts/org-setup.config.json +1 -1
  84. package/package.json +1 -1
  85. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/forms/auth-form/auth-form.component.html +0 -38
  86. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/layouts/card-layout/card-layout.component.html +0 -17
  87. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/menu/auth-menu/auth-menu.component.html +0 -26
  88. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/session-timeout/session-timeout-validator/session-timeout-validator.component.html +0 -57
  89. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/object-search/components/active-filters/active-filters.component.html +0 -23
  90. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/object-search/components/object-breadcrumb/object-breadcrumb.component.html +0 -55
  91. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/object-search/components/sort-control/sort-control.component.html +0 -50
  92. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/account-detail/account-detail-page.component.html +0 -174
  93. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/account-search/account-search-page.component.html +0 -111
  94. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/profile/profile-page.component.html +0 -126
  95. package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/reset-password/reset-password-page.component.html +0 -60
  96. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.forceignore +0 -0
  97. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.postcssrc.json +0 -0
  98. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.prettierignore +0 -0
  99. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.prettierrc +0 -0
  100. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/CHANGELOG.md +0 -0
  101. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/README.md +0 -0
  102. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/e2e/app.spec.ts +0 -0
  103. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/esbuild/api-version.mjs +0 -0
  104. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/eslint.config.js +0 -0
  105. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/middleware/html.mjs +0 -0
  106. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/middleware/proxy.mjs +0 -0
  107. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/package.json +0 -0
  108. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/playwright.config.ts +0 -0
  109. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/public/favicon.ico +0 -0
  110. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/scripts/rewrite-e2e-assets.mjs +0 -0
  111. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/account-search.service.ts +0 -0
  112. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/distinctAccountIndustries.ts +0 -0
  113. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/distinctAccountTypes.ts +0 -0
  114. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/getAccountDetail.ts +0 -0
  115. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/searchAccounts.ts +0 -0
  116. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/data-client.service.spec.ts +0 -0
  117. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/data-client.service.ts +0 -0
  118. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/user-profile.service.ts +0 -0
  119. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.config.ts +0 -0
  120. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.html +0 -0
  121. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.spec.ts +0 -0
  122. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.ts +0 -0
  123. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/components/ui/_field-size.scss +0 -0
  124. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/alert/alert.component.html → angularextapp/src/app/components/ui/alert/alert.html} +0 -0
  125. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/button/button.component.html → angularextapp/src/app/components/ui/button/button.html} +0 -0
  126. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/button/button.component.scss → angularextapp/src/app/components/ui/button/button.scss} +0 -0
  127. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/card/card.component.scss → angularextapp/src/app/components/ui/card/card.scss} +0 -0
  128. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/collapsible/collapsible.component.html → angularextapp/src/app/components/ui/collapsible/collapsible.html} +0 -0
  129. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/date-picker/date-picker.component.html → angularextapp/src/app/components/ui/date-picker/date-picker.html} +0 -0
  130. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/date-picker/date-picker.component.scss → angularextapp/src/app/components/ui/date-picker/date-picker.scss} +0 -0
  131. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/date-range-picker/date-range-picker.component.html → angularextapp/src/app/components/ui/date-range-picker/date-range-picker.html} +0 -0
  132. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/date-range-picker/date-range-picker.component.scss → angularextapp/src/app/components/ui/date-range-picker/date-range-picker.scss} +0 -0
  133. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/dialog/dialog.component.html → angularextapp/src/app/components/ui/dialog/dialog.html} +0 -0
  134. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/field/field.component.html → angularextapp/src/app/components/ui/field/field.html} +0 -0
  135. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/components/ui/field-size.ts +0 -0
  136. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/input/input.component.html → angularextapp/src/app/components/ui/input/input.html} +0 -0
  137. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/input/input.component.scss → angularextapp/src/app/components/ui/input/input.scss} +0 -0
  138. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/label/label.component.html → angularextapp/src/app/components/ui/label/label.html} +0 -0
  139. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/paginator/paginator.component.html → angularextapp/src/app/components/ui/paginator/paginator.html} +0 -0
  140. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/popover/popover.component.html → angularextapp/src/app/components/ui/popover/popover.html} +0 -0
  141. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/select/select.component.html → angularextapp/src/app/components/ui/select/select.html} +0 -0
  142. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/select/select.component.scss → angularextapp/src/app/components/ui/select/select.scss} +0 -0
  143. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/separator/separator.component.html → angularextapp/src/app/components/ui/separator/separator.html} +0 -0
  144. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/separator/separator.component.scss → angularextapp/src/app/components/ui/separator/separator.scss} +0 -0
  145. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/skeleton/skeleton.component.html → angularextapp/src/app/components/ui/skeleton/skeleton.html} +0 -0
  146. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/skeleton/skeleton.component.scss → angularextapp/src/app/components/ui/skeleton/skeleton.scss} +0 -0
  147. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/components/ui/spinner/spinner.component.ts → angularextapp/src/app/components/ui/spinner/spinner.ts} +0 -0
  148. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/auth/auth.guard.ts +0 -0
  149. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/auth/auth.service.ts +0 -0
  150. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/layouts/auth-app-layout/auth-app-layout.component.html → angularextapp/src/app/features/authentication/auth-layout/auth-layout.html} +0 -0
  151. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/config/authentication.config.ts +0 -0
  152. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/forms → angularextapp/src/app/features/authentication}/reactive-form-page.base.ts +0 -0
  153. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/forms/submit-button/submit-button.component.scss → angularextapp/src/app/features/authentication/submit-button/submit-button.scss} +0 -0
  154. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/utils/auth-helpers.ts +0 -0
  155. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/utils/auth-validators.ts +0 -0
  156. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/utils/helpers.ts +0 -0
  157. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/session-timeout → angularextapp/src/app/features/authentication/utils}/session-time-servlet.ts +0 -0
  158. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/session-timeout → angularextapp/src/app/features/authentication/utils}/session-timeout.config.ts +0 -0
  159. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/authentication/session-timeout → angularextapp/src/app/features/authentication/utils}/session-timeout.service.ts +0 -0
  160. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/date-filter/date-filter.component.html → angularextapp/src/app/features/object-search/filters/date-filter.html} +0 -0
  161. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/date-range-filter/date-range-filter.component.html → angularextapp/src/app/features/object-search/filters/date-range-filter.html} +0 -0
  162. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/multi-select-filter/multi-select-filter.component.html → angularextapp/src/app/features/object-search/filters/multi-select-filter.html} +0 -0
  163. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/numeric-range-filter/numeric-range-filter.component.html → angularextapp/src/app/features/object-search/filters/numeric-range-filter.html} +0 -0
  164. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/search-filter/search-filter.component.html → angularextapp/src/app/features/object-search/filters/search-filter.html} +0 -0
  165. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/select-filter/select-filter.component.html → angularextapp/src/app/features/object-search/filters/select-filter.html} +0 -0
  166. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/filters/text-filter/text-filter.component.html → angularextapp/src/app/features/object-search/filters/text-filter.html} +0 -0
  167. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/object-search-state.service.ts +0 -0
  168. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/features/object-search/components/pagination-controls/pagination-controls.component.html → angularextapp/src/app/features/object-search/pagination/pagination.html} +0 -0
  169. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/debounce.ts +0 -0
  170. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/field-utils.ts +0 -0
  171. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/filter-utils.ts +0 -0
  172. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/index.ts +0 -0
  173. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/sort-utils.ts +0 -0
  174. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/account-detail/account-detail-page.component.scss → angularextapp/src/app/pages/account-detail/account-detail-page.scss} +0 -0
  175. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/change-password/change-password-page.component.html → angularextapp/src/app/pages/change-password/change-password-page.html} +0 -0
  176. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/forgot-password/forgot-password-page.component.html → angularextapp/src/app/pages/forgot-password/forgot-password-page.html} +0 -0
  177. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/home/home-page.component.html → angularextapp/src/app/pages/home/home-page.html} +0 -0
  178. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/home/home.component.html → angularextapp/src/app/pages/home/home.html} +0 -0
  179. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/login/login-page.component.html → angularextapp/src/app/pages/login/login-page.html} +0 -0
  180. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/not-found/not-found.component.html → angularextapp/src/app/pages/not-found/not-found.html} +0 -0
  181. /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/register/register-page.component.html → angularextapp/src/app/pages/register/register-page.html} +0 -0
  182. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/utils/async-data.ts +0 -0
  183. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/index.html +0 -0
  184. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/main.ts +0 -0
  185. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/styles.scss +0 -0
  186. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/theme.scss +0 -0
  187. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/types/sf-globals.d.ts +0 -0
  188. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/tsconfig.app.json +0 -0
  189. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/tsconfig.json +0 -0
  190. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/tsconfig.spec.json +0 -0
  191. /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/ui-bundle.json +0 -0
@@ -0,0 +1,50 @@
1
+ <div class="flex items-center gap-2">
2
+ <span class="text-sm text-muted-foreground whitespace-nowrap">{{ label() }}</span>
3
+ <app-select
4
+ class="w-[160px]"
5
+ [options]="options()"
6
+ [value]="selectedValue()"
7
+ (valueChange)="onFieldChange($event)"
8
+ placeholder="Default"
9
+ />
10
+ @if (sort(); as active) {
11
+ <app-button
12
+ appearance="text"
13
+ size="icon-sm"
14
+ [attr.aria-label]="'Sort ' + (active.direction === 'ASC' ? 'descending' : 'ascending')"
15
+ (clicked)="toggleDirection()"
16
+ >
17
+ @if (active.direction === "ASC") {
18
+ <svg
19
+ xmlns="http://www.w3.org/2000/svg"
20
+ class="h-4 w-4"
21
+ viewBox="0 0 24 24"
22
+ fill="none"
23
+ stroke="currentColor"
24
+ stroke-width="2"
25
+ stroke-linecap="round"
26
+ stroke-linejoin="round"
27
+ aria-hidden="true"
28
+ >
29
+ <path d="m5 12 7-7 7 7" />
30
+ <path d="M12 19V5" />
31
+ </svg>
32
+ } @else {
33
+ <svg
34
+ xmlns="http://www.w3.org/2000/svg"
35
+ class="h-4 w-4"
36
+ viewBox="0 0 24 24"
37
+ fill="none"
38
+ stroke="currentColor"
39
+ stroke-width="2"
40
+ stroke-linecap="round"
41
+ stroke-linejoin="round"
42
+ aria-hidden="true"
43
+ >
44
+ <path d="M12 5v14" />
45
+ <path d="m19 12-7 7-7-7" />
46
+ </svg>
47
+ }
48
+ </app-button>
49
+ }
50
+ </div>
@@ -4,13 +4,13 @@
4
4
  * For full license text, see the LICENSE.txt file
5
5
  */
6
6
  import { ChangeDetectionStrategy, Component, computed, inject, input } from "@angular/core";
7
- import { ButtonComponent } from "../../../../components/ui/button/button.component";
7
+ import { ButtonComponent } from "../../../components/ui/button/button";
8
8
  import {
9
9
  SelectComponent,
10
10
  type AppSelectOption,
11
- } from "../../../../components/ui/select/select.component";
12
- import { ObjectSearchStateService } from "../../object-search-state.service";
13
- import type { SortFieldConfig, SortState } from "../../utils/sort-utils";
11
+ } from "../../../components/ui/select/select";
12
+ import { ObjectSearchStateService } from "../object-search-state.service";
13
+ import type { SortFieldConfig, SortState } from "../utils/sort-utils";
14
14
 
15
15
  /** Sentinel value used in the select to represent "no sort". */
16
16
  const NONE_VALUE = "__none__";
@@ -27,7 +27,7 @@ const NONE_VALUE = "__none__";
27
27
  selector: "app-sort-control",
28
28
  changeDetection: ChangeDetectionStrategy.OnPush,
29
29
  imports: [ButtonComponent, SelectComponent],
30
- templateUrl: "./sort-control.component.html",
30
+ templateUrl: "./sort-control.html",
31
31
  })
32
32
  export class SortControlComponent {
33
33
  /** Sortable fields to expose in the select. */
@@ -0,0 +1,164 @@
1
+ <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-6" [attr.aria-busy]="loading()">
2
+ <app-object-breadcrumb
3
+ listPath="/accounts"
4
+ listLabel="Accounts"
5
+ [loading]="loading()"
6
+ [recordName]="recordName()"
7
+ />
8
+
9
+ @if (loading()) {
10
+ <!-- Loading state -->
11
+ <app-skeleton class="h-8 w-56 mb-4" />
12
+ <app-card>
13
+ <app-card-content class="space-y-8">
14
+ <div class="space-y-4">
15
+ @for (row of skeletonRows; track row) {
16
+ <div class="grid grid-cols-2 gap-x-8 gap-y-4">
17
+ <div>
18
+ <app-skeleton class="h-4 w-24 mb-1.5" />
19
+ <app-skeleton class="h-5 w-40" />
20
+ </div>
21
+ <div>
22
+ <app-skeleton class="h-4 w-24 mb-1.5" />
23
+ <app-skeleton class="h-5 w-40" />
24
+ </div>
25
+ </div>
26
+ }
27
+ </div>
28
+ <app-separator />
29
+ <div class="space-y-4">
30
+ <app-skeleton class="h-7 w-48 py-2" />
31
+ <div class="grid grid-cols-2 gap-x-8 gap-y-4">
32
+ <app-skeleton class="h-12 w-full" />
33
+ <app-skeleton class="h-12 w-full" />
34
+ </div>
35
+ </div>
36
+ </app-card-content>
37
+ </app-card>
38
+ } @else if (error()) {
39
+ <!-- Error state -->
40
+ <app-alert
41
+ variant="destructive"
42
+ icon="error"
43
+ title="Failed to load account"
44
+ description="Something went wrong while loading this account. Please try again later."
45
+ />
46
+ <div class="mt-4 flex gap-3">
47
+ <app-button appearance="outlined" (clicked)="goBack()">← Back</app-button>
48
+ <app-button appearance="outlined" (clicked)="reload()">Retry</app-button>
49
+ </div>
50
+ } @else if (notFound()) {
51
+ <!-- Not found state -->
52
+ <app-card>
53
+ <app-card-content class="flex flex-col items-center justify-center py-16 text-center">
54
+ <svg
55
+ xmlns="http://www.w3.org/2000/svg"
56
+ class="size-12 text-muted-foreground mb-4"
57
+ viewBox="0 0 24 24"
58
+ fill="none"
59
+ stroke="currentColor"
60
+ stroke-width="2"
61
+ stroke-linecap="round"
62
+ stroke-linejoin="round"
63
+ aria-hidden="true"
64
+ >
65
+ <path d="M12 17h.01" />
66
+ <path d="M10.1 9a2.4 2.4 0 0 1 3.9 1.9c0 1.5-2 2-2 3" />
67
+ <path d="M14.5 4.5 20 10l-2 2" />
68
+ <path d="M4 4h9l7 7v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Z" />
69
+ </svg>
70
+ <h2 class="text-lg font-semibold mb-1">Account not found</h2>
71
+ <p class="text-sm text-muted-foreground mb-6">
72
+ The account you're looking for doesn't exist or may have been deleted.
73
+ </p>
74
+ <app-button appearance="outlined" (clicked)="goBack()">← Go back</app-button>
75
+ </app-card-content>
76
+ </app-card>
77
+ } @else if (account()) {
78
+ <!-- Content -->
79
+ <h1 class="text-2xl font-bold mb-4">Account: {{ title() }}</h1>
80
+
81
+ <app-card>
82
+ <app-card-content class="space-y-8">
83
+ <!-- Top section -->
84
+ <div class="space-y-4">
85
+ @for (row of topRows(); track $index) {
86
+ <div class="grid grid-cols-2 gap-x-8 gap-y-4">
87
+ @for (field of row; track field.label) {
88
+ <div>
89
+ <dt class="text-sm text-muted-foreground">{{ field.label }}</dt>
90
+ <dd class="mt-0.5">
91
+ @if (field.value && field.telephone) {
92
+ <a [href]="'tel:' + field.value" class="underline">{{ field.value }}</a>
93
+ } @else { {{ field.value ?? "—" }} }
94
+ </dd>
95
+ </div>
96
+ }
97
+ </div>
98
+ }
99
+ </div>
100
+
101
+ <app-separator />
102
+
103
+ <!-- Additional Information -->
104
+ <app-collapsible title="Additional Information" [(open)]="additionalOpen">
105
+ <div class="space-y-4">
106
+ @for (row of additionalRows(); track $index) {
107
+ <div class="grid grid-cols-2 gap-x-8 gap-y-4">
108
+ @for (field of row; track field.label) {
109
+ <div>
110
+ <dt class="text-sm text-muted-foreground">{{ field.label }}</dt>
111
+ <dd class="mt-0.5">{{ field.value ?? "—" }}</dd>
112
+ </div>
113
+ }
114
+ </div>
115
+ }
116
+ <div>
117
+ <dt class="text-sm text-muted-foreground">Description</dt>
118
+ <dd class="mt-0.5">{{ description() ?? "—" }}</dd>
119
+ </div>
120
+ </div>
121
+ </app-collapsible>
122
+ <div class="space-y-4"></div>
123
+ <app-separator />
124
+
125
+ <!-- Address Information -->
126
+ <app-collapsible title="Address Information" [(open)]="addressOpen">
127
+ <div class="grid grid-cols-2 gap-x-8 gap-y-4">
128
+ <div>
129
+ <dt class="text-sm text-muted-foreground">Billing Address</dt>
130
+ <dd class="mt-0.5">
131
+ @if (billingAddress()) { @for (line of billingAddress(); track $index) {
132
+ <div>{{ line }}</div>
133
+ } } @else { — }
134
+ </dd>
135
+ </div>
136
+ <div>
137
+ <dt class="text-sm text-muted-foreground">Shipping Address</dt>
138
+ <dd class="mt-0.5">
139
+ @if (shippingAddress()) { @for (line of shippingAddress(); track $index) {
140
+ <div>{{ line }}</div>
141
+ } } @else { — }
142
+ </dd>
143
+ </div>
144
+ </div>
145
+ </app-collapsible>
146
+ <div class="space-y-4"></div>
147
+ <app-separator />
148
+ <!-- System Information -->
149
+ <app-collapsible title="System Information" [(open)]="systemOpen">
150
+ <div class="grid grid-cols-2 gap-x-8 gap-y-4">
151
+ <div>
152
+ <dt class="text-sm text-muted-foreground">Created By</dt>
153
+ <dd class="mt-0.5">{{ createdBy() ?? "—" }}</dd>
154
+ </div>
155
+ <div>
156
+ <dt class="text-sm text-muted-foreground">Last Modified By</dt>
157
+ <dd class="mt-0.5">{{ lastModifiedBy() ?? "—" }}</dd>
158
+ </div>
159
+ </div>
160
+ </app-collapsible>
161
+ </app-card-content>
162
+ </app-card>
163
+ }
164
+ </div>
@@ -10,17 +10,14 @@ import { map } from "rxjs/operators";
10
10
  // Base-app UI wrappers, inherited (not recreated) by this feature. Post-compose
11
11
  // they land at uiBundles/<target>/src/app/components/ui/..., three levels up from this
12
12
  // page folder (app/features/account-search/ -> app/components/ui/).
13
- import { AlertComponent } from "../../components/ui/alert/alert.component";
14
- import { ButtonComponent } from "../../components/ui/button/button.component";
15
- import {
16
- CardComponent,
17
- CardContentComponent,
18
- } from "../../components/ui/card/card.component";
19
- import { CollapsibleComponent } from "../../components/ui/collapsible/collapsible.component";
20
- import { SeparatorComponent } from "../../components/ui/separator/separator.component";
21
- import { SkeletonComponent } from "../../components/ui/skeleton/skeleton.component";
13
+ import { AlertComponent } from "../../components/ui/alert/alert";
14
+ import { ButtonComponent } from "../../components/ui/button/button";
15
+ import { CardComponent, CardContentComponent } from "../../components/ui/card/card";
16
+ import { CollapsibleComponent } from "../../components/ui/collapsible/collapsible";
17
+ import { SeparatorComponent } from "../../components/ui/separator/separator";
18
+ import { SkeletonComponent } from "../../components/ui/skeleton/skeleton";
22
19
  // Object-search feature building blocks (Waves 1-2), two levels up.
23
- import { ObjectBreadcrumbComponent } from "../../features/object-search/components/object-breadcrumb/object-breadcrumb.component";
20
+ import { ObjectBreadcrumbComponent } from "../../features/object-search/breadcrumb/breadcrumb";
24
21
  import { createAsyncData } from "../../utils/async-data";
25
22
  import {
26
23
  fieldValue,
@@ -66,8 +63,8 @@ interface Field {
66
63
  SkeletonComponent,
67
64
  ObjectBreadcrumbComponent,
68
65
  ],
69
- templateUrl: "./account-detail-page.component.html",
70
- styleUrl: "./account-detail-page.component.scss",
66
+ templateUrl: "./account-detail-page.html",
67
+ styleUrl: "./account-detail-page.scss",
71
68
  })
72
69
  export class AccountDetailPageComponent {
73
70
  private readonly service = inject(AccountSearchService);
@@ -0,0 +1,111 @@
1
+ <div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
2
+ <app-object-breadcrumb listPath="/accounts" listLabel="Accounts" />
3
+
4
+ <h1 class="text-2xl font-bold mb-4">Search Accounts</h1>
5
+
6
+ <div class="flex flex-col lg:flex-row gap-6">
7
+ <!-- Sidebar — Filter Panel -->
8
+ <aside class="w-full lg:w-80 shrink-0">
9
+ <app-collapsible title="Filters" [(open)]="filtersOpen">
10
+ <div class="space-y-1">
11
+ <app-search-filter [config]="searchConfig" />
12
+ <app-text-filter [config]="nameConfig" />
13
+ <app-select-filter [config]="industryConfig()" />
14
+ <app-multi-select-filter [config]="typeConfig()" />
15
+ <app-numeric-range-filter [config]="revenueConfig" />
16
+ <app-date-filter [config]="createdConfig" filterType="datetime" />
17
+ <app-date-range-filter [config]="lastModifiedConfig" filterType="datetimerange" />
18
+ </div>
19
+ </app-collapsible>
20
+ </aside>
21
+
22
+ <!-- Main area — Sort + Results -->
23
+ <div class="flex-1 min-w-0">
24
+ <div class="flex flex-wrap items-center gap-2 mb-4">
25
+ <app-sort-control [sortFields]="sortConfigs" />
26
+ <app-active-filters />
27
+ </div>
28
+
29
+ <div class="min-h-132" [attr.aria-busy]="loading()">
30
+ @if (loading()) {
31
+ <app-skeleton class="h-5 w-30 mb-3" />
32
+ <div class="divide-y">
33
+ @for (row of skeletonRows(); track row) {
34
+ <div class="flex items-center justify-between py-3">
35
+ <div class="space-y-2">
36
+ <app-skeleton class="h-5 w-40" />
37
+ <app-skeleton class="h-4 w-28" />
38
+ </div>
39
+ <div class="space-y-2 flex flex-col items-end">
40
+ <app-skeleton class="h-4 w-24" />
41
+ <app-skeleton class="h-4 w-20" />
42
+ </div>
43
+ </div>
44
+ }
45
+ </div>
46
+ } @else if (error()) {
47
+ <p class="text-sm text-muted-foreground mb-3">0 accounts found</p>
48
+ <app-alert
49
+ variant="destructive"
50
+ icon="error"
51
+ title="Failed to load accounts"
52
+ description="Something went wrong while loading accounts. Please try again later."
53
+ />
54
+ } @else if (nodes().length > 0) {
55
+ <p class="text-sm text-muted-foreground mb-3">{{ resultCountLabel() }}</p>
56
+ <ul class="divide-y">
57
+ @for (node of nodes(); track node.Id) {
58
+ <li>
59
+ <a
60
+ [routerLink]="['/accounts', node.Id]"
61
+ class="flex items-center justify-between py-3 px-3 -mx-3 rounded-md transition-colors hover:bg-accent"
62
+ >
63
+ <div>
64
+ <span class="font-medium">{{ name(node) }}</span>
65
+ <p class="text-sm text-muted-foreground">{{ secondaryLine(node) }}</p>
66
+ </div>
67
+ <div class="text-right text-sm">
68
+ <p>{{ phone(node) }}</p>
69
+ <p class="text-muted-foreground">{{ ownerName(node) }}</p>
70
+ </div>
71
+ </a>
72
+ </li>
73
+ }
74
+ </ul>
75
+ } @else {
76
+ <div class="flex flex-col items-center justify-center py-16 text-center">
77
+ <svg
78
+ xmlns="http://www.w3.org/2000/svg"
79
+ class="size-12 text-muted-foreground mb-4"
80
+ viewBox="0 0 24 24"
81
+ fill="none"
82
+ stroke="currentColor"
83
+ stroke-width="2"
84
+ stroke-linecap="round"
85
+ stroke-linejoin="round"
86
+ aria-hidden="true"
87
+ >
88
+ <path d="m13.5 8.5-5 5" />
89
+ <path d="m8.5 8.5 5 5" />
90
+ <circle cx="11" cy="11" r="8" />
91
+ <path d="m21 21-4.3-4.3" />
92
+ </svg>
93
+ <h2 class="text-lg font-semibold mb-1">No accounts found</h2>
94
+ <p class="text-sm text-muted-foreground">
95
+ Try adjusting your filters or search criteria.
96
+ </p>
97
+ </div>
98
+ }
99
+ </div>
100
+
101
+ <!-- Pagination — always visible, disabled while loading or on error -->
102
+ <app-pagination-controls
103
+ [totalCount]="totalCount()"
104
+ [hasNextPage]="hasNextPage()"
105
+ [endCursor]="endCursor()"
106
+ [pageSizeOptions]="pageSizeOptions"
107
+ [disabled]="controlsDisabled()"
108
+ />
109
+ </div>
110
+ </div>
111
+ </div>
@@ -8,21 +8,21 @@ import { RouterLink } from "@angular/router";
8
8
  // Base-app UI wrappers, inherited (not recreated) by this feature. Post-compose
9
9
  // they land at uiBundles/<target>/src/app/components/ui/..., three levels up from this
10
10
  // page folder (app/features/account-search/ -> app/components/ui/).
11
- import { AlertComponent } from "../../components/ui/alert/alert.component";
12
- import { CollapsibleComponent } from "../../components/ui/collapsible/collapsible.component";
13
- import { SkeletonComponent } from "../../components/ui/skeleton/skeleton.component";
11
+ import { AlertComponent } from "../../components/ui/alert/alert";
12
+ import { CollapsibleComponent } from "../../components/ui/collapsible/collapsible";
13
+ import { SkeletonComponent } from "../../components/ui/skeleton/skeleton";
14
14
  // Object-search feature building blocks (Waves 1-2), two levels up.
15
- import { ObjectBreadcrumbComponent } from "../../features/object-search/components/object-breadcrumb/object-breadcrumb.component";
16
- import { SortControlComponent } from "../../features/object-search/components/sort-control/sort-control.component";
17
- import { ActiveFiltersComponent } from "../../features/object-search/components/active-filters/active-filters.component";
18
- import { PaginationControlsComponent } from "../../features/object-search/components/pagination-controls/pagination-controls.component";
19
- import { SearchFilterComponent } from "../../features/object-search/components/filters/search-filter/search-filter.component";
20
- import { TextFilterComponent } from "../../features/object-search/components/filters/text-filter/text-filter.component";
21
- import { SelectFilterComponent } from "../../features/object-search/components/filters/select-filter/select-filter.component";
22
- import { MultiSelectFilterComponent } from "../../features/object-search/components/filters/multi-select-filter/multi-select-filter.component";
23
- import { NumericRangeFilterComponent } from "../../features/object-search/components/filters/numeric-range-filter/numeric-range-filter.component";
24
- import { DateFilterComponent } from "../../features/object-search/components/filters/date-filter/date-filter.component";
25
- import { DateRangeFilterComponent } from "../../features/object-search/components/filters/date-range-filter/date-range-filter.component";
15
+ import { ObjectBreadcrumbComponent } from "../../features/object-search/breadcrumb/breadcrumb";
16
+ import { SortControlComponent } from "../../features/object-search/sort-control/sort-control";
17
+ import { ActiveFiltersComponent } from "../../features/object-search/filters/active-filters";
18
+ import { PaginationControlsComponent } from "../../features/object-search/pagination/pagination";
19
+ import { SearchFilterComponent } from "../../features/object-search/filters/search-filter";
20
+ import { TextFilterComponent } from "../../features/object-search/filters/text-filter";
21
+ import { SelectFilterComponent } from "../../features/object-search/filters/select-filter";
22
+ import { MultiSelectFilterComponent } from "../../features/object-search/filters/multi-select-filter";
23
+ import { NumericRangeFilterComponent } from "../../features/object-search/filters/numeric-range-filter";
24
+ import { DateFilterComponent } from "../../features/object-search/filters/date-filter";
25
+ import { DateRangeFilterComponent } from "../../features/object-search/filters/date-range-filter";
26
26
  import {
27
27
  ObjectSearchStateService,
28
28
  type PaginationConfig,
@@ -109,7 +109,7 @@ const ACCOUNT_SORT_CONFIGS: SortFieldConfig[] = [
109
109
  DateFilterComponent,
110
110
  DateRangeFilterComponent,
111
111
  ],
112
- templateUrl: "./account-search-page.component.html",
112
+ templateUrl: "./account-search-page.html",
113
113
  })
114
114
  export class AccountSearchPageComponent {
115
115
  private readonly service = inject(AccountSearchService);
@@ -6,10 +6,10 @@
6
6
  import { ChangeDetectionStrategy, Component, inject, signal } from "@angular/core";
7
7
  import { FormBuilder } from "@angular/forms";
8
8
  import { DataClient } from "../../api/data-client.service";
9
- import { AuthFormComponent } from "../../features/authentication/forms/auth-form/auth-form.component";
10
- import { ReactiveFormPageBase } from "../../features/authentication/forms/reactive-form-page.base";
11
- import { FieldComponent } from "../../components/ui/field/field.component";
12
- import { InputComponent } from "../../components/ui/input/input.component";
9
+ import { AuthFormComponent } from "../../features/authentication/auth-form/auth-form";
10
+ import { ReactiveFormPageBase } from "../../features/authentication/reactive-form-page.base";
11
+ import { FieldComponent } from "../../components/ui/field/field";
12
+ import { InputComponent } from "../../components/ui/input/input";
13
13
  import {
14
14
  API_ROUTES,
15
15
  AUTH_PLACEHOLDERS,
@@ -32,7 +32,7 @@ import {
32
32
  selector: "app-change-password-page",
33
33
  changeDetection: ChangeDetectionStrategy.OnPush,
34
34
  imports: [AuthFormComponent, FieldComponent, InputComponent],
35
- templateUrl: "./change-password-page.component.html",
35
+ templateUrl: "./change-password-page.html",
36
36
  })
37
37
  export class ChangePasswordPageComponent extends ReactiveFormPageBase {
38
38
  private readonly fb = inject(FormBuilder);
@@ -6,10 +6,10 @@
6
6
  import { ChangeDetectionStrategy, Component, inject, signal } from "@angular/core";
7
7
  import { FormBuilder } from "@angular/forms";
8
8
  import { DataClient } from "../../api/data-client.service";
9
- import { AuthFormComponent } from "../../features/authentication/forms/auth-form/auth-form.component";
10
- import { ReactiveFormPageBase } from "../../features/authentication/forms/reactive-form-page.base";
11
- import { FieldComponent } from "../../components/ui/field/field.component";
12
- import { InputComponent } from "../../components/ui/input/input.component";
9
+ import { AuthFormComponent } from "../../features/authentication/auth-form/auth-form";
10
+ import { ReactiveFormPageBase } from "../../features/authentication/reactive-form-page.base";
11
+ import { FieldComponent } from "../../components/ui/field/field";
12
+ import { InputComponent } from "../../components/ui/input/input";
13
13
  import {
14
14
  API_ROUTES,
15
15
  AUTH_PLACEHOLDERS,
@@ -43,7 +43,7 @@ function usernameValidator(control: AbstractControl): ValidationErrors | null {
43
43
  selector: "app-forgot-password-page",
44
44
  changeDetection: ChangeDetectionStrategy.OnPush,
45
45
  imports: [AuthFormComponent, FieldComponent, InputComponent],
46
- templateUrl: "./forgot-password-page.component.html",
46
+ templateUrl: "./forgot-password-page.html",
47
47
  })
48
48
  export class ForgotPasswordPageComponent extends ReactiveFormPageBase {
49
49
  private readonly fb = inject(FormBuilder);
@@ -8,8 +8,8 @@ import { Router } from "@angular/router";
8
8
  // Base-app UI wrappers, inherited (not recreated) by this feature. Post-compose
9
9
  // they land at uiBundles/<target>/src/app/components/ui/{button,input}/..., three levels
10
10
  // up from this page folder (app/features/account-search/ -> app/components/ui/).
11
- import { ButtonComponent } from "../../components/ui/button/button.component";
12
- import { InputComponent } from "../../components/ui/input/input.component";
11
+ import { ButtonComponent } from "../../components/ui/button/button";
12
+ import { InputComponent } from "../../components/ui/input/input";
13
13
 
14
14
  /**
15
15
  * Account-search landing page. Mirrors the React `Home` page: a single search
@@ -24,7 +24,7 @@ import { InputComponent } from "../../components/ui/input/input.component";
24
24
  selector: "app-home-page",
25
25
  changeDetection: ChangeDetectionStrategy.OnPush,
26
26
  imports: [ButtonComponent, InputComponent],
27
- templateUrl: "./home-page.component.html",
27
+ templateUrl: "./home-page.html",
28
28
  })
29
29
  export class HomePageComponent {
30
30
  private readonly router = inject(Router);
@@ -1,5 +1,5 @@
1
1
  import { TestBed } from '@angular/core/testing';
2
- import { HomeComponent } from './home.component';
2
+ import { HomeComponent } from './home';
3
3
 
4
4
  describe('HomeComponent', () => {
5
5
  beforeEach(async () => {
@@ -8,6 +8,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
8
8
  @Component({
9
9
  selector: 'app-home',
10
10
  changeDetection: ChangeDetectionStrategy.OnPush,
11
- templateUrl: './home.component.html',
11
+ templateUrl: './home.html',
12
12
  })
13
13
  export class HomeComponent {}
@@ -7,10 +7,10 @@ import { ChangeDetectionStrategy, Component, inject, signal } from "@angular/cor
7
7
  import { FormBuilder } from "@angular/forms";
8
8
  import { ActivatedRoute, Router, RouterLink } from "@angular/router";
9
9
  import { DataClient } from "../../api/data-client.service";
10
- import { AuthFormComponent } from "../../features/authentication/forms/auth-form/auth-form.component";
11
- import { ReactiveFormPageBase } from "../../features/authentication/forms/reactive-form-page.base";
12
- import { FieldComponent } from "../../components/ui/field/field.component";
13
- import { InputComponent } from "../../components/ui/input/input.component";
10
+ import { AuthFormComponent } from "../../features/authentication/auth-form/auth-form";
11
+ import { ReactiveFormPageBase } from "../../features/authentication/reactive-form-page.base";
12
+ import { FieldComponent } from "../../components/ui/field/field";
13
+ import { InputComponent } from "../../components/ui/input/input";
14
14
  import {
15
15
  API_ROUTES,
16
16
  AUTH_PLACEHOLDERS,
@@ -33,7 +33,7 @@ import {
33
33
  selector: "app-login-page",
34
34
  changeDetection: ChangeDetectionStrategy.OnPush,
35
35
  imports: [RouterLink, AuthFormComponent, FieldComponent, InputComponent],
36
- templateUrl: "./login-page.component.html",
36
+ templateUrl: "./login-page.html",
37
37
  })
38
38
  export class LoginPageComponent extends ReactiveFormPageBase {
39
39
  private readonly fb = inject(FormBuilder);
@@ -1,6 +1,6 @@
1
1
  import { TestBed } from '@angular/core/testing';
2
2
  import { provideRouter } from '@angular/router';
3
- import { NotFoundComponent } from './not-found.component';
3
+ import { NotFoundComponent } from './not-found';
4
4
 
5
5
  describe('NotFoundComponent', () => {
6
6
  beforeEach(async () => {
@@ -10,6 +10,6 @@ import { RouterLink } from '@angular/router';
10
10
  selector: 'app-not-found',
11
11
  changeDetection: ChangeDetectionStrategy.OnPush,
12
12
  imports: [RouterLink],
13
- templateUrl: './not-found.component.html',
13
+ templateUrl: './not-found.html',
14
14
  })
15
15
  export class NotFoundComponent {}