@africanies/angular-web-sdk 0.1.12 → 0.1.13
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/.nx/cache/13293303228070520113/dist/libs/africanies-core/README.md +85 -0
- package/.nx/cache/13293303228070520113/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs +4699 -0
- package/.nx/cache/13293303228070520113/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs.map +1 -0
- package/.nx/cache/13293303228070520113/dist/libs/africanies-core/package.json +31 -0
- package/.nx/cache/13293303228070520113/dist/libs/africanies-core/types/africanies-africanies-core.d.ts +2748 -0
- package/.nx/cache/13387631073062967069/dist/libs/africanies-theme/README.md +46 -0
- package/.nx/cache/13387631073062967069/dist/libs/africanies-theme/fesm2022/africanies-africanies-theme.mjs +249 -0
- package/.nx/cache/13387631073062967069/dist/libs/africanies-theme/fesm2022/africanies-africanies-theme.mjs.map +1 -0
- package/.nx/cache/13387631073062967069/dist/libs/africanies-theme/package.json +35 -0
- package/.nx/cache/13387631073062967069/dist/libs/africanies-theme/tailwind-preset.cjs +330 -0
- package/.nx/cache/13387631073062967069/dist/libs/africanies-theme/types/africanies-africanies-theme.d.ts +178 -0
- package/.nx/cache/16704640000606796352/dist/libs/africanies-storage/README.md +31 -0
- package/.nx/cache/16704640000606796352/dist/libs/africanies-storage/fesm2022/africanies-africanies-storage.mjs +249 -0
- package/.nx/cache/16704640000606796352/dist/libs/africanies-storage/fesm2022/africanies-africanies-storage.mjs.map +1 -0
- package/.nx/cache/16704640000606796352/dist/libs/africanies-storage/package.json +26 -0
- package/.nx/cache/16704640000606796352/dist/libs/africanies-storage/types/africanies-africanies-storage.d.ts +210 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/README.md +68 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/assets/brand/africanies-logo-mini.png +0 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/assets/brand/africanies-logo.png +0 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/assets/brand/africanies-logo.svg +5 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/assets/carriers/dhl.svg +7 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/fesm2022/africanies-africanies-ui.mjs +21251 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/fesm2022/africanies-africanies-ui.mjs.map +1 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/package.json +35 -0
- package/.nx/cache/2427575433215940812/dist/libs/africanies-ui/types/africanies-africanies-ui.d.ts +5803 -0
- package/.nx/cache/7730350229628359718/dist/libs/africanies-icons/README.md +69 -0
- package/.nx/cache/7730350229628359718/dist/libs/africanies-icons/assets/icons.sprite.svg +1851 -0
- package/.nx/cache/7730350229628359718/dist/libs/africanies-icons/fesm2022/africanies-africanies-icons.mjs +839 -0
- package/.nx/cache/7730350229628359718/dist/libs/africanies-icons/fesm2022/africanies-africanies-icons.mjs.map +1 -0
- package/.nx/cache/7730350229628359718/dist/libs/africanies-icons/package.json +30 -0
- package/.nx/cache/7730350229628359718/dist/libs/africanies-icons/types/africanies-africanies-icons.d.ts +108 -0
- package/.nx/cache/run.json +35 -35
- package/.nx/cache/terminalOutputs/10603154579345867998 +397 -0
- package/.nx/cache/terminalOutputs/12354163057083828162 +80 -0
- package/.nx/cache/terminalOutputs/13293303228070520113 +21 -0
- package/.nx/cache/terminalOutputs/13387631073062967069 +21 -0
- package/.nx/cache/terminalOutputs/14876351543379349919 +176 -0
- package/.nx/cache/terminalOutputs/15336883221450327589 +21 -0
- package/.nx/cache/terminalOutputs/16208231681037145050 +86 -84
- package/.nx/cache/terminalOutputs/16704640000606796352 +21 -0
- package/.nx/cache/terminalOutputs/1811006905937373707 +74 -0
- package/.nx/cache/terminalOutputs/2005781115771702035 +8 -0
- package/.nx/cache/terminalOutputs/2360743690449633551 +21 -0
- package/.nx/cache/terminalOutputs/2427575433215940812 +21 -0
- package/.nx/cache/terminalOutputs/2981230413857865352 +8 -0
- package/.nx/cache/terminalOutputs/3243550283886864639 +8 -0
- package/.nx/cache/terminalOutputs/3380188914363501109 +231 -0
- package/.nx/cache/terminalOutputs/3699068646900552690 +8 -0
- package/.nx/cache/terminalOutputs/5175669339257931410 +8 -0
- package/.nx/cache/terminalOutputs/6040230831125637867 +8 -0
- package/.nx/cache/terminalOutputs/7730350229628359718 +21 -0
- package/.nx/cache/terminalOutputs/8098730470212963224 +87 -0
- package/.nx/cache/terminalOutputs/8928690901537686687 +21 -0
- package/.nx/workspace-data/0091ABA9-5C90-580D-953C-8C94E763ADB5-v3.db +0 -0
- package/.nx/workspace-data/0091ABA9-5C90-580D-953C-8C94E763ADB5-v3.db-shm +0 -0
- package/.nx/workspace-data/0091ABA9-5C90-580D-953C-8C94E763ADB5-v3.db-wal +0 -0
- package/.nx/workspace-data/d/daemon.log +2859 -0
- package/.nx/workspace-data/d/server-process.json +2 -2
- package/.nx/workspace-data/file-map.json +2155 -2183
- package/.nx/workspace-data/nx_files.nxt +0 -0
- package/.nx/workspace-data/project-graph.json +2 -2
- package/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs +60 -0
- package/dist/libs/africanies-core/fesm2022/africanies-africanies-core.mjs.map +1 -1
- package/dist/libs/africanies-icons/fesm2022/africanies-africanies-icons.mjs +6 -0
- package/dist/libs/africanies-icons/fesm2022/africanies-africanies-icons.mjs.map +1 -1
- package/dist/libs/africanies-storage/fesm2022/africanies-africanies-storage.mjs +6 -0
- package/dist/libs/africanies-storage/fesm2022/africanies-africanies-storage.mjs.map +1 -1
- package/dist/libs/africanies-theme/fesm2022/africanies-africanies-theme.mjs +6 -0
- package/dist/libs/africanies-theme/fesm2022/africanies-africanies-theme.mjs.map +1 -1
- package/dist/libs/africanies-ui/fesm2022/africanies-africanies-ui.mjs +297 -51
- package/dist/libs/africanies-ui/fesm2022/africanies-africanies-ui.mjs.map +1 -1
- package/dist/libs/africanies-ui/types/africanies-africanies-ui.d.ts +12 -12
- package/libs/africanies-core/src/lib/auth/auth-token.service.ts +3 -0
- package/libs/africanies-core/src/lib/auth/auth.service.ts +3 -0
- package/libs/africanies-core/src/lib/country/country.service.ts +3 -0
- package/libs/africanies-core/src/lib/currency/currency.service.ts +3 -0
- package/libs/africanies-core/src/lib/document/document.service.ts +3 -0
- package/libs/africanies-core/src/lib/file/file.service.ts +3 -0
- package/libs/africanies-core/src/lib/filters/filter-options.resolver.ts +3 -0
- package/libs/africanies-core/src/lib/http/api-client.ts +3 -0
- package/libs/africanies-core/src/lib/mode/mode-config.service.ts +3 -0
- package/libs/africanies-core/src/lib/notification/notification.service.ts +3 -0
- package/libs/africanies-core/src/lib/overlay/route-overlay.service.ts +3 -0
- package/libs/africanies-core/src/lib/payment-method/payment-method.service.ts +3 -0
- package/libs/africanies-core/src/lib/plan/plan.service.ts +3 -0
- package/libs/africanies-core/src/lib/product/product.service.ts +3 -0
- package/libs/africanies-core/src/lib/service/service.service.ts +3 -0
- package/libs/africanies-core/src/lib/shipment-method/shipment-method.service.ts +3 -0
- package/libs/africanies-core/src/lib/shipping/shipping-mode.service.ts +3 -0
- package/libs/africanies-core/src/lib/user/user.service.ts +3 -0
- package/libs/africanies-core/src/lib/warehouse/warehouse.service.ts +3 -0
- package/libs/africanies-core/src/lib/zone/zone.service.ts +3 -0
- package/libs/africanies-icons/src/lib/africanies-icon.component.ts +3 -0
- package/libs/africanies-icons/src/lib/icon-registry.service.ts +3 -0
- package/libs/africanies-storage/src/lib/local-storage.service.ts +3 -0
- package/libs/africanies-storage/src/lib/session-storage.service.ts +3 -0
- package/libs/africanies-theme/src/lib/mode-color.service.ts +3 -0
- package/libs/africanies-theme/src/lib/theme.service.ts +3 -0
- package/libs/africanies-ui/src/index.ts +11 -11
- package/libs/africanies-ui/src/lib/accordion/accordion.component.ts +3 -0
- package/libs/africanies-ui/src/lib/action-menu/action-menu-trigger.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/action-menu/action-menu.component.ts +3 -0
- package/libs/africanies-ui/src/lib/alert/alert.component.ts +3 -0
- package/libs/africanies-ui/src/lib/avatar/avatar-menu.component.ts +3 -0
- package/libs/africanies-ui/src/lib/avatar/avatar.component.ts +3 -0
- package/libs/africanies-ui/src/lib/brand/brand-logo.component.ts +3 -0
- package/libs/africanies-ui/src/lib/button/button.component.ts +3 -0
- package/libs/africanies-ui/src/lib/carrier/carrier-logo.component.ts +3 -0
- package/libs/africanies-ui/src/lib/chip/chip.component.ts +3 -0
- package/libs/africanies-ui/src/lib/content-stack/content-stack.component.ts +3 -0
- package/libs/africanies-ui/src/lib/copy-button/copy-button.component.ts +3 -0
- package/libs/africanies-ui/src/lib/feedback/async-state.component.ts +3 -0
- package/libs/africanies-ui/src/lib/feedback/empty-state.component.ts +3 -0
- package/libs/africanies-ui/src/lib/feedback/error-indicator.component.ts +3 -0
- package/libs/africanies-ui/src/lib/feedback/error-state.component.ts +3 -0
- package/libs/africanies-ui/src/lib/feedback/loading-state.component.ts +3 -0
- package/libs/africanies-ui/src/lib/filters/filter-drawer.panel.ts +3 -0
- package/libs/africanies-ui/src/lib/filters/filter-drawer.service.ts +3 -0
- package/libs/africanies-ui/src/lib/filters/filter-query.service.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/address-input/address-input.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/address-input/google-places.service.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/checkbox/checkbox.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/date-picker/date-picker.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/file-upload/camera-capture.dialog.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/file-upload/file-preview.dialog.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/file-upload/file-upload.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/index.ts +3 -3
- package/libs/africanies-ui/src/lib/forms/number-input/number-input.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/otp-input/otp-input.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/phone-input/phone-input.component.ts +9 -6
- package/libs/africanies-ui/src/lib/forms/radio/radio.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/search-combobox/search-combobox.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/select/select.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/text-input/text-input.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/textarea/textarea.component.ts +3 -0
- package/libs/africanies-ui/src/lib/forms/toggle/toggle.component.ts +3 -0
- package/libs/africanies-ui/src/lib/image/image.component.ts +3 -0
- package/libs/africanies-ui/src/lib/info-popover/info-popover-content.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/info-popover/info-popover-trigger.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/info-popover/info-popover.component.ts +3 -0
- package/libs/africanies-ui/src/lib/layout/app-shell-content-header.component.ts +3 -0
- package/libs/africanies-ui/src/lib/layout/app-shell-header-slot.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/layout/app-shell-header.component.ts +9 -0
- package/libs/africanies-ui/src/lib/layout/app-shell.component.ts +3 -0
- package/libs/africanies-ui/src/lib/layout/header-weather.spec.ts +62 -94
- package/libs/africanies-ui/src/lib/layout/header-weather.ts +54 -61
- package/libs/africanies-ui/src/lib/layout/page-header.component.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-actions.module.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-feedback.module.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-forms.module.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-info-popover.module.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-navigation.module.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-stepper.module.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-table.module.ts +3 -0
- package/libs/africanies-ui/src/lib/modules/africanies-tooltip.module.ts +3 -0
- package/libs/africanies-ui/src/lib/navigation/breadcrumb/breadcrumb.component.ts +3 -0
- package/libs/africanies-ui/src/lib/navigation/segment/segment.component.ts +3 -0
- package/libs/africanies-ui/src/lib/navigation/shipping-mode-switch/shipping-mode-switch.component.ts +3 -0
- package/libs/africanies-ui/src/lib/navigation/side-nav/africanies-side-nav.component.ts +3 -0
- package/libs/africanies-ui/src/lib/navigation/tabs/tab-def.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/navigation/tabs/tabs.component.ts +3 -0
- package/libs/africanies-ui/src/lib/notifications/notification-drawer.panel.ts +3 -0
- package/libs/africanies-ui/src/lib/notifications/notification-drawer.service.ts +3 -0
- package/libs/africanies-ui/src/lib/overlay/confirm-dialog.component.ts +3 -0
- package/libs/africanies-ui/src/lib/overlay/confirm.service.ts +3 -0
- package/libs/africanies-ui/src/lib/overlay/drawer.service.ts +3 -0
- package/libs/africanies-ui/src/lib/overlay/modal.service.ts +3 -0
- package/libs/africanies-ui/src/lib/overlay/overlay-frame.component.ts +9 -0
- package/libs/africanies-ui/src/lib/pagination/pagination.component.ts +3 -0
- package/libs/africanies-ui/src/lib/stepper/step-def.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/stepper/stepper.component.ts +3 -0
- package/libs/africanies-ui/src/lib/table/cell-def.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/table/header-cell-def.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/table/row-detail-def.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/table/table.component.ts +3 -0
- package/libs/africanies-ui/src/lib/toast/toast-host.component.ts +4 -1
- package/libs/africanies-ui/src/lib/toast/toast-item.component.ts +3 -0
- package/libs/africanies-ui/src/lib/toast/toast.service.ts +3 -0
- package/libs/africanies-ui/src/lib/tooltip/tooltip-trigger.directive.ts +3 -0
- package/libs/africanies-ui/src/lib/tooltip/tooltip.component.ts +3 -0
- package/package.json +1 -1
|
@@ -46,6 +46,9 @@ import { NgTemplateOutlet, NgClass, DatePipe } from '@angular/common';
|
|
|
46
46
|
* </button>
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
|
+
/**
|
|
50
|
+
* Theme-token button used across AFRICANIES surfaces.
|
|
51
|
+
*/
|
|
49
52
|
class ButtonComponent {
|
|
50
53
|
modeColor = inject(ModeColorService);
|
|
51
54
|
/**
|
|
@@ -239,6 +242,9 @@ function toastFingerprint(variant, title, message) {
|
|
|
239
242
|
* Single toast card — dense, token-based, with optional countdown rail.
|
|
240
243
|
* Stacked identical toasts can expand; close peels the outermost copy.
|
|
241
244
|
*/
|
|
245
|
+
/**
|
|
246
|
+
* Single toast card — dense, token-based, with optional countdown rail. Stacked identical toasts can expand; close peels the outermost copy.
|
|
247
|
+
*/
|
|
242
248
|
class ToastItemComponent {
|
|
243
249
|
/** Stack entry to render. */
|
|
244
250
|
item = input.required(/* @ts-ignore */
|
|
@@ -667,6 +673,9 @@ function railFill(variant) {
|
|
|
667
673
|
* Caps to the viewport and scrolls when the stack (or an expanded group)
|
|
668
674
|
* would otherwise run off-screen.
|
|
669
675
|
*/
|
|
676
|
+
/**
|
|
677
|
+
* Fixed stack host attached once by {@link ToastService.ensureHost}. Caps to the viewport and scrolls when the stack (or an expanded group) would otherwise run off-screen.
|
|
678
|
+
*/
|
|
670
679
|
class ToastHostComponent {
|
|
671
680
|
toastService = inject(ToastService);
|
|
672
681
|
toasts = this.toastService.items;
|
|
@@ -684,7 +693,7 @@ class ToastHostComponent {
|
|
|
684
693
|
<div class="flex w-full flex-col gap-2">
|
|
685
694
|
@if (toastService.showHostActions()) {
|
|
686
695
|
<div
|
|
687
|
-
class="sticky top-0 z-10 flex flex-wrap justify-end gap-2 bg-
|
|
696
|
+
class="sticky top-0 z-10 flex flex-wrap justify-end gap-2 bg-transparent pb-1 backdrop-blur-sm dark:bg-transparent"
|
|
688
697
|
>
|
|
689
698
|
@if (toastService.hasStacks()) {
|
|
690
699
|
@if (toastService.allStacksExpanded()) {
|
|
@@ -753,7 +762,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
753
762
|
<div class="flex w-full flex-col gap-2">
|
|
754
763
|
@if (toastService.showHostActions()) {
|
|
755
764
|
<div
|
|
756
|
-
class="sticky top-0 z-10 flex flex-wrap justify-end gap-2 bg-
|
|
765
|
+
class="sticky top-0 z-10 flex flex-wrap justify-end gap-2 bg-transparent pb-1 backdrop-blur-sm dark:bg-transparent"
|
|
757
766
|
>
|
|
758
767
|
@if (toastService.hasStacks()) {
|
|
759
768
|
@if (toastService.allStacksExpanded()) {
|
|
@@ -827,6 +836,9 @@ const TOAST_OVERLAY_Z_INDEX = '1100';
|
|
|
827
836
|
*
|
|
828
837
|
* Prefer {@link provideAfricaniesToasts} at bootstrap so the host overlay mounts once.
|
|
829
838
|
*/
|
|
839
|
+
/**
|
|
840
|
+
* Imperative toast stack for AFRICANIES apps.
|
|
841
|
+
*/
|
|
830
842
|
class ToastService {
|
|
831
843
|
overlay = inject(Overlay);
|
|
832
844
|
injector = inject(Injector);
|
|
@@ -1161,6 +1173,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
1161
1173
|
* <africanies-copy [value]="ref" ariaLabel="Copy reference" [announce]="true" />
|
|
1162
1174
|
* ```
|
|
1163
1175
|
*/
|
|
1176
|
+
/**
|
|
1177
|
+
* Icon button that copies {@link value} to the clipboard.
|
|
1178
|
+
*/
|
|
1164
1179
|
class CopyButtonComponent {
|
|
1165
1180
|
toastService = inject(ToastService, { optional: true });
|
|
1166
1181
|
/** Plain text written to the clipboard. */
|
|
@@ -1396,6 +1411,9 @@ function navigateNavItem(router, item, keepScroll = true) {
|
|
|
1396
1411
|
* </africanies-action-menu>
|
|
1397
1412
|
* ```
|
|
1398
1413
|
*/
|
|
1414
|
+
/**
|
|
1415
|
+
* Marks projected content as the custom trigger for {@link ActionMenuComponent}.
|
|
1416
|
+
*/
|
|
1399
1417
|
class ActionMenuTriggerDirective {
|
|
1400
1418
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ActionMenuTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1401
1419
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: ActionMenuTriggerDirective, isStandalone: true, selector: "[africaniesActionMenuTrigger]", ngImport: i0 });
|
|
@@ -1475,6 +1493,9 @@ const MENU_PANEL_POSITIONS = [
|
|
|
1475
1493
|
* }
|
|
1476
1494
|
* ```
|
|
1477
1495
|
*/
|
|
1496
|
+
/**
|
|
1497
|
+
* Compact overflow menu for row and toolbar actions.
|
|
1498
|
+
*/
|
|
1478
1499
|
class ActionMenuComponent {
|
|
1479
1500
|
router = inject(Router);
|
|
1480
1501
|
panelPositions = MENU_PANEL_POSITIONS;
|
|
@@ -1902,6 +1923,9 @@ let nextMenuId = 0;
|
|
|
1902
1923
|
* />
|
|
1903
1924
|
* ```
|
|
1904
1925
|
*/
|
|
1926
|
+
/**
|
|
1927
|
+
* Blocking empty state when a fetch succeeded but produced no rows / value.
|
|
1928
|
+
*/
|
|
1905
1929
|
class EmptyStateComponent {
|
|
1906
1930
|
/**
|
|
1907
1931
|
* Empty-copy. Defaults to a generic phrase; override for filter-specific help.
|
|
@@ -2001,6 +2025,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2001
2025
|
* </div>
|
|
2002
2026
|
* ```
|
|
2003
2027
|
*/
|
|
2028
|
+
/**
|
|
2029
|
+
* Compact error pill for non-blocking failures while stale data stays visible — distinct from {@link ErrorStateComponent} (full-section blocking).
|
|
2030
|
+
*/
|
|
2004
2031
|
class ErrorIndicatorComponent {
|
|
2005
2032
|
/**
|
|
2006
2033
|
* Error copy. When empty, the indicator is not shown.
|
|
@@ -2146,6 +2173,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2146
2173
|
* />
|
|
2147
2174
|
* ```
|
|
2148
2175
|
*/
|
|
2176
|
+
/**
|
|
2177
|
+
* Blocking error state for failed async fetches (not field validation).
|
|
2178
|
+
*/
|
|
2149
2179
|
class ErrorStateComponent {
|
|
2150
2180
|
/**
|
|
2151
2181
|
* Human-readable failure reason. Required so the alert is never an empty
|
|
@@ -2233,6 +2263,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2233
2263
|
* <africanies-loading-state mode="inline" message="Refreshing…" />
|
|
2234
2264
|
* ```
|
|
2235
2265
|
*/
|
|
2266
|
+
/**
|
|
2267
|
+
* Blocking / inline loading indicator for async surfaces.
|
|
2268
|
+
*/
|
|
2236
2269
|
class LoadingStateComponent {
|
|
2237
2270
|
modeColor = inject(ModeColorService);
|
|
2238
2271
|
/**
|
|
@@ -2344,6 +2377,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2344
2377
|
* </africanies-async-state>
|
|
2345
2378
|
* ```
|
|
2346
2379
|
*/
|
|
2380
|
+
/**
|
|
2381
|
+
* Async query wrapper that maps {@link AsyncQueryStateModel} into loading / error / empty / success with non-blocking badges for background activity.
|
|
2382
|
+
*/
|
|
2347
2383
|
class AsyncStateComponent {
|
|
2348
2384
|
/**
|
|
2349
2385
|
* Snapshot from the app's query layer (e.g. mapped `injectQuery()` signals).
|
|
@@ -2560,6 +2596,9 @@ function isEmptyData(data) {
|
|
|
2560
2596
|
* </africanies-accordion>
|
|
2561
2597
|
* ```
|
|
2562
2598
|
*/
|
|
2599
|
+
/**
|
|
2600
|
+
* Bordered expandable panel with animated fold — the pattern used on Manifest detail and Make Payment review.
|
|
2601
|
+
*/
|
|
2563
2602
|
class AccordionComponent {
|
|
2564
2603
|
/** Plain-text header. Prefer projected `[africaniesAccordionTitle]` for rich titles. */
|
|
2565
2604
|
title = input('', /* @ts-ignore */
|
|
@@ -2690,6 +2729,9 @@ const DEFAULT_ICONS = {
|
|
|
2690
2729
|
* }
|
|
2691
2730
|
* ```
|
|
2692
2731
|
*/
|
|
2732
|
+
/**
|
|
2733
|
+
* Inline page/section banner — distinct from {@link ErrorStateComponent} (full-section async failure + Retry).
|
|
2734
|
+
*/
|
|
2693
2735
|
class AlertComponent {
|
|
2694
2736
|
/** Semantic tone. Defaults to `info`. */
|
|
2695
2737
|
variant = input('info', /* @ts-ignore */
|
|
@@ -2871,6 +2913,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2871
2913
|
* <africanies-chip variant="warning" [removable]="true" (removed)="clear()">Pending</africanies-chip>
|
|
2872
2914
|
* ```
|
|
2873
2915
|
*/
|
|
2916
|
+
/**
|
|
2917
|
+
* Compact status / category label.
|
|
2918
|
+
*/
|
|
2874
2919
|
class ChipComponent {
|
|
2875
2920
|
/** Semantic tone. Defaults to `neutral`. Ignored when {@link color} is set. */
|
|
2876
2921
|
variant = input('neutral', /* @ts-ignore */
|
|
@@ -3026,6 +3071,9 @@ function normalizeCarrierLogoSlug(value) {
|
|
|
3026
3071
|
* <africanies-carrier-logo [carrier]="item.delivery_vendor" />
|
|
3027
3072
|
* ```
|
|
3028
3073
|
*/
|
|
3074
|
+
/**
|
|
3075
|
+
* Inline carrier marks for delivery vendor cells.
|
|
3076
|
+
*/
|
|
3029
3077
|
class CarrierLogoComponent {
|
|
3030
3078
|
/** Raw carrier slug or label from the API. */
|
|
3031
3079
|
carrier = input('', /* @ts-ignore */
|
|
@@ -3178,6 +3226,9 @@ function deliveryVendorSelected(storedValue, baseOptions = deliveryVendorSelectO
|
|
|
3178
3226
|
* />
|
|
3179
3227
|
* ```
|
|
3180
3228
|
*/
|
|
3229
|
+
/**
|
|
3230
|
+
* Compact stacked text for table cells and detail panels.
|
|
3231
|
+
*/
|
|
3181
3232
|
class ContentStackComponent {
|
|
3182
3233
|
/** Primary line — usually a person or entity name. */
|
|
3183
3234
|
title = input('', /* @ts-ignore */
|
|
@@ -3290,6 +3341,9 @@ function provideAfricaniesToasts() {
|
|
|
3290
3341
|
* </africanies-tooltip>
|
|
3291
3342
|
* ```
|
|
3292
3343
|
*/
|
|
3344
|
+
/**
|
|
3345
|
+
* Marks projected content as the custom trigger for {@link TooltipComponent}.
|
|
3346
|
+
*/
|
|
3293
3347
|
class TooltipTriggerDirective {
|
|
3294
3348
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3295
3349
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: TooltipTriggerDirective, isStandalone: true, selector: "[africaniesTooltipTrigger]", ngImport: i0 });
|
|
@@ -3389,6 +3443,9 @@ const PLACEMENT_POSITIONS$1 = {
|
|
|
3389
3443
|
* </africanies-tooltip>
|
|
3390
3444
|
* ```
|
|
3391
3445
|
*/
|
|
3446
|
+
/**
|
|
3447
|
+
* Contextual help tip — default info icon or a custom projected trigger.
|
|
3448
|
+
*/
|
|
3392
3449
|
class TooltipComponent {
|
|
3393
3450
|
tooltipId = `africanies-tooltip-${++nextTooltipId}`;
|
|
3394
3451
|
customTrigger = contentChild(TooltipTriggerDirective, /* @ts-ignore */
|
|
@@ -3666,6 +3723,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
3666
3723
|
* </africanies-info-popover>
|
|
3667
3724
|
* ```
|
|
3668
3725
|
*/
|
|
3726
|
+
/**
|
|
3727
|
+
* Marks projected content as the custom trigger for {@link InfoPopoverComponent}.
|
|
3728
|
+
*/
|
|
3669
3729
|
class InfoPopoverTriggerDirective {
|
|
3670
3730
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: InfoPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3671
3731
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: InfoPopoverTriggerDirective, isStandalone: true, selector: "[africaniesInfoPopoverTrigger]", ngImport: i0 });
|
|
@@ -3771,6 +3831,9 @@ const PLACEMENT_POSITIONS = {
|
|
|
3771
3831
|
* </africanies-info-popover>
|
|
3772
3832
|
* ```
|
|
3773
3833
|
*/
|
|
3834
|
+
/**
|
|
3835
|
+
* Hover / focus / click info panel with a white card, optional title, and fully projected body content (any child component or markup).
|
|
3836
|
+
*/
|
|
3774
3837
|
class InfoPopoverComponent {
|
|
3775
3838
|
panelId = `africanies-info-popover-${++nextInfoPopoverId}`;
|
|
3776
3839
|
customTrigger = contentChild(InfoPopoverTriggerDirective, /* @ts-ignore */
|
|
@@ -4086,6 +4149,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
4086
4149
|
* </africanies-info-popover>
|
|
4087
4150
|
* ```
|
|
4088
4151
|
*/
|
|
4152
|
+
/**
|
|
4153
|
+
* Marks projected content as the panel body for {@link InfoPopoverComponent}.
|
|
4154
|
+
*/
|
|
4089
4155
|
class InfoPopoverContentDirective {
|
|
4090
4156
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: InfoPopoverContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
4091
4157
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: InfoPopoverContentDirective, isStandalone: true, selector: "[africaniesInfoPopoverContent]", ngImport: i0 });
|
|
@@ -4186,6 +4252,9 @@ let nextDatePickerId = 0;
|
|
|
4186
4252
|
* </africanies-date-picker>
|
|
4187
4253
|
* ```
|
|
4188
4254
|
*/
|
|
4255
|
+
/**
|
|
4256
|
+
* Date field wrapping native `input[type=date]`, following shared AFRICANIES form field pattern.
|
|
4257
|
+
*/
|
|
4189
4258
|
class DatePickerComponent {
|
|
4190
4259
|
theme = inject(ThemeService, { optional: true });
|
|
4191
4260
|
controlId = `africanies-date-picker-${++nextDatePickerId}`;
|
|
@@ -4632,6 +4701,9 @@ function attachOverlayContent(overlay, parentInjector, component, overlayConfig,
|
|
|
4632
4701
|
* });
|
|
4633
4702
|
* ```
|
|
4634
4703
|
*/
|
|
4704
|
+
/**
|
|
4705
|
+
* Opens centered modal dialogs via Angular CDK Overlay.
|
|
4706
|
+
*/
|
|
4635
4707
|
class ModalService {
|
|
4636
4708
|
overlay = inject(Overlay);
|
|
4637
4709
|
injector = inject(Injector);
|
|
@@ -4817,6 +4889,9 @@ const SELECT_PANEL_POSITIONS = [
|
|
|
4817
4889
|
* ]);
|
|
4818
4890
|
* ```
|
|
4819
4891
|
*/
|
|
4892
|
+
/**
|
|
4893
|
+
* Option select following the shared AFRICANIES form field pattern.
|
|
4894
|
+
*/
|
|
4820
4895
|
class SelectComponent {
|
|
4821
4896
|
modal = inject(ModalService, { optional: true });
|
|
4822
4897
|
modeColor = inject(ModeColorService);
|
|
@@ -6133,6 +6208,9 @@ let nextTextInputId = 0;
|
|
|
6133
6208
|
* </africanies-text-input>
|
|
6134
6209
|
* ```
|
|
6135
6210
|
*/
|
|
6211
|
+
/**
|
|
6212
|
+
* Single-line text field — **reference** form control for `@africanies/africanies-ui`.
|
|
6213
|
+
*/
|
|
6136
6214
|
class TextInputComponent {
|
|
6137
6215
|
/** Stable ids so label / aria-describedby stay paired across re-renders. */
|
|
6138
6216
|
controlId = `africanies-text-input-${++nextTextInputId}`;
|
|
@@ -6341,6 +6419,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
6341
6419
|
* No-ops when Angular Router is not in the injector (unit tests without
|
|
6342
6420
|
* `provideRouter`).
|
|
6343
6421
|
*/
|
|
6422
|
+
/**
|
|
6423
|
+
* Bidirectional list-query sync with the browser URL.
|
|
6424
|
+
*/
|
|
6344
6425
|
class FilterQueryService {
|
|
6345
6426
|
route = inject(ActivatedRoute, { optional: true });
|
|
6346
6427
|
router = inject(Router, { optional: true });
|
|
@@ -6475,6 +6556,9 @@ function paramMapToRecord(map) {
|
|
|
6475
6556
|
* {@link FilterDrawerResult}. Successful Apply also writes the query bag to
|
|
6476
6557
|
* the browser URL via {@link FilterQueryService} (page resets to 1).
|
|
6477
6558
|
*/
|
|
6559
|
+
/**
|
|
6560
|
+
* Schema-driven filter drawer body.
|
|
6561
|
+
*/
|
|
6478
6562
|
class FilterDrawerPanel {
|
|
6479
6563
|
data = inject(OVERLAY_DATA);
|
|
6480
6564
|
ref = inject((AfricaniesOverlayRef));
|
|
@@ -7455,6 +7539,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
7455
7539
|
* drawer.open(FiltersPanel, { data: { facet: 'status' } });
|
|
7456
7540
|
* ```
|
|
7457
7541
|
*/
|
|
7542
|
+
/**
|
|
7543
|
+
* Opens edge-anchored drawer panels via Angular CDK Overlay.
|
|
7544
|
+
*/
|
|
7458
7545
|
class DrawerService {
|
|
7459
7546
|
overlay = inject(Overlay);
|
|
7460
7547
|
injector = inject(Injector);
|
|
@@ -7554,6 +7641,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
7554
7641
|
* });
|
|
7555
7642
|
* ```
|
|
7556
7643
|
*/
|
|
7644
|
+
/**
|
|
7645
|
+
* Opens the schema-driven {@link FilterDrawerPanel} via {@link DrawerService}.
|
|
7646
|
+
*/
|
|
7557
7647
|
class FilterDrawerService {
|
|
7558
7648
|
drawer = inject(DrawerService);
|
|
7559
7649
|
filterQuery = inject(FilterQueryService);
|
|
@@ -7590,6 +7680,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
7590
7680
|
* primary button shows {@link ButtonComponent} loading until the work
|
|
7591
7681
|
* settles. Errors leave the dialog open.
|
|
7592
7682
|
*/
|
|
7683
|
+
/**
|
|
7684
|
+
* Built-in confirm dialog hosted by {@link ConfirmService} / {@link ModalService}.
|
|
7685
|
+
*/
|
|
7593
7686
|
class ConfirmDialogComponent {
|
|
7594
7687
|
/** Stable ids so aria-labelledby / aria-describedby stay unique per instance. */
|
|
7595
7688
|
titleId = `africanies-confirm-title-${cryptoRandom()}`;
|
|
@@ -7890,6 +7983,9 @@ function cryptoRandom() {
|
|
|
7890
7983
|
* });
|
|
7891
7984
|
* ```
|
|
7892
7985
|
*/
|
|
7986
|
+
/**
|
|
7987
|
+
* One-line confirm flow built on {@link ModalService}.
|
|
7988
|
+
*/
|
|
7893
7989
|
class ConfirmService {
|
|
7894
7990
|
modal = inject(ModalService);
|
|
7895
7991
|
/**
|
|
@@ -7937,6 +8033,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
7937
8033
|
* </africanies-overlay-frame>
|
|
7938
8034
|
* ```
|
|
7939
8035
|
*/
|
|
8036
|
+
/**
|
|
8037
|
+
* Marks projected chrome as the non-scrolling overlay header (title + close).
|
|
8038
|
+
*/
|
|
7940
8039
|
class OverlayHeaderDirective {
|
|
7941
8040
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OverlayHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7942
8041
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: OverlayHeaderDirective, isStandalone: true, selector: "[africaniesOverlayHeader]", ngImport: i0 });
|
|
@@ -7962,6 +8061,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
7962
8061
|
* </africanies-overlay-frame>
|
|
7963
8062
|
* ```
|
|
7964
8063
|
*/
|
|
8064
|
+
/**
|
|
8065
|
+
* Marks projected chrome as the non-scrolling overlay footer (actions).
|
|
8066
|
+
*/
|
|
7965
8067
|
class OverlayFooterDirective {
|
|
7966
8068
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OverlayFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7967
8069
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: OverlayFooterDirective, isStandalone: true, selector: "[africaniesOverlayFooter]", ngImport: i0 });
|
|
@@ -8004,6 +8106,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
8004
8106
|
* export class EditModal {}
|
|
8005
8107
|
* ```
|
|
8006
8108
|
*/
|
|
8109
|
+
/**
|
|
8110
|
+
* Header / scroll body / footer shell for {@link ModalService} and {@link DrawerService} panels.
|
|
8111
|
+
*/
|
|
8007
8112
|
class OverlayFrameComponent {
|
|
8008
8113
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: OverlayFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8009
8114
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: OverlayFrameComponent, isStandalone: true, selector: "africanies-overlay-frame", host: { classAttribute: "flex min-h-0 w-full flex-1 flex-col overflow-hidden" }, ngImport: i0, template: `
|
|
@@ -8113,6 +8218,9 @@ const PLACE_DETAILS_FIELD_MASK = 'id,displayName,formattedAddress,addressCompone
|
|
|
8113
8218
|
* No Maps JavaScript widget, AutocompleteService, or PlacesService.
|
|
8114
8219
|
* Register {@link provideGooglePlaces} with a key that has Places API (New).
|
|
8115
8220
|
*/
|
|
8221
|
+
/**
|
|
8222
|
+
* Places API (New) over REST — same contract as the working React autocomplete (`POST …/places:autocomplete`, `GET …/places/{id}`).
|
|
8223
|
+
*/
|
|
8116
8224
|
class GooglePlacesService {
|
|
8117
8225
|
config = inject(GOOGLE_PLACES_CONFIG, { optional: true });
|
|
8118
8226
|
/**
|
|
@@ -8312,6 +8420,9 @@ const ADDRESS_PANEL_POSITIONS = [
|
|
|
8312
8420
|
* </africanies-address-input>
|
|
8313
8421
|
* ```
|
|
8314
8422
|
*/
|
|
8423
|
+
/**
|
|
8424
|
+
* Google Places address field with suggestion dropdown.
|
|
8425
|
+
*/
|
|
8315
8426
|
class AddressInputComponent {
|
|
8316
8427
|
places = inject(GooglePlacesService);
|
|
8317
8428
|
destroyRef = inject(DestroyRef);
|
|
@@ -8898,6 +9009,9 @@ let nextCheckboxId = 0;
|
|
|
8898
9009
|
* />
|
|
8899
9010
|
* ```
|
|
8900
9011
|
*/
|
|
9012
|
+
/**
|
|
9013
|
+
* Boolean checkbox following the shared AFRICANIES form field pattern.
|
|
9014
|
+
*/
|
|
8901
9015
|
class CheckboxComponent {
|
|
8902
9016
|
modeColor = inject(ModeColorService);
|
|
8903
9017
|
controlId = `africanies-checkbox-${++nextCheckboxId}`;
|
|
@@ -9208,6 +9322,9 @@ function fileExtensionLabel(fileName) {
|
|
|
9208
9322
|
* Prefer opening via {@link ModalService} so the stream is owned by this
|
|
9209
9323
|
* dialog and torn down on close / destroy.
|
|
9210
9324
|
*/
|
|
9325
|
+
/**
|
|
9326
|
+
* Live webcam capture dialog for {@link FileUploadComponent}.
|
|
9327
|
+
*/
|
|
9211
9328
|
class CameraCaptureDialogComponent {
|
|
9212
9329
|
destroyRef = inject(DestroyRef);
|
|
9213
9330
|
ref = inject((AfricaniesOverlayRef));
|
|
@@ -9514,6 +9631,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
9514
9631
|
* Object URLs created here are revoked on destroy; the list’s image
|
|
9515
9632
|
* `previewUrl` is left alone.
|
|
9516
9633
|
*/
|
|
9634
|
+
/**
|
|
9635
|
+
* Large-file preview modal for {@link FileUploadComponent}.
|
|
9636
|
+
*/
|
|
9517
9637
|
class FilePreviewDialogComponent {
|
|
9518
9638
|
data = inject(OVERLAY_DATA);
|
|
9519
9639
|
ref = inject((AfricaniesOverlayRef));
|
|
@@ -9713,6 +9833,9 @@ let nextFileUploadId = 0;
|
|
|
9713
9833
|
* />
|
|
9714
9834
|
* ```
|
|
9715
9835
|
*/
|
|
9836
|
+
/**
|
|
9837
|
+
* File / camera / drag-and-drop picker following the shared AFRICANIES form field pattern.
|
|
9838
|
+
*/
|
|
9716
9839
|
class FileUploadComponent {
|
|
9717
9840
|
destroyRef = inject(DestroyRef);
|
|
9718
9841
|
/** Optional so the control still works when overlays are not registered. */
|
|
@@ -10781,6 +10904,9 @@ function formatWhileTyping(raw) {
|
|
|
10781
10904
|
* amount = signal<number | null>(1250); // UI shows "1,250"
|
|
10782
10905
|
* ```
|
|
10783
10906
|
*/
|
|
10907
|
+
/**
|
|
10908
|
+
* Numeric field following the shared AFRICANIES form field pattern.
|
|
10909
|
+
*/
|
|
10784
10910
|
class NumberInputComponent {
|
|
10785
10911
|
controlId = `africanies-number-input-${++nextNumberInputId}`;
|
|
10786
10912
|
hintId = `${this.controlId}-hint`;
|
|
@@ -11064,6 +11190,9 @@ let nextOtpId = 0;
|
|
|
11064
11190
|
* />
|
|
11065
11191
|
* ```
|
|
11066
11192
|
*/
|
|
11193
|
+
/**
|
|
11194
|
+
* One-time-passcode field — discrete digit cells, single string model.
|
|
11195
|
+
*/
|
|
11067
11196
|
class OtpInputComponent {
|
|
11068
11197
|
destroyRef = inject(DestroyRef);
|
|
11069
11198
|
cellInputs = viewChildren('cellInput', /* @ts-ignore */
|
|
@@ -12006,6 +12135,9 @@ const PANEL_POSITIONS$1 = [
|
|
|
12006
12135
|
* />
|
|
12007
12136
|
* ```
|
|
12008
12137
|
*/
|
|
12138
|
+
/**
|
|
12139
|
+
* International phone field — flag + dial code + national number.
|
|
12140
|
+
*/
|
|
12009
12141
|
class PhoneInputComponent {
|
|
12010
12142
|
controlId = `africanies-phone-input-${++nextPhoneInputId}`;
|
|
12011
12143
|
hintId = `${this.controlId}-hint`;
|
|
@@ -12496,6 +12628,9 @@ let nextRadioId = 0;
|
|
|
12496
12628
|
* />
|
|
12497
12629
|
* ```
|
|
12498
12630
|
*/
|
|
12631
|
+
/**
|
|
12632
|
+
* Radio group following the shared AFRICANIES form field pattern.
|
|
12633
|
+
*/
|
|
12499
12634
|
class RadioComponent {
|
|
12500
12635
|
modeColor = inject(ModeColorService);
|
|
12501
12636
|
groupName = `africanies-radio-${++nextRadioId}`;
|
|
@@ -12741,6 +12876,9 @@ const PANEL_POSITIONS = [
|
|
|
12741
12876
|
* />
|
|
12742
12877
|
* ```
|
|
12743
12878
|
*/
|
|
12879
|
+
/**
|
|
12880
|
+
* Generic type-as-you-search combobox with a debounced async lookup and overlay result list.
|
|
12881
|
+
*/
|
|
12744
12882
|
class SearchComboboxComponent {
|
|
12745
12883
|
destroyRef = inject(DestroyRef);
|
|
12746
12884
|
controlId = `africanies-search-combobox-${++nextSearchComboboxId}`;
|
|
@@ -13370,6 +13508,9 @@ let nextTextareaId = 0;
|
|
|
13370
13508
|
* />
|
|
13371
13509
|
* ```
|
|
13372
13510
|
*/
|
|
13511
|
+
/**
|
|
13512
|
+
* Multi-line text field following the shared form-control pattern (`shared AFRICANIES form field pattern`). Supports prefix/suffix slots, field-level `error`, and {@link ControlValueAccessor}.
|
|
13513
|
+
*/
|
|
13373
13514
|
class TextareaComponent {
|
|
13374
13515
|
controlId = `africanies-textarea-${++nextTextareaId}`;
|
|
13375
13516
|
hintId = `${this.controlId}-hint`;
|
|
@@ -13565,6 +13706,9 @@ let nextToggleId = 0;
|
|
|
13565
13706
|
* />
|
|
13566
13707
|
* ```
|
|
13567
13708
|
*/
|
|
13709
|
+
/**
|
|
13710
|
+
* Boolean switch following the shared AFRICANIES form field pattern.
|
|
13711
|
+
*/
|
|
13568
13712
|
class ToggleComponent {
|
|
13569
13713
|
modeColor = inject(ModeColorService);
|
|
13570
13714
|
controlId = `africanies-toggle-${++nextToggleId}`;
|
|
@@ -13812,6 +13956,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
13812
13956
|
* <africanies-breadcrumb [items]="staticCrumbs" />
|
|
13813
13957
|
* ```
|
|
13814
13958
|
*/
|
|
13959
|
+
/**
|
|
13960
|
+
* Breadcrumb trail for hierarchical navigation.
|
|
13961
|
+
*/
|
|
13815
13962
|
class BreadcrumbComponent {
|
|
13816
13963
|
modeColor = inject(ModeColorService);
|
|
13817
13964
|
/** Ordered crumbs; the last entry is the current page. */
|
|
@@ -14322,6 +14469,9 @@ const DEFAULT_LINK_ACTIVE$2 = {
|
|
|
14322
14469
|
* ]" />
|
|
14323
14470
|
* ```
|
|
14324
14471
|
*/
|
|
14472
|
+
/**
|
|
14473
|
+
* Compact segmented control for view modes and filters.
|
|
14474
|
+
*/
|
|
14325
14475
|
class SegmentComponent {
|
|
14326
14476
|
router = inject(Router);
|
|
14327
14477
|
modeColor = inject(ModeColorService);
|
|
@@ -14631,6 +14781,9 @@ const SHIPPING_MODE_GLYPH = `M88.42,68.75a48.8,48.8,0,0,1-4.74,11.1h9.89a7.67,7.
|
|
|
14631
14781
|
* </africanies-side-nav>
|
|
14632
14782
|
* ```
|
|
14633
14783
|
*/
|
|
14784
|
+
/**
|
|
14785
|
+
* Two-up shipping mode switcher for app-shell side navs.
|
|
14786
|
+
*/
|
|
14634
14787
|
class ShippingModeSwitchComponent {
|
|
14635
14788
|
shipping = inject(ShippingModeService);
|
|
14636
14789
|
/**
|
|
@@ -15026,6 +15179,9 @@ const AFRICANIES_BRAND_LOGO_MINI_URL = new InjectionToken('AFRICANIES_BRAND_LOGO
|
|
|
15026
15179
|
* Override with a custom `logoSrc` on {@link SideNavComponent} when the host
|
|
15027
15180
|
* ships its own mark.
|
|
15028
15181
|
*/
|
|
15182
|
+
/**
|
|
15183
|
+
* Default AFRICANIES wordmark — inlined so it works without copying static assets.
|
|
15184
|
+
*/
|
|
15029
15185
|
class BrandLogoComponent {
|
|
15030
15186
|
size = input('md', /* @ts-ignore */
|
|
15031
15187
|
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
@@ -15159,6 +15315,9 @@ const DEFAULT_LINK_ACTIVE$1 = {
|
|
|
15159
15315
|
* />
|
|
15160
15316
|
* ```
|
|
15161
15317
|
*/
|
|
15318
|
+
/**
|
|
15319
|
+
* App shell side navigation with icons, nested items, and a collapsible rail.
|
|
15320
|
+
*/
|
|
15162
15321
|
class SideNavComponent {
|
|
15163
15322
|
modeColor = inject(ModeColorService);
|
|
15164
15323
|
defaultLogoUrl = inject(AFRICANIES_BRAND_LOGO_URL);
|
|
@@ -15478,6 +15637,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
15478
15637
|
* </ng-template>
|
|
15479
15638
|
* ```
|
|
15480
15639
|
*/
|
|
15640
|
+
/**
|
|
15641
|
+
* Registers projected tab panel content against a tab id for {@link TabsComponent} (local / non-router mode).
|
|
15642
|
+
*/
|
|
15481
15643
|
class TabDefDirective {
|
|
15482
15644
|
/** Template projected as the active tab panel. */
|
|
15483
15645
|
template = inject((TemplateRef));
|
|
@@ -15531,6 +15693,9 @@ const DEFAULT_LINK_ACTIVE = {
|
|
|
15531
15693
|
* <router-outlet />
|
|
15532
15694
|
* ```
|
|
15533
15695
|
*/
|
|
15696
|
+
/**
|
|
15697
|
+
* Tab list for page / section navigation.
|
|
15698
|
+
*/
|
|
15534
15699
|
class TabsComponent {
|
|
15535
15700
|
router = inject(Router);
|
|
15536
15701
|
modeColor = inject(ModeColorService);
|
|
@@ -15880,6 +16045,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
15880
16045
|
* </africanies-page-header>
|
|
15881
16046
|
* ```
|
|
15882
16047
|
*/
|
|
16048
|
+
/**
|
|
16049
|
+
* Page title + subtitle for product screens.
|
|
16050
|
+
*/
|
|
15883
16051
|
class PageHeaderComponent {
|
|
15884
16052
|
/** Page heading. Omit when the shell already rendered a title. */
|
|
15885
16053
|
title = input('', /* @ts-ignore */
|
|
@@ -15955,6 +16123,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
15955
16123
|
* Content chrome above the app-shell body: Back, breadcrumbs, then the page
|
|
15956
16124
|
* title and optional subtitle.
|
|
15957
16125
|
*/
|
|
16126
|
+
/**
|
|
16127
|
+
* Content chrome above the app-shell body: Back, breadcrumbs, then the page title and optional subtitle.
|
|
16128
|
+
*/
|
|
15958
16129
|
class AppShellContentHeaderComponent {
|
|
15959
16130
|
router = inject(Router);
|
|
15960
16131
|
breadcrumbs = input([], /* @ts-ignore */
|
|
@@ -16078,6 +16249,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
16078
16249
|
* <africanies-avatar name="Ops Team" />
|
|
16079
16250
|
* ```
|
|
16080
16251
|
*/
|
|
16252
|
+
/**
|
|
16253
|
+
* Circular avatar with image or initials fallback.
|
|
16254
|
+
*/
|
|
16081
16255
|
class AvatarComponent {
|
|
16082
16256
|
/** Display name — used for initials when no image loads. */
|
|
16083
16257
|
name = input('', /* @ts-ignore */
|
|
@@ -16184,6 +16358,9 @@ function initialsFromName(name) {
|
|
|
16184
16358
|
* />
|
|
16185
16359
|
* ```
|
|
16186
16360
|
*/
|
|
16361
|
+
/**
|
|
16362
|
+
* Avatar trigger with an attached overflow menu — profile / account actions.
|
|
16363
|
+
*/
|
|
16187
16364
|
class AvatarMenuComponent {
|
|
16188
16365
|
name = input.required(/* @ts-ignore */
|
|
16189
16366
|
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
@@ -16280,6 +16457,9 @@ const MARK_ALL_CONFIRM_MS = 4000;
|
|
|
16280
16457
|
*
|
|
16281
16458
|
* Opened via {@link NotificationDrawerService}.
|
|
16282
16459
|
*/
|
|
16460
|
+
/**
|
|
16461
|
+
* Right-edge drawer listing in-app notifications.
|
|
16462
|
+
*/
|
|
16283
16463
|
class NotificationDrawerPanel {
|
|
16284
16464
|
ref = inject(AfricaniesOverlayRef);
|
|
16285
16465
|
data = inject(OVERLAY_DATA);
|
|
@@ -17086,6 +17266,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
17086
17266
|
*
|
|
17087
17267
|
* Requires {@link provideAfricaniesUiOverlays} at bootstrap.
|
|
17088
17268
|
*/
|
|
17269
|
+
/**
|
|
17270
|
+
* Opens {@link NotificationDrawerPanel} via {@link DrawerService}.
|
|
17271
|
+
*/
|
|
17089
17272
|
class NotificationDrawerService {
|
|
17090
17273
|
drawer = inject(DrawerService);
|
|
17091
17274
|
/**
|
|
@@ -17369,13 +17552,14 @@ function hashString(value) {
|
|
|
17369
17552
|
}
|
|
17370
17553
|
|
|
17371
17554
|
/** Bump when cache shape or city resolution strategy changes. */
|
|
17372
|
-
const CACHE_KEY = 'africanies-header-weather-
|
|
17373
|
-
const FETCH_MS =
|
|
17374
|
-
|
|
17375
|
-
|
|
17555
|
+
const CACHE_KEY = 'africanies-header-weather-v8';
|
|
17556
|
+
const FETCH_MS = 8_000;
|
|
17557
|
+
/** After Allow, wait for a GPS/Wi-Fi fix. A short timeout loses the prompt and falls through to IP. */
|
|
17558
|
+
const DEVICE_GEO_MS = 15_000;
|
|
17559
|
+
const DEVICE_GEO_PROMPT_MS = 25_000;
|
|
17560
|
+
/** IP city is the office egress (often Lagos) and must not label the device. */
|
|
17376
17561
|
const GEO_URL = 'https://get.geojs.io/v1/ip/geo.json';
|
|
17377
|
-
|
|
17378
|
-
const REVERSE_GEO_URL = 'https://api.bigdatacloud.net/data/reverse-geocode-client';
|
|
17562
|
+
const REVERSE_GEO_URL = 'https://geocoding-api.open-meteo.com/v1/reverse';
|
|
17379
17563
|
const WEATHER_LABELS = {
|
|
17380
17564
|
clear: 'Clear',
|
|
17381
17565
|
cloudy: 'Cloudy',
|
|
@@ -17445,15 +17629,16 @@ function headerWeatherIcon(kind, hour) {
|
|
|
17445
17629
|
return 'cloud-o';
|
|
17446
17630
|
}
|
|
17447
17631
|
/**
|
|
17448
|
-
* City-level forecast
|
|
17632
|
+
* City-level forecast. The label is the device location only.
|
|
17449
17633
|
*
|
|
17450
|
-
*
|
|
17451
|
-
*
|
|
17452
|
-
*
|
|
17634
|
+
* The Geolocation API (GPS / nearby Wi-Fi) is reverse-geocoded. IP lookup is
|
|
17635
|
+
* not used for the city — a shared office egress makes every colleague "Lagos".
|
|
17636
|
+
* If the device fix is refused, weather still loads from IP coordinates with
|
|
17637
|
+
* no city.
|
|
17453
17638
|
*
|
|
17454
17639
|
* Fails closed: missing browser APIs, timeouts, and HTTP errors all return
|
|
17455
|
-
* `null` so the greeting can stay time-of-day only.
|
|
17456
|
-
* in `sessionStorage`.
|
|
17640
|
+
* `null` so the greeting can stay time-of-day only. A snapshot with a city
|
|
17641
|
+
* is cached per local hour in `sessionStorage`.
|
|
17457
17642
|
*
|
|
17458
17643
|
* @param fetchFn - Injected `fetch` for tests.
|
|
17459
17644
|
* @returns Forecast snapshot, or `null` when lookup fails.
|
|
@@ -17469,7 +17654,8 @@ async function loadHeaderWeather(fetchFn) {
|
|
|
17469
17654
|
return cached;
|
|
17470
17655
|
}
|
|
17471
17656
|
try {
|
|
17472
|
-
const
|
|
17657
|
+
const device = await tryDeviceCoordinates();
|
|
17658
|
+
const coords = device ?? (await ipCoordinates(run));
|
|
17473
17659
|
if (!coords) {
|
|
17474
17660
|
return null;
|
|
17475
17661
|
}
|
|
@@ -17486,10 +17672,13 @@ async function loadHeaderWeather(fetchFn) {
|
|
|
17486
17672
|
return null;
|
|
17487
17673
|
}
|
|
17488
17674
|
const temperatureC = asNumber(forecast?.current?.temperature_2m) ?? undefined;
|
|
17489
|
-
const city =
|
|
17490
|
-
|
|
17675
|
+
const city = device
|
|
17676
|
+
? await reverseGeocodeCity(run, device.latitude, device.longitude)
|
|
17677
|
+
: undefined;
|
|
17491
17678
|
const weather = { kind, temperatureC, city };
|
|
17492
|
-
|
|
17679
|
+
if (city) {
|
|
17680
|
+
writeCache({ hour, kind, temperatureC, city });
|
|
17681
|
+
}
|
|
17493
17682
|
return weather;
|
|
17494
17683
|
}
|
|
17495
17684
|
catch {
|
|
@@ -17536,41 +17725,27 @@ function writeCache(value) {
|
|
|
17536
17725
|
// Private mode / quota — greeting still works without cache.
|
|
17537
17726
|
}
|
|
17538
17727
|
}
|
|
17539
|
-
|
|
17540
|
-
|
|
17541
|
-
|
|
17542
|
-
|
|
17543
|
-
*/
|
|
17544
|
-
async function resolveCoordinates(fetchFn) {
|
|
17545
|
-
const [browser, ipGeo] = await Promise.all([
|
|
17546
|
-
tryBrowserGeolocation(),
|
|
17547
|
-
fetchIpGeo(fetchFn),
|
|
17548
|
-
]);
|
|
17549
|
-
const ipCity = asCity(ipGeo?.city);
|
|
17550
|
-
if (browser) {
|
|
17551
|
-
return { ...browser, fallbackCity: ipCity };
|
|
17552
|
-
}
|
|
17553
|
-
const latitude = asNumber(ipGeo?.latitude);
|
|
17554
|
-
const longitude = asNumber(ipGeo?.longitude);
|
|
17728
|
+
async function ipCoordinates(fetchFn) {
|
|
17729
|
+
const payload = (await fetchJson(fetchFn, GEO_URL));
|
|
17730
|
+
const latitude = asNumber(payload?.latitude);
|
|
17731
|
+
const longitude = asNumber(payload?.longitude);
|
|
17555
17732
|
if (latitude === null || longitude === null) {
|
|
17556
17733
|
return null;
|
|
17557
17734
|
}
|
|
17558
|
-
return {
|
|
17559
|
-
latitude,
|
|
17560
|
-
longitude,
|
|
17561
|
-
fallbackCity: ipCity,
|
|
17562
|
-
};
|
|
17563
|
-
}
|
|
17564
|
-
async function fetchIpGeo(fetchFn) {
|
|
17565
|
-
return (await fetchJson(fetchFn, GEO_URL));
|
|
17735
|
+
return { latitude, longitude };
|
|
17566
17736
|
}
|
|
17567
|
-
async function
|
|
17737
|
+
async function tryDeviceCoordinates() {
|
|
17568
17738
|
if (typeof navigator === 'undefined' ||
|
|
17569
17739
|
typeof navigator.geolocation?.getCurrentPosition !== 'function') {
|
|
17570
17740
|
return null;
|
|
17571
17741
|
}
|
|
17742
|
+
const permission = await geolocationPermission();
|
|
17743
|
+
if (permission === 'denied') {
|
|
17744
|
+
return null;
|
|
17745
|
+
}
|
|
17746
|
+
const timeout = permission === 'granted' ? DEVICE_GEO_MS : DEVICE_GEO_PROMPT_MS;
|
|
17572
17747
|
return await new Promise((resolve) => {
|
|
17573
|
-
const timer = setTimeout(() => resolve(null),
|
|
17748
|
+
const timer = setTimeout(() => resolve(null), timeout);
|
|
17574
17749
|
navigator.geolocation.getCurrentPosition((position) => {
|
|
17575
17750
|
clearTimeout(timer);
|
|
17576
17751
|
resolve({
|
|
@@ -17581,20 +17756,28 @@ async function tryBrowserGeolocation() {
|
|
|
17581
17756
|
clearTimeout(timer);
|
|
17582
17757
|
resolve(null);
|
|
17583
17758
|
}, {
|
|
17584
|
-
enableHighAccuracy:
|
|
17585
|
-
maximumAge:
|
|
17586
|
-
timeout
|
|
17759
|
+
enableHighAccuracy: true,
|
|
17760
|
+
maximumAge: 0,
|
|
17761
|
+
timeout,
|
|
17587
17762
|
});
|
|
17588
17763
|
});
|
|
17589
17764
|
}
|
|
17765
|
+
async function geolocationPermission() {
|
|
17766
|
+
try {
|
|
17767
|
+
const status = await navigator.permissions?.query({ name: 'geolocation' });
|
|
17768
|
+
return status?.state ?? 'unknown';
|
|
17769
|
+
}
|
|
17770
|
+
catch {
|
|
17771
|
+
return 'unknown';
|
|
17772
|
+
}
|
|
17773
|
+
}
|
|
17590
17774
|
async function reverseGeocodeCity(fetchFn, latitude, longitude) {
|
|
17591
17775
|
const url = `${REVERSE_GEO_URL}?latitude=${encodeURIComponent(String(latitude))}` +
|
|
17592
17776
|
`&longitude=${encodeURIComponent(String(longitude))}` +
|
|
17593
|
-
`&
|
|
17777
|
+
`&language=en&count=1`;
|
|
17594
17778
|
const payload = (await fetchJson(fetchFn, url));
|
|
17595
|
-
|
|
17596
|
-
|
|
17597
|
-
asCity(payload?.principalSubdivision));
|
|
17779
|
+
const place = payload?.results?.[0];
|
|
17780
|
+
return asCity(place?.name) ?? asCity(place?.admin1);
|
|
17598
17781
|
}
|
|
17599
17782
|
function asNumber(value) {
|
|
17600
17783
|
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
@@ -17634,6 +17817,9 @@ async function fetchJson(fetchFn, url) {
|
|
|
17634
17817
|
}
|
|
17635
17818
|
}
|
|
17636
17819
|
|
|
17820
|
+
/**
|
|
17821
|
+
* Marks projected content as extra leading chrome in {@link AppShellHeaderComponent}.
|
|
17822
|
+
*/
|
|
17637
17823
|
/**
|
|
17638
17824
|
* Marks projected content as extra leading chrome in {@link AppShellHeaderComponent}.
|
|
17639
17825
|
*/
|
|
@@ -17651,6 +17837,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
17651
17837
|
/**
|
|
17652
17838
|
* Marks projected content as extra trailing chrome in {@link AppShellHeaderComponent}.
|
|
17653
17839
|
*/
|
|
17840
|
+
/**
|
|
17841
|
+
* Marks projected content as extra trailing chrome in {@link AppShellHeaderComponent}.
|
|
17842
|
+
*/
|
|
17654
17843
|
class AppShellHeaderEndDirective {
|
|
17655
17844
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AppShellHeaderEndDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
17656
17845
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AppShellHeaderEndDirective, isStandalone: true, selector: "[africaniesAppShellHeaderEnd]", ngImport: i0 });
|
|
@@ -17679,6 +17868,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
17679
17868
|
* />
|
|
17680
17869
|
* ```
|
|
17681
17870
|
*/
|
|
17871
|
+
/**
|
|
17872
|
+
* Product header bar for {@link AppShellComponent}: a short time-of-day kicker plus the given name, local weather, live clock, notification inbox drawer, and avatar menu. Breadcrumbs and Back belong in the content column via {@link AppShellContentHeaderComponent}.
|
|
17873
|
+
*/
|
|
17682
17874
|
class AppShellHeaderComponent {
|
|
17683
17875
|
notificationsDrawer = inject(NotificationDrawerService);
|
|
17684
17876
|
destroyRef = inject(DestroyRef);
|
|
@@ -18113,6 +18305,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
18113
18305
|
*
|
|
18114
18306
|
* When present, the built-in {@link AppShellHeaderComponent} is skipped.
|
|
18115
18307
|
*/
|
|
18308
|
+
/**
|
|
18309
|
+
* Marks projected content as the custom header for {@link AppShellComponent}.
|
|
18310
|
+
*/
|
|
18116
18311
|
class AppShellHeaderSlotDirective {
|
|
18117
18312
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AppShellHeaderSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18118
18313
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AppShellHeaderSlotDirective, isStandalone: true, selector: "[africaniesAppShellHeader]", ngImport: i0 });
|
|
@@ -18154,6 +18349,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
18154
18349
|
* </africanies-app-shell>
|
|
18155
18350
|
* ```
|
|
18156
18351
|
*/
|
|
18352
|
+
/**
|
|
18353
|
+
* Application chrome scaffold: side nav + sticky header + constrained content.
|
|
18354
|
+
*/
|
|
18157
18355
|
class AppShellComponent {
|
|
18158
18356
|
modeColor = inject(ModeColorService);
|
|
18159
18357
|
logoMiniUrl = inject(AFRICANIES_BRAND_LOGO_MINI_URL);
|
|
@@ -18352,6 +18550,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
18352
18550
|
* />
|
|
18353
18551
|
* ```
|
|
18354
18552
|
*/
|
|
18553
|
+
/**
|
|
18554
|
+
* Image with a shaped loading frame and fallback while the asset fetches or if it fails to render.
|
|
18555
|
+
*/
|
|
18355
18556
|
class ImageComponent {
|
|
18356
18557
|
imgRef = viewChild('img', /* @ts-ignore */
|
|
18357
18558
|
...(ngDevMode ? [{ debugName: "imgRef" }] : /* istanbul ignore next */ []));
|
|
@@ -18550,6 +18751,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
18550
18751
|
* </ng-template>
|
|
18551
18752
|
* ```
|
|
18552
18753
|
*/
|
|
18754
|
+
/**
|
|
18755
|
+
* Registers a projected cell template against a column key for {@link TableComponent}.
|
|
18756
|
+
*/
|
|
18553
18757
|
class CellDefDirective {
|
|
18554
18758
|
/** Template projected into matching column body cells. */
|
|
18555
18759
|
template = inject((TemplateRef));
|
|
@@ -18583,6 +18787,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
18583
18787
|
* </ng-template>
|
|
18584
18788
|
* ```
|
|
18585
18789
|
*/
|
|
18790
|
+
/**
|
|
18791
|
+
* Registers a projected header cell template against a column key for {@link TableComponent}.
|
|
18792
|
+
*/
|
|
18586
18793
|
class HeaderCellDefDirective {
|
|
18587
18794
|
/** Template projected into the matching column header cell. */
|
|
18588
18795
|
template = inject(TemplateRef);
|
|
@@ -18615,6 +18822,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
18615
18822
|
* </ng-template>
|
|
18616
18823
|
* ```
|
|
18617
18824
|
*/
|
|
18825
|
+
/**
|
|
18826
|
+
* Registers a label / value pair inside an expanded table row.
|
|
18827
|
+
*/
|
|
18618
18828
|
class RowDetailDefDirective {
|
|
18619
18829
|
/** Template rendered as the detail value. */
|
|
18620
18830
|
template = inject((TemplateRef));
|
|
@@ -18689,6 +18899,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
18689
18899
|
*
|
|
18690
18900
|
* Page controls for server-style lists (bind to {@link PaginationMetaModel}).
|
|
18691
18901
|
*/
|
|
18902
|
+
/**
|
|
18903
|
+
* Page-size select, numbered pager, and prev/next — driven by {@link PaginationMetaModel} from the API envelope.
|
|
18904
|
+
*/
|
|
18692
18905
|
class PaginationComponent {
|
|
18693
18906
|
filterQuery = inject(FilterQueryService);
|
|
18694
18907
|
modeColor = inject(ModeColorService);
|
|
@@ -19085,6 +19298,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
19085
19298
|
* to the top of that scrollport. Mobile keeps horizontal-only overflow so
|
|
19086
19299
|
* page scroll is unchanged.
|
|
19087
19300
|
*/
|
|
19301
|
+
/**
|
|
19302
|
+
* Presentational data table with template-based cells.
|
|
19303
|
+
*/
|
|
19088
19304
|
class TableComponent {
|
|
19089
19305
|
destroyRef = inject(DestroyRef);
|
|
19090
19306
|
shipping = inject(ShippingModeService);
|
|
@@ -20321,6 +20537,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
20321
20537
|
* </ng-template>
|
|
20322
20538
|
* ```
|
|
20323
20539
|
*/
|
|
20540
|
+
/**
|
|
20541
|
+
* Registers projected step body content against a step key for {@link StepperComponent}.
|
|
20542
|
+
*/
|
|
20324
20543
|
class StepDefDirective {
|
|
20325
20544
|
/** Template projected as the active step body. */
|
|
20326
20545
|
template = inject((TemplateRef));
|
|
@@ -20357,6 +20576,9 @@ function prefersReducedMotion() {
|
|
|
20357
20576
|
* When `animateSteps` is true (default), the step body fades/slides via the
|
|
20358
20577
|
* Web Animations API (skipped when the user prefers reduced motion).
|
|
20359
20578
|
*/
|
|
20579
|
+
/**
|
|
20580
|
+
* Multi-step wizard for form flows (e.g. shipment creation).
|
|
20581
|
+
*/
|
|
20360
20582
|
class StepperComponent {
|
|
20361
20583
|
modeColor = inject(ModeColorService);
|
|
20362
20584
|
steps = input.required(/* @ts-ignore */
|
|
@@ -20645,6 +20867,9 @@ const ACTIONS = [
|
|
|
20645
20867
|
* export class ToolbarModule {}
|
|
20646
20868
|
* ```
|
|
20647
20869
|
*/
|
|
20870
|
+
/**
|
|
20871
|
+
* Button, copy-to-clipboard control, overflow action menu, and avatar menu.
|
|
20872
|
+
*/
|
|
20648
20873
|
class AfricaniesActionsModule {
|
|
20649
20874
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesActionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20650
20875
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesActionsModule, imports: [ButtonComponent,
|
|
@@ -20694,6 +20919,9 @@ const FEEDBACK = [
|
|
|
20694
20919
|
* export class ListPageModule {}
|
|
20695
20920
|
* ```
|
|
20696
20921
|
*/
|
|
20922
|
+
/**
|
|
20923
|
+
* Async feedback states, accordion panels, inline alert, and status chips.
|
|
20924
|
+
*/
|
|
20697
20925
|
class AfricaniesFeedbackModule {
|
|
20698
20926
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesFeedbackModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20699
20927
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesFeedbackModule, imports: [AccordionComponent,
|
|
@@ -20748,6 +20976,9 @@ const FORM_CONTROLS = [
|
|
|
20748
20976
|
* export class ShipmentFormsModule {}
|
|
20749
20977
|
* ```
|
|
20750
20978
|
*/
|
|
20979
|
+
/**
|
|
20980
|
+
* All form controls in one import for apps that prefer NgModules.
|
|
20981
|
+
*/
|
|
20751
20982
|
class AfricaniesFormsModule {
|
|
20752
20983
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20753
20984
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesFormsModule, imports: [TextInputComponent,
|
|
@@ -20796,6 +21027,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
20796
21027
|
* imports: [InfoPopoverComponent, InfoPopoverContentDirective, InfoPopoverTriggerDirective],
|
|
20797
21028
|
* ```
|
|
20798
21029
|
*/
|
|
21030
|
+
/**
|
|
21031
|
+
* NgModule facade for {@link InfoPopoverComponent} and its trigger/content markers.
|
|
21032
|
+
*/
|
|
20799
21033
|
class AfricaniesInfoPopoverModule {
|
|
20800
21034
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesInfoPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20801
21035
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesInfoPopoverModule, imports: [InfoPopoverComponent,
|
|
@@ -20849,6 +21083,9 @@ const NAV = [
|
|
|
20849
21083
|
* export class ShellModule {}
|
|
20850
21084
|
* ```
|
|
20851
21085
|
*/
|
|
21086
|
+
/**
|
|
21087
|
+
* App shell, breadcrumb, tabs (+ `africaniesTabDef`), segment, side nav, shipping mode switch, brand logo, avatar menu, and shell header chrome.
|
|
21088
|
+
*/
|
|
20852
21089
|
class AfricaniesNavigationModule {
|
|
20853
21090
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20854
21091
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesNavigationModule, imports: [AppShellComponent,
|
|
@@ -20907,6 +21144,9 @@ const STEPPER = [StepperComponent, StepDefDirective];
|
|
|
20907
21144
|
* export class WizardModule {}
|
|
20908
21145
|
* ```
|
|
20909
21146
|
*/
|
|
21147
|
+
/**
|
|
21148
|
+
* Stepper (+ `africaniesStepDef`).
|
|
21149
|
+
*/
|
|
20910
21150
|
class AfricaniesStepperModule {
|
|
20911
21151
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20912
21152
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesStepperModule, imports: [StepperComponent, StepDefDirective], exports: [StepperComponent, StepDefDirective] });
|
|
@@ -20937,6 +21177,9 @@ const DATA = [
|
|
|
20937
21177
|
* export class ShipmentsListModule {}
|
|
20938
21178
|
* ```
|
|
20939
21179
|
*/
|
|
21180
|
+
/**
|
|
21181
|
+
* Table (+ `africaniesCellDef`) and pagination.
|
|
21182
|
+
*/
|
|
20940
21183
|
class AfricaniesTableModule {
|
|
20941
21184
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20942
21185
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesTableModule, imports: [TableComponent,
|
|
@@ -20969,6 +21212,9 @@ const TOOLTIP = [TooltipComponent, TooltipTriggerDirective];
|
|
|
20969
21212
|
* export class FormHintsModule {}
|
|
20970
21213
|
* ```
|
|
20971
21214
|
*/
|
|
21215
|
+
/**
|
|
21216
|
+
* Tooltip (+ `africaniesTooltipTrigger`).
|
|
21217
|
+
*/
|
|
20972
21218
|
class AfricaniesTooltipModule {
|
|
20973
21219
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20974
21220
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AfricaniesTooltipModule, imports: [TooltipComponent, TooltipTriggerDirective], exports: [TooltipComponent, TooltipTriggerDirective] });
|