@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
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, forwardRef, inject, input, output, signal, ViewEncapsulation, } from '@angular/core';
|
|
3
2
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
3
|
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
@@ -7,37 +6,39 @@ import * as i1 from "@angular/forms";
|
|
|
7
6
|
import * as i2 from "ng-zorro-antd/icon";
|
|
8
7
|
let uiInputErrorId = 0;
|
|
9
8
|
export class GeoInputComponent {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
9
|
+
cdr = inject(ChangeDetectorRef);
|
|
10
|
+
label = input('');
|
|
11
|
+
placeholder = input('');
|
|
12
|
+
type = input('text');
|
|
13
|
+
disabled = input(false);
|
|
14
|
+
readonly = input(false);
|
|
15
|
+
required = input(false);
|
|
16
|
+
error = input(false);
|
|
17
|
+
errorMessage = input('');
|
|
18
|
+
maxlength = input(undefined);
|
|
19
|
+
prefixIcon = input(undefined);
|
|
20
|
+
suffixIcon = input(undefined);
|
|
21
|
+
allowClear = input(false);
|
|
22
|
+
block = input(false);
|
|
23
|
+
width = input(undefined);
|
|
24
|
+
valueChange = output();
|
|
25
|
+
enterPressed = output();
|
|
26
26
|
errorMessageId = `geo-input-error-${++uiInputErrorId}`;
|
|
27
|
-
|
|
27
|
+
disabledFromCva = signal(false);
|
|
28
|
+
isDisabled = computed(() => this.disabled() || this.disabledFromCva());
|
|
29
|
+
value = signal('');
|
|
28
30
|
onChange = () => undefined;
|
|
29
31
|
onTouched = () => undefined;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
hostWidth = computed(() => {
|
|
33
|
+
const width = this.width();
|
|
34
|
+
if (this.block() || width == null) {
|
|
32
35
|
return null;
|
|
33
36
|
}
|
|
34
|
-
return typeof
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return this.allowClear && !this.disabled && !this.readonly && !!this.value;
|
|
38
|
-
}
|
|
37
|
+
return typeof width === 'number' ? `${width}px` : width;
|
|
38
|
+
});
|
|
39
|
+
showClear = computed(() => this.allowClear() && !this.isDisabled() && !this.readonly() && !!this.value());
|
|
39
40
|
onInput(value) {
|
|
40
|
-
this.value
|
|
41
|
+
this.value.set(value);
|
|
41
42
|
this.onChange(value);
|
|
42
43
|
this.valueChange.emit(value);
|
|
43
44
|
}
|
|
@@ -48,7 +49,8 @@ export class GeoInputComponent {
|
|
|
48
49
|
this.onInput('');
|
|
49
50
|
}
|
|
50
51
|
writeValue(value) {
|
|
51
|
-
this.value
|
|
52
|
+
this.value.set(value == null ? '' : String(value));
|
|
53
|
+
this.cdr.markForCheck();
|
|
52
54
|
}
|
|
53
55
|
registerOnChange(fn) {
|
|
54
56
|
this.onChange = fn;
|
|
@@ -57,62 +59,31 @@ export class GeoInputComponent {
|
|
|
57
59
|
this.onTouched = fn;
|
|
58
60
|
}
|
|
59
61
|
setDisabledState(isDisabled) {
|
|
60
|
-
this.
|
|
62
|
+
this.disabledFromCva.set(isDisabled);
|
|
63
|
+
this.cdr.markForCheck();
|
|
61
64
|
}
|
|
62
65
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoInputComponent, isStandalone: true, selector: "geo-input", inputs: { label: "label", placeholder: "placeholder", type: "type", disabled: "disabled", readonly: "readonly", required: "required", error: "error", errorMessage: "errorMessage", maxlength: "maxlength", prefixIcon: "prefixIcon", suffixIcon: "suffixIcon", allowClear: "allowClear", block: "block", width: "width" }, outputs: { valueChange: "valueChange", enterPressed: "enterPressed" }, host: { properties: { "class.geo-input-host--block": "block", "class.geo-input-host--error": "error", "style.width": "hostWidth" }, classAttribute: "geo-input-host" }, providers: [
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoInputComponent, isStandalone: true, selector: "geo-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null }, allowClear: { classPropertyName: "allowClear", publicName: "allowClear", isSignal: true, isRequired: false, transformFunction: null }, block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", enterPressed: "enterPressed" }, host: { properties: { "class.geo-input-host--block": "block()", "class.geo-input-host--error": "error()", "style.width": "hostWidth()" }, classAttribute: "geo-input-host" }, providers: [
|
|
64
67
|
{
|
|
65
68
|
provide: NG_VALUE_ACCESSOR,
|
|
66
69
|
useExisting: forwardRef(() => GeoInputComponent),
|
|
67
70
|
multi: true,
|
|
68
71
|
},
|
|
69
|
-
], ngImport: i0, template: "@if (label) {\n <div class=\"geo-input__label\">\n <span>{{ label }}</span>\n @if (required) {\n <span class=\"geo-input__required\" aria-hidden=\"true\">*</span>\n }\n </div>\n}\n\n<div\n class=\"geo-input__control\"\n [class.geo-input__control--disabled]=\"
|
|
72
|
+
], ngImport: i0, template: "@if (label()) {\n <div class=\"geo-input__label\">\n <span>{{ label() }}</span>\n @if (required()) {\n <span class=\"geo-input__required\" aria-hidden=\"true\">*</span>\n }\n </div>\n}\n\n<div\n class=\"geo-input__control\"\n [class.geo-input__control--disabled]=\"isDisabled()\"\n [class.geo-input__control--error]=\"error()\"\n>\n @if (prefixIcon(); as prefix) {\n <span class=\"geo-input__icon\" nz-icon [nzType]=\"prefix\" nzTheme=\"outline\"></span>\n }\n\n <input\n class=\"geo-input__field\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"readonly()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-invalid]=\"error() ? 'true' : null\"\n [attr.aria-describedby]=\"error() && errorMessage() ? errorMessageId : null\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keyup.enter)=\"enterPressed.emit()\"\n />\n\n @if (showClear()) {\n <button type=\"button\" class=\"geo-input__clear\" aria-label=\"X\u00F3a n\u1ED9i dung\" (click)=\"onClear()\">\n <span nz-icon nzType=\"close-circle\" nzTheme=\"fill\"></span>\n </button>\n }\n\n @if (suffixIcon(); as suffix) {\n <span class=\"geo-input__icon\" nz-icon [nzType]=\"suffix\" nzTheme=\"outline\"></span>\n }\n</div>\n\n@if (error() && errorMessage()) {\n <p class=\"geo-input__error\" [id]=\"errorMessageId\" role=\"alert\">{{ errorMessage() }}</p>\n}\n", styles: [".geo-input-host{display:inline-flex;flex-direction:column;gap:8px;width:413px;max-width:100%;vertical-align:top}geo-input.geo-input-host.geo-input-host--block,.geo-input-host.geo-input-host--block{display:flex;width:100%;max-width:none}.geo-input__label{display:inline-flex;align-items:flex-start;gap:4px;font-size:14px;line-height:normal;color:var(--geo-color-neutral-900)}.geo-input__required{color:var(--geo-color-error-default)}.geo-input__control{display:flex;align-items:center;gap:10px;min-height:40px;height:40px;padding:8px;border:1px solid var(--geo-color-neutral-300);border-radius:var(--geo-radius);background:transparent;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.geo-input__control:hover:not(.geo-input__control--disabled){border-color:var(--geo-color-primary-default)}.geo-input__control:focus-within:not(.geo-input__control--disabled){border-color:var(--geo-color-primary-default);box-shadow:0 0 0 2px color-mix(in srgb,var(--geo-color-primary-default) 12%,transparent)}.geo-input__control--error{border-color:var(--geo-color-error-default)!important}.geo-input__control--error:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--geo-color-error-default) 12%,transparent)!important}.geo-input__control--disabled{background:var(--geo-color-neutral-100);border-color:var(--geo-color-neutral-300)}.geo-input__field{flex:1 1 auto;min-width:0;height:24px;border:none;outline:none;background:transparent;font-size:14px;line-height:24px;color:var(--geo-color-neutral-900);font-family:inherit}.geo-input__field::placeholder{color:var(--geo-color-neutral-500)}.geo-input__field:disabled{color:var(--geo-color-neutral-disabled-text);cursor:not-allowed}.geo-input__icon{display:inline-flex;flex-shrink:0;font-size:16px;color:var(--geo-color-neutral-500)}.geo-input__clear{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;border:none;background:transparent;color:var(--geo-color-neutral-400);font-size:14px;cursor:pointer}.geo-input__clear:hover{color:var(--geo-color-neutral-500)}.geo-input__error{margin:0;font-size:14px;line-height:normal;color:var(--geo-color-error-default)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
70
73
|
}
|
|
71
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoInputComponent, decorators: [{
|
|
72
75
|
type: Component,
|
|
73
|
-
args: [{ selector: 'geo-input', standalone: true, imports: [
|
|
76
|
+
args: [{ selector: 'geo-input', standalone: true, imports: [FormsModule, NzIconModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
74
77
|
class: 'geo-input-host',
|
|
75
|
-
'[class.geo-input-host--block]': 'block',
|
|
76
|
-
'[class.geo-input-host--error]': 'error',
|
|
77
|
-
'[style.width]': 'hostWidth',
|
|
78
|
+
'[class.geo-input-host--block]': 'block()',
|
|
79
|
+
'[class.geo-input-host--error]': 'error()',
|
|
80
|
+
'[style.width]': 'hostWidth()',
|
|
78
81
|
}, providers: [
|
|
79
82
|
{
|
|
80
83
|
provide: NG_VALUE_ACCESSOR,
|
|
81
84
|
useExisting: forwardRef(() => GeoInputComponent),
|
|
82
85
|
multi: true,
|
|
83
86
|
},
|
|
84
|
-
], template: "@if (label) {\n <div class=\"geo-input__label\">\n <span>{{ label }}</span>\n @if (required) {\n <span class=\"geo-input__required\" aria-hidden=\"true\">*</span>\n }\n </div>\n}\n\n<div\n class=\"geo-input__control\"\n [class.geo-input__control--disabled]=\"
|
|
85
|
-
}]
|
|
86
|
-
type: Input
|
|
87
|
-
}], placeholder: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], type: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], disabled: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], readonly: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], required: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], error: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], errorMessage: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], maxlength: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], prefixIcon: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], suffixIcon: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], allowClear: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], block: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], width: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], valueChange: [{
|
|
114
|
-
type: Output
|
|
115
|
-
}], enterPressed: [{
|
|
116
|
-
type: Output
|
|
117
|
-
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1pbnB1dC9nZW8taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWlucHV0L2dlby1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBRWxELElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztBQXlCdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUNuQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixJQUFJLEdBQWlCLE1BQU0sQ0FBQztJQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsQixTQUFTLENBQVU7SUFDbkIsVUFBVSxDQUFVO0lBQ3BCLFVBQVUsQ0FBVTtJQUNwQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxLQUFLLENBQW1CO0lBRXZCLFdBQVcsR0FBRyxJQUFJ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LFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuXG5sZXQgdWlJbnB1dEVycm9ySWQgPSAwO1xuXG5leHBvcnQgdHlwZSBHZW9JbnB1dFR5cGUgPSAndGV4dCcgfCAnbnVtYmVyJyB8ICdwYXNzd29yZCcgfCAnZW1haWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8taW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTnpJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8taW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdnZW8taW5wdXQtaG9zdCcsXG4gICAgJ1tjbGFzcy5nZW8taW5wdXQtaG9zdC0tYmxvY2tdJzogJ2Jsb2NrJyxcbiAgICAnW2NsYXNzLmdlby1pbnB1dC1ob3N0LS1lcnJvcl0nOiAnZXJyb3InLFxuICAgICdbc3R5bGUud2lkdGhdJzogJ2hvc3RXaWR0aCcsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR2VvSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHR5cGU6IEdlb0lucHV0VHlwZSA9ICd0ZXh0JztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIG1heGxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgcHJlZml4SWNvbj86IHN0cmluZztcbiAgQElucHV0KCkgc3VmZml4SWNvbj86IHN0cmluZztcbiAgQElucHV0KCkgYWxsb3dDbGVhciA9IGZhbHNlO1xuICBASW5wdXQoKSBibG9jayA9IGZhbHNlO1xuICBASW5wdXQoKSB3aWR0aD86IG51bWJlciB8IHN0cmluZztcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGVudGVyUHJlc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICByZWFkb25seSBlcnJvck1lc3NhZ2VJZCA9IGBnZW8taW5wdXQtZXJyb3ItJHsrK3VpSW5wdXRFcnJvcklkfWA7XG5cbiAgdmFsdWUgPSAnJztcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgZ2V0IGhvc3RXaWR0aCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5ibG9jayB8fCB0aGlzLndpZHRoID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlb2YgdGhpcy53aWR0aCA9PT0gJ251bWJlcicgPyBgJHt0aGlzLndpZHRofXB4YCA6IHRoaXMud2lkdGg7XG4gIH1cblxuICBnZXQgc2hvd0NsZWFyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93Q2xlYXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICB9XG5cbiAgb25JbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5vbklucHV0KCcnKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPT0gbnVsbCA/ICcnIDogU3RyaW5nKHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIkBpZiAobGFiZWwpIHtcbiAgPGRpdiBjbGFzcz1cImdlby1pbnB1dF9fbGFiZWxcIj5cbiAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImdlby1pbnB1dF9fcmVxdWlyZWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgIH1cbiAgPC9kaXY+XG59XG5cbjxkaXZcbiAgY2xhc3M9XCJnZW8taW5wdXRfX2NvbnRyb2xcIlxuICBbY2xhc3MuZ2VvLWlucHV0X19jb250cm9sLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5nZW8taW5wdXRfX2NvbnRyb2wtLWVycm9yXT1cImVycm9yXCJcbj5cbiAgQGlmIChwcmVmaXhJY29uKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJnZW8taW5wdXRfX2ljb25cIiBuei1pY29uIFtuelR5cGVdPVwicHJlZml4SWNvblwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxuICB9XG5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJnZW8taW5wdXRfX2ZpZWxkXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoID8/IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvciA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZXJyb3IgJiYgZXJyb3JNZXNzYWdlID8gZXJyb3JNZXNzYWdlSWQgOiBudWxsXCJcbiAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKGtleXVwLmVudGVyKT1cImVudGVyUHJlc3NlZC5lbWl0KClcIlxuICAvPlxuXG4gIEBpZiAoc2hvd0NsZWFyKSB7XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnZW8taW5wdXRfX2NsZWFyXCIgYXJpYS1sYWJlbD1cIljDs2EgbuG7mWkgZHVuZ1wiIChjbGljayk9XCJvbkNsZWFyKClcIj5cbiAgICAgIDxzcGFuIG56LWljb24gbnpUeXBlPVwiY2xvc2UtY2lyY2xlXCIgbnpUaGVtZT1cImZpbGxcIj48L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIH1cblxuICBAaWYgKHN1ZmZpeEljb24pIHtcbiAgICA8c3BhbiBjbGFzcz1cImdlby1pbnB1dF9faWNvblwiIG56LWljb24gW256VHlwZV09XCJzdWZmaXhJY29uXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKGVycm9yICYmIGVycm9yTWVzc2FnZSkge1xuICA8cCBjbGFzcz1cImdlby1pbnB1dF9fZXJyb3JcIiBbaWRdPVwiZXJyb3JNZXNzYWdlSWRcIiByb2xlPVwiYWxlcnRcIj57eyBlcnJvck1lc3NhZ2UgfX08L3A+XG59XG4iXX0=
|
|
87
|
+
], template: "@if (label()) {\n <div class=\"geo-input__label\">\n <span>{{ label() }}</span>\n @if (required()) {\n <span class=\"geo-input__required\" aria-hidden=\"true\">*</span>\n }\n </div>\n}\n\n<div\n class=\"geo-input__control\"\n [class.geo-input__control--disabled]=\"isDisabled()\"\n [class.geo-input__control--error]=\"error()\"\n>\n @if (prefixIcon(); as prefix) {\n <span class=\"geo-input__icon\" nz-icon [nzType]=\"prefix\" nzTheme=\"outline\"></span>\n }\n\n <input\n class=\"geo-input__field\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"isDisabled()\"\n [readonly]=\"readonly()\"\n [attr.maxlength]=\"maxlength() ?? null\"\n [attr.aria-invalid]=\"error() ? 'true' : null\"\n [attr.aria-describedby]=\"error() && errorMessage() ? errorMessageId : null\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keyup.enter)=\"enterPressed.emit()\"\n />\n\n @if (showClear()) {\n <button type=\"button\" class=\"geo-input__clear\" aria-label=\"X\u00F3a n\u1ED9i dung\" (click)=\"onClear()\">\n <span nz-icon nzType=\"close-circle\" nzTheme=\"fill\"></span>\n </button>\n }\n\n @if (suffixIcon(); as suffix) {\n <span class=\"geo-input__icon\" nz-icon [nzType]=\"suffix\" nzTheme=\"outline\"></span>\n }\n</div>\n\n@if (error() && errorMessage()) {\n <p class=\"geo-input__error\" [id]=\"errorMessageId\" role=\"alert\">{{ errorMessage() }}</p>\n}\n", styles: [".geo-input-host{display:inline-flex;flex-direction:column;gap:8px;width:413px;max-width:100%;vertical-align:top}geo-input.geo-input-host.geo-input-host--block,.geo-input-host.geo-input-host--block{display:flex;width:100%;max-width:none}.geo-input__label{display:inline-flex;align-items:flex-start;gap:4px;font-size:14px;line-height:normal;color:var(--geo-color-neutral-900)}.geo-input__required{color:var(--geo-color-error-default)}.geo-input__control{display:flex;align-items:center;gap:10px;min-height:40px;height:40px;padding:8px;border:1px solid var(--geo-color-neutral-300);border-radius:var(--geo-radius);background:transparent;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.geo-input__control:hover:not(.geo-input__control--disabled){border-color:var(--geo-color-primary-default)}.geo-input__control:focus-within:not(.geo-input__control--disabled){border-color:var(--geo-color-primary-default);box-shadow:0 0 0 2px color-mix(in srgb,var(--geo-color-primary-default) 12%,transparent)}.geo-input__control--error{border-color:var(--geo-color-error-default)!important}.geo-input__control--error:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--geo-color-error-default) 12%,transparent)!important}.geo-input__control--disabled{background:var(--geo-color-neutral-100);border-color:var(--geo-color-neutral-300)}.geo-input__field{flex:1 1 auto;min-width:0;height:24px;border:none;outline:none;background:transparent;font-size:14px;line-height:24px;color:var(--geo-color-neutral-900);font-family:inherit}.geo-input__field::placeholder{color:var(--geo-color-neutral-500)}.geo-input__field:disabled{color:var(--geo-color-neutral-disabled-text);cursor:not-allowed}.geo-input__icon{display:inline-flex;flex-shrink:0;font-size:16px;color:var(--geo-color-neutral-500)}.geo-input__clear{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;border:none;background:transparent;color:var(--geo-color-neutral-400);font-size:14px;cursor:pointer}.geo-input__clear:hover{color:var(--geo-color-neutral-500)}.geo-input__error{margin:0;font-size:14px;line-height:normal;color:var(--geo-color-error-default)}\n"] }]
|
|
88
|
+
}] });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1pbnB1dC9nZW8taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWlucHV0L2dlby1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBRWxELElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztBQTBCdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUNYLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV4QyxLQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsSUFBSSxHQUFHLEtBQUssQ0FBZSxNQUFNLENBQUMsQ0FBQztJQUNuQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLFlBQVks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RyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBMUVVLGlCQUFpQjs0RkFBakIsaUJBQWlCLGlrRUFSakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUNoRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDdkNILGs5Q0ErQ0EsNHFFRHpCWSxXQUFXLDhtQkFBRSxZQUFZOzs0RkFtQnhCLGlCQUFpQjtrQkF0QjdCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsaUJBR3JCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLGdCQUFnQjt3QkFDdkIsK0JBQStCLEVBQUUsU0FBUzt3QkFDMUMsK0JBQStCLEVBQUUsU0FBUzt3QkFDMUMsZUFBZSxFQUFFLGFBQWE7cUJBQy9CLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7NEJBQ2hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5cbmxldCB1aUlucHV0RXJyb3JJZCA9IDA7XG5cbmV4cG9ydCB0eXBlIEdlb0lucHV0VHlwZSA9ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICdlbWFpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgTnpJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8taW5wdXQuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ2VvLWlucHV0LWhvc3QnLFxuICAgICdbY2xhc3MuZ2VvLWlucHV0LWhvc3QtLWJsb2NrXSc6ICdibG9jaygpJyxcbiAgICAnW2NsYXNzLmdlby1pbnB1dC1ob3N0LS1lcnJvcl0nOiAnZXJyb3IoKScsXG4gICAgJ1tzdHlsZS53aWR0aF0nOiAnaG9zdFdpZHRoKCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdlb0lucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEdlb0lucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dCgnJyk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQoJycpO1xuICByZWFkb25seSB0eXBlID0gaW5wdXQ8R2VvSW5wdXRUeXBlPigndGV4dCcpO1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dChmYWxzZSk7XG4gIHJlYWRvbmx5IHJlcXVpcmVkID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBlcnJvciA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgZXJyb3JNZXNzYWdlID0gaW5wdXQoJycpO1xuICByZWFkb25seSBtYXhsZW5ndGggPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHByZWZpeEljb24gPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHN1ZmZpeEljb24gPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGFsbG93Q2xlYXIgPSBpbnB1dChmYWxzZSk7XG4gIHJlYWRvbmx5IGJsb2NrID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSB3aWR0aCA9IGlucHV0PG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGVudGVyUHJlc3NlZCA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGVycm9yTWVzc2FnZUlkID0gYGdlby1pbnB1dC1lcnJvci0keysrdWlJbnB1dEVycm9ySWR9YDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVkRnJvbUN2YSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGlzRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5kaXNhYmxlZEZyb21DdmEoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlID0gc2lnbmFsKCcnKTtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgcmVhZG9ubHkgaG9zdFdpZHRoID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgIGlmICh0aGlzLmJsb2NrKCkgfHwgd2lkdGggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicgPyBgJHt3aWR0aH1weGAgOiB3aWR0aDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2hvd0NsZWFyID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5hbGxvd0NsZWFyKCkgJiYgIXRoaXMuaXNEaXNhYmxlZCgpICYmICF0aGlzLnJlYWRvbmx5KCkgJiYgISF0aGlzLnZhbHVlKCksXG4gICk7XG5cbiAgb25JbnB1dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5vbklucHV0KCcnKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSA9PSBudWxsID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZEZyb21DdmEuc2V0KGlzRGlzYWJsZWQpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCJAaWYgKGxhYmVsKCkpIHtcbiAgPGRpdiBjbGFzcz1cImdlby1pbnB1dF9fbGFiZWxcIj5cbiAgICA8c3Bhbj57eyBsYWJlbCgpIH19PC9zcGFuPlxuICAgIEBpZiAocmVxdWlyZWQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJnZW8taW5wdXRfX3JlcXVpcmVkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICB9XG4gIDwvZGl2PlxufVxuXG48ZGl2XG4gIGNsYXNzPVwiZ2VvLWlucHV0X19jb250cm9sXCJcbiAgW2NsYXNzLmdlby1pbnB1dF9fY29udHJvbC0tZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCJcbiAgW2NsYXNzLmdlby1pbnB1dF9fY29udHJvbC0tZXJyb3JdPVwiZXJyb3IoKVwiXG4+XG4gIEBpZiAocHJlZml4SWNvbigpOyBhcyBwcmVmaXgpIHtcbiAgICA8c3BhbiBjbGFzcz1cImdlby1pbnB1dF9faWNvblwiIG56LWljb24gW256VHlwZV09XCJwcmVmaXhcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj5cbiAgfVxuXG4gIDxpbnB1dFxuICAgIGNsYXNzPVwiZ2VvLWlucHV0X19maWVsZFwiXG4gICAgW3R5cGVdPVwidHlwZSgpXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGgoKSA/PyBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiZXJyb3IoKSA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZXJyb3IoKSAmJiBlcnJvck1lc3NhZ2UoKSA/IGVycm9yTWVzc2FnZUlkIDogbnVsbFwiXG4gICAgW25nTW9kZWxdPVwidmFsdWUoKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKGtleXVwLmVudGVyKT1cImVudGVyUHJlc3NlZC5lbWl0KClcIlxuICAvPlxuXG4gIEBpZiAoc2hvd0NsZWFyKCkpIHtcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImdlby1pbnB1dF9fY2xlYXJcIiBhcmlhLWxhYmVsPVwiWMOzYSBu4buZaSBkdW5nXCIgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiPlxuICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJjbG9zZS1jaXJjbGVcIiBuelRoZW1lPVwiZmlsbFwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuXG4gIEBpZiAoc3VmZml4SWNvbigpOyBhcyBzdWZmaXgpIHtcbiAgICA8c3BhbiBjbGFzcz1cImdlby1pbnB1dF9faWNvblwiIG56LWljb24gW256VHlwZV09XCJzdWZmaXhcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj5cbiAgfVxuPC9kaXY+XG5cbkBpZiAoZXJyb3IoKSAmJiBlcnJvck1lc3NhZ2UoKSkge1xuICA8cCBjbGFzcz1cImdlby1pbnB1dF9fZXJyb3JcIiBbaWRdPVwiZXJyb3JNZXNzYWdlSWRcIiByb2xlPVwiYWxlcnRcIj57eyBlcnJvck1lc3NhZ2UoKSB9fTwvcD5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Minimal app footer for the layout shell.
|
|
5
|
+
*/
|
|
6
|
+
export class GeoLayoutFooterComponent {
|
|
7
|
+
/** Copyright / status text. Empty = use default. */
|
|
8
|
+
text = input('© VNPT | Hệ thống thông tin đất đai iLIS');
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoLayoutFooterComponent, isStandalone: true, selector: "geo-layout-footer", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "geo-layout-footer-host" }, ngImport: i0, template: "<footer class=\"geo-layout-footer\">\n <div class=\"geo-layout-footer__inner\">\n @if (text()) {\n <p class=\"geo-layout-footer__text\">{{ text() }}</p>\n }\n <ng-content />\n </div>\n</footer>\n", styles: [".geo-layout-footer-host{display:block;flex-shrink:0}.geo-layout-footer{border-top:1px solid var(--geo-color-border-subtle);background:var(--geo-color-surface-elevated)}.geo-layout-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:8px 1.5rem}.geo-layout-footer__text{margin:0;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-regular);line-height:1.4;color:var(--geo-color-neutral-500)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutFooterComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'geo-layout-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
15
|
+
class: 'geo-layout-footer-host',
|
|
16
|
+
}, template: "<footer class=\"geo-layout-footer\">\n <div class=\"geo-layout-footer__inner\">\n @if (text()) {\n <p class=\"geo-layout-footer__text\">{{ text() }}</p>\n }\n <ng-content />\n </div>\n</footer>\n", styles: [".geo-layout-footer-host{display:block;flex-shrink:0}.geo-layout-footer{border-top:1px solid var(--geo-color-border-subtle);background:var(--geo-color-surface-elevated)}.geo-layout-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:8px 1.5rem}.geo-layout-footer__text{margin:0;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-regular);line-height:1.4;color:var(--geo-color-neutral-500)}\n"] }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWxheW91dC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWxheW91dC9mb290ZXIvZ2VvLWxheW91dC1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWxheW91dC9mb290ZXIvZ2VvLWxheW91dC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7O0dBRUc7QUFZSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLG9EQUFvRDtJQUMzQyxJQUFJLEdBQUcsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7d0dBRnZELHdCQUF3Qjs0RkFBeEIsd0JBQXdCLGtRQ3JCckMscU5BUUE7OzRGRGFhLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSx3QkFBd0I7cUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBNaW5pbWFsIGFwcCBmb290ZXIgZm9yIHRoZSBsYXlvdXQgc2hlbGwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1sYXlvdXQtZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1sYXlvdXQtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1sYXlvdXQtZm9vdGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1sYXlvdXQtZm9vdGVyLWhvc3QnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHZW9MYXlvdXRGb290ZXJDb21wb25lbnQge1xuICAvKiogQ29weXJpZ2h0IC8gc3RhdHVzIHRleHQuIEVtcHR5ID0gdXNlIGRlZmF1bHQuICovXG4gIHJlYWRvbmx5IHRleHQgPSBpbnB1dCgnwqkgVk5QVCB8IEjhu4cgdGjhu5FuZyB0aMO0bmcgdGluIMSR4bqldCDEkWFpIGlMSVMnKTtcbn1cbiIsIjxmb290ZXIgY2xhc3M9XCJnZW8tbGF5b3V0LWZvb3RlclwiPlxuICA8ZGl2IGNsYXNzPVwiZ2VvLWxheW91dC1mb290ZXJfX2lubmVyXCI+XG4gICAgQGlmICh0ZXh0KCkpIHtcbiAgICAgIDxwIGNsYXNzPVwiZ2VvLWxheW91dC1mb290ZXJfX3RleHRcIj57eyB0ZXh0KCkgfX08L3A+XG4gICAgfVxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvZGl2PlxuPC9mb290ZXI+XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** Đánh dấu slot thay thế header actions mặc định của `geo-layout`. */
|
|
4
|
+
export class GeoLayoutActionsDirective {
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: GeoLayoutActionsDirective, isStandalone: true, selector: "[geoLayoutActions]", ngImport: i0 });
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutActionsDirective, decorators: [{
|
|
9
|
+
type: Directive,
|
|
10
|
+
args: [{
|
|
11
|
+
selector: '[geoLayoutActions]',
|
|
12
|
+
standalone: true,
|
|
13
|
+
}]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWxheW91dC1hY3Rpb25zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1sYXlvdXQvZ2VvLWxheW91dC1hY3Rpb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyx1RUFBdUU7QUFLdkUsTUFBTSxPQUFPLHlCQUF5Qjt3R0FBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiDEkMOhbmggZOG6pXUgc2xvdCB0aGF5IHRo4bq/IGhlYWRlciBhY3Rpb25zIG3hurdjIMSR4buLbmggY+G7p2EgYGdlby1sYXlvdXRgLiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2dlb0xheW91dEFjdGlvbnNdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvTGF5b3V0QWN0aW9uc0RpcmVjdGl2ZSB7fVxuIl19
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, model, output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { GeoLayoutFooterComponent } from './footer/geo-layout-footer.component';
|
|
3
|
+
import { GeoLayoutHeaderComponent } from './header/geo-layout-header.component';
|
|
4
|
+
import { GeoLayoutSidebarComponent } from './sidebar/geo-layout-sidebar.component';
|
|
5
|
+
import { GEO_LAYOUT_DEFAULT_NOTIFICATIONS, GEO_LAYOUT_DEFAULT_SUBSYSTEMS, GEO_LAYOUT_DEFAULT_USER, GEO_LAYOUT_DEFAULT_USER_MENU, } from './geo-layout.types';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* App shell composing `geo-layout-sidebar` + `geo-layout-header` + content + `geo-layout-footer`.
|
|
9
|
+
*
|
|
10
|
+
* Storybook: **GEO / Layout / Shell** (+ Sidebar, Header, Footer, Header Actions).
|
|
11
|
+
*
|
|
12
|
+
* ```html
|
|
13
|
+
* <geo-layout [menuItems]="menu" [user]="user" [(expanded)]="expanded">
|
|
14
|
+
* <router-outlet />
|
|
15
|
+
* </geo-layout>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class GeoLayoutComponent {
|
|
19
|
+
menuItems = input([]);
|
|
20
|
+
brandTitle = input('iLIS');
|
|
21
|
+
logoSrc = input('');
|
|
22
|
+
logoAlt = input('Logo');
|
|
23
|
+
sidebarBackgroundSrc = input('');
|
|
24
|
+
breadcrumbs = input([]);
|
|
25
|
+
fallbackBreadcrumb = input('Hệ thống thông tin đất đai - VNPT iLIS');
|
|
26
|
+
expanded = model(true);
|
|
27
|
+
isMobile = input(false);
|
|
28
|
+
mobileMenuOpen = model(false);
|
|
29
|
+
selectedKey = model(null);
|
|
30
|
+
siderWidth = input(280);
|
|
31
|
+
siderCollapsedWidth = input(80);
|
|
32
|
+
showDefaultActions = input(true);
|
|
33
|
+
showFooter = input(true);
|
|
34
|
+
footerText = input('© VNPT | Hệ thống thông tin đất đai iLIS');
|
|
35
|
+
user = input(GEO_LAYOUT_DEFAULT_USER);
|
|
36
|
+
notifications = input(GEO_LAYOUT_DEFAULT_NOTIFICATIONS);
|
|
37
|
+
subsystems = input(GEO_LAYOUT_DEFAULT_SUBSYSTEMS);
|
|
38
|
+
userMenuItems = input(GEO_LAYOUT_DEFAULT_USER_MENU);
|
|
39
|
+
menuSelect = output();
|
|
40
|
+
sidebarToggle = output();
|
|
41
|
+
notificationClick = output();
|
|
42
|
+
subsystemClick = output();
|
|
43
|
+
userMenuClick = output();
|
|
44
|
+
logout = output();
|
|
45
|
+
siderCollapsed = computed(() => this.isMobile() ? false : !this.expanded());
|
|
46
|
+
onToggleSidebar() {
|
|
47
|
+
if (this.isMobile()) {
|
|
48
|
+
this.mobileMenuOpen.update((open) => !open);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.expanded.update((value) => !value);
|
|
52
|
+
}
|
|
53
|
+
this.sidebarToggle.emit();
|
|
54
|
+
}
|
|
55
|
+
closeMobileMenu() {
|
|
56
|
+
this.mobileMenuOpen.set(false);
|
|
57
|
+
}
|
|
58
|
+
onMenuSelect(item) {
|
|
59
|
+
this.menuSelect.emit(item);
|
|
60
|
+
if (this.isMobile() && this.mobileMenuOpen()) {
|
|
61
|
+
this.mobileMenuOpen.set(false);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
65
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoLayoutComponent, isStandalone: true, selector: "geo-layout", inputs: { menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, brandTitle: { classPropertyName: "brandTitle", publicName: "brandTitle", isSignal: true, isRequired: false, transformFunction: null }, logoSrc: { classPropertyName: "logoSrc", publicName: "logoSrc", isSignal: true, isRequired: false, transformFunction: null }, logoAlt: { classPropertyName: "logoAlt", publicName: "logoAlt", isSignal: true, isRequired: false, transformFunction: null }, sidebarBackgroundSrc: { classPropertyName: "sidebarBackgroundSrc", publicName: "sidebarBackgroundSrc", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbs: { classPropertyName: "breadcrumbs", publicName: "breadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, fallbackBreadcrumb: { classPropertyName: "fallbackBreadcrumb", publicName: "fallbackBreadcrumb", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, mobileMenuOpen: { classPropertyName: "mobileMenuOpen", publicName: "mobileMenuOpen", isSignal: true, isRequired: false, transformFunction: null }, selectedKey: { classPropertyName: "selectedKey", publicName: "selectedKey", isSignal: true, isRequired: false, transformFunction: null }, siderWidth: { classPropertyName: "siderWidth", publicName: "siderWidth", isSignal: true, isRequired: false, transformFunction: null }, siderCollapsedWidth: { classPropertyName: "siderCollapsedWidth", publicName: "siderCollapsedWidth", isSignal: true, isRequired: false, transformFunction: null }, showDefaultActions: { classPropertyName: "showDefaultActions", publicName: "showDefaultActions", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, footerText: { classPropertyName: "footerText", publicName: "footerText", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, notifications: { classPropertyName: "notifications", publicName: "notifications", isSignal: true, isRequired: false, transformFunction: null }, subsystems: { classPropertyName: "subsystems", publicName: "subsystems", isSignal: true, isRequired: false, transformFunction: null }, userMenuItems: { classPropertyName: "userMenuItems", publicName: "userMenuItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange", mobileMenuOpen: "mobileMenuOpenChange", selectedKey: "selectedKeyChange", menuSelect: "menuSelect", sidebarToggle: "sidebarToggle", notificationClick: "notificationClick", subsystemClick: "subsystemClick", userMenuClick: "userMenuClick", logout: "logout" }, host: { properties: { "class.geo-layout-host--mobile": "isMobile()", "class.geo-layout-host--drawer-open": "isMobile() && mobileMenuOpen()" }, classAttribute: "geo-layout-host" }, ngImport: i0, template: "<div\n class=\"geo-layout\"\n [class.geo-layout--mobile]=\"isMobile()\"\n [class.geo-layout--drawer-open]=\"isMobile() && mobileMenuOpen()\"\n [class.geo-layout--collapsed]=\"siderCollapsed()\"\n>\n @if (isMobile() && mobileMenuOpen()) {\n <div\n class=\"geo-layout__backdrop\"\n (click)=\"closeMobileMenu()\"\n aria-hidden=\"true\"\n ></div>\n }\n\n <geo-layout-sidebar\n [menuItems]=\"menuItems()\"\n [brandTitle]=\"brandTitle()\"\n [logoSrc]=\"logoSrc()\"\n [logoAlt]=\"logoAlt()\"\n [sidebarBackgroundSrc]=\"sidebarBackgroundSrc()\"\n [(selectedKey)]=\"selectedKey\"\n [collapsed]=\"siderCollapsed()\"\n [isMobile]=\"isMobile()\"\n [mobileOpen]=\"mobileMenuOpen()\"\n [width]=\"siderWidth()\"\n [collapsedWidth]=\"siderCollapsedWidth()\"\n (menuSelect)=\"onMenuSelect($event)\"\n />\n\n <div class=\"geo-layout__main\">\n <geo-layout-header\n [breadcrumbs]=\"breadcrumbs()\"\n [fallbackBreadcrumb]=\"fallbackBreadcrumb()\"\n [expanded]=\"expanded()\"\n [isMobile]=\"isMobile()\"\n [mobileMenuOpen]=\"mobileMenuOpen()\"\n [showDefaultActions]=\"showDefaultActions()\"\n [user]=\"user()\"\n [notifications]=\"notifications()\"\n [subsystems]=\"subsystems()\"\n [userMenuItems]=\"userMenuItems()\"\n (sidebarToggle)=\"onToggleSidebar()\"\n (notificationClick)=\"notificationClick.emit($event)\"\n (subsystemClick)=\"subsystemClick.emit($event)\"\n (userMenuClick)=\"userMenuClick.emit($event)\"\n (logout)=\"logout.emit()\"\n >\n <ng-content select=\"[geoLayoutActions]\" />\n </geo-layout-header>\n\n <main class=\"geo-layout__content\">\n <ng-content />\n </main>\n\n @if (showFooter()) {\n <geo-layout-footer [text]=\"footerText()\">\n <ng-content select=\"[geoLayoutFooter]\" />\n </geo-layout-footer>\n }\n </div>\n</div>\n", styles: [".geo-layout-host{display:block;height:100%;min-height:100dvh;font-family:var(--geo-font-family);color:var(--geo-color-neutral-900)}.geo-layout{display:flex;height:100%;min-height:inherit;max-height:100dvh;overflow:hidden;background:var(--geo-color-surface-page)}.geo-layout--collapsed{overflow:visible}.geo-layout--collapsed .geo-layout__main{position:relative;z-index:1}.geo-layout__backdrop{position:fixed;inset:0;z-index:1000;background:color-mix(in srgb,var(--geo-color-neutral-900) 40%,transparent)}.geo-layout__main{display:flex;flex:1;flex-direction:column;min-width:0;height:100%;max-height:100dvh;overflow:hidden;background:var(--geo-color-surface-page)}.geo-layout__content{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;background:var(--geo-color-surface-page)}\n"], dependencies: [{ kind: "component", type: GeoLayoutSidebarComponent, selector: "geo-layout-sidebar", inputs: ["menuItems", "brandTitle", "logoSrc", "logoAlt", "sidebarBackgroundSrc", "selectedKey", "collapsed", "isMobile", "mobileOpen", "width", "collapsedWidth"], outputs: ["selectedKeyChange", "menuSelect"] }, { kind: "component", type: GeoLayoutHeaderComponent, selector: "geo-layout-header", inputs: ["breadcrumbs", "fallbackBreadcrumb", "expanded", "isMobile", "mobileMenuOpen", "showDefaultActions", "user", "notifications", "subsystems", "userMenuItems"], outputs: ["sidebarToggle", "notificationClick", "subsystemClick", "userMenuClick", "logout"] }, { kind: "component", type: GeoLayoutFooterComponent, selector: "geo-layout-footer", inputs: ["text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'geo-layout', standalone: true, imports: [
|
|
70
|
+
GeoLayoutSidebarComponent,
|
|
71
|
+
GeoLayoutHeaderComponent,
|
|
72
|
+
GeoLayoutFooterComponent,
|
|
73
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
74
|
+
class: 'geo-layout-host',
|
|
75
|
+
'[class.geo-layout-host--mobile]': 'isMobile()',
|
|
76
|
+
'[class.geo-layout-host--drawer-open]': 'isMobile() && mobileMenuOpen()',
|
|
77
|
+
}, template: "<div\n class=\"geo-layout\"\n [class.geo-layout--mobile]=\"isMobile()\"\n [class.geo-layout--drawer-open]=\"isMobile() && mobileMenuOpen()\"\n [class.geo-layout--collapsed]=\"siderCollapsed()\"\n>\n @if (isMobile() && mobileMenuOpen()) {\n <div\n class=\"geo-layout__backdrop\"\n (click)=\"closeMobileMenu()\"\n aria-hidden=\"true\"\n ></div>\n }\n\n <geo-layout-sidebar\n [menuItems]=\"menuItems()\"\n [brandTitle]=\"brandTitle()\"\n [logoSrc]=\"logoSrc()\"\n [logoAlt]=\"logoAlt()\"\n [sidebarBackgroundSrc]=\"sidebarBackgroundSrc()\"\n [(selectedKey)]=\"selectedKey\"\n [collapsed]=\"siderCollapsed()\"\n [isMobile]=\"isMobile()\"\n [mobileOpen]=\"mobileMenuOpen()\"\n [width]=\"siderWidth()\"\n [collapsedWidth]=\"siderCollapsedWidth()\"\n (menuSelect)=\"onMenuSelect($event)\"\n />\n\n <div class=\"geo-layout__main\">\n <geo-layout-header\n [breadcrumbs]=\"breadcrumbs()\"\n [fallbackBreadcrumb]=\"fallbackBreadcrumb()\"\n [expanded]=\"expanded()\"\n [isMobile]=\"isMobile()\"\n [mobileMenuOpen]=\"mobileMenuOpen()\"\n [showDefaultActions]=\"showDefaultActions()\"\n [user]=\"user()\"\n [notifications]=\"notifications()\"\n [subsystems]=\"subsystems()\"\n [userMenuItems]=\"userMenuItems()\"\n (sidebarToggle)=\"onToggleSidebar()\"\n (notificationClick)=\"notificationClick.emit($event)\"\n (subsystemClick)=\"subsystemClick.emit($event)\"\n (userMenuClick)=\"userMenuClick.emit($event)\"\n (logout)=\"logout.emit()\"\n >\n <ng-content select=\"[geoLayoutActions]\" />\n </geo-layout-header>\n\n <main class=\"geo-layout__content\">\n <ng-content />\n </main>\n\n @if (showFooter()) {\n <geo-layout-footer [text]=\"footerText()\">\n <ng-content select=\"[geoLayoutFooter]\" />\n </geo-layout-footer>\n }\n </div>\n</div>\n", styles: [".geo-layout-host{display:block;height:100%;min-height:100dvh;font-family:var(--geo-font-family);color:var(--geo-color-neutral-900)}.geo-layout{display:flex;height:100%;min-height:inherit;max-height:100dvh;overflow:hidden;background:var(--geo-color-surface-page)}.geo-layout--collapsed{overflow:visible}.geo-layout--collapsed .geo-layout__main{position:relative;z-index:1}.geo-layout__backdrop{position:fixed;inset:0;z-index:1000;background:color-mix(in srgb,var(--geo-color-neutral-900) 40%,transparent)}.geo-layout__main{display:flex;flex:1;flex-direction:column;min-width:0;height:100%;max-height:100dvh;overflow:hidden;background:var(--geo-color-surface-page)}.geo-layout__content{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;background:var(--geo-color-surface-page)}\n"] }]
|
|
78
|
+
}] });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tbGF5b3V0L2dlby1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWxheW91dC9nZW8tbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyw2QkFBNkIsRUFDN0IsdUJBQXVCLEVBQ3ZCLDRCQUE0QixHQU83QixNQUFNLG9CQUFvQixDQUFDOztBQUU1Qjs7Ozs7Ozs7OztHQVVHO0FBbUJILE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBc0IsRUFBRSxDQUFDLENBQUM7SUFDM0MsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEIsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLFdBQVcsR0FBRyxLQUFLLENBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLGtCQUFr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QUFnQztxQkFDekUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdlb0JyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi4vZ2VvLWJyZWFkY3J1bWIvZ2VvLWJyZWFkY3J1bWIudHlwZXMnO1xuaW1wb3J0IHsgR2VvTGF5b3V0Rm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9mb290ZXIvZ2VvLWxheW91dC1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdlb0xheW91dEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2dlby1sYXlvdXQtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW9MYXlvdXRTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlYmFyL2dlby1sYXlvdXQtc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgR0VPX0xBWU9VVF9ERUZBVUxUX05PVElGSUNBVElPTlMsXG4gIEdFT19MQVlPVVRfREVGQVVMVF9TVUJTWVNURU1TLFxuICBHRU9fTEFZT1VUX0RFRkFVTFRfVVNFUixcbiAgR0VPX0xBWU9VVF9ERUZBVUxUX1VTRVJfTUVOVSxcbiAgR2VvTGF5b3V0TWVudUl0ZW0sXG4gIEdlb0xheW91dE5vdGlmaWNhdGlvbkl0ZW0sXG4gIEdlb0xheW91dFNpZGVyV2lkdGgsXG4gIEdlb0xheW91dFN1YnN5c3RlbUl0ZW0sXG4gIEdlb0xheW91dFVzZXJJbmZvLFxuICBHZW9MYXlvdXRVc2VyTWVudUl0ZW0sXG59IGZyb20gJy4vZ2VvLWxheW91dC50eXBlcyc7XG5cbi8qKlxuICogQXBwIHNoZWxsIGNvbXBvc2luZyBgZ2VvLWxheW91dC1zaWRlYmFyYCArIGBnZW8tbGF5b3V0LWhlYWRlcmAgKyBjb250ZW50ICsgYGdlby1sYXlvdXQtZm9vdGVyYC5cbiAqXG4gKiBTdG9yeWJvb2s6ICoqR0VPIC8gTGF5b3V0IC8gU2hlbGwqKiAoKyBTaWRlYmFyLCBIZWFkZXIsIEZvb3RlciwgSGVhZGVyIEFjdGlvbnMpLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxnZW8tbGF5b3V0IFttZW51SXRlbXNdPVwibWVudVwiIFt1c2VyXT1cInVzZXJcIiBbKGV4cGFuZGVkKV09XCJleHBhbmRlZFwiPlxuICogICA8cm91dGVyLW91dGxldCAvPlxuICogPC9nZW8tbGF5b3V0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1sYXlvdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgR2VvTGF5b3V0U2lkZWJhckNvbXBvbmVudCxcbiAgICBHZW9MYXlvdXRIZWFkZXJDb21wb25lbnQsXG4gICAgR2VvTGF5b3V0Rm9vdGVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tbGF5b3V0LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1sYXlvdXQtaG9zdCcsXG4gICAgJ1tjbGFzcy5nZW8tbGF5b3V0LWhvc3QtLW1vYmlsZV0nOiAnaXNNb2JpbGUoKScsXG4gICAgJ1tjbGFzcy5nZW8tbGF5b3V0LWhvc3QtLWRyYXdlci1vcGVuXSc6ICdpc01vYmlsZSgpICYmIG1vYmlsZU1lbnVPcGVuKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHZW9MYXlvdXRDb21wb25lbnQge1xuICByZWFkb25seSBtZW51SXRlbXMgPSBpbnB1dDxHZW9MYXlvdXRNZW51SXRlbVtdPihbXSk7XG4gIHJlYWRvbmx5IGJyYW5kVGl0bGUgPSBpbnB1dCgnaUxJUycpO1xuICByZWFkb25seSBsb2dvU3JjID0gaW5wdXQoJycpO1xuICByZWFkb25seSBsb2dvQWx0ID0gaW5wdXQoJ0xvZ28nKTtcbiAgcmVhZG9ubHkgc2lkZWJhckJhY2tncm91bmRTcmMgPSBpbnB1dCgnJyk7XG4gIHJlYWRvbmx5IGJyZWFkY3J1bWJzID0gaW5wdXQ8R2VvQnJlYWRjcnVtYkl0ZW1bXT4oW10pO1xuICByZWFkb25seSBmYWxsYmFja0JyZWFkY3J1bWIgPSBpbnB1dChcbiAgICAnSOG7hyB0aOG7kW5nIHRow7RuZyB0aW4gxJHhuqV0IMSRYWkgLSBWTlBUIGlMSVMnXG4gICk7XG5cbiAgcmVhZG9ubHkgZXhwYW5kZWQgPSBtb2RlbCh0cnVlKTtcbiAgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbnB1dChmYWxzZSk7XG4gIHJlYWRvbmx5IG1vYmlsZU1lbnVPcGVuID0gbW9kZWwoZmFsc2UpO1xuICByZWFkb25seSBzZWxlY3RlZEtleSA9IG1vZGVsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IHNpZGVyV2lkdGggPSBpbnB1dDxHZW9MYXlvdXRTaWRlcldpZHRoPigyODApO1xuICByZWFkb25seSBzaWRlckNvbGxhcHNlZFdpZHRoID0gaW5wdXQ8R2VvTGF5b3V0U2lkZXJXaWR0aD4oODApO1xuXG4gIHJlYWRvbmx5IHNob3dEZWZhdWx0QWN0aW9ucyA9IGlucHV0KHRydWUpO1xuICByZWFkb25seSBzaG93Rm9vdGVyID0gaW5wdXQodHJ1ZSk7XG4gIHJlYWRvbmx5IGZvb3RlclRleHQgPSBpbnB1dCgnwqkgVk5QVCB8IEjhu4cgdGjhu5FuZyB0aMO0bmcgdGluIMSR4bqldCDEkWFpIGlMSVMnKTtcblxuICByZWFkb25seSB1c2VyID0gaW5wdXQ8R2VvTGF5b3V0VXNlckluZm8+KEdFT19MQVlPVVRfREVGQVVMVF9VU0VSKTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9ucyA9IGlucHV0PEdlb0xheW91dE5vdGlmaWNhdGlvbkl0ZW1bXT4oXG4gICAgR0VPX0xBWU9VVF9ERUZBVUxUX05PVElGSUNBVElPTlNcbiAgKTtcbiAgcmVhZG9ubHkgc3Vic3lzdGVtcyA9IGlucHV0PEdlb0xheW91dFN1YnN5c3RlbUl0ZW1bXT4oXG4gICAgR0VPX0xBWU9VVF9ERUZBVUxUX1NVQlNZU1RFTVNcbiAgKTtcbiAgcmVhZG9ubHkgdXNlck1lbnVJdGVtcyA9IGlucHV0PEdlb0xheW91dFVzZXJNZW51SXRlbVtdPihcbiAgICBHRU9fTEFZT1VUX0RFRkFVTFRfVVNFUl9NRU5VXG4gICk7XG5cbiAgcmVhZG9ubHkgbWVudVNlbGVjdCA9IG91dHB1dDxHZW9MYXlvdXRNZW51SXRlbT4oKTtcbiAgcmVhZG9ubHkgc2lkZWJhclRvZ2dsZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBub3RpZmljYXRpb25DbGljayA9IG91dHB1dDxHZW9MYXlvdXROb3RpZmljYXRpb25JdGVtPigpO1xuICByZWFkb25seSBzdWJzeXN0ZW1DbGljayA9IG91dHB1dDxHZW9MYXlvdXRTdWJzeXN0ZW1JdGVtPigpO1xuICByZWFkb25seSB1c2VyTWVudUNsaWNrID0gb3V0cHV0PEdlb0xheW91dFVzZXJNZW51SXRlbT4oKTtcbiAgcmVhZG9ubHkgbG9nb3V0ID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgc2lkZXJDb2xsYXBzZWQgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaXNNb2JpbGUoKSA/IGZhbHNlIDogIXRoaXMuZXhwYW5kZWQoKVxuICApO1xuXG4gIG9uVG9nZ2xlU2lkZWJhcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc01vYmlsZSgpKSB7XG4gICAgICB0aGlzLm1vYmlsZU1lbnVPcGVuLnVwZGF0ZSgob3BlbikgPT4gIW9wZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmV4cGFuZGVkLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc2lkZWJhclRvZ2dsZS5lbWl0KCk7XG4gIH1cblxuICBjbG9zZU1vYmlsZU1lbnUoKTogdm9pZCB7XG4gICAgdGhpcy5tb2JpbGVNZW51T3Blbi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgb25NZW51U2VsZWN0KGl0ZW06IEdlb0xheW91dE1lbnVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5tZW51U2VsZWN0LmVtaXQoaXRlbSk7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUoKSAmJiB0aGlzLm1vYmlsZU1lbnVPcGVuKCkpIHtcbiAgICAgIHRoaXMubW9iaWxlTWVudU9wZW4uc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJnZW8tbGF5b3V0XCJcbiAgW2NsYXNzLmdlby1sYXlvdXQtLW1vYmlsZV09XCJpc01vYmlsZSgpXCJcbiAgW2NsYXNzLmdlby1sYXlvdXQtLWRyYXdlci1vcGVuXT1cImlzTW9iaWxlKCkgJiYgbW9iaWxlTWVudU9wZW4oKVwiXG4gIFtjbGFzcy5nZW8tbGF5b3V0LS1jb2xsYXBzZWRdPVwic2lkZXJDb2xsYXBzZWQoKVwiXG4+XG4gIEBpZiAoaXNNb2JpbGUoKSAmJiBtb2JpbGVNZW51T3BlbigpKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJnZW8tbGF5b3V0X19iYWNrZHJvcFwiXG4gICAgICAoY2xpY2spPVwiY2xvc2VNb2JpbGVNZW51KClcIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICA+PC9kaXY+XG4gIH1cblxuICA8Z2VvLWxheW91dC1zaWRlYmFyXG4gICAgW21lbnVJdGVtc109XCJtZW51SXRlbXMoKVwiXG4gICAgW2JyYW5kVGl0bGVdPVwiYnJhbmRUaXRsZSgpXCJcbiAgICBbbG9nb1NyY109XCJsb2dvU3JjKClcIlxuICAgIFtsb2dvQWx0XT1cImxvZ29BbHQoKVwiXG4gICAgW3NpZGViYXJCYWNrZ3JvdW5kU3JjXT1cInNpZGViYXJCYWNrZ3JvdW5kU3JjKClcIlxuICAgIFsoc2VsZWN0ZWRLZXkpXT1cInNlbGVjdGVkS2V5XCJcbiAgICBbY29sbGFwc2VkXT1cInNpZGVyQ29sbGFwc2VkKClcIlxuICAgIFtpc01vYmlsZV09XCJpc01vYmlsZSgpXCJcbiAgICBbbW9iaWxlT3Blbl09XCJtb2JpbGVNZW51T3BlbigpXCJcbiAgICBbd2lkdGhdPVwic2lkZXJXaWR0aCgpXCJcbiAgICBbY29sbGFwc2VkV2lkdGhdPVwic2lkZXJDb2xsYXBzZWRXaWR0aCgpXCJcbiAgICAobWVudVNlbGVjdCk9XCJvbk1lbnVTZWxlY3QoJGV2ZW50KVwiXG4gIC8+XG5cbiAgPGRpdiBjbGFzcz1cImdlby1sYXlvdXRfX21haW5cIj5cbiAgICA8Z2VvLWxheW91dC1oZWFkZXJcbiAgICAgIFticmVhZGNydW1ic109XCJicmVhZGNydW1icygpXCJcbiAgICAgIFtmYWxsYmFja0JyZWFkY3J1bWJdPVwiZmFsbGJhY2tCcmVhZGNydW1iKClcIlxuICAgICAgW2V4cGFuZGVkXT1cImV4cGFuZGVkKClcIlxuICAgICAgW2lzTW9iaWxlXT1cImlzTW9iaWxlKClcIlxuICAgICAgW21vYmlsZU1lbnVPcGVuXT1cIm1vYmlsZU1lbnVPcGVuKClcIlxuICAgICAgW3Nob3dEZWZhdWx0QWN0aW9uc109XCJzaG93RGVmYXVsdEFjdGlvbnMoKVwiXG4gICAgICBbdXNlcl09XCJ1c2VyKClcIlxuICAgICAgW25vdGlmaWNhdGlvbnNdPVwibm90aWZpY2F0aW9ucygpXCJcbiAgICAgIFtzdWJzeXN0ZW1zXT1cInN1YnN5c3RlbXMoKVwiXG4gICAgICBbdXNlck1lbnVJdGVtc109XCJ1c2VyTWVudUl0ZW1zKClcIlxuICAgICAgKHNpZGViYXJUb2dnbGUpPVwib25Ub2dnbGVTaWRlYmFyKClcIlxuICAgICAgKG5vdGlmaWNhdGlvbkNsaWNrKT1cIm5vdGlmaWNhdGlvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAoc3Vic3lzdGVtQ2xpY2spPVwic3Vic3lzdGVtQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICh1c2VyTWVudUNsaWNrKT1cInVzZXJNZW51Q2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgIChsb2dvdXQpPVwibG9nb3V0LmVtaXQoKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2dlb0xheW91dEFjdGlvbnNdXCIgLz5cbiAgICA8L2dlby1sYXlvdXQtaGVhZGVyPlxuXG4gICAgPG1haW4gY2xhc3M9XCJnZW8tbGF5b3V0X19jb250ZW50XCI+XG4gICAgICA8bmctY29udGVudCAvPlxuICAgIDwvbWFpbj5cblxuICAgIEBpZiAoc2hvd0Zvb3RlcigpKSB7XG4gICAgICA8Z2VvLWxheW91dC1mb290ZXIgW3RleHRdPVwiZm9vdGVyVGV4dCgpXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltnZW9MYXlvdXRGb290ZXJdXCIgLz5cbiAgICAgIDwvZ2VvLWxheW91dC1mb290ZXI+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export const GEO_LAYOUT_DEFAULT_USER = {
|
|
2
|
+
name: 'vnpt',
|
|
3
|
+
email: 'vnpt@vnpt.vn',
|
|
4
|
+
};
|
|
5
|
+
export const GEO_LAYOUT_DEFAULT_NOTIFICATIONS = [
|
|
6
|
+
{
|
|
7
|
+
id: '1',
|
|
8
|
+
message: 'Hồ sơ quy hoạch phường 1 đã được phê duyệt.',
|
|
9
|
+
time: '5 phút trước',
|
|
10
|
+
read: false,
|
|
11
|
+
icon: 'check-circle',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: '2',
|
|
15
|
+
message: 'Có 12 yêu cầu tra cứu thửa mới trong ngày.',
|
|
16
|
+
time: '2 giờ trước',
|
|
17
|
+
read: false,
|
|
18
|
+
icon: 'eye',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: '3',
|
|
22
|
+
message: 'Đồng bộ danh mục đơn vị hành chính hoàn tất.',
|
|
23
|
+
time: 'Hôm qua',
|
|
24
|
+
read: true,
|
|
25
|
+
icon: 'sync',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
export const GEO_LAYOUT_DEFAULT_SUBSYSTEMS = [
|
|
29
|
+
{ id: '1', initials: 'TC', label: 'Tra cứu QH' },
|
|
30
|
+
{ id: '2', initials: 'ĐC', label: 'Địa chính' },
|
|
31
|
+
{ id: '3', initials: 'BĐ', label: 'Bản đồ' },
|
|
32
|
+
{ id: '4', initials: 'TK', label: 'Thống kê' },
|
|
33
|
+
{ id: '5', initials: 'PA', label: 'Phản ánh' },
|
|
34
|
+
{ id: '6', initials: 'QL', label: 'Quản trị' },
|
|
35
|
+
];
|
|
36
|
+
export const GEO_LAYOUT_DEFAULT_USER_MENU = [
|
|
37
|
+
{ key: 'account', label: 'Tài khoản', icon: 'safety-certificate' },
|
|
38
|
+
{ key: 'password', label: 'Đổi mật khẩu', icon: 'lock' },
|
|
39
|
+
{ key: 'notify-settings', label: 'Cài đặt thông báo', icon: 'bell' },
|
|
40
|
+
{ key: 'logout', label: 'Đăng xuất', icon: 'logout', danger: true },
|
|
41
|
+
];
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWxheW91dC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1sYXlvdXQvZ2VvLWxheW91dC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4Q0EsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXNCO0lBQ3hELElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLGNBQWM7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFnQztJQUMzRTtRQUNFLEVBQUUsRUFBRSxHQUFHO1FBQ1AsT0FBTyxFQUFFLDZDQUE2QztRQUN0RCxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsS0FBSztRQUNYLElBQUksRUFBRSxjQUFjO0tBQ3JCO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsR0FBRztRQUNQLE9BQU8sRUFBRSw0Q0FBNEM7UUFDckQsSUFBSSxFQUFFLGFBQWE7UUFDbkIsSUFBSSxFQUFFLEtBQUs7UUFDWCxJQUFJLEVBQUUsS0FBSztLQUNaO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsR0FBRztRQUNQLE9BQU8sRUFBRSw4Q0FBOEM7UUFDdkQsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsSUFBSTtRQUNWLElBQUksRUFBRSxNQUFNO0tBQ2I7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQTZCO0lBQ3JFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7SUFDaEQsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtJQUMvQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQzVDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7SUFDOUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtJQUM5QyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO0NBQy9DLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBNEI7SUFDbkUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFO0lBQ2xFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDeEQsRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7SUFDcEUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0NBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTWVudSBpdGVtIGZvciBgZ2VvLWxheW91dGAgc2lkZWJhciAocmVjdXJzaXZlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTGF5b3V0TWVudUl0ZW0ge1xuICAvKiogU3RhYmxlIGlkIHVzZWQgZm9yIHNlbGVjdGlvbiAvIG9wZW4gc3RhdGUuICovXG4gIGtleTogc3RyaW5nO1xuICAvKiogRGlzcGxheSBsYWJlbC4gKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIGBnZW8taWNvbmAgLyBBbnQgRGVzaWduIGljb24gdHlwZS4gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJvdXRlIC8gaHJlZiBoaW50IGZvciBjb25zdW1lcnMgKFN0b3J5Ym9vayBjbGlja3MgdXNlIGBtZW51U2VsZWN0YCkuICovXG4gIGxpbms/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogR2VvTGF5b3V0TWVudUl0ZW1bXTtcbn1cblxuZXhwb3J0IHR5cGUgR2VvTGF5b3V0U2lkZXJXaWR0aCA9IG51bWJlciB8IHN0cmluZztcblxuLyoqIFVzZXIgc2hvd24gaW4gdGhlIGhlYWRlciBjaGlwIC8gYWNjb3VudCBwb3BvdmVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW9MYXlvdXRVc2VySW5mbyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBhdmF0YXIgVVJMOyBpbml0aWFscyB1c2VkIHdoZW4gZW1wdHkuICovXG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgcm9sZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9MYXlvdXROb3RpZmljYXRpb25JdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0aW1lOiBzdHJpbmc7XG4gIHJlYWQ/OiBib29sZWFuO1xuICBpY29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb0xheW91dFN1YnN5c3RlbUl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBpbml0aWFsczogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvTGF5b3V0VXNlck1lbnVJdGVtIHtcbiAga2V5OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgZGFuZ2VyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IEdFT19MQVlPVVRfREVGQVVMVF9VU0VSOiBHZW9MYXlvdXRVc2VySW5mbyA9IHtcbiAgbmFtZTogJ3ZucHQnLFxuICBlbWFpbDogJ3ZucHRAdm5wdC52bicsXG59O1xuXG5leHBvcnQgY29uc3QgR0VPX0xBWU9VVF9ERUZBVUxUX05PVElGSUNBVElPTlM6IEdlb0xheW91dE5vdGlmaWNhdGlvbkl0ZW1bXSA9IFtcbiAge1xuICAgIGlkOiAnMScsXG4gICAgbWVzc2FnZTogJ0jhu5Mgc8ahIHF1eSBob+G6oWNoIHBoxrDhu51uZyAxIMSRw6MgxJHGsOG7o2MgcGjDqiBkdXnhu4d0LicsXG4gICAgdGltZTogJzUgcGjDunQgdHLGsOG7m2MnLFxuICAgIHJlYWQ6IGZhbHNlLFxuICAgIGljb246ICdjaGVjay1jaXJjbGUnLFxuICB9LFxuICB7XG4gICAgaWQ6ICcyJyxcbiAgICBtZXNzYWdlOiAnQ8OzIDEyIHnDqnUgY+G6p3UgdHJhIGPhu6l1IHRo4butYSBt4bubaSB0cm9uZyBuZ8OgeS4nLFxuICAgIHRpbWU6ICcyIGdp4budIHRyxrDhu5tjJyxcbiAgICByZWFkOiBmYWxzZSxcbiAgICBpY29uOiAnZXllJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnMycsXG4gICAgbWVzc2FnZTogJ8SQ4buTbmcgYuG7mSBkYW5oIG3hu6VjIMSRxqFuIHbhu4sgaMOgbmggY2jDrW5oIGhvw6BuIHThuqV0LicsXG4gICAgdGltZTogJ0jDtG0gcXVhJyxcbiAgICByZWFkOiB0cnVlLFxuICAgIGljb246ICdzeW5jJyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBHRU9fTEFZT1VUX0RFRkFVTFRfU1VCU1lTVEVNUzogR2VvTGF5b3V0U3Vic3lzdGVtSXRlbVtdID0gW1xuICB7IGlkOiAnMScsIGluaXRpYWxzOiAnVEMnLCBsYWJlbDogJ1RyYSBj4bupdSBRSCcgfSxcbiAgeyBpZDogJzInLCBpbml0aWFsczogJ8SQQycsIGxhYmVsOiAnxJDhu4thIGNow61uaCcgfSxcbiAgeyBpZDogJzMnLCBpbml0aWFsczogJ0LEkCcsIGxhYmVsOiAnQuG6o24gxJHhu5MnIH0sXG4gIHsgaWQ6ICc0JywgaW5pdGlhbHM6ICdUSycsIGxhYmVsOiAnVGjhu5FuZyBrw6onIH0sXG4gIHsgaWQ6ICc1JywgaW5pdGlhbHM6ICdQQScsIGxhYmVsOiAnUGjhuqNuIMOhbmgnIH0sXG4gIHsgaWQ6ICc2JywgaW5pdGlhbHM6ICdRTCcsIGxhYmVsOiAnUXXhuqNuIHRy4buLJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT19MQVlPVVRfREVGQVVMVF9VU0VSX01FTlU6IEdlb0xheW91dFVzZXJNZW51SXRlbVtdID0gW1xuICB7IGtleTogJ2FjY291bnQnLCBsYWJlbDogJ1TDoGkga2hv4bqjbicsIGljb246ICdzYWZldHktY2VydGlmaWNhdGUnIH0sXG4gIHsga2V5OiAncGFzc3dvcmQnLCBsYWJlbDogJ8SQ4buVaSBt4bqtdCBraOG6qXUnLCBpY29uOiAnbG9jaycgfSxcbiAgeyBrZXk6ICdub3RpZnktc2V0dGluZ3MnLCBsYWJlbDogJ0PDoGkgxJHhurd0IHRow7RuZyBiw6FvJywgaWNvbjogJ2JlbGwnIH0sXG4gIHsga2V5OiAnbG9nb3V0JywgbGFiZWw6ICfEkMSDbmcgeHXhuqV0JywgaWNvbjogJ2xvZ291dCcsIGRhbmdlcjogdHJ1ZSB9LFxuXTtcbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, contentChild, input, output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { GeoBreadcrumbComponent } from '../../geo-breadcrumb/geo-breadcrumb.component';
|
|
3
|
+
import { GeoIconComponent } from '../../geo-icon/geo-icon.component';
|
|
4
|
+
import { GeoLayoutActionsDirective } from '../geo-layout-actions.directive';
|
|
5
|
+
import { GeoLayoutHeaderActionsComponent } from '../header-actions/geo-layout-header-actions.component';
|
|
6
|
+
import { GEO_LAYOUT_DEFAULT_NOTIFICATIONS, GEO_LAYOUT_DEFAULT_SUBSYSTEMS, GEO_LAYOUT_DEFAULT_USER, GEO_LAYOUT_DEFAULT_USER_MENU, } from '../geo-layout.types';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Top bar: sidebar toggle + breadcrumb + header actions.
|
|
10
|
+
*/
|
|
11
|
+
export class GeoLayoutHeaderComponent {
|
|
12
|
+
breadcrumbs = input([]);
|
|
13
|
+
fallbackBreadcrumb = input('Hệ thống thông tin đất đai - VNPT iLIS');
|
|
14
|
+
expanded = input(true);
|
|
15
|
+
isMobile = input(false);
|
|
16
|
+
mobileMenuOpen = input(false);
|
|
17
|
+
showDefaultActions = input(true);
|
|
18
|
+
user = input(GEO_LAYOUT_DEFAULT_USER);
|
|
19
|
+
notifications = input(GEO_LAYOUT_DEFAULT_NOTIFICATIONS);
|
|
20
|
+
subsystems = input(GEO_LAYOUT_DEFAULT_SUBSYSTEMS);
|
|
21
|
+
userMenuItems = input(GEO_LAYOUT_DEFAULT_USER_MENU);
|
|
22
|
+
sidebarToggle = output();
|
|
23
|
+
notificationClick = output();
|
|
24
|
+
subsystemClick = output();
|
|
25
|
+
userMenuClick = output();
|
|
26
|
+
logout = output();
|
|
27
|
+
projectedActions = contentChild(GeoLayoutActionsDirective);
|
|
28
|
+
hasProjectedActions = computed(() => !!this.projectedActions());
|
|
29
|
+
showBuiltInActions = computed(() => this.showDefaultActions() && !this.hasProjectedActions());
|
|
30
|
+
toggleIcon = computed(() => this.isMobile()
|
|
31
|
+
? this.mobileMenuOpen()
|
|
32
|
+
? 'menu-fold'
|
|
33
|
+
: 'menu-unfold'
|
|
34
|
+
: this.expanded()
|
|
35
|
+
? 'menu-fold'
|
|
36
|
+
: 'menu-unfold');
|
|
37
|
+
toggleAriaLabel = computed(() => {
|
|
38
|
+
if (this.isMobile()) {
|
|
39
|
+
return this.mobileMenuOpen() ? 'Đóng menu' : 'Mở menu';
|
|
40
|
+
}
|
|
41
|
+
return this.expanded() ? 'Thu gọn menu' : 'Mở rộng menu';
|
|
42
|
+
});
|
|
43
|
+
onToggle() {
|
|
44
|
+
this.sidebarToggle.emit();
|
|
45
|
+
}
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoLayoutHeaderComponent, isStandalone: true, selector: "geo-layout-header", inputs: { breadcrumbs: { classPropertyName: "breadcrumbs", publicName: "breadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, fallbackBreadcrumb: { classPropertyName: "fallbackBreadcrumb", publicName: "fallbackBreadcrumb", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: false, transformFunction: null }, mobileMenuOpen: { classPropertyName: "mobileMenuOpen", publicName: "mobileMenuOpen", isSignal: true, isRequired: false, transformFunction: null }, showDefaultActions: { classPropertyName: "showDefaultActions", publicName: "showDefaultActions", isSignal: true, isRequired: false, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, notifications: { classPropertyName: "notifications", publicName: "notifications", isSignal: true, isRequired: false, transformFunction: null }, subsystems: { classPropertyName: "subsystems", publicName: "subsystems", isSignal: true, isRequired: false, transformFunction: null }, userMenuItems: { classPropertyName: "userMenuItems", publicName: "userMenuItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sidebarToggle: "sidebarToggle", notificationClick: "notificationClick", subsystemClick: "subsystemClick", userMenuClick: "userMenuClick", logout: "logout" }, host: { properties: { "class.geo-layout-header-host--mobile": "isMobile()" }, classAttribute: "geo-layout-header-host" }, queries: [{ propertyName: "projectedActions", first: true, predicate: GeoLayoutActionsDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<header\n class=\"geo-layout-header\"\n [class.geo-layout-header--mobile]=\"isMobile()\"\n>\n <div class=\"geo-layout-header__inner\">\n <div class=\"geo-layout-header__start\">\n <button\n type=\"button\"\n class=\"geo-layout-header__toggle\"\n [attr.aria-label]=\"toggleAriaLabel()\"\n [attr.aria-expanded]=\"isMobile() ? mobileMenuOpen() : expanded()\"\n (click)=\"onToggle()\"\n >\n <geo-icon [type]=\"toggleIcon()\" size=\"lg\" />\n </button>\n\n <div class=\"geo-layout-header__breadcrumb\">\n @if (breadcrumbs().length) {\n <geo-breadcrumb [items]=\"breadcrumbs()\" />\n } @else {\n <span class=\"geo-layout-header__breadcrumb-fallback\">{{\n fallbackBreadcrumb()\n }}</span>\n }\n </div>\n </div>\n\n <div class=\"geo-layout-header__actions\">\n <ng-content select=\"[geoLayoutActions]\" />\n @if (showBuiltInActions()) {\n <geo-layout-header-actions\n [user]=\"user()\"\n [notifications]=\"notifications()\"\n [subsystems]=\"subsystems()\"\n [userMenuItems]=\"userMenuItems()\"\n [compact]=\"isMobile()\"\n (notificationClick)=\"notificationClick.emit($event)\"\n (subsystemClick)=\"subsystemClick.emit($event)\"\n (userMenuClick)=\"userMenuClick.emit($event)\"\n (logout)=\"logout.emit()\"\n />\n }\n </div>\n </div>\n</header>\n", styles: [".geo-layout-header-host{display:block;flex-shrink:0;z-index:100}.geo-layout-header{display:flex;flex-direction:column;justify-content:center;min-height:68px;padding-inline:1.25rem 1.5rem;background:var(--geo-color-surface-header);border-bottom:1px solid var(--geo-color-border-subtle);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.geo-layout-header--mobile{padding-inline:.75rem}.geo-layout-header--mobile .geo-layout-header__breadcrumb{display:none}.geo-layout-header--mobile .geo-layout-header__toggle{width:2.5rem;height:2.5rem}.geo-layout-header--mobile .geo-layout-header__actions{gap:.5rem}.geo-layout-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%}.geo-layout-header__start{display:flex;flex:1;align-items:center;gap:10px;min-width:0}.geo-layout-header__toggle{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--geo-radius-md);background:transparent;color:var(--geo-color-neutral-700);cursor:pointer;transition:background-color .15s ease,color .15s ease}.geo-layout-header__toggle:hover{background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-layout-header__toggle:active{transform:scale(.98)}.geo-layout-header__breadcrumb{min-width:0}.geo-layout-header__breadcrumb-fallback{display:block;overflow:hidden;font-size:var(--geo-font-size-h4);font-weight:var(--geo-font-weight-semibold);line-height:1.375;color:var(--geo-color-neutral-800);text-overflow:ellipsis;white-space:nowrap}.geo-layout-header__actions{display:flex;flex-shrink:0;align-items:center;gap:.5rem}@media (prefers-reduced-transparency: reduce){.geo-layout-header{background:var(--geo-color-neutral-white);backdrop-filter:none;-webkit-backdrop-filter:none}}@media (prefers-reduced-motion: reduce){.geo-layout-header__toggle{transition:none}}\n"], dependencies: [{ kind: "component", type: GeoBreadcrumbComponent, selector: "geo-breadcrumb", inputs: ["items"] }, { kind: "component", type: GeoIconComponent, selector: "geo-icon", inputs: ["type", "theme", "spin", "size", "color"] }, { kind: "component", type: GeoLayoutHeaderActionsComponent, selector: "geo-layout-header-actions", inputs: ["user", "notifications", "subsystems", "userMenuItems", "compact"], outputs: ["notificationClick", "subsystemClick", "userMenuClick", "logout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoLayoutHeaderComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'geo-layout-header', standalone: true, imports: [
|
|
52
|
+
GeoBreadcrumbComponent,
|
|
53
|
+
GeoIconComponent,
|
|
54
|
+
GeoLayoutHeaderActionsComponent,
|
|
55
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
56
|
+
class: 'geo-layout-header-host',
|
|
57
|
+
'[class.geo-layout-header-host--mobile]': 'isMobile()',
|
|
58
|
+
}, template: "<header\n class=\"geo-layout-header\"\n [class.geo-layout-header--mobile]=\"isMobile()\"\n>\n <div class=\"geo-layout-header__inner\">\n <div class=\"geo-layout-header__start\">\n <button\n type=\"button\"\n class=\"geo-layout-header__toggle\"\n [attr.aria-label]=\"toggleAriaLabel()\"\n [attr.aria-expanded]=\"isMobile() ? mobileMenuOpen() : expanded()\"\n (click)=\"onToggle()\"\n >\n <geo-icon [type]=\"toggleIcon()\" size=\"lg\" />\n </button>\n\n <div class=\"geo-layout-header__breadcrumb\">\n @if (breadcrumbs().length) {\n <geo-breadcrumb [items]=\"breadcrumbs()\" />\n } @else {\n <span class=\"geo-layout-header__breadcrumb-fallback\">{{\n fallbackBreadcrumb()\n }}</span>\n }\n </div>\n </div>\n\n <div class=\"geo-layout-header__actions\">\n <ng-content select=\"[geoLayoutActions]\" />\n @if (showBuiltInActions()) {\n <geo-layout-header-actions\n [user]=\"user()\"\n [notifications]=\"notifications()\"\n [subsystems]=\"subsystems()\"\n [userMenuItems]=\"userMenuItems()\"\n [compact]=\"isMobile()\"\n (notificationClick)=\"notificationClick.emit($event)\"\n (subsystemClick)=\"subsystemClick.emit($event)\"\n (userMenuClick)=\"userMenuClick.emit($event)\"\n (logout)=\"logout.emit()\"\n />\n }\n </div>\n </div>\n</header>\n", styles: [".geo-layout-header-host{display:block;flex-shrink:0;z-index:100}.geo-layout-header{display:flex;flex-direction:column;justify-content:center;min-height:68px;padding-inline:1.25rem 1.5rem;background:var(--geo-color-surface-header);border-bottom:1px solid var(--geo-color-border-subtle);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.geo-layout-header--mobile{padding-inline:.75rem}.geo-layout-header--mobile .geo-layout-header__breadcrumb{display:none}.geo-layout-header--mobile .geo-layout-header__toggle{width:2.5rem;height:2.5rem}.geo-layout-header--mobile .geo-layout-header__actions{gap:.5rem}.geo-layout-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%}.geo-layout-header__start{display:flex;flex:1;align-items:center;gap:10px;min-width:0}.geo-layout-header__toggle{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--geo-radius-md);background:transparent;color:var(--geo-color-neutral-700);cursor:pointer;transition:background-color .15s ease,color .15s ease}.geo-layout-header__toggle:hover{background:var(--geo-color-primary-soft-hover);color:var(--geo-color-primary-default)}.geo-layout-header__toggle:active{transform:scale(.98)}.geo-layout-header__breadcrumb{min-width:0}.geo-layout-header__breadcrumb-fallback{display:block;overflow:hidden;font-size:var(--geo-font-size-h4);font-weight:var(--geo-font-weight-semibold);line-height:1.375;color:var(--geo-color-neutral-800);text-overflow:ellipsis;white-space:nowrap}.geo-layout-header__actions{display:flex;flex-shrink:0;align-items:center;gap:.5rem}@media (prefers-reduced-transparency: reduce){.geo-layout-header{background:var(--geo-color-neutral-white);backdrop-filter:none;-webkit-backdrop-filter:none}}@media (prefers-reduced-motion: reduce){.geo-layout-header__toggle{transition:none}}\n"] }]
|
|
59
|
+
}] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWxheW91dC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWxheW91dC9oZWFkZXIvZ2VvLWxheW91dC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWxheW91dC9oZWFkZXIvZ2VvLWxheW91dC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLDZCQUE2QixFQUM3Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEdBSzdCLE1BQU0scUJBQXFCLENBQUM7O0FBRTdCOztHQUVHO0FBa0JILE1BQU0sT0FBTyx3QkFBd0I7SUFDMUIsV0FBVyxHQUFHLEtBQUssQ0FBc0IsRUFBRSxDQUFDLENBQUM7SUFDN0Msa0JBQWtCLEdBQUcsS0FBSyxDQUNqQyx3Q0FBd0MsQ0FDekMsQ0FBQztJQUNPLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixjQUFjLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQyxJQUFJLEdBQUcsS0FBSyxDQUFvQix1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pELGFBQWEsR0FBRyxLQUFLLENBQzVCLGdDQUFnQyxDQUNqQyxDQUFDO0lBQ08sVUFBVSxHQUFHLEtBQUssQ0FDekIsNkJBQTZCLENBQzlCLENBQUM7SUFDTyxhQUFhLEdBQUcsS0FBSyxDQUM1Qiw0QkFBNEIsQ0FDN0IsQ0FBQztJQUVPLGFBQWEsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUMvQixpQkFBaUIsR0FBRyxNQUFNLEVBQTZCLENBQUM7SUFDeEQsY0FBYyxHQUFHLE1BQU0sRUFBMEIsQ0FBQztJQUNsRCxhQUFhLEdBQUcsTUFBTSxFQUF5QixDQUFDO0lBQ2hELE1BQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUVoQixnQkFBZ0IsR0FBRyxZQUFZLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUVuRSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFaEUsa0JBQWtCLEdBQUcsUUFBUSxDQUNwQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUMvRCxDQUFDO0lBRU8sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLENBQUMsQ0FBQyxXQUFXO1lBQ2IsQ0FBQyxDQUFDLGFBQWE7UUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixDQUFDLENBQUMsV0FBVztZQUNiLENBQUMsQ0FBQyxhQUFhLENBQ3BCLENBQUM7SUFFTyxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO0lBQzNELENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzt3R0F0RFUsd0JBQXdCOzRGQUF4Qix3QkFBd0IsbXlEQTJCYyx5QkFBeUIsZ0VDeEU1RSxxOUNBNkNBLHc2RERiSSxzQkFBc0IsOEVBQ3RCLGdCQUFnQix5R0FDaEIsK0JBQStCOzs0RkFXdEIsd0JBQXdCO2tCQWpCcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQiwrQkFBK0I7cUJBQ2hDLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSx3QkFBd0I7d0JBQy9CLHdDQUF3QyxFQUFFLFlBQVk7cUJBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2VvQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2dlby1icmVhZGNydW1iL2dlby1icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW9CcmVhZGNydW1iSXRlbSB9IGZyb20gJy4uLy4uL2dlby1icmVhZGNydW1iL2dlby1icmVhZGNydW1iLnR5cGVzJztcbmltcG9ydCB7IEdlb0ljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9nZW8taWNvbi9nZW8taWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VvTGF5b3V0QWN0aW9uc0RpcmVjdGl2ZSB9IGZyb20gJy4uL2dlby1sYXlvdXQtYWN0aW9ucy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgR2VvTGF5b3V0SGVhZGVyQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci1hY3Rpb25zL2dlby1sYXlvdXQtaGVhZGVyLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEdFT19MQVlPVVRfREVGQVVMVF9OT1RJRklDQVRJT05TLFxuICBHRU9fTEFZT1VUX0RFRkFVTFRfU1VCU1lTVEVNUyxcbiAgR0VPX0xBWU9VVF9ERUZBVUxUX1VTRVIsXG4gIEdFT19MQVlPVVRfREVGQVVMVF9VU0VSX01FTlUsXG4gIEdlb0xheW91dE5vdGlmaWNhdGlvbkl0ZW0sXG4gIEdlb0xheW91dFN1YnN5c3RlbUl0ZW0sXG4gIEdlb0xheW91dFVzZXJJbmZvLFxuICBHZW9MYXlvdXRVc2VyTWVudUl0ZW0sXG59IGZyb20gJy4uL2dlby1sYXlvdXQudHlwZXMnO1xuXG4vKipcbiAqIFRvcCBiYXI6IHNpZGViYXIgdG9nZ2xlICsgYnJlYWRjcnVtYiArIGhlYWRlciBhY3Rpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tbGF5b3V0LWhlYWRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBHZW9CcmVhZGNydW1iQ29tcG9uZW50LFxuICAgIEdlb0ljb25Db21wb25lbnQsXG4gICAgR2VvTGF5b3V0SGVhZGVyQWN0aW9uc0NvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1sYXlvdXQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1sYXlvdXQtaGVhZGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1sYXlvdXQtaGVhZGVyLWhvc3QnLFxuICAgICdbY2xhc3MuZ2VvLWxheW91dC1oZWFkZXItaG9zdC0tbW9iaWxlXSc6ICdpc01vYmlsZSgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvTGF5b3V0SGVhZGVyQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgYnJlYWRjcnVtYnMgPSBpbnB1dDxHZW9CcmVhZGNydW1iSXRlbVtdPihbXSk7XG4gIHJlYWRvbmx5IGZhbGxiYWNrQnJlYWRjcnVtYiA9IGlucHV0KFxuICAgICdI4buHIHRo4buRbmcgdGjDtG5nIHRpbiDEkeG6pXQgxJFhaSAtIFZOUFQgaUxJUydcbiAgKTtcbiAgcmVhZG9ubHkgZXhwYW5kZWQgPSBpbnB1dCh0cnVlKTtcbiAgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbnB1dChmYWxzZSk7XG4gIHJlYWRvbmx5IG1vYmlsZU1lbnVPcGVuID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBzaG93RGVmYXVsdEFjdGlvbnMgPSBpbnB1dCh0cnVlKTtcblxuICByZWFkb25seSB1c2VyID0gaW5wdXQ8R2VvTGF5b3V0VXNlckluZm8+KEdFT19MQVlPVVRfREVGQVVMVF9VU0VSKTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9ucyA9IGlucHV0PEdlb0xheW91dE5vdGlmaWNhdGlvbkl0ZW1bXT4oXG4gICAgR0VPX0xBWU9VVF9ERUZBVUxUX05PVElGSUNBVElPTlNcbiAgKTtcbiAgcmVhZG9ubHkgc3Vic3lzdGVtcyA9IGlucHV0PEdlb0xheW91dFN1YnN5c3RlbUl0ZW1bXT4oXG4gICAgR0VPX0xBWU9VVF9ERUZBVUxUX1NVQlNZU1RFTVNcbiAgKTtcbiAgcmVhZG9ubHkgdXNlck1lbnVJdGVtcyA9IGlucHV0PEdlb0xheW91dFVzZXJNZW51SXRlbVtdPihcbiAgICBHRU9fTEFZT1VUX0RFRkFVTFRfVVNFUl9NRU5VXG4gICk7XG5cbiAgcmVhZG9ubHkgc2lkZWJhclRvZ2dsZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBub3RpZmljYXRpb25DbGljayA9IG91dHB1dDxHZW9MYXlvdXROb3RpZmljYXRpb25JdGVtPigpO1xuICByZWFkb25seSBzdWJzeXN0ZW1DbGljayA9IG91dHB1dDxHZW9MYXlvdXRTdWJzeXN0ZW1JdGVtPigpO1xuICByZWFkb25seSB1c2VyTWVudUNsaWNrID0gb3V0cHV0PEdlb0xheW91dFVzZXJNZW51SXRlbT4oKTtcbiAgcmVhZG9ubHkgbG9nb3V0ID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9qZWN0ZWRBY3Rpb25zID0gY29udGVudENoaWxkKEdlb0xheW91dEFjdGlvbnNEaXJlY3RpdmUpO1xuXG4gIHJlYWRvbmx5IGhhc1Byb2plY3RlZEFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMucHJvamVjdGVkQWN0aW9ucygpKTtcblxuICByZWFkb25seSBzaG93QnVpbHRJbkFjdGlvbnMgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLnNob3dEZWZhdWx0QWN0aW9ucygpICYmICF0aGlzLmhhc1Byb2plY3RlZEFjdGlvbnMoKVxuICApO1xuXG4gIHJlYWRvbmx5IHRvZ2dsZUljb24gPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaXNNb2JpbGUoKVxuICAgICAgPyB0aGlzLm1vYmlsZU1lbnVPcGVuKClcbiAgICAgICAgPyAnbWVudS1mb2xkJ1xuICAgICAgICA6ICdtZW51LXVuZm9sZCdcbiAgICAgIDogdGhpcy5leHBhbmRlZCgpXG4gICAgICAgID8gJ21lbnUtZm9sZCdcbiAgICAgICAgOiAnbWVudS11bmZvbGQnXG4gICk7XG5cbiAgcmVhZG9ubHkgdG9nZ2xlQXJpYUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1vYmlsZU1lbnVPcGVuKCkgPyAnxJDDs25nIG1lbnUnIDogJ03hu58gbWVudSc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmV4cGFuZGVkKCkgPyAnVGh1IGfhu41uIG1lbnUnIDogJ03hu58gcuG7mW5nIG1lbnUnO1xuICB9KTtcblxuICBvblRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNpZGViYXJUb2dnbGUuZW1pdCgpO1xuICB9XG59XG4iLCI8aGVhZGVyXG4gIGNsYXNzPVwiZ2VvLWxheW91dC1oZWFkZXJcIlxuICBbY2xhc3MuZ2VvLWxheW91dC1oZWFkZXItLW1vYmlsZV09XCJpc01vYmlsZSgpXCJcbj5cbiAgPGRpdiBjbGFzcz1cImdlby1sYXlvdXQtaGVhZGVyX19pbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJnZW8tbGF5b3V0LWhlYWRlcl9fc3RhcnRcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiZ2VvLWxheW91dC1oZWFkZXJfX3RvZ2dsZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9nZ2xlQXJpYUxhYmVsKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzTW9iaWxlKCkgPyBtb2JpbGVNZW51T3BlbigpIDogZXhwYW5kZWQoKVwiXG4gICAgICAgIChjbGljayk9XCJvblRvZ2dsZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGdlby1pY29uIFt0eXBlXT1cInRvZ2dsZUljb24oKVwiIHNpemU9XCJsZ1wiIC8+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdlby1sYXlvdXQtaGVhZGVyX19icmVhZGNydW1iXCI+XG4gICAgICAgIEBpZiAoYnJlYWRjcnVtYnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICA8Z2VvLWJyZWFkY3J1bWIgW2l0ZW1zXT1cImJyZWFkY3J1bWJzKClcIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby1sYXlvdXQtaGVhZGVyX19icmVhZGNydW1iLWZhbGxiYWNrXCI+e3tcbiAgICAgICAgICAgIGZhbGxiYWNrQnJlYWRjcnVtYigpXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdlby1sYXlvdXQtaGVhZGVyX19hY3Rpb25zXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZ2VvTGF5b3V0QWN0aW9uc11cIiAvPlxuICAgICAgQGlmIChzaG93QnVpbHRJbkFjdGlvbnMoKSkge1xuICAgICAgICA8Z2VvLWxheW91dC1oZWFkZXItYWN0aW9uc1xuICAgICAgICAgIFt1c2VyXT1cInVzZXIoKVwiXG4gICAgICAgICAgW25vdGlmaWNhdGlvbnNdPVwibm90aWZpY2F0aW9ucygpXCJcbiAgICAgICAgICBbc3Vic3lzdGVtc109XCJzdWJzeXN0ZW1zKClcIlxuICAgICAgICAgIFt1c2VyTWVudUl0ZW1zXT1cInVzZXJNZW51SXRlbXMoKVwiXG4gICAgICAgICAgW2NvbXBhY3RdPVwiaXNNb2JpbGUoKVwiXG4gICAgICAgICAgKG5vdGlmaWNhdGlvbkNsaWNrKT1cIm5vdGlmaWNhdGlvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgKHN1YnN5c3RlbUNsaWNrKT1cInN1YnN5c3RlbUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgKHVzZXJNZW51Q2xpY2spPVwidXNlck1lbnVDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgIChsb2dvdXQpPVwibG9nb3V0LmVtaXQoKVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9oZWFkZXI+XG4iXX0=
|