@salesforce/ui-bundle-template-app-angular-template-b2x 11.31.11 → 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.
- package/dist/CHANGELOG.md +8 -0
- package/dist/force-app/main/default/digitalExperienceConfigs/{angularexternalapp1.digitalExperienceConfig-meta.xml → angularextapp1.digitalExperienceConfig-meta.xml} +3 -3
- package/dist/force-app/main/default/digitalExperiences/site/{angularexternalapp1/angularexternalapp1.digitalExperience-meta.xml → angularextapp1/angularextapp1.digitalExperience-meta.xml} +1 -1
- package/dist/force-app/main/default/digitalExperiences/site/{angularexternalapp1/sfdc_cms__site/angularexternalapp1 → angularextapp1/sfdc_cms__site/angularextapp1}/_meta.json +1 -1
- package/dist/force-app/main/default/digitalExperiences/site/{angularexternalapp1/sfdc_cms__site/angularexternalapp1 → angularextapp1/sfdc_cms__site/angularextapp1}/content.json +3 -3
- package/dist/force-app/main/default/networks/{angularexternalapp.network-meta.xml → angularextapp.network-meta.xml} +4 -4
- package/dist/force-app/main/default/package.xml +5 -5
- 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
- package/dist/force-app/main/default/sites/{angularexternalapp.site-meta.xml → angularextapp.site-meta.xml} +2 -2
- package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/angular.json +7 -4
- package/dist/force-app/main/default/uiBundles/{angularexternalapp/angularexternalapp.uibundle-meta.xml → angularextapp/angularextapp.uibundle-meta.xml} +1 -1
- package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.routes.ts +11 -11
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/auth-form/auth-form.html +34 -0
- 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
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/card-layout/card-layout.html +16 -0
- 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
- 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
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/menu/auth-menu/auth-menu.html +26 -0
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/session/session.html +55 -0
- 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
- 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
- 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
- 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
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/breadcrumb/breadcrumb.html +54 -0
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/active-filters.html +23 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/sort-control/sort-control.html +50 -0
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-detail/account-detail-page.html +164 -0
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-search/account-search-page.html +111 -0
- 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
- 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
- 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
- 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
- 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
- package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/home/home.component.ts → angularextapp/src/app/pages/home/home.ts} +1 -1
- 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
- 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
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/profile/profile-page.html +116 -0
- 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
- 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
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/reset-password/reset-password-page.html +60 -0
- 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
- package/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/dist/scripts/org-setup.config.json +1 -1
- package/package.json +1 -1
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/forms/auth-form/auth-form.component.html +0 -38
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/layouts/card-layout/card-layout.component.html +0 -17
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/menu/auth-menu/auth-menu.component.html +0 -26
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/authentication/session-timeout/session-timeout-validator/session-timeout-validator.component.html +0 -57
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/object-search/components/active-filters/active-filters.component.html +0 -23
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/object-search/components/object-breadcrumb/object-breadcrumb.component.html +0 -55
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/features/object-search/components/sort-control/sort-control.component.html +0 -50
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/account-detail/account-detail-page.component.html +0 -174
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/account-search/account-search-page.component.html +0 -111
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/profile/profile-page.component.html +0 -126
- package/dist/force-app/main/default/uiBundles/angularexternalapp/src/app/pages/reset-password/reset-password-page.component.html +0 -60
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.forceignore +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.postcssrc.json +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.prettierignore +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/.prettierrc +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/CHANGELOG.md +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/README.md +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/e2e/app.spec.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/esbuild/api-version.mjs +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/eslint.config.js +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/middleware/html.mjs +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/middleware/proxy.mjs +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/package.json +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/playwright.config.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/public/favicon.ico +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/scripts/rewrite-e2e-assets.mjs +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/account-search.service.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/distinctAccountIndustries.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/distinctAccountTypes.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/getAccountDetail.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/account/searchAccounts.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/data-client.service.spec.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/data-client.service.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/api/user-profile.service.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.config.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.html +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.spec.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/app.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/components/ui/_field-size.scss +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/components/ui/field-size.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/auth/auth.guard.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/auth/auth.service.ts +0 -0
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/config/authentication.config.ts +0 -0
- /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
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/utils/auth-helpers.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/utils/auth-validators.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/authentication/utils/helpers.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/object-search-state.service.ts +0 -0
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/debounce.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/field-utils.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/filter-utils.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/index.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/features/object-search/utils/sort-utils.ts +0 -0
- /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
- /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
- /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
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp/src/app/pages/home/home.component.html → angularextapp/src/app/pages/home/home.html} +0 -0
- /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
- /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
- /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
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/app/utils/async-data.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/index.html +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/main.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/styles.scss +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/theme.scss +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/src/types/sf-globals.d.ts +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/tsconfig.app.json +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/tsconfig.json +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/tsconfig.spec.json +0 -0
- /package/dist/force-app/main/default/uiBundles/{angularexternalapp → angularextapp}/ui-bundle.json +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
@if (loading()) {
|
|
2
|
+
<app-skeleton class="size-8 rounded-full" />
|
|
3
|
+
} @else {
|
|
4
|
+
<button matIconButton [matMenuTriggerFor]="menu" aria-label="User menu">
|
|
5
|
+
<mat-icon>person</mat-icon>
|
|
6
|
+
</button>
|
|
7
|
+
|
|
8
|
+
<mat-menu #menu="matMenu" xPosition="before">
|
|
9
|
+
@if (isAuthenticated()) {
|
|
10
|
+
<div class="px-3 py-2 font-medium truncate">{{ user()?.name }}</div>
|
|
11
|
+
<hr />
|
|
12
|
+
<a mat-menu-item [routerLink]="routes.PROFILE.PATH">Edit Profile</a>
|
|
13
|
+
<ng-content select="[menuItems]" />
|
|
14
|
+
<button mat-menu-item type="button" (click)="onLogout()">Sign Out</button>
|
|
15
|
+
} @else {
|
|
16
|
+
<a mat-menu-item [routerLink]="routes.LOGIN.PATH">
|
|
17
|
+
<mat-icon>login</mat-icon>
|
|
18
|
+
<span>Log In</span>
|
|
19
|
+
</a>
|
|
20
|
+
<a mat-menu-item [routerLink]="routes.REGISTER.PATH">
|
|
21
|
+
<mat-icon>person_add</mat-icon>
|
|
22
|
+
<span>Register</span>
|
|
23
|
+
</a>
|
|
24
|
+
}
|
|
25
|
+
</mat-menu>
|
|
26
|
+
}
|
|
@@ -8,7 +8,7 @@ import { RouterLink } from "@angular/router";
|
|
|
8
8
|
import { MatButtonModule } from "@angular/material/button";
|
|
9
9
|
import { MatIconModule } from "@angular/material/icon";
|
|
10
10
|
import { MatMenuModule } from "@angular/material/menu";
|
|
11
|
-
import { SkeletonComponent } from "../../../../components/ui/skeleton/skeleton
|
|
11
|
+
import { SkeletonComponent } from "../../../../components/ui/skeleton/skeleton";
|
|
12
12
|
import { AuthService } from "../../auth/auth.service";
|
|
13
13
|
import { ROUTES } from "../../config/authentication.config";
|
|
14
14
|
|
|
@@ -30,7 +30,7 @@ import { ROUTES } from "../../config/authentication.config";
|
|
|
30
30
|
selector: "app-auth-menu",
|
|
31
31
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
32
|
imports: [RouterLink, MatButtonModule, MatIconModule, MatMenuModule, SkeletonComponent],
|
|
33
|
-
templateUrl: "./auth-menu.
|
|
33
|
+
templateUrl: "./auth-menu.html",
|
|
34
34
|
})
|
|
35
35
|
export class AuthMenuComponent {
|
|
36
36
|
private readonly authService = inject(AuthService);
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
@if (showWarningModal()) {
|
|
2
|
+
<app-dialog [open]="true" [closeOnBackdrop]="false">
|
|
3
|
+
<div
|
|
4
|
+
class="max-w-md"
|
|
5
|
+
role="alertdialog"
|
|
6
|
+
aria-labelledby="session-warning-title"
|
|
7
|
+
aria-describedby="session-warning-description"
|
|
8
|
+
>
|
|
9
|
+
<h2 id="session-warning-title" class="text-lg font-semibold">
|
|
10
|
+
{{ labels.sessionWarningTitle }}
|
|
11
|
+
</h2>
|
|
12
|
+
<p id="session-warning-description" class="text-sm text-muted-foreground mt-1">
|
|
13
|
+
{{ labels.sessionWarningMessage }}
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<div class="flex flex-col items-center gap-4 py-6">
|
|
17
|
+
<time
|
|
18
|
+
[attr.datetime]="isoTime()"
|
|
19
|
+
role="timer"
|
|
20
|
+
aria-live="off"
|
|
21
|
+
aria-atomic="true"
|
|
22
|
+
aria-describedby="session-warning-description"
|
|
23
|
+
class="text-5xl font-bold text-center tabular-nums text-destructive"
|
|
24
|
+
>
|
|
25
|
+
{{ formattedTime() }}
|
|
26
|
+
</time>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div class="flex gap-4 justify-end">
|
|
30
|
+
<app-button variant="outlined" (clicked)="onLogoutClick()">
|
|
31
|
+
{{ labels.logoutButton }}
|
|
32
|
+
</app-button>
|
|
33
|
+
<app-button variant="filled" (clicked)="onContinue()">
|
|
34
|
+
{{ labels.continueButton }}
|
|
35
|
+
</app-button>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</app-dialog>
|
|
39
|
+
} @if (showExpiredAlert()) {
|
|
40
|
+
<div class="fixed top-4 left-1/2 -translate-x-1/2 z-50 w-full max-w-md px-4">
|
|
41
|
+
<app-status-alert
|
|
42
|
+
variant="error"
|
|
43
|
+
[title]="labels.sessionWarningTitle"
|
|
44
|
+
[message]="labels.invalidSessionMessage"
|
|
45
|
+
/>
|
|
46
|
+
<button
|
|
47
|
+
type="button"
|
|
48
|
+
class="sr-only"
|
|
49
|
+
[attr.aria-label]="labels.closeLabel"
|
|
50
|
+
(click)="onDismissAlert()"
|
|
51
|
+
>
|
|
52
|
+
{{ labels.closeLabel }}
|
|
53
|
+
</button>
|
|
54
|
+
</div>
|
|
55
|
+
}
|
|
@@ -13,13 +13,13 @@ import {
|
|
|
13
13
|
signal,
|
|
14
14
|
} from "@angular/core";
|
|
15
15
|
import { Router } from "@angular/router";
|
|
16
|
-
import { DialogComponent } from "
|
|
17
|
-
import { StatusAlertComponent } from "
|
|
18
|
-
import { ButtonComponent } from "
|
|
19
|
-
import { AuthService } from "
|
|
20
|
-
import { SessionTimeoutService } from "../session-timeout.service";
|
|
21
|
-
import { LABELS, STORAGE_KEYS } from "../session-timeout.config";
|
|
22
|
-
import { ROUTES } from "
|
|
16
|
+
import { DialogComponent } from "../../../components/ui/dialog/dialog";
|
|
17
|
+
import { StatusAlertComponent } from "../status-alert/status-alert";
|
|
18
|
+
import { ButtonComponent } from "../../../components/ui/button/button";
|
|
19
|
+
import { AuthService } from "../auth/auth.service";
|
|
20
|
+
import { SessionTimeoutService } from "../utils/session-timeout.service";
|
|
21
|
+
import { LABELS, STORAGE_KEYS } from "../utils/session-timeout.config";
|
|
22
|
+
import { ROUTES } from "../config/authentication.config";
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Session-timeout validator — the Angular port of the React
|
|
@@ -46,7 +46,7 @@ import { ROUTES } from "../../config/authentication.config";
|
|
|
46
46
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
47
47
|
providers: [SessionTimeoutService],
|
|
48
48
|
imports: [DialogComponent, StatusAlertComponent, ButtonComponent],
|
|
49
|
-
templateUrl: "./session
|
|
49
|
+
templateUrl: "./session.html",
|
|
50
50
|
})
|
|
51
51
|
export class SessionTimeoutValidatorComponent implements OnInit {
|
|
52
52
|
private readonly authService = inject(AuthService);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
6
|
import { ChangeDetectionStrategy, Component, computed, input } from "@angular/core";
|
|
7
|
-
import { AlertComponent } from "
|
|
7
|
+
import { AlertComponent } from "../../../components/ui/alert/alert";
|
|
8
8
|
|
|
9
9
|
/** Status banner variant conveying the tone of the message. */
|
|
10
10
|
export type AppStatusAlertVariant = "error" | "success" | "info" | "warning";
|
|
@@ -22,7 +22,7 @@ export type AppStatusAlertVariant = "error" | "success" | "info" | "warning";
|
|
|
22
22
|
selector: "app-status-alert",
|
|
23
23
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24
24
|
imports: [AlertComponent],
|
|
25
|
-
templateUrl: "./status-alert.
|
|
25
|
+
templateUrl: "./status-alert.html",
|
|
26
26
|
host: {
|
|
27
27
|
"data-slot": "status-alert",
|
|
28
28
|
},
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
<app-button type="submit" [disabled]="submitting() || disabled()" class="w-full">
|
|
2
2
|
@if (submitting()) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} @else {
|
|
6
|
-
{{ label() }}
|
|
7
|
-
}
|
|
3
|
+
<app-spinner [diameter]="16" aria-hidden="true" />
|
|
4
|
+
{{ loadingLabel() }} } @else { {{ label() }} }
|
|
8
5
|
</app-button>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
6
|
import { ChangeDetectionStrategy, Component, input } from "@angular/core";
|
|
7
|
-
import { ButtonComponent } from "
|
|
8
|
-
import { SpinnerComponent } from "
|
|
7
|
+
import { ButtonComponent } from "../../../components/ui/button/button";
|
|
8
|
+
import { SpinnerComponent } from "../../../components/ui/spinner/spinner";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Submit button that reflects form submission state — the Angular port of the
|
|
@@ -20,8 +20,8 @@ import { SpinnerComponent } from "../../../../components/ui/spinner/spinner.comp
|
|
|
20
20
|
selector: "app-submit-button",
|
|
21
21
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
22
|
imports: [ButtonComponent, SpinnerComponent],
|
|
23
|
-
templateUrl: "./submit-button.
|
|
24
|
-
styleUrl: "./submit-button.
|
|
23
|
+
templateUrl: "./submit-button.html",
|
|
24
|
+
styleUrl: "./submit-button.scss",
|
|
25
25
|
})
|
|
26
26
|
export class SubmitButtonComponent {
|
|
27
27
|
/** Button text when not submitting. */
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<nav aria-label="Breadcrumb" class="mb-3">
|
|
2
|
+
<ol
|
|
3
|
+
class="text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5"
|
|
4
|
+
>
|
|
5
|
+
@if (includeHome()) {
|
|
6
|
+
<li class="inline-flex items-center gap-1.5">
|
|
7
|
+
<a [routerLink]="'/'" class="hover:text-foreground transition-colors">{{ homeLabel() }}</a>
|
|
8
|
+
</li>
|
|
9
|
+
<li aria-hidden="true" class="[&>svg]:size-3.5">
|
|
10
|
+
<svg
|
|
11
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
+
viewBox="0 0 24 24"
|
|
13
|
+
fill="none"
|
|
14
|
+
stroke="currentColor"
|
|
15
|
+
stroke-width="2"
|
|
16
|
+
stroke-linecap="round"
|
|
17
|
+
stroke-linejoin="round"
|
|
18
|
+
>
|
|
19
|
+
<polyline points="9 18 15 12 9 6" />
|
|
20
|
+
</svg>
|
|
21
|
+
</li>
|
|
22
|
+
} @if (isDetailView()) {
|
|
23
|
+
<li class="inline-flex items-center gap-1.5">
|
|
24
|
+
<a [routerLink]="listPath()" class="hover:text-foreground transition-colors"
|
|
25
|
+
>{{ listLabel() }}</a
|
|
26
|
+
>
|
|
27
|
+
</li>
|
|
28
|
+
<li aria-hidden="true" class="[&>svg]:size-3.5">
|
|
29
|
+
<svg
|
|
30
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
31
|
+
viewBox="0 0 24 24"
|
|
32
|
+
fill="none"
|
|
33
|
+
stroke="currentColor"
|
|
34
|
+
stroke-width="2"
|
|
35
|
+
stroke-linecap="round"
|
|
36
|
+
stroke-linejoin="round"
|
|
37
|
+
>
|
|
38
|
+
<polyline points="9 18 15 12 9 6" />
|
|
39
|
+
</svg>
|
|
40
|
+
</li>
|
|
41
|
+
<li class="inline-flex items-center gap-1.5">
|
|
42
|
+
@if (loading() && !recordName()) {
|
|
43
|
+
<app-skeleton class="h-4 w-32" />
|
|
44
|
+
} @else {
|
|
45
|
+
<span class="text-foreground font-normal" aria-current="page">{{ recordName() }}</span>
|
|
46
|
+
}
|
|
47
|
+
</li>
|
|
48
|
+
} @else {
|
|
49
|
+
<li class="inline-flex items-center gap-1.5">
|
|
50
|
+
<span class="text-foreground font-normal" aria-current="page">{{ listLabel() }}</span>
|
|
51
|
+
</li>
|
|
52
|
+
}
|
|
53
|
+
</ol>
|
|
54
|
+
</nav>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ChangeDetectionStrategy, Component, computed, input } from "@angular/core";
|
|
7
7
|
import { RouterLink } from "@angular/router";
|
|
8
|
-
import { SkeletonComponent } from "
|
|
8
|
+
import { SkeletonComponent } from "../../../components/ui/skeleton/skeleton";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Object-search breadcrumb — Home > Records list > (optional) Record name.
|
|
@@ -19,7 +19,7 @@ import { SkeletonComponent } from "../../../../components/ui/skeleton/skeleton.c
|
|
|
19
19
|
selector: "app-object-breadcrumb",
|
|
20
20
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21
21
|
imports: [RouterLink, SkeletonComponent],
|
|
22
|
-
templateUrl: "./
|
|
22
|
+
templateUrl: "./breadcrumb.html",
|
|
23
23
|
})
|
|
24
24
|
export class ObjectBreadcrumbComponent {
|
|
25
25
|
/** Router path for the object list view (e.g. `/accounts`). */
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@if (chips().length > 0) {
|
|
2
|
+
<div class="flex flex-wrap gap-2">
|
|
3
|
+
@for (chip of chips(); track chip.field) {
|
|
4
|
+
<app-button
|
|
5
|
+
appearance="outlined"
|
|
6
|
+
size="sm"
|
|
7
|
+
iconEnd="close"
|
|
8
|
+
[ariaLabel]="'Remove filter ' + chip.label"
|
|
9
|
+
(clicked)="onRemove(chip.field)"
|
|
10
|
+
>
|
|
11
|
+
{{ chip.label }}
|
|
12
|
+
</app-button>
|
|
13
|
+
}
|
|
14
|
+
<app-button
|
|
15
|
+
appearance="destructive"
|
|
16
|
+
size="sm"
|
|
17
|
+
ariaLabel="Clear all filters"
|
|
18
|
+
(clicked)="onClearAll()"
|
|
19
|
+
>
|
|
20
|
+
Clear all
|
|
21
|
+
</app-button>
|
|
22
|
+
</div>
|
|
23
|
+
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
6
|
import { ChangeDetectionStrategy, Component, computed, inject } from "@angular/core";
|
|
7
|
-
import { ButtonComponent } from "
|
|
8
|
-
import { ObjectSearchStateService } from "
|
|
9
|
-
import type { ActiveFilterValue } from "
|
|
7
|
+
import { ButtonComponent } from "../../../components/ui/button/button";
|
|
8
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
9
|
+
import type { ActiveFilterValue } from "../utils/filter-utils";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Format the display label for one active filter chip. Mirrors the React
|
|
@@ -56,7 +56,7 @@ function formatFilterLabel(filter: ActiveFilterValue): string {
|
|
|
56
56
|
selector: "app-active-filters",
|
|
57
57
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
58
58
|
imports: [ButtonComponent],
|
|
59
|
-
templateUrl: "./active-filters.
|
|
59
|
+
templateUrl: "./active-filters.html",
|
|
60
60
|
})
|
|
61
61
|
export class ActiveFiltersComponent {
|
|
62
62
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -7,14 +7,14 @@ import { ChangeDetectionStrategy, Component, computed, inject, input } from "@an
|
|
|
7
7
|
// Base-app UI wrappers, inherited (not recreated) by this feature. Post-compose
|
|
8
8
|
// they land at uiBundles/<target>/src/app/components/ui/{date-picker,select}/..., four
|
|
9
9
|
// levels up.
|
|
10
|
-
import { DatePickerComponent } from "
|
|
10
|
+
import { DatePickerComponent } from "../../../components/ui/date-picker/date-picker";
|
|
11
11
|
import {
|
|
12
12
|
SelectComponent,
|
|
13
13
|
type AppSelectOption,
|
|
14
|
-
} from "
|
|
15
|
-
import { ObjectSearchStateService } from "
|
|
16
|
-
import type { FilterFieldConfig, FilterFieldType } from "
|
|
17
|
-
import { FilterFieldWrapperComponent } from "
|
|
14
|
+
} from "../../../components/ui/select/select";
|
|
15
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
16
|
+
import type { FilterFieldConfig, FilterFieldType } from "../utils/filter-utils";
|
|
17
|
+
import { FilterFieldWrapperComponent } from "./filter-field-wrapper";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Single-date filter — operator select ("After" / "Before") plus a date
|
|
@@ -37,7 +37,7 @@ const OPERATOR_OPTIONS: readonly AppSelectOption[] = [
|
|
|
37
37
|
selector: "app-date-filter",
|
|
38
38
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
39
39
|
imports: [DatePickerComponent, SelectComponent, FilterFieldWrapperComponent],
|
|
40
|
-
templateUrl: "./date-filter.
|
|
40
|
+
templateUrl: "./date-filter.html",
|
|
41
41
|
})
|
|
42
42
|
export class DateFilterComponent {
|
|
43
43
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -9,11 +9,11 @@ import { ChangeDetectionStrategy, Component, computed, inject, input } from "@an
|
|
|
9
9
|
import {
|
|
10
10
|
DateRange,
|
|
11
11
|
DateRangePickerComponent,
|
|
12
|
-
} from "
|
|
13
|
-
import { ObjectSearchStateService } from "
|
|
14
|
-
import type { FilterFieldConfig, FilterFieldType } from "
|
|
15
|
-
import { toDate, toDateString } from "
|
|
16
|
-
import { FilterFieldWrapperComponent } from "
|
|
12
|
+
} from "../../../components/ui/date-range-picker/date-range-picker";
|
|
13
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
14
|
+
import type { FilterFieldConfig, FilterFieldType } from "../utils/filter-utils";
|
|
15
|
+
import { toDate, toDateString } from "./date-filter";
|
|
16
|
+
import { FilterFieldWrapperComponent } from "./filter-field-wrapper";
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Date range filter — a single two-ended range picker. Emits a `daterange`
|
|
@@ -28,7 +28,7 @@ import { FilterFieldWrapperComponent } from "../filter-field-wrapper/filter-fiel
|
|
|
28
28
|
selector: "app-date-range-filter",
|
|
29
29
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
30
30
|
imports: [DateRangePickerComponent, FilterFieldWrapperComponent],
|
|
31
|
-
templateUrl: "./date-range-filter.
|
|
31
|
+
templateUrl: "./date-range-filter.html",
|
|
32
32
|
})
|
|
33
33
|
export class DateRangeFilterComponent {
|
|
34
34
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
<ng-content />
|
|
4
4
|
<div class="min-h-4">
|
|
5
5
|
@if (error(); as err) {
|
|
6
|
-
|
|
6
|
+
<p class="text-xs text-red-600" role="alert">{{ err }}</p>
|
|
7
7
|
} @else if (helpText(); as help) {
|
|
8
|
-
|
|
8
|
+
<p class="text-xs text-gray-500">{{ help }}</p>
|
|
9
9
|
}
|
|
10
10
|
</div>
|
|
11
11
|
</div>
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
import { ChangeDetectionStrategy, Component, input } from "@angular/core";
|
|
7
7
|
// Base-app UI wrapper, inherited (not recreated) by this feature. Post-compose
|
|
8
8
|
// it lands at uiBundles/<target>/src/app/components/ui/label/..., three levels up from this
|
|
9
|
-
// filter folder (app/object-search/
|
|
10
|
-
import { LabelComponent } from "
|
|
9
|
+
// filter folder (app/object-search/filters/ -> app/components/ui/).
|
|
10
|
+
import { LabelComponent } from "../../../components/ui/label/label";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Standard label + control + help/error scaffold shared by every filter
|
|
@@ -22,7 +22,7 @@ import { LabelComponent } from "../../../../../components/ui/label/label.compone
|
|
|
22
22
|
selector: "app-filter-field-wrapper",
|
|
23
23
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24
24
|
imports: [LabelComponent],
|
|
25
|
-
templateUrl: "./filter-field-wrapper.
|
|
25
|
+
templateUrl: "./filter-field-wrapper.html",
|
|
26
26
|
})
|
|
27
27
|
export class FilterFieldWrapperComponent {
|
|
28
28
|
/** Visible field label rendered above the control. */
|
|
@@ -4,11 +4,11 @@
|
|
|
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 type { AppFieldSize } from "
|
|
8
|
-
import { SelectComponent } from "
|
|
9
|
-
import { ObjectSearchStateService } from "
|
|
10
|
-
import type { FilterFieldConfig } from "
|
|
11
|
-
import { FilterFieldWrapperComponent } from "
|
|
7
|
+
import type { AppFieldSize } from "../../../components/ui/field-size";
|
|
8
|
+
import { SelectComponent } from "../../../components/ui/select/select";
|
|
9
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
10
|
+
import type { FilterFieldConfig } from "../utils/filter-utils";
|
|
11
|
+
import { FilterFieldWrapperComponent } from "./filter-field-wrapper";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Multi-select picklist filter. All presentation (checkbox options, trigger
|
|
@@ -22,7 +22,7 @@ import { FilterFieldWrapperComponent } from "../filter-field-wrapper/filter-fiel
|
|
|
22
22
|
selector: "app-multi-select-filter",
|
|
23
23
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24
24
|
imports: [SelectComponent, FilterFieldWrapperComponent],
|
|
25
|
-
templateUrl: "./multi-select-filter.
|
|
25
|
+
templateUrl: "./multi-select-filter.html",
|
|
26
26
|
})
|
|
27
27
|
export class MultiSelectFilterComponent {
|
|
28
28
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -21,11 +21,11 @@ import { MatFormFieldModule } from "@angular/material/form-field";
|
|
|
21
21
|
import { FormsModule } from "@angular/forms";
|
|
22
22
|
// Base-app UI wrapper, inherited (not recreated) by this feature. Post-compose
|
|
23
23
|
// it lands at uiBundles/<target>/src/app/components/ui/input/..., three levels up.
|
|
24
|
-
import { InputComponent } from "
|
|
25
|
-
import { ObjectSearchStateService } from "
|
|
26
|
-
import { FILTER_DEBOUNCE_MS } from "
|
|
27
|
-
import type { FilterFieldConfig } from "
|
|
28
|
-
import { FilterFieldWrapperComponent } from "
|
|
24
|
+
import { InputComponent } from "../../../components/ui/input/input";
|
|
25
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
26
|
+
import { FILTER_DEBOUNCE_MS } from "../utils/debounce";
|
|
27
|
+
import type { FilterFieldConfig } from "../utils/filter-utils";
|
|
28
|
+
import { FilterFieldWrapperComponent } from "./filter-field-wrapper";
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Numeric range filter — paired `min` / `max` inputs whose committed values are
|
|
@@ -47,7 +47,7 @@ import { FilterFieldWrapperComponent } from "../filter-field-wrapper/filter-fiel
|
|
|
47
47
|
MatFormFieldModule,
|
|
48
48
|
MatInputModule,
|
|
49
49
|
],
|
|
50
|
-
templateUrl: "./numeric-range-filter.
|
|
50
|
+
templateUrl: "./numeric-range-filter.html",
|
|
51
51
|
})
|
|
52
52
|
export class NumericRangeFilterComponent {
|
|
53
53
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -17,11 +17,11 @@ import { Subject } from "rxjs";
|
|
|
17
17
|
import { debounceTime } from "rxjs/operators";
|
|
18
18
|
// Base-app UI wrapper, inherited (not recreated) by this feature. Post-compose
|
|
19
19
|
// it lands at uiBundles/<target>/src/app/components/ui/input/..., three levels up.
|
|
20
|
-
import { InputComponent } from "
|
|
21
|
-
import { ObjectSearchStateService } from "
|
|
22
|
-
import { FILTER_DEBOUNCE_MS } from "
|
|
23
|
-
import type { FilterFieldConfig } from "
|
|
24
|
-
import { FilterFieldWrapperComponent } from "
|
|
20
|
+
import { InputComponent } from "../../../components/ui/input/input";
|
|
21
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
22
|
+
import { FILTER_DEBOUNCE_MS } from "../utils/debounce";
|
|
23
|
+
import type { FilterFieldConfig } from "../utils/filter-utils";
|
|
24
|
+
import { FilterFieldWrapperComponent } from "./filter-field-wrapper";
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Multi-field search filter — a debounced input whose value is applied via
|
|
@@ -35,7 +35,7 @@ import { FilterFieldWrapperComponent } from "../filter-field-wrapper/filter-fiel
|
|
|
35
35
|
selector: "app-search-filter",
|
|
36
36
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37
37
|
imports: [InputComponent, FilterFieldWrapperComponent],
|
|
38
|
-
templateUrl: "./search-filter.
|
|
38
|
+
templateUrl: "./search-filter.html",
|
|
39
39
|
})
|
|
40
40
|
export class SearchFilterComponent {
|
|
41
41
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -9,10 +9,10 @@ import { ChangeDetectionStrategy, Component, computed, inject, input } from "@an
|
|
|
9
9
|
import {
|
|
10
10
|
SelectComponent,
|
|
11
11
|
type AppSelectOption,
|
|
12
|
-
} from "
|
|
13
|
-
import { ObjectSearchStateService } from "
|
|
14
|
-
import type { FilterFieldConfig } from "
|
|
15
|
-
import { FilterFieldWrapperComponent } from "
|
|
12
|
+
} from "../../../components/ui/select/select";
|
|
13
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
14
|
+
import type { FilterFieldConfig } from "../utils/filter-utils";
|
|
15
|
+
import { FilterFieldWrapperComponent } from "./filter-field-wrapper";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Single-value picklist filter — a select rendered from `config.options` with
|
|
@@ -27,7 +27,7 @@ const ALL_VALUE = "";
|
|
|
27
27
|
selector: "app-select-filter",
|
|
28
28
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
29
29
|
imports: [SelectComponent, FilterFieldWrapperComponent],
|
|
30
|
-
templateUrl: "./select-filter.
|
|
30
|
+
templateUrl: "./select-filter.html",
|
|
31
31
|
})
|
|
32
32
|
export class SelectFilterComponent {
|
|
33
33
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -17,11 +17,11 @@ import { Subject } from "rxjs";
|
|
|
17
17
|
import { debounceTime } from "rxjs/operators";
|
|
18
18
|
// Base-app UI wrapper, inherited (not recreated) by this feature. Post-compose
|
|
19
19
|
// it lands at uiBundles/<target>/src/app/components/ui/input/..., three levels up.
|
|
20
|
-
import { InputComponent } from "
|
|
21
|
-
import { ObjectSearchStateService } from "
|
|
22
|
-
import { FILTER_DEBOUNCE_MS } from "
|
|
23
|
-
import type { FilterFieldConfig } from "
|
|
24
|
-
import { FilterFieldWrapperComponent } from "
|
|
20
|
+
import { InputComponent } from "../../../components/ui/input/input";
|
|
21
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
22
|
+
import { FILTER_DEBOUNCE_MS } from "../utils/debounce";
|
|
23
|
+
import type { FilterFieldConfig } from "../utils/filter-utils";
|
|
24
|
+
import { FilterFieldWrapperComponent } from "./filter-field-wrapper";
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Text filter — free-text input that writes a `like %value%` clause via
|
|
@@ -36,7 +36,7 @@ import { FilterFieldWrapperComponent } from "../filter-field-wrapper/filter-fiel
|
|
|
36
36
|
selector: "app-text-filter",
|
|
37
37
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38
38
|
imports: [InputComponent, FilterFieldWrapperComponent],
|
|
39
|
-
templateUrl: "./text-filter.
|
|
39
|
+
templateUrl: "./text-filter.html",
|
|
40
40
|
})
|
|
41
41
|
export class TextFilterComponent {
|
|
42
42
|
private readonly state = inject(ObjectSearchStateService);
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ChangeDetectionStrategy, Component, inject, input } from "@angular/core";
|
|
7
7
|
import type { PageEvent } from "@angular/material/paginator";
|
|
8
|
-
import { PaginatorComponent } from "
|
|
9
|
-
import { ObjectSearchStateService } from "
|
|
8
|
+
import { PaginatorComponent } from "../../../components/ui/paginator/paginator";
|
|
9
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Cursor-pagination bridge. Feeds the shared cursor state into the presentational
|
|
@@ -23,7 +23,7 @@ import { ObjectSearchStateService } from "../../object-search-state.service";
|
|
|
23
23
|
selector: "app-pagination-controls",
|
|
24
24
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
25
25
|
imports: [PaginatorComponent],
|
|
26
|
-
templateUrl: "./pagination
|
|
26
|
+
templateUrl: "./pagination.html",
|
|
27
27
|
})
|
|
28
28
|
export class PaginationControlsComponent {
|
|
29
29
|
/** Total row count from the latest fetch; drives the paginator's range label. */
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
</svg>
|
|
46
46
|
<span>Filters</span>
|
|
47
47
|
@if (nonSearchFilterCount() > 0) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
<span
|
|
49
|
+
class="inline-flex items-center justify-center h-5 min-w-5 rounded-full bg-primary text-primary-foreground text-xs px-1"
|
|
50
|
+
>
|
|
51
|
+
{{ nonSearchFilterCount() }}
|
|
52
|
+
</span>
|
|
53
53
|
}
|
|
54
54
|
</app-button>
|
|
55
55
|
<div class="p-3 min-w-72 max-w-96 space-y-3">
|
|
@@ -15,11 +15,11 @@ import {
|
|
|
15
15
|
} from "@angular/core";
|
|
16
16
|
import { takeUntilDestroyed, toObservable } from "@angular/core/rxjs-interop";
|
|
17
17
|
import { debounceTime } from "rxjs/operators";
|
|
18
|
-
import { ButtonComponent } from "
|
|
19
|
-
import { InputComponent } from "
|
|
20
|
-
import { PopoverComponent } from "
|
|
21
|
-
import { ObjectSearchStateService } from "
|
|
22
|
-
import type { FilterFieldConfig } from "
|
|
18
|
+
import { ButtonComponent } from "../../../components/ui/button/button";
|
|
19
|
+
import { InputComponent } from "../../../components/ui/input/input";
|
|
20
|
+
import { PopoverComponent } from "../../../components/ui/popover/popover";
|
|
21
|
+
import { ObjectSearchStateService } from "../object-search-state.service";
|
|
22
|
+
import type { FilterFieldConfig } from "../utils/filter-utils";
|
|
23
23
|
|
|
24
24
|
/** How long to wait after the last keystroke before writing to state. */
|
|
25
25
|
const SEARCH_DEBOUNCE_MS = 300;
|
|
@@ -48,7 +48,7 @@ const SEARCH_DEBOUNCE_MS = 300;
|
|
|
48
48
|
selector: "app-search-bar",
|
|
49
49
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
50
50
|
imports: [ButtonComponent, InputComponent, PopoverComponent],
|
|
51
|
-
templateUrl: "./search-bar.
|
|
51
|
+
templateUrl: "./search-bar.html",
|
|
52
52
|
})
|
|
53
53
|
export class SearchBarComponent implements OnInit {
|
|
54
54
|
/** Config for the multi-field search filter (its label, placeholder, etc.). */
|