@geoit/ui 0.0.2 → 0.0.5
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/AGENTS.md +12 -8
- package/README.md +140 -17
- package/ai/AGENTS.md +43 -32
- package/ai/README.md +36 -2
- package/ai/catalog.json +5585 -437
- package/ai/components/geo-alert.md +75 -21
- package/ai/components/geo-back-button.md +64 -18
- package/ai/components/geo-breadcrumb.md +71 -12
- package/ai/components/geo-button.md +90 -27
- package/ai/components/geo-chart.md +103 -0
- package/ai/components/geo-checkbox.md +67 -20
- package/ai/components/geo-column-picker.md +91 -18
- package/ai/components/geo-confirm-modal.md +92 -27
- package/ai/components/geo-dashboard.md +91 -0
- package/ai/components/geo-date-picker.md +105 -29
- package/ai/components/geo-date-range-picker.md +101 -28
- package/ai/components/geo-empty-state.md +75 -0
- package/ai/components/geo-feedback-form.md +97 -0
- package/ai/components/geo-file-picker.md +99 -26
- package/ai/components/geo-forgot-password.md +78 -0
- package/ai/components/geo-form-modal.md +111 -44
- package/ai/components/geo-icon.md +70 -16
- package/ai/components/geo-input.md +94 -29
- package/ai/components/geo-layout-footer.md +70 -0
- package/ai/components/geo-layout-header-actions.md +82 -0
- package/ai/components/geo-layout-header.md +89 -0
- package/ai/components/geo-layout-sidebar.md +86 -0
- package/ai/components/geo-layout.md +155 -0
- package/ai/components/geo-list-page.md +72 -0
- package/ai/components/geo-login.md +94 -0
- package/ai/components/geo-map-admin-filter.md +80 -0
- package/ai/components/geo-map-basemap-switcher.md +75 -0
- package/ai/components/geo-map-help.md +72 -0
- package/ai/components/geo-map-layer-card.md +73 -0
- package/ai/components/geo-map-layer-panel.md +75 -0
- package/ai/components/geo-map-layers-drawer.md +78 -0
- package/ai/components/geo-map-legend.md +74 -0
- package/ai/components/geo-map-locate.md +75 -0
- package/ai/components/geo-map-location-chip.md +71 -0
- package/ai/components/geo-map-measure.md +74 -0
- package/ai/components/geo-map-opacity.md +75 -0
- package/ai/components/geo-map-parcel-popup.md +79 -0
- package/ai/components/geo-map-search.md +83 -0
- package/ai/components/geo-map-shell.md +110 -0
- package/ai/components/geo-map-snapshot.md +75 -0
- package/ai/components/geo-map-swipe.md +73 -0
- package/ai/components/geo-map-toolbar.md +76 -0
- package/ai/components/geo-map-zoom.md +74 -0
- package/ai/components/geo-map.md +205 -0
- package/ai/components/geo-overlap-result.md +88 -0
- package/ai/components/geo-page-header.md +72 -0
- package/ai/components/geo-page-title.md +62 -16
- package/ai/components/geo-pagination.md +76 -24
- package/ai/components/geo-radio.md +110 -27
- package/ai/components/geo-row-actions.md +87 -19
- package/ai/components/geo-select.md +108 -28
- package/ai/components/geo-slider.md +70 -21
- package/ai/components/geo-stat-card.md +98 -0
- package/ai/components/geo-status-tag.md +67 -15
- package/ai/components/geo-step-form-layout.md +121 -38
- package/ai/components/geo-stepper.md +81 -19
- package/ai/components/geo-table-filter.md +90 -29
- package/ai/components/geo-table-pagination.md +70 -23
- package/ai/components/geo-table-toolbar.md +84 -29
- package/ai/components/geo-table.md +191 -59
- package/ai/components/geo-tabs.md +99 -27
- package/ai/components/geo-textarea.md +84 -23
- package/ai/components/geo-toast.md +138 -27
- package/ai/components/geo-tree.md +94 -22
- package/ai/components/geo-typography.md +70 -19
- package/ai/components/geo-upload.md +109 -39
- package/ai/mockup.html +1194 -0
- package/ai/recipes.md +132 -47
- package/esm2022/lib/figma/geo-alert/geo-alert.component.mjs +19 -36
- package/esm2022/lib/figma/geo-back-button/geo-back-button.component.mjs +14 -24
- package/esm2022/lib/figma/geo-breadcrumb/geo-breadcrumb.component.mjs +8 -11
- package/esm2022/lib/figma/geo-button/geo-button.component.mjs +30 -59
- package/esm2022/lib/figma/geo-chart/geo-chart.component.mjs +88 -0
- package/esm2022/lib/figma/geo-chart/geo-chart.types.mjs +2 -0
- package/esm2022/lib/figma/geo-checkbox/geo-checkbox.component.mjs +11 -22
- package/esm2022/lib/figma/geo-confirm-modal/geo-confirm-modal.component.mjs +22 -54
- package/esm2022/lib/figma/geo-dashboard/geo-dashboard.component.mjs +49 -0
- package/esm2022/lib/figma/geo-dashboard/geo-dashboard.types.mjs +2 -0
- package/esm2022/lib/figma/geo-date-picker/geo-date-picker.component.mjs +48 -78
- package/esm2022/lib/figma/geo-date-range-picker/geo-date-range-picker.component.mjs +47 -75
- package/esm2022/lib/figma/geo-empty-state/geo-empty-state.component.mjs +25 -0
- package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.component.mjs +75 -0
- package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.types.mjs +2 -0
- package/esm2022/lib/figma/geo-file-picker/geo-file-picker.component.mjs +59 -81
- package/esm2022/lib/figma/geo-forgot-password/geo-forgot-password.component.mjs +51 -0
- package/esm2022/lib/figma/geo-form-modal/geo-form-modal.component.mjs +45 -112
- package/esm2022/lib/figma/geo-icon/geo-icon.component.mjs +22 -32
- package/esm2022/lib/figma/geo-input/geo-input.component.mjs +41 -70
- package/esm2022/lib/figma/geo-layout/footer/geo-layout-footer.component.mjs +18 -0
- package/esm2022/lib/figma/geo-layout/geo-layout-actions.directive.mjs +15 -0
- package/esm2022/lib/figma/geo-layout/geo-layout.component.mjs +79 -0
- package/esm2022/lib/figma/geo-layout/geo-layout.types.mjs +42 -0
- package/esm2022/lib/figma/geo-layout/header/geo-layout-header.component.mjs +60 -0
- package/esm2022/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.mjs +70 -0
- package/esm2022/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.mjs +90 -0
- package/esm2022/lib/figma/geo-list-page/geo-list-page.component.mjs +22 -0
- package/esm2022/lib/figma/geo-login/geo-login.component.mjs +58 -0
- package/esm2022/lib/figma/geo-login/geo-login.types.mjs +2 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.mjs +52 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.mjs +61 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.mjs +26 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.mjs +24 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.mjs +146 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.mjs +37 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.mjs +30 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.mjs +72 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.mjs +21 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.mjs +375 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.mjs +94 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.mjs +136 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.mjs +182 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.mjs +577 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.mjs +93 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.mjs +129 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.mjs +64 -0
- package/esm2022/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.mjs +295 -0
- package/esm2022/lib/figma/geo-map/geo-map-toolbar.icons.mjs +18 -0
- package/esm2022/lib/figma/geo-map/geo-map.component.mjs +144 -0
- package/esm2022/lib/figma/geo-map/geo-map.constants.mjs +497 -0
- package/esm2022/lib/figma/geo-map/geo-map.controller.mjs +71 -0
- package/esm2022/lib/figma/geo-map/geo-map.types.mjs +2 -0
- package/esm2022/lib/figma/geo-map/services/geo-map-layer.service.mjs +368 -0
- package/esm2022/lib/figma/geo-map/services/geo-map-projection.service.mjs +110 -0
- package/esm2022/lib/figma/geo-map/services/geo-map.service.mjs +540 -0
- package/esm2022/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.mjs +47 -0
- package/esm2022/lib/figma/geo-map/utils/geo-map-interactions.util.mjs +30 -0
- package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.component.mjs +25 -0
- package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.types.mjs +2 -0
- package/esm2022/lib/figma/geo-page-header/geo-page-header.component.mjs +23 -0
- package/esm2022/lib/figma/geo-page-title/geo-page-title.component.mjs +20 -35
- package/esm2022/lib/figma/geo-pagination/geo-pagination.component.mjs +13 -43
- package/esm2022/lib/figma/geo-radio/geo-radio.component.mjs +32 -52
- package/esm2022/lib/figma/geo-select/geo-select.component.mjs +46 -72
- package/esm2022/lib/figma/geo-slider/geo-slider.component.mjs +12 -28
- package/esm2022/lib/figma/geo-stat-card/geo-stat-card.component.mjs +163 -0
- package/esm2022/lib/figma/geo-stat-card/geo-stat-card.types.mjs +2 -0
- package/esm2022/lib/figma/geo-status-tag/geo-status-tag.component.mjs +23 -27
- package/esm2022/lib/figma/geo-step-form-layout/geo-step-form-layout.component.mjs +39 -96
- package/esm2022/lib/figma/geo-stepper/geo-stepper.component.mjs +18 -33
- package/esm2022/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.mjs +14 -24
- package/esm2022/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.mjs +18 -36
- package/esm2022/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.mjs +41 -98
- package/esm2022/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.mjs +40 -73
- package/esm2022/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.mjs +26 -56
- package/esm2022/lib/figma/geo-table/geo-table.component.mjs +110 -210
- package/esm2022/lib/figma/geo-tabs/geo-tabs.component.mjs +33 -63
- package/esm2022/lib/figma/geo-textarea/geo-textarea.component.mjs +28 -44
- package/esm2022/lib/figma/geo-toast/geo-toast.component.mjs +18 -39
- package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +12 -40
- package/esm2022/lib/figma/geo-typography/geo-typography.component.mjs +49 -64
- package/esm2022/lib/figma/geo-upload/geo-upload.component.mjs +50 -101
- package/esm2022/lib/figma/index.mjs +50 -1
- package/esm2022/lib/styles/tokens.mjs +56 -24
- package/fesm2022/geoit-ui.mjs +5981 -1825
- package/fesm2022/geoit-ui.mjs.map +1 -1
- package/lib/figma/geo-alert/geo-alert.component.d.ts +10 -11
- package/lib/figma/geo-back-button/geo-back-button.component.d.ts +6 -7
- package/lib/figma/geo-breadcrumb/geo-breadcrumb.component.d.ts +2 -2
- package/lib/figma/geo-button/geo-button.component.d.ts +21 -17
- package/lib/figma/geo-chart/geo-chart.component.d.ts +40 -0
- package/lib/figma/geo-chart/geo-chart.types.d.ts +13 -0
- package/lib/figma/geo-checkbox/geo-checkbox.component.d.ts +6 -7
- package/lib/figma/geo-confirm-modal/geo-confirm-modal.component.d.ts +15 -17
- package/lib/figma/geo-dashboard/geo-dashboard.component.d.ts +29 -0
- package/lib/figma/geo-dashboard/geo-dashboard.types.d.ts +7 -0
- package/lib/figma/geo-date-picker/geo-date-picker.component.d.ts +26 -21
- package/lib/figma/geo-date-range-picker/geo-date-range-picker.component.d.ts +25 -20
- package/lib/figma/geo-empty-state/geo-empty-state.component.d.ts +17 -0
- package/lib/figma/geo-feedback-form/geo-feedback-form.component.d.ts +36 -0
- package/lib/figma/geo-feedback-form/geo-feedback-form.types.d.ts +8 -0
- package/lib/figma/geo-file-picker/geo-file-picker.component.d.ts +23 -20
- package/lib/figma/geo-forgot-password/geo-forgot-password.component.d.ts +24 -0
- package/lib/figma/geo-form-modal/geo-form-modal.component.d.ts +33 -35
- package/lib/figma/geo-icon/geo-icon.component.d.ts +7 -7
- package/lib/figma/geo-input/geo-input.component.d.ts +23 -21
- package/lib/figma/geo-layout/footer/geo-layout-footer.component.d.ts +10 -0
- package/lib/figma/geo-layout/geo-layout-actions.directive.d.ts +6 -0
- package/lib/figma/geo-layout/geo-layout.component.d.ts +48 -0
- package/lib/figma/geo-layout/geo-layout.types.d.ts +44 -0
- package/lib/figma/geo-layout/header/geo-layout-header.component.d.ts +31 -0
- package/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.d.ts +32 -0
- package/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.d.ts +34 -0
- package/lib/figma/geo-list-page/geo-list-page.component.d.ts +16 -0
- package/lib/figma/geo-login/geo-login.component.d.ts +27 -0
- package/lib/figma/geo-login/geo-login.types.d.ts +6 -0
- package/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.d.ts +28 -0
- package/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.d.ts +26 -0
- package/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.d.ts +20 -0
- package/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.d.ts +15 -0
- package/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.d.ts +40 -0
- package/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.d.ts +25 -0
- package/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.d.ts +18 -0
- package/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.d.ts +24 -0
- package/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.d.ts +14 -0
- package/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.d.ts +49 -0
- package/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.d.ts +30 -0
- package/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.d.ts +44 -0
- package/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.d.ts +56 -0
- package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +103 -0
- package/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.d.ts +21 -0
- package/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.d.ts +33 -0
- package/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.d.ts +30 -0
- package/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.d.ts +67 -0
- package/lib/figma/geo-map/geo-map-toolbar.icons.d.ts +17 -0
- package/lib/figma/geo-map/geo-map.component.d.ts +53 -0
- package/lib/figma/geo-map/geo-map.constants.d.ts +73 -0
- package/lib/figma/geo-map/geo-map.controller.d.ts +49 -0
- package/lib/figma/geo-map/geo-map.types.d.ts +224 -0
- package/lib/figma/geo-map/services/geo-map-layer.service.d.ts +42 -0
- package/lib/figma/geo-map/services/geo-map-projection.service.d.ts +32 -0
- package/lib/figma/geo-map/services/geo-map.service.d.ts +99 -0
- package/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.d.ts +13 -0
- package/lib/figma/geo-map/utils/geo-map-interactions.util.d.ts +9 -0
- package/lib/figma/geo-overlap-result/geo-overlap-result.component.d.ts +18 -0
- package/lib/figma/geo-overlap-result/geo-overlap-result.types.d.ts +7 -0
- package/lib/figma/geo-page-header/geo-page-header.component.d.ts +16 -0
- package/lib/figma/geo-page-title/geo-page-title.component.d.ts +9 -9
- package/lib/figma/geo-pagination/geo-pagination.component.d.ts +9 -14
- package/lib/figma/geo-radio/geo-radio.component.d.ts +17 -15
- package/lib/figma/geo-select/geo-select.component.d.ts +24 -19
- package/lib/figma/geo-slider/geo-slider.component.d.ts +7 -9
- package/lib/figma/geo-stat-card/geo-stat-card.component.d.ts +50 -0
- package/lib/figma/geo-stat-card/geo-stat-card.types.d.ts +11 -0
- package/lib/figma/geo-status-tag/geo-status-tag.component.d.ts +7 -7
- package/lib/figma/geo-step-form-layout/geo-step-form-layout.component.d.ts +27 -29
- package/lib/figma/geo-stepper/geo-stepper.component.d.ts +6 -8
- package/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.d.ts +6 -7
- package/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.d.ts +11 -12
- package/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.d.ts +21 -28
- package/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.d.ts +17 -20
- package/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.d.ts +17 -18
- package/lib/figma/geo-table/geo-table.component.d.ts +58 -62
- package/lib/figma/geo-tabs/geo-tabs.component.d.ts +14 -17
- package/lib/figma/geo-textarea/geo-textarea.component.d.ts +15 -13
- package/lib/figma/geo-toast/geo-toast.component.d.ts +11 -12
- package/lib/figma/geo-tree/geo-tree.component.d.ts +8 -13
- package/lib/figma/geo-typography/geo-typography.component.d.ts +13 -13
- package/lib/figma/geo-upload/geo-upload.component.d.ts +26 -28
- package/lib/figma/index.d.ts +49 -0
- package/lib/styles/tokens.d.ts +56 -23
- package/package.json +4 -2
- package/src/lib/figma/geo-map/assets/toolbar/fullscreen.svg +8 -0
- package/src/lib/figma/geo-map/assets/toolbar/home.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/layers.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/measure-area.svg +12 -0
- package/src/lib/figma/geo-map/assets/toolbar/measure-distance.svg +5 -0
- package/src/lib/figma/geo-map/assets/toolbar/pan.svg +13 -0
- package/src/lib/figma/geo-map/assets/toolbar/search.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/zoom-in.svg +3 -0
- package/src/lib/figma/geo-map/assets/toolbar/zoom-out.svg +5 -0
- package/src/lib/styles/design-tokens.scss +108 -35
- package/src/lib/styles/scrollbar.scss +2 -2
- package/src/lib/styles/theme.scss +1 -1
package/ai/recipes.md
CHANGED
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
# GEO UI — Recipes
|
|
1
|
+
# GEO UI — Recipes
|
|
2
2
|
|
|
3
3
|
Copy-paste patterns for common screens. Adjust labels/bindings only.
|
|
4
4
|
|
|
5
|
+
Import what you need:
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { GeoButtonComponent, GeoInputComponent, GeoFormModalComponent, GeoStepperComponent, GeoBreadcrumbComponent, GeoPageTitleComponent, GeoTableComponent, GeoTableToolbarComponent, GeoToastService, GeoStatusTagComponent, GeoTypographyComponent, GeoConfirmModalComponent } from "@geoit/ui";
|
|
9
|
+
```
|
|
10
|
+
|
|
5
11
|
## 1. Form modal (single step)
|
|
6
12
|
|
|
7
13
|
```html
|
|
8
14
|
<geo-button appearance="primary" color="brand" (clicked)="open = true">Mở</geo-button>
|
|
9
15
|
|
|
10
|
-
<geo-form-modal
|
|
11
|
-
[open]="open"
|
|
12
|
-
title="Thêm mới danh mục"
|
|
13
|
-
cancelText="Hủy bỏ"
|
|
14
|
-
okText="Lưu"
|
|
15
|
-
[width]="720"
|
|
16
|
-
(openChange)="open = $event"
|
|
17
|
-
(ok)="onSave()"
|
|
18
|
-
(cancel)="open = false"
|
|
19
|
-
>
|
|
16
|
+
<geo-form-modal [open]="open" title="Thêm mới danh mục" cancelText="Hủy bỏ" okText="Lưu" [width]="720" (openChange)="open = $event" (ok)="onSave()" (cancel)="open = false">
|
|
20
17
|
<div style="display:grid;grid-template-columns:1fr 1fr;gap:16px;">
|
|
21
18
|
<geo-input label="Mã" [required]="true" [block]="true" [(ngModel)]="code"></geo-input>
|
|
22
19
|
<geo-input label="Tên" [required]="true" [block]="true" [(ngModel)]="name"></geo-input>
|
|
20
|
+
<geo-select label="Trạng thái" [options]="[{ label: 'Active', value: 1 }, { label: 'Inactive', value: 0 }]" [(ngModel)]="status" [block]="true"></geo-select>
|
|
23
21
|
</div>
|
|
24
22
|
</geo-form-modal>
|
|
25
23
|
```
|
|
@@ -27,30 +25,13 @@ Copy-paste patterns for common screens. Adjust labels/bindings only.
|
|
|
27
25
|
## 2. Form modal + steps (multi-step dialog)
|
|
28
26
|
|
|
29
27
|
```html
|
|
30
|
-
<geo-form-modal
|
|
31
|
-
[
|
|
32
|
-
title="Lập phiếu đăng ký khai thác"
|
|
33
|
-
[cancelText]="activeIndex === 0 ? 'Hủy bỏ' : 'Quay lại'"
|
|
34
|
-
[cancelIcon]="activeIndex === 0 ? undefined : 'left'"
|
|
35
|
-
[okText]="isLast ? 'Gửi phiếu đăng ký' : 'Tiếp theo'"
|
|
36
|
-
[okIcon]="isLast ? undefined : 'right'"
|
|
37
|
-
okIconPlacement="end"
|
|
38
|
-
[width]="800"
|
|
39
|
-
(ok)="onNext()"
|
|
40
|
-
(cancel)="onBackOrClose()"
|
|
41
|
-
(openChange)="open = $event"
|
|
42
|
-
>
|
|
43
|
-
<geo-stepper
|
|
44
|
-
[steps]="steps"
|
|
45
|
-
[activeIndex]="activeIndex"
|
|
46
|
-
orientation="horizontal"
|
|
47
|
-
[clickable]="false"
|
|
48
|
-
></geo-stepper>
|
|
28
|
+
<geo-form-modal [open]="open" title="Lập phiếu đăng ký khai thác" [cancelText]="activeIndex === 0 ? 'Hủy bỏ' : 'Quay lại'" [cancelIcon]="activeIndex === 0 ? undefined : 'left'" [okText]="isLast ? 'Gửi phiếu đăng ký' : 'Tiếp theo'" [okIcon]="isLast ? undefined : 'right'" okIconPlacement="end" [width]="800" (ok)="onNext()" (cancel)="onBackOrClose()" (openChange)="open = $event">
|
|
29
|
+
<geo-stepper [steps]="steps" [activeIndex]="activeIndex" orientation="horizontal" [clickable]="false"></geo-stepper>
|
|
49
30
|
|
|
50
31
|
@if (activeIndex === 0) {
|
|
51
|
-
|
|
32
|
+
<!-- step 1 form fields -->
|
|
52
33
|
} @else {
|
|
53
|
-
|
|
34
|
+
<!-- step 2 confirm -->
|
|
54
35
|
}
|
|
55
36
|
</geo-form-modal>
|
|
56
37
|
```
|
|
@@ -60,17 +41,23 @@ steps = [
|
|
|
60
41
|
{ key: 'info', label: '1. Thông tin phiếu mượn' },
|
|
61
42
|
{ key: 'confirm', label: '2. Xác nhận yêu cầu' },
|
|
62
43
|
];
|
|
44
|
+
activeIndex = 0;
|
|
45
|
+
get isLast(): boolean {
|
|
46
|
+
return this.activeIndex >= this.steps.length - 1;
|
|
47
|
+
}
|
|
63
48
|
```
|
|
64
49
|
|
|
65
50
|
## 3. Page header: breadcrumb + title
|
|
66
51
|
|
|
67
52
|
```html
|
|
68
53
|
<div style="display:flex;flex-direction:column;gap:16px;">
|
|
69
|
-
<geo-breadcrumb
|
|
54
|
+
<geo-breadcrumb
|
|
55
|
+
[items]="[
|
|
70
56
|
{ label: 'Trang chủ', link: '/' },
|
|
71
57
|
{ label: 'Tra cứu hồ sơ', link: '/tra-cuu' },
|
|
72
58
|
{ label: 'Xem chi tiết hồ sơ' }
|
|
73
|
-
]"
|
|
59
|
+
]"
|
|
60
|
+
></geo-breadcrumb>
|
|
74
61
|
<geo-page-title title="Thông tin chi tiết hồ sơ"></geo-page-title>
|
|
75
62
|
</div>
|
|
76
63
|
```
|
|
@@ -85,27 +72,125 @@ constructor(private toast: GeoToastService) {}
|
|
|
85
72
|
save(): void {
|
|
86
73
|
this.toast.success('Thành công!', 'Đã lưu hồ sơ.');
|
|
87
74
|
}
|
|
75
|
+
|
|
76
|
+
fail(): void {
|
|
77
|
+
this.toast.error('Lỗi!', 'Không thể lưu.');
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 5. Confirm delete
|
|
82
|
+
|
|
83
|
+
```html
|
|
84
|
+
<geo-button appearance="primary" color="danger" (clicked)="confirmOpen = true">Xóa</geo-button>
|
|
85
|
+
|
|
86
|
+
<geo-confirm-modal [visible]="confirmOpen" title="Xóa hồ sơ?" message="Hành động không thể hoàn tác." confirmText="Xóa" (confirm)="onDelete()" (visibleChange)="confirmOpen = $event"></geo-confirm-modal>
|
|
88
87
|
```
|
|
89
88
|
|
|
90
|
-
##
|
|
89
|
+
## 6. Table list (toolbar + table)
|
|
91
90
|
|
|
92
91
|
```html
|
|
93
92
|
<geo-table-toolbar [resultCount]="total" [showAdd]="true" (addClick)="openCreate()"></geo-table-toolbar>
|
|
94
93
|
|
|
95
|
-
<geo-table
|
|
96
|
-
[columns]="columns"
|
|
97
|
-
[data]="rows"
|
|
98
|
-
[total]="total"
|
|
99
|
-
[pageIndex]="pageIndex"
|
|
100
|
-
[pageSize]="pageSize"
|
|
101
|
-
(pageIndexChange)="pageIndex = $event; load()"
|
|
102
|
-
(pageSizeChange)="pageSize = $event; load()"
|
|
103
|
-
></geo-table>
|
|
94
|
+
<geo-table [columns]="columns" [data]="rows" [total]="total" [pageIndex]="pageIndex" [pageSize]="pageSize" (pageIndexChange)="pageIndex = $event; load()" (pageSizeChange)="pageSize = $event; load()"></geo-table>
|
|
104
95
|
```
|
|
105
96
|
|
|
106
|
-
|
|
97
|
+
```ts
|
|
98
|
+
columns = [
|
|
99
|
+
{ key: "code", title: "Mã", width: 120 },
|
|
100
|
+
{ key: "name", title: "Tên" },
|
|
101
|
+
{ key: "status", title: "Trạng thái" },
|
|
102
|
+
];
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 7. Typography + status
|
|
107
106
|
|
|
108
107
|
```html
|
|
109
|
-
<geo-typography variant="h4" [strong]="true">1. Thông tin cá nhân</geo-typography>
|
|
110
|
-
<geo-status-tag status="success" label="Đã duyệt"></geo-status-tag>
|
|
108
|
+
<geo-typography variant="h4" [strong]="true">1. Thông tin cá nhân</geo-typography> <geo-status-tag status="success" label="Đã duyệt"></geo-status-tag>
|
|
111
109
|
```
|
|
110
|
+
|
|
111
|
+
## 8. Tabs with content
|
|
112
|
+
|
|
113
|
+
```html
|
|
114
|
+
<geo-tabs [items]="[{ key: 'info', title: 'Thông tin' }, { key: 'files', title: 'Tệp đính kèm' }]" [(selectedKey)]="tab">
|
|
115
|
+
<ng-template uiTab="info">…</ng-template>
|
|
116
|
+
<ng-template uiTab="files">…</ng-template>
|
|
117
|
+
</geo-tabs>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 9. App shell layout
|
|
121
|
+
|
|
122
|
+
```html
|
|
123
|
+
<geo-layout
|
|
124
|
+
[menuItems]="menu"
|
|
125
|
+
[(expanded)]="expanded"
|
|
126
|
+
[isMobile]="isMobile"
|
|
127
|
+
[(mobileMenuOpen)]="mobileOpen"
|
|
128
|
+
[breadcrumbs]="crumbs"
|
|
129
|
+
[(selectedKey)]="activeKey"
|
|
130
|
+
[user]="{ name: 'vnpt', email: 'vnpt@vnpt.vn' }"
|
|
131
|
+
[showFooter]="true"
|
|
132
|
+
(menuSelect)="onNav($event)"
|
|
133
|
+
(logout)="onLogout()"
|
|
134
|
+
>
|
|
135
|
+
<geo-page-title title="Tra cứu theo thửa"></geo-page-title>
|
|
136
|
+
<!-- page body -->
|
|
137
|
+
</geo-layout>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Pieces (có thể dùng riêng): `geo-layout-sidebar`, `geo-layout-header`, `geo-layout-footer`, `geo-layout-header-actions`.
|
|
141
|
+
|
|
142
|
+
Override header actions:
|
|
143
|
+
|
|
144
|
+
```html
|
|
145
|
+
<geo-layout ...>
|
|
146
|
+
<div geoLayoutActions>...</div>
|
|
147
|
+
...
|
|
148
|
+
</geo-layout>
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
menu = [
|
|
153
|
+
{ key: 'home', title: 'Tổng quan', icon: 'dashboard' },
|
|
154
|
+
{
|
|
155
|
+
key: 'lookup',
|
|
156
|
+
title: 'Tra cứu',
|
|
157
|
+
icon: 'file-search',
|
|
158
|
+
children: [
|
|
159
|
+
{ key: 'parcel', title: 'Theo thửa' },
|
|
160
|
+
{ key: 'owner', title: 'Theo chủ sử dụng' },
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
];
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## 10. Dashboard (TCQH.1–3)
|
|
167
|
+
|
|
168
|
+
```html
|
|
169
|
+
<geo-dashboard
|
|
170
|
+
[stats]="stats"
|
|
171
|
+
[wardData]="wards"
|
|
172
|
+
[mismatchData]="mismatch"
|
|
173
|
+
[(period)]="period"
|
|
174
|
+
(mismatchSegmentClick)="openMismatchPopup($event)"
|
|
175
|
+
></geo-dashboard>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Primitives: `geo-stat-card`, `geo-chart` (bar/donut), `geo-page-header`, `geo-empty-state`.
|
|
179
|
+
|
|
180
|
+
## 11. Auth (STT 35–36)
|
|
181
|
+
|
|
182
|
+
```html
|
|
183
|
+
<geo-login (submitLogin)="login($event)" (forgotPassword)="goForgot()"></geo-login>
|
|
184
|
+
<geo-forgot-password (submitEmail)="reset($event)" (backToLogin)="goLogin()"></geo-forgot-password>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## 12. Phản ánh & phân tích
|
|
188
|
+
|
|
189
|
+
```html
|
|
190
|
+
<geo-feedback-form (submittedFeedback)="send($event)"></geo-feedback-form>
|
|
191
|
+
<geo-overlap-result [rows]="overlapRows" (rowClick)="focusOnMap($event)"></geo-overlap-result>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
List pages (thống kê tờ/bản đồ, QL người dùng, đồng bộ iLIS, QL bản đồ): `geo-list-page` + `geo-table-toolbar` + `geo-table` + `geo-form-modal`.
|
|
195
|
+
|
|
196
|
+
Storybook: `GEO/Pages/Admin CRUD` (STT 28, TCQH.24, STT 31).
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, model, output, ViewEncapsulation, } from '@angular/core';
|
|
3
2
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
4
3
|
import { UI_ALERT_DEFAULT_TITLES } from './geo-alert.types';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
5
|
import * as i1 from "ng-zorro-antd/icon";
|
|
7
6
|
export class GeoAlertComponent {
|
|
8
|
-
type = 'info';
|
|
9
|
-
title = '';
|
|
10
|
-
message = '';
|
|
11
|
-
closable = true;
|
|
12
|
-
visible = true;
|
|
13
|
-
showIcon = true;
|
|
14
|
-
closed =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
get iconType() {
|
|
19
|
-
switch (this.type) {
|
|
7
|
+
type = input('info');
|
|
8
|
+
title = input('');
|
|
9
|
+
message = input('');
|
|
10
|
+
closable = input(true);
|
|
11
|
+
visible = model(true);
|
|
12
|
+
showIcon = input(true);
|
|
13
|
+
closed = output();
|
|
14
|
+
displayTitle = computed(() => this.title() || UI_ALERT_DEFAULT_TITLES[this.type()]);
|
|
15
|
+
iconType = computed(() => {
|
|
16
|
+
switch (this.type()) {
|
|
20
17
|
case 'success':
|
|
21
18
|
return 'check-circle';
|
|
22
19
|
case 'error':
|
|
@@ -26,33 +23,19 @@ export class GeoAlertComponent {
|
|
|
26
23
|
default:
|
|
27
24
|
return 'info-circle';
|
|
28
25
|
}
|
|
29
|
-
}
|
|
26
|
+
});
|
|
30
27
|
onClose() {
|
|
31
|
-
this.visible
|
|
28
|
+
this.visible.set(false);
|
|
32
29
|
this.closed.emit();
|
|
33
30
|
}
|
|
34
31
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoAlertComponent, isStandalone: true, selector: "geo-alert", inputs: { type: "type", title: "title", message: "message", closable: "closable", visible: "visible", showIcon: "showIcon" }, outputs: { closed: "closed" }, host: { properties: { "class.geo-alert-host--hidden": "!visible" }, classAttribute: "geo-alert-host" }, ngImport: i0, template: "@if (visible) {\n <div class=\"geo-alert\" [class]=\"'geo-alert--' + type\" role=\"alert\">\n <div class=\"geo-alert__main\">\n @if (showIcon) {\n <span class=\"geo-alert__icon\" nz-icon [nzType]=\"iconType\" nzTheme=\"outline\"></span>\n }\n\n <div class=\"geo-alert__content\">\n <p class=\"geo-alert__title\">{{ displayTitle }}</p>\n @if (message) {\n <p class=\"geo-alert__message\">{{ message }}</p>\n }\n </div>\n </div>\n\n @if (closable) {\n <button type=\"button\" class=\"geo-alert__close\" aria-label=\"\u0110\u00F3ng th\u00F4ng b\u00E1o\" (click)=\"onClose()\">\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";geo-alert.geo-alert-host,.geo-alert-host{display:block;width:100%}.geo-alert-host--hidden{display:none}.geo-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;width:100%;padding:16px;border:1px solid transparent;border-radius:var(--geo-radius);box-sizing:border-box}.geo-alert__main{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1 1 auto}.geo-alert__icon{display:inline-flex;flex-shrink:0;width:24px;height:24px;font-size:24px;line-height:1}.geo-alert__content{display:flex;flex-direction:column;gap:0;min-width:0}.geo-alert__title,.geo-alert__message{margin:0;font-size:var(--geo-font-size-lg);line-height:24px}.geo-alert__title{font-weight:700}.geo-alert__message{font-weight:400}.geo-alert__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.geo-alert--success{background:var(--geo-color-success-light);border-color:var(--geo-color-success-default)}.geo-alert--success .geo-alert__title,.geo-alert--success .geo-alert__message,.geo-alert--success .geo-alert__icon{color:var(--geo-color-success-dark)}.geo-alert--success .geo-alert__close{color:var(--geo-color-success-default)}.geo-alert--error{background:var(--geo-color-error-light);border-color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__title,.geo-alert--error .geo-alert__message,.geo-alert--error .geo-alert__icon{color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__close{color:var(--geo-color-error-dark)}.geo-alert--warning{background:var(--geo-color-warning-light);border-color:var(--geo-color-warning-default)}.geo-alert--warning .geo-alert__title,.geo-alert--warning .geo-alert__message{color:var(--geo-color-warning-dark)}.geo-alert--warning .geo-alert__icon,.geo-alert--warning .geo-alert__close{color:var(--geo-color-warning-default)}.geo-alert--info{background:var(--geo-color-info-light);border-color:var(--geo-color-info-default)}.geo-alert--info .geo-alert__title,.geo-alert--info .geo-alert__message,.geo-alert--info .geo-alert__icon{color:var(--geo-color-info-dark)}.geo-alert--info .geo-alert__close{color:var(--geo-color-info-default)}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoAlertComponent, isStandalone: true, selector: "geo-alert", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange", closed: "closed" }, host: { properties: { "class.geo-alert-host--hidden": "!visible()" }, classAttribute: "geo-alert-host" }, ngImport: i0, template: "@if (visible()) {\n <div class=\"geo-alert\" [class]=\"'geo-alert--' + type()\" role=\"alert\">\n <div class=\"geo-alert__main\">\n @if (showIcon()) {\n <span class=\"geo-alert__icon\" nz-icon [nzType]=\"iconType()\" nzTheme=\"outline\"></span>\n }\n\n <div class=\"geo-alert__content\">\n <p class=\"geo-alert__title\">{{ displayTitle() }}</p>\n @if (message()) {\n <p class=\"geo-alert__message\">{{ message() }}</p>\n }\n </div>\n </div>\n\n @if (closable()) {\n <button type=\"button\" class=\"geo-alert__close\" aria-label=\"\u0110\u00F3ng th\u00F4ng b\u00E1o\" (click)=\"onClose()\">\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";geo-alert.geo-alert-host,.geo-alert-host{display:block;width:100%}.geo-alert-host--hidden{display:none}.geo-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;width:100%;padding:16px;border:1px solid transparent;border-radius:var(--geo-radius);box-sizing:border-box}.geo-alert__main{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1 1 auto}.geo-alert__icon{display:inline-flex;flex-shrink:0;width:24px;height:24px;font-size:24px;line-height:1}.geo-alert__content{display:flex;flex-direction:column;gap:0;min-width:0}.geo-alert__title,.geo-alert__message{margin:0;font-size:var(--geo-font-size-lg);line-height:24px}.geo-alert__title{font-weight:700}.geo-alert__message{font-weight:400}.geo-alert__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.geo-alert--success{background:var(--geo-color-success-light);border-color:var(--geo-color-success-default)}.geo-alert--success .geo-alert__title,.geo-alert--success .geo-alert__message,.geo-alert--success .geo-alert__icon{color:var(--geo-color-success-dark)}.geo-alert--success .geo-alert__close{color:var(--geo-color-success-default)}.geo-alert--error{background:var(--geo-color-error-light);border-color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__title,.geo-alert--error .geo-alert__message,.geo-alert--error .geo-alert__icon{color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__close{color:var(--geo-color-error-dark)}.geo-alert--warning{background:var(--geo-color-warning-light);border-color:var(--geo-color-warning-default)}.geo-alert--warning .geo-alert__title,.geo-alert--warning .geo-alert__message{color:var(--geo-color-warning-dark)}.geo-alert--warning .geo-alert__icon,.geo-alert--warning .geo-alert__close{color:var(--geo-color-warning-default)}.geo-alert--info{background:var(--geo-color-info-light);border-color:var(--geo-color-info-default)}.geo-alert--info .geo-alert__title,.geo-alert--info .geo-alert__message,.geo-alert--info .geo-alert__icon{color:var(--geo-color-info-dark)}.geo-alert--info .geo-alert__close{color:var(--geo-color-info-default)}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
36
33
|
}
|
|
37
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoAlertComponent, decorators: [{
|
|
38
35
|
type: Component,
|
|
39
|
-
args: [{ selector: 'geo-alert', standalone: true, imports: [
|
|
36
|
+
args: [{ selector: 'geo-alert', standalone: true, imports: [NzIconModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
40
37
|
class: 'geo-alert-host',
|
|
41
|
-
'[class.geo-alert-host--hidden]': '!visible',
|
|
42
|
-
}, template: "@if (visible) {\n <div class=\"geo-alert\" [class]=\"'geo-alert--' + type\" role=\"alert\">\n <div class=\"geo-alert__main\">\n @if (showIcon) {\n <span class=\"geo-alert__icon\" nz-icon [nzType]=\"iconType\" nzTheme=\"outline\"></span>\n }\n\n <div class=\"geo-alert__content\">\n <p class=\"geo-alert__title\">{{ displayTitle }}</p>\n @if (message) {\n <p class=\"geo-alert__message\">{{ message }}</p>\n }\n </div>\n </div>\n\n @if (closable) {\n <button type=\"button\" class=\"geo-alert__close\" aria-label=\"\u0110\u00F3ng th\u00F4ng b\u00E1o\" (click)=\"onClose()\">\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";geo-alert.geo-alert-host,.geo-alert-host{display:block;width:100%}.geo-alert-host--hidden{display:none}.geo-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;width:100%;padding:16px;border:1px solid transparent;border-radius:var(--geo-radius);box-sizing:border-box}.geo-alert__main{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1 1 auto}.geo-alert__icon{display:inline-flex;flex-shrink:0;width:24px;height:24px;font-size:24px;line-height:1}.geo-alert__content{display:flex;flex-direction:column;gap:0;min-width:0}.geo-alert__title,.geo-alert__message{margin:0;font-size:var(--geo-font-size-lg);line-height:24px}.geo-alert__title{font-weight:700}.geo-alert__message{font-weight:400}.geo-alert__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.geo-alert--success{background:var(--geo-color-success-light);border-color:var(--geo-color-success-default)}.geo-alert--success .geo-alert__title,.geo-alert--success .geo-alert__message,.geo-alert--success .geo-alert__icon{color:var(--geo-color-success-dark)}.geo-alert--success .geo-alert__close{color:var(--geo-color-success-default)}.geo-alert--error{background:var(--geo-color-error-light);border-color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__title,.geo-alert--error .geo-alert__message,.geo-alert--error .geo-alert__icon{color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__close{color:var(--geo-color-error-dark)}.geo-alert--warning{background:var(--geo-color-warning-light);border-color:var(--geo-color-warning-default)}.geo-alert--warning .geo-alert__title,.geo-alert--warning .geo-alert__message{color:var(--geo-color-warning-dark)}.geo-alert--warning .geo-alert__icon,.geo-alert--warning .geo-alert__close{color:var(--geo-color-warning-default)}.geo-alert--info{background:var(--geo-color-info-light);border-color:var(--geo-color-info-default)}.geo-alert--info .geo-alert__title,.geo-alert--info .geo-alert__message,.geo-alert--info .geo-alert__icon{color:var(--geo-color-info-dark)}.geo-alert--info .geo-alert__close{color:var(--geo-color-info-default)}\n"] }]
|
|
43
|
-
}]
|
|
44
|
-
|
|
45
|
-
}], title: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], message: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], closable: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], visible: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], showIcon: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], closed: [{
|
|
56
|
-
type: Output
|
|
57
|
-
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1hbGVydC9nZW8tYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWFsZXJ0L2dlby1hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBYzFFLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsSUFBSSxHQUFpQixNQUFNLENBQUM7SUFDNUIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDYixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDZixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRWYsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFNUMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUssT0FBTztnQkFDVixPQUFPLGNBQWMsQ0FBQztZQUN4QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxvQkFBb0IsQ0FBQztZQUM5QjtnQkFDRSxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7d0dBOUJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDBVQ3ZCOUIsa3ZCQXNCQSx3dUVEUlksWUFBWSw4QkFBRSxZQUFZOzs0RkFTekIsaUJBQWlCO2tCQVo3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxnQkFBZ0I7d0JBQ3ZCLGdDQUFnQyxFQUFFLFVBQVU7cUJBQzdDOzhCQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuaW1wb3J0IHsgVUlfQUxFUlRfREVGQVVMVF9USVRMRVMsIEdlb0FsZXJ0VHlwZSB9IGZyb20gJy4vZ2VvLWFsZXJ0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLWFsZXJ0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTnpJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tYWxlcnQuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdnZW8tYWxlcnQtaG9zdCcsXG4gICAgJ1tjbGFzcy5nZW8tYWxlcnQtaG9zdC0taGlkZGVuXSc6ICchdmlzaWJsZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdlb0FsZXJ0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdHlwZTogR2VvQWxlcnRUeXBlID0gJ2luZm8nO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIGNsb3NhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgdmlzaWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dJY29uID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBkaXNwbGF5VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZSB8fCBVSV9BTEVSVF9ERUZBVUxUX1RJVExFU1t0aGlzLnR5cGVdO1xuICB9XG5cbiAgZ2V0IGljb25UeXBlKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICByZXR1cm4gJ2NoZWNrLWNpcmNsZSc7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnY2xvc2UtY2lyY2xlJztcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICByZXR1cm4gJ2V4Y2xhbWF0aW9uLWNpcmNsZSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2luZm8tY2lyY2xlJztcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiQGlmICh2aXNpYmxlKSB7XG4gIDxkaXYgY2xhc3M9XCJnZW8tYWxlcnRcIiBbY2xhc3NdPVwiJ2dlby1hbGVydC0tJyArIHR5cGVcIiByb2xlPVwiYWxlcnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLWFsZXJ0X19tYWluXCI+XG4gICAgICBAaWYgKHNob3dJY29uKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWFsZXJ0X19pY29uXCIgbnotaWNvbiBbbnpUeXBlXT1cImljb25UeXBlXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnZW8tYWxlcnRfX2NvbnRlbnRcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJnZW8tYWxlcnRfX3RpdGxlXCI+e3sgZGlzcGxheVRpdGxlIH19PC9wPlxuICAgICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICA8cCBjbGFzcz1cImdlby1hbGVydF9fbWVzc2FnZVwiPnt7IG1lc3NhZ2UgfX08L3A+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnZW8tYWxlcnRfX2Nsb3NlXCIgYXJpYS1sYWJlbD1cIsSQw7NuZyB0aMO0bmcgYsOhb1wiIChjbGljayk9XCJvbkNsb3NlKClcIj5cbiAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJjbG9zZVwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
38
|
+
'[class.geo-alert-host--hidden]': '!visible()',
|
|
39
|
+
}, template: "@if (visible()) {\n <div class=\"geo-alert\" [class]=\"'geo-alert--' + type()\" role=\"alert\">\n <div class=\"geo-alert__main\">\n @if (showIcon()) {\n <span class=\"geo-alert__icon\" nz-icon [nzType]=\"iconType()\" nzTheme=\"outline\"></span>\n }\n\n <div class=\"geo-alert__content\">\n <p class=\"geo-alert__title\">{{ displayTitle() }}</p>\n @if (message()) {\n <p class=\"geo-alert__message\">{{ message() }}</p>\n }\n </div>\n </div>\n\n @if (closable()) {\n <button type=\"button\" class=\"geo-alert__close\" aria-label=\"\u0110\u00F3ng th\u00F4ng b\u00E1o\" (click)=\"onClose()\">\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";geo-alert.geo-alert-host,.geo-alert-host{display:block;width:100%}.geo-alert-host--hidden{display:none}.geo-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;width:100%;padding:16px;border:1px solid transparent;border-radius:var(--geo-radius);box-sizing:border-box}.geo-alert__main{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1 1 auto}.geo-alert__icon{display:inline-flex;flex-shrink:0;width:24px;height:24px;font-size:24px;line-height:1}.geo-alert__content{display:flex;flex-direction:column;gap:0;min-width:0}.geo-alert__title,.geo-alert__message{margin:0;font-size:var(--geo-font-size-lg);line-height:24px}.geo-alert__title{font-weight:700}.geo-alert__message{font-weight:400}.geo-alert__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.geo-alert--success{background:var(--geo-color-success-light);border-color:var(--geo-color-success-default)}.geo-alert--success .geo-alert__title,.geo-alert--success .geo-alert__message,.geo-alert--success .geo-alert__icon{color:var(--geo-color-success-dark)}.geo-alert--success .geo-alert__close{color:var(--geo-color-success-default)}.geo-alert--error{background:var(--geo-color-error-light);border-color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__title,.geo-alert--error .geo-alert__message,.geo-alert--error .geo-alert__icon{color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__close{color:var(--geo-color-error-dark)}.geo-alert--warning{background:var(--geo-color-warning-light);border-color:var(--geo-color-warning-default)}.geo-alert--warning .geo-alert__title,.geo-alert--warning .geo-alert__message{color:var(--geo-color-warning-dark)}.geo-alert--warning .geo-alert__icon,.geo-alert--warning .geo-alert__close{color:var(--geo-color-warning-default)}.geo-alert--info{background:var(--geo-color-info-light);border-color:var(--geo-color-info-default)}.geo-alert--info .geo-alert__title,.geo-alert--info .geo-alert__message,.geo-alert--info .geo-alert__icon{color:var(--geo-color-info-dark)}.geo-alert--info .geo-alert__close{color:var(--geo-color-info-default)}\n"] }]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1hbGVydC9nZW8tYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWFsZXJ0L2dlby1hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQWdCLE1BQU0sbUJBQW1CLENBQUM7OztBQWUxRSxNQUFNLE9BQU8saUJBQWlCO0lBQ25CLElBQUksR0FBRyxLQUFLLENBQWUsTUFBTSxDQUFDLENBQUM7SUFDbkMsS0FBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCLE1BQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV4QixZQUFZLEdBQUcsUUFBUSxDQUM5QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQzNELENBQUM7SUFFTyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNoQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLEtBQUssU0FBUztnQkFDWixPQUFPLGNBQWMsQ0FBQztZQUN4QixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sb0JBQW9CLENBQUM7WUFDOUI7Z0JBQ0UsT0FBTyxhQUFhLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzt3R0E5QlUsaUJBQWlCOzRGQUFqQixpQkFBaUIsKzlCQ3pCOUIsa3dCQXNCQSx3dUVEUFksWUFBWTs7NEZBVVgsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsaUJBR1IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsZ0JBQWdCO3dCQUN2QixnQ0FBZ0MsRUFBRSxZQUFZO3FCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IFVJX0FMRVJUX0RFRkFVTFRfVElUTEVTLCBHZW9BbGVydFR5cGUgfSBmcm9tICcuL2dlby1hbGVydC50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1hbGVydCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOekljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWFsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1hbGVydC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdnZW8tYWxlcnQtaG9zdCcsXG4gICAgJ1tjbGFzcy5nZW8tYWxlcnQtaG9zdC0taGlkZGVuXSc6ICchdmlzaWJsZSgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvQWxlcnRDb21wb25lbnQge1xuICByZWFkb25seSB0eXBlID0gaW5wdXQ8R2VvQWxlcnRUeXBlPignaW5mbycpO1xuICByZWFkb25seSB0aXRsZSA9IGlucHV0KCcnKTtcbiAgcmVhZG9ubHkgbWVzc2FnZSA9IGlucHV0KCcnKTtcbiAgcmVhZG9ubHkgY2xvc2FibGUgPSBpbnB1dCh0cnVlKTtcbiAgcmVhZG9ubHkgdmlzaWJsZSA9IG1vZGVsKHRydWUpO1xuICByZWFkb25seSBzaG93SWNvbiA9IGlucHV0KHRydWUpO1xuXG4gIHJlYWRvbmx5IGNsb3NlZCA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlUaXRsZSA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMudGl0bGUoKSB8fCBVSV9BTEVSVF9ERUZBVUxUX1RJVExFU1t0aGlzLnR5cGUoKV1cbiAgKTtcblxuICByZWFkb25seSBpY29uVHlwZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuICdjaGVjay1jaXJjbGUnO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICByZXR1cm4gJ2Nsb3NlLWNpcmNsZSc7XG4gICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgcmV0dXJuICdleGNsYW1hdGlvbi1jaXJjbGUnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdpbmZvLWNpcmNsZSc7XG4gICAgfVxuICB9KTtcblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiQGlmICh2aXNpYmxlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImdlby1hbGVydFwiIFtjbGFzc109XCInZ2VvLWFsZXJ0LS0nICsgdHlwZSgpXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgPGRpdiBjbGFzcz1cImdlby1hbGVydF9fbWFpblwiPlxuICAgICAgQGlmIChzaG93SWNvbigpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWFsZXJ0X19pY29uXCIgbnotaWNvbiBbbnpUeXBlXT1cImljb25UeXBlKClcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cImdlby1hbGVydF9fY29udGVudFwiPlxuICAgICAgICA8cCBjbGFzcz1cImdlby1hbGVydF9fdGl0bGVcIj57eyBkaXNwbGF5VGl0bGUoKSB9fTwvcD5cbiAgICAgICAgQGlmIChtZXNzYWdlKCkpIHtcbiAgICAgICAgICA8cCBjbGFzcz1cImdlby1hbGVydF9fbWVzc2FnZVwiPnt7IG1lc3NhZ2UoKSB9fTwvcD5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGNsb3NhYmxlKCkpIHtcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZ2VvLWFsZXJ0X19jbG9zZVwiIGFyaWEtbGFiZWw9XCLEkMOzbmcgdGjDtG5nIGLDoW9cIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICAgIDxzcGFuIG56LWljb24gbnpUeXBlPVwiY2xvc2VcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { Location } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, input, output, } from '@angular/core';
|
|
3
3
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "ng-zorro-antd/icon";
|
|
@@ -9,40 +9,30 @@ import * as i1 from "ng-zorro-antd/icon";
|
|
|
9
9
|
*/
|
|
10
10
|
export class GeoBackButtonComponent {
|
|
11
11
|
location = inject(Location);
|
|
12
|
-
ariaLabel = 'Quay lại';
|
|
13
|
-
title = 'Quay lại';
|
|
14
|
-
disabled = false;
|
|
12
|
+
ariaLabel = input('Quay lại');
|
|
13
|
+
title = input('Quay lại');
|
|
14
|
+
disabled = input(false);
|
|
15
15
|
/** `true` (mặc định): `Location.back()` — về trang trước trong history. */
|
|
16
|
-
historyBack = true;
|
|
17
|
-
clicked =
|
|
16
|
+
historyBack = input(true);
|
|
17
|
+
clicked = output();
|
|
18
18
|
onClick(event) {
|
|
19
|
-
if (this.disabled) {
|
|
19
|
+
if (this.disabled()) {
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
event.preventDefault();
|
|
23
23
|
event.stopPropagation();
|
|
24
24
|
this.clicked.emit(event);
|
|
25
|
-
if (this.historyBack) {
|
|
25
|
+
if (this.historyBack()) {
|
|
26
26
|
this.location.back();
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBackButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoBackButtonComponent, isStandalone: true, selector: "geo-back-button", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, historyBack: { classPropertyName: "historyBack", publicName: "historyBack", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { classAttribute: "geo-back-button-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-back-button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.title]=\"title() || ariaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n>\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\" aria-hidden=\"true\"></span>\n</button>\n", styles: [":host,.geo-back-button-host{display:inline-flex;flex-shrink:0;position:relative;z-index:2;pointer-events:auto}.geo-back-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--geo-radius);background:var(--geo-color-primary-surface-light);color:var(--geo-color-primary-default);cursor:pointer;pointer-events:auto;transition:background-color .15s ease}.geo-back-button .anticon{font-size:16px;pointer-events:none}.geo-back-button:hover:not(:disabled){background:var(--geo-color-primary-surface-light)}.geo-back-button:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-back-button:disabled{opacity:.45;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBackButtonComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
|
-
args: [{ selector: 'geo-back-button', standalone: true, imports: [
|
|
34
|
+
args: [{ selector: 'geo-back-button', standalone: true, imports: [NzIconModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
35
35
|
class: 'geo-back-button-host',
|
|
36
|
-
}, template: "<button\n type=\"button\"\n class=\"geo-back-button\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.title]=\"title || ariaLabel\"\n [disabled]=\"disabled\"\n (click)=\"onClick($event)\"\n>\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\" aria-hidden=\"true\"></span>\n</button>\n", styles: [":host,.geo-back-button-host{display:inline-flex;flex-shrink:0;position:relative;z-index:2;pointer-events:auto}.geo-back-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--geo-radius);background:var(--geo-color-primary-surface-light);color:var(--geo-color-primary-default);cursor:pointer;pointer-events:auto;transition:background-color .15s ease}.geo-back-button .anticon{font-size:16px;pointer-events:none}.geo-back-button:hover:not(:disabled){background:var(--geo-color-primary-surface-light)}.geo-back-button:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-back-button:disabled{opacity:.45;cursor:not-allowed}\n"] }]
|
|
37
|
-
}]
|
|
38
|
-
|
|
39
|
-
}], title: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], disabled: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], historyBack: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], clicked: [{
|
|
46
|
-
type: Output
|
|
47
|
-
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJhY2stYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1iYWNrLWJ1dHRvbi9nZW8tYmFjay1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJhY2stYnV0dG9uL2dlby1iYWNrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUVsRDs7O0dBR0c7QUFZSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2hCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUN2QixLQUFLLEdBQUcsVUFBVSxDQUFDO0lBQ25CLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsMkVBQTJFO0lBQ2xFLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFbEIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFFbkQsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO3dHQXZCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQixvUUMxQm5DLHFTQVVBLHV4QkRRWSxZQUFZLDhCQUFFLFlBQVk7OzRGQVF6QixzQkFBc0I7a0JBWGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5Qjs4QkFLUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcblxuLyoqXG4gKiBOw7p0IHF1YXkgbOG6oWkgZMO5bmcgY2h1bmcgY2hvIGPDoWMgcGFnZSBmb3JtL2RldGFpbC5cbiAqIE3hurdjIMSR4buLbmggYGhpc3RvcnkuYmFjaygpYCAo4oiSMSkuIFNldCBgW2hpc3RvcnlCYWNrXT1cImZhbHNlXCJgIG7hur91IHBhcmVudCB04buxIG5hdmlnYXRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tYmFjay1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOekljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWJhY2stYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1iYWNrLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdnZW8tYmFjay1idXR0b24taG9zdCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdlb0JhY2tCdXR0b25Db21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcblxuICBASW5wdXQoKSBhcmlhTGFiZWwgPSAnUXVheSBs4bqhaSc7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ1F1YXkgbOG6oWknO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKiogYHRydWVgICht4bq3YyDEkeG7i25oKTogYExvY2F0aW9uLmJhY2soKWAg4oCUIHbhu4EgdHJhbmcgdHLGsOG7m2MgdHJvbmcgaGlzdG9yeS4gKi9cbiAgQElucHV0KCkgaGlzdG9yeUJhY2sgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGlja2VkLmVtaXQoZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMuaGlzdG9yeUJhY2spIHtcbiAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgY2xhc3M9XCJnZW8tYmFjay1idXR0b25cIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gIFthdHRyLnRpdGxlXT1cInRpdGxlIHx8IGFyaWFMYWJlbFwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuPlxuICA8c3BhbiBuei1pY29uIG56VHlwZT1cImFycm93LWxlZnRcIiBuelRoZW1lPVwib3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
|
|
36
|
+
}, template: "<button\n type=\"button\"\n class=\"geo-back-button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.title]=\"title() || ariaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n>\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\" aria-hidden=\"true\"></span>\n</button>\n", styles: [":host,.geo-back-button-host{display:inline-flex;flex-shrink:0;position:relative;z-index:2;pointer-events:auto}.geo-back-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--geo-radius);background:var(--geo-color-primary-surface-light);color:var(--geo-color-primary-default);cursor:pointer;pointer-events:auto;transition:background-color .15s ease}.geo-back-button .anticon{font-size:16px;pointer-events:none}.geo-back-button:hover:not(:disabled){background:var(--geo-color-primary-surface-light)}.geo-back-button:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-back-button:disabled{opacity:.45;cursor:not-allowed}\n"] }]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJhY2stYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1iYWNrLWJ1dHRvbi9nZW8tYmFjay1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJhY2stYnV0dG9uL2dlby1iYWNrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFbEQ7OztHQUdHO0FBWUgsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQixRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBDLFNBQVMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLDJFQUEyRTtJQUNsRSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFCLE9BQU8sR0FBRyxNQUFNLEVBQWMsQ0FBQztJQUV4QyxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO3dHQXZCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQixpckJDekJuQyw2U0FVQSx1eEJET1ksWUFBWTs7NEZBUVgsc0JBQXNCO2tCQVhsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxzQkFBc0I7cUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5cbi8qKlxuICogTsO6dCBxdWF5IGzhuqFpIGTDuW5nIGNodW5nIGNobyBjw6FjIHBhZ2UgZm9ybS9kZXRhaWwuXG4gKiBN4bq3YyDEkeG7i25oIGBoaXN0b3J5LmJhY2soKWAgKOKIkjEpLiBTZXQgYFtoaXN0b3J5QmFja109XCJmYWxzZVwiYCBu4bq/dSBwYXJlbnQgdOG7sSBuYXZpZ2F0ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLWJhY2stYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW056SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tYmFjay1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2VvLWJhY2stYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1iYWNrLWJ1dHRvbi1ob3N0JyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvQmFja0J1dHRvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xuXG4gIHJlYWRvbmx5IGFyaWFMYWJlbCA9IGlucHV0KCdRdWF5IGzhuqFpJyk7XG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQoJ1F1YXkgbOG6oWknKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIC8qKiBgdHJ1ZWAgKG3hurdjIMSR4buLbmgpOiBgTG9jYXRpb24uYmFjaygpYCDigJQgduG7gSB0cmFuZyB0csaw4bubYyB0cm9uZyBoaXN0b3J5LiAqL1xuICByZWFkb25seSBoaXN0b3J5QmFjayA9IGlucHV0KHRydWUpO1xuXG4gIHJlYWRvbmx5IGNsaWNrZWQgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGlja2VkLmVtaXQoZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMuaGlzdG9yeUJhY2soKSkge1xuICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIHR5cGU9XCJidXR0b25cIlxuICBjbGFzcz1cImdlby1iYWNrLWJ1dHRvblwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsKClcIlxuICBbYXR0ci50aXRsZV09XCJ0aXRsZSgpIHx8IGFyaWFMYWJlbCgpXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbj5cbiAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJhcnJvdy1sZWZ0XCIgbnpUaGVtZT1cIm91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';
|
|
3
2
|
import { RouterModule } from '@angular/router';
|
|
4
3
|
import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';
|
|
5
4
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
@@ -12,22 +11,20 @@ import * as i3 from "ng-zorro-antd/icon";
|
|
|
12
11
|
* Item thường: neutral gray; item active (cuối): primary + semibold.
|
|
13
12
|
*/
|
|
14
13
|
export class GeoBreadcrumbComponent {
|
|
15
|
-
items = [];
|
|
14
|
+
items = input([]);
|
|
16
15
|
isActive(item, index) {
|
|
17
16
|
if (item.active != null) {
|
|
18
17
|
return item.active;
|
|
19
18
|
}
|
|
20
|
-
return index === this.items.length - 1;
|
|
19
|
+
return index === this.items().length - 1;
|
|
21
20
|
}
|
|
22
21
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoBreadcrumbComponent, isStandalone: true, selector: "geo-breadcrumb", inputs: { items: "items" }, host: { classAttribute: "geo-breadcrumb-host" }, ngImport: i0, template: "<nav class=\"geo-breadcrumb\" aria-label=\"Breadcrumb\">\n <nz-breadcrumb class=\"geo-breadcrumb__antd\" [nzSeparator]=\"separatorTpl\">\n @for (item of items; track $index) {\n <nz-breadcrumb-item>\n @if (item.link && !isActive(item, $index)) {\n <a\n class=\"geo-breadcrumb__link\"\n [routerLink]=\"item.link\"\n [queryParams]=\"item.queryParams || null\"\n >\n {{ item.label }}\n </a>\n } @else {\n <span\n class=\"geo-breadcrumb__text\"\n [class.geo-breadcrumb__text--active]=\"isActive(item, $index)\"\n [attr.aria-current]=\"isActive(item, $index) ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n</nav>\n\n<ng-template #separatorTpl>\n <span class=\"geo-breadcrumb__separator\" nz-icon nzType=\"right\" nzTheme=\"outline\"></span>\n</ng-template>\n", styles: ["geo-breadcrumb.geo-breadcrumb-host,.geo-breadcrumb-host{display:block;background:transparent;font-family:var(--geo-font-family)}.geo-breadcrumb__antd.ant-breadcrumb{font-size:var(--geo-font-size-body);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-500)}.geo-breadcrumb__antd.ant-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0}.geo-breadcrumb__antd.ant-breadcrumb .ant-breadcrumb-separator{margin:0 8px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__separator{font-size:10px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__link{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular);text-decoration:none;transition:color .15s ease}.geo-breadcrumb__link:hover{color:var(--geo-color-primary-default)}.geo-breadcrumb__text{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular)}.geo-breadcrumb__text--active{color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoBreadcrumbComponent, isStandalone: true, selector: "geo-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "geo-breadcrumb-host" }, ngImport: i0, template: "<nav class=\"geo-breadcrumb\" aria-label=\"Breadcrumb\">\n <nz-breadcrumb class=\"geo-breadcrumb__antd\" [nzSeparator]=\"separatorTpl\">\n @for (item of items(); track $index) {\n <nz-breadcrumb-item>\n @if (item.link && !isActive(item, $index)) {\n <a\n class=\"geo-breadcrumb__link\"\n [routerLink]=\"item.link\"\n [queryParams]=\"item.queryParams || null\"\n >\n {{ item.label }}\n </a>\n } @else {\n <span\n class=\"geo-breadcrumb__text\"\n [class.geo-breadcrumb__text--active]=\"isActive(item, $index)\"\n [attr.aria-current]=\"isActive(item, $index) ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n</nav>\n\n<ng-template #separatorTpl>\n <span class=\"geo-breadcrumb__separator\" nz-icon nzType=\"right\" nzTheme=\"outline\"></span>\n</ng-template>\n", styles: ["geo-breadcrumb.geo-breadcrumb-host,.geo-breadcrumb-host{display:block;background:transparent;font-family:var(--geo-font-family)}.geo-breadcrumb__antd.ant-breadcrumb{font-size:var(--geo-font-size-body);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-500)}.geo-breadcrumb__antd.ant-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0}.geo-breadcrumb__antd.ant-breadcrumb .ant-breadcrumb-separator{margin:0 8px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__separator{font-size:10px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__link{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular);text-decoration:none;transition:color .15s ease}.geo-breadcrumb__link:hover{color:var(--geo-color-primary-default)}.geo-breadcrumb__text{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular)}.geo-breadcrumb__text--active{color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: NzBreadCrumbModule }, { kind: "component", type: i2.NzBreadCrumbComponent, selector: "nz-breadcrumb", inputs: ["nzAutoGenerate", "nzSeparator", "nzRouteLabel", "nzRouteLabelFn", "nzRouteFn"], exportAs: ["nzBreadcrumb"] }, { kind: "component", type: i2.NzBreadCrumbItemComponent, selector: "nz-breadcrumb-item", inputs: ["nzOverlay"], exportAs: ["nzBreadcrumbItem"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
24
23
|
}
|
|
25
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBreadcrumbComponent, decorators: [{
|
|
26
25
|
type: Component,
|
|
27
|
-
args: [{ selector: 'geo-breadcrumb', standalone: true, imports: [
|
|
26
|
+
args: [{ selector: 'geo-breadcrumb', standalone: true, imports: [RouterModule, NzBreadCrumbModule, NzIconModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
28
27
|
class: 'geo-breadcrumb-host',
|
|
29
|
-
}, template: "<nav class=\"geo-breadcrumb\" aria-label=\"Breadcrumb\">\n <nz-breadcrumb class=\"geo-breadcrumb__antd\" [nzSeparator]=\"separatorTpl\">\n @for (item of items; track $index) {\n <nz-breadcrumb-item>\n @if (item.link && !isActive(item, $index)) {\n <a\n class=\"geo-breadcrumb__link\"\n [routerLink]=\"item.link\"\n [queryParams]=\"item.queryParams || null\"\n >\n {{ item.label }}\n </a>\n } @else {\n <span\n class=\"geo-breadcrumb__text\"\n [class.geo-breadcrumb__text--active]=\"isActive(item, $index)\"\n [attr.aria-current]=\"isActive(item, $index) ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n</nav>\n\n<ng-template #separatorTpl>\n <span class=\"geo-breadcrumb__separator\" nz-icon nzType=\"right\" nzTheme=\"outline\"></span>\n</ng-template>\n", styles: ["geo-breadcrumb.geo-breadcrumb-host,.geo-breadcrumb-host{display:block;background:transparent;font-family:var(--geo-font-family)}.geo-breadcrumb__antd.ant-breadcrumb{font-size:var(--geo-font-size-body);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-500)}.geo-breadcrumb__antd.ant-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0}.geo-breadcrumb__antd.ant-breadcrumb .ant-breadcrumb-separator{margin:0 8px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__separator{font-size:10px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__link{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular);text-decoration:none;transition:color .15s ease}.geo-breadcrumb__link:hover{color:var(--geo-color-primary-default)}.geo-breadcrumb__text{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular)}.geo-breadcrumb__text--active{color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}\n"] }]
|
|
30
|
-
}]
|
|
31
|
-
|
|
32
|
-
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJyZWFkY3J1bWIvZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJyZWFkY3J1bWIvZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBR2xEOzs7R0FHRztBQVlILE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsS0FBSyxHQUF3QixFQUFFLENBQUM7SUFFekMsUUFBUSxDQUFDLElBQXVCLEVBQUUsS0FBYTtRQUM3QyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQzt3R0FSVSxzQkFBc0I7NEZBQXRCLHNCQUFzQix1SkN0Qm5DLGkrQkE2QkEsdWlDRGZZLFlBQVksOEJBQUUsWUFBWSwrUUFBRSxrQkFBa0Isd1hBQUUsWUFBWTs7NEZBUTNELHNCQUFzQjtrQkFYbEMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxpQkFHeEQsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3FCQUM3Qjs4QkFHUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOekJyZWFkQ3J1bWJNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2JyZWFkY3J1bWInO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IEdlb0JyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi9nZW8tYnJlYWRjcnVtYi50eXBlcyc7XG5cbi8qKlxuICogQnJlYWRjcnVtYiBHRU8g4oCUIGThu7FhIHRyw6puIGBuei1icmVhZGNydW1iYC5cbiAqIEl0ZW0gdGjGsOG7nW5nOiBuZXV0cmFsIGdyYXk7IGl0ZW0gYWN0aXZlIChjdeG7kWkpOiBwcmltYXJ5ICsgc2VtaWJvbGQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1icmVhZGNydW1iJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBOekJyZWFkQ3J1bWJNb2R1bGUsIE56SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1icmVhZGNydW1iLWhvc3QnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHZW9CcmVhZGNydW1iQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbXM6IEdlb0JyZWFkY3J1bWJJdGVtW10gPSBbXTtcblxuICBpc0FjdGl2ZShpdGVtOiBHZW9CcmVhZGNydW1iSXRlbSwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmIChpdGVtLmFjdGl2ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gaXRlbS5hY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiBpbmRleCA9PT0gdGhpcy5pdGVtcy5sZW5ndGggLSAxO1xuICB9XG59XG4iLCI8bmF2IGNsYXNzPVwiZ2VvLWJyZWFkY3J1bWJcIiBhcmlhLWxhYmVsPVwiQnJlYWRjcnVtYlwiPlxuICA8bnotYnJlYWRjcnVtYiBjbGFzcz1cImdlby1icmVhZGNydW1iX19hbnRkXCIgW256U2VwYXJhdG9yXT1cInNlcGFyYXRvclRwbFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPG56LWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgQGlmIChpdGVtLmxpbmsgJiYgIWlzQWN0aXZlKGl0ZW0sICRpbmRleCkpIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJnZW8tYnJlYWRjcnVtYl9fbGlua1wiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLmxpbmtcIlxuICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cIml0ZW0ucXVlcnlQYXJhbXMgfHwgbnVsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZ2VvLWJyZWFkY3J1bWJfX3RleHRcIlxuICAgICAgICAgICAgW2NsYXNzLmdlby1icmVhZGNydW1iX190ZXh0LS1hY3RpdmVdPVwiaXNBY3RpdmUoaXRlbSwgJGluZGV4KVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXNBY3RpdmUoaXRlbSwgJGluZGV4KSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvbnotYnJlYWRjcnVtYi1pdGVtPlxuICAgIH1cbiAgPC9uei1icmVhZGNydW1iPlxuPC9uYXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VwYXJhdG9yVHBsPlxuICA8c3BhbiBjbGFzcz1cImdlby1icmVhZGNydW1iX19zZXBhcmF0b3JcIiBuei1pY29uIG56VHlwZT1cInJpZ2h0XCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
28
|
+
}, template: "<nav class=\"geo-breadcrumb\" aria-label=\"Breadcrumb\">\n <nz-breadcrumb class=\"geo-breadcrumb__antd\" [nzSeparator]=\"separatorTpl\">\n @for (item of items(); track $index) {\n <nz-breadcrumb-item>\n @if (item.link && !isActive(item, $index)) {\n <a\n class=\"geo-breadcrumb__link\"\n [routerLink]=\"item.link\"\n [queryParams]=\"item.queryParams || null\"\n >\n {{ item.label }}\n </a>\n } @else {\n <span\n class=\"geo-breadcrumb__text\"\n [class.geo-breadcrumb__text--active]=\"isActive(item, $index)\"\n [attr.aria-current]=\"isActive(item, $index) ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n</nav>\n\n<ng-template #separatorTpl>\n <span class=\"geo-breadcrumb__separator\" nz-icon nzType=\"right\" nzTheme=\"outline\"></span>\n</ng-template>\n", styles: ["geo-breadcrumb.geo-breadcrumb-host,.geo-breadcrumb-host{display:block;background:transparent;font-family:var(--geo-font-family)}.geo-breadcrumb__antd.ant-breadcrumb{font-size:var(--geo-font-size-body);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-500)}.geo-breadcrumb__antd.ant-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0}.geo-breadcrumb__antd.ant-breadcrumb .ant-breadcrumb-separator{margin:0 8px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__separator{font-size:10px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__link{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular);text-decoration:none;transition:color .15s ease}.geo-breadcrumb__link:hover{color:var(--geo-color-primary-default)}.geo-breadcrumb__text{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular)}.geo-breadcrumb__text--active{color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}\n"] }]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJyZWFkY3J1bWIvZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJyZWFkY3J1bWIvZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFHbEQ7OztHQUdHO0FBYUgsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixLQUFLLEdBQUcsS0FBSyxDQUFzQixFQUFFLENBQUMsQ0FBQztJQUVoRCxRQUFRLENBQUMsSUFBdUIsRUFBRSxLQUFhO1FBQzdDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUNELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7d0dBUlUsc0JBQXNCOzRGQUF0QixzQkFBc0IsK1BDdEJuQyxtK0JBNkJBLHVpQ0RoQlksWUFBWSwrUUFBRSxrQkFBa0Isd1hBQUUsWUFBWTs7NEZBUzdDLHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLGlCQUcxQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxxQkFBcUI7cUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTnpCcmVhZENydW1iTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9icmVhZGNydW1iJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5pbXBvcnQgeyBHZW9CcmVhZGNydW1iSXRlbSB9IGZyb20gJy4vZ2VvLWJyZWFkY3J1bWIudHlwZXMnO1xuXG4vKipcbiAqIEJyZWFkY3J1bWIgR0VPIOKAlCBk4buxYSB0csOqbiBgbnotYnJlYWRjcnVtYmAuXG4gKiBJdGVtIHRoxrDhu51uZzogbmV1dHJhbCBncmF5OyBpdGVtIGFjdGl2ZSAoY3Xhu5FpKTogcHJpbWFyeSArIHNlbWlib2xkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tYnJlYWRjcnVtYicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUsIE56QnJlYWRDcnVtYk1vZHVsZSwgTnpJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1icmVhZGNydW1iLWhvc3QnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHZW9CcmVhZGNydW1iQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dDxHZW9CcmVhZGNydW1iSXRlbVtdPihbXSk7XG5cbiAgaXNBY3RpdmUoaXRlbTogR2VvQnJlYWRjcnVtYkl0ZW0sIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAoaXRlbS5hY3RpdmUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGl0ZW0uYWN0aXZlO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXggPT09IHRoaXMuaXRlbXMoKS5sZW5ndGggLSAxO1xuICB9XG59XG4iLCI8bmF2IGNsYXNzPVwiZ2VvLWJyZWFkY3J1bWJcIiBhcmlhLWxhYmVsPVwiQnJlYWRjcnVtYlwiPlxuICA8bnotYnJlYWRjcnVtYiBjbGFzcz1cImdlby1icmVhZGNydW1iX19hbnRkXCIgW256U2VwYXJhdG9yXT1cInNlcGFyYXRvclRwbFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8bnotYnJlYWRjcnVtYi1pdGVtPlxuICAgICAgICBAaWYgKGl0ZW0ubGluayAmJiAhaXNBY3RpdmUoaXRlbSwgJGluZGV4KSkge1xuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cImdlby1icmVhZGNydW1iX19saW5rXCJcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ubGlua1wiXG4gICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtcyB8fCBudWxsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJnZW8tYnJlYWRjcnVtYl9fdGV4dFwiXG4gICAgICAgICAgICBbY2xhc3MuZ2VvLWJyZWFkY3J1bWJfX3RleHQtLWFjdGl2ZV09XCJpc0FjdGl2ZShpdGVtLCAkaW5kZXgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpc0FjdGl2ZShpdGVtLCAkaW5kZXgpID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9uei1icmVhZGNydW1iLWl0ZW0+XG4gICAgfVxuICA8L256LWJyZWFkY3J1bWI+XG48L25hdj5cblxuPG5nLXRlbXBsYXRlICNzZXBhcmF0b3JUcGw+XG4gIDxzcGFuIGNsYXNzPVwiZ2VvLWJyZWFkY3J1bWJfX3NlcGFyYXRvclwiIG56LWljb24gbnpUeXBlPVwicmlnaHRcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|