@geoit/ui 0.0.2
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 +25 -0
- package/README.md +46 -0
- package/ai/AGENTS.md +86 -0
- package/ai/README.md +44 -0
- package/ai/catalog.json +882 -0
- package/ai/components/geo-alert.md +56 -0
- package/ai/components/geo-back-button.md +54 -0
- package/ai/components/geo-breadcrumb.md +52 -0
- package/ai/components/geo-button.md +63 -0
- package/ai/components/geo-checkbox.md +54 -0
- package/ai/components/geo-column-picker.md +54 -0
- package/ai/components/geo-confirm-modal.md +70 -0
- package/ai/components/geo-date-picker.md +65 -0
- package/ai/components/geo-date-range-picker.md +64 -0
- package/ai/components/geo-file-picker.md +62 -0
- package/ai/components/geo-form-modal.md +88 -0
- package/ai/components/geo-icon.md +53 -0
- package/ai/components/geo-input.md +65 -0
- package/ai/components/geo-page-title.md +53 -0
- package/ai/components/geo-pagination.md +59 -0
- package/ai/components/geo-radio.md +67 -0
- package/ai/components/geo-row-actions.md +54 -0
- package/ai/components/geo-select.md +68 -0
- package/ai/components/geo-slider.md +56 -0
- package/ai/components/geo-status-tag.md +51 -0
- package/ai/components/geo-step-form-layout.md +81 -0
- package/ai/components/geo-stepper.md +63 -0
- package/ai/components/geo-table-filter.md +65 -0
- package/ai/components/geo-table-pagination.md +59 -0
- package/ai/components/geo-table-toolbar.md +64 -0
- package/ai/components/geo-table.md +98 -0
- package/ai/components/geo-tabs.md +62 -0
- package/ai/components/geo-textarea.md +59 -0
- package/ai/components/geo-toast.md +61 -0
- package/ai/components/geo-tree.md +58 -0
- package/ai/components/geo-typography.md +57 -0
- package/ai/components/geo-upload.md +78 -0
- package/ai/recipes.md +111 -0
- package/esm2022/geoit-ui.mjs +5 -0
- package/esm2022/lib/figma/geo-alert/geo-alert.component.mjs +58 -0
- package/esm2022/lib/figma/geo-alert/geo-alert.types.mjs +7 -0
- package/esm2022/lib/figma/geo-back-button/geo-back-button.component.mjs +48 -0
- package/esm2022/lib/figma/geo-breadcrumb/geo-breadcrumb.component.mjs +33 -0
- package/esm2022/lib/figma/geo-breadcrumb/geo-breadcrumb.types.mjs +2 -0
- package/esm2022/lib/figma/geo-button/geo-button.component.mjs +77 -0
- package/esm2022/lib/figma/geo-button/geo-button.types.mjs +2 -0
- package/esm2022/lib/figma/geo-checkbox/geo-checkbox.component.mjs +34 -0
- package/esm2022/lib/figma/geo-confirm-modal/geo-confirm-modal.component.mjs +76 -0
- package/esm2022/lib/figma/geo-confirm-modal/geo-confirm-modal.types.mjs +2 -0
- package/esm2022/lib/figma/geo-date-picker/geo-date-picker.component.mjs +119 -0
- package/esm2022/lib/figma/geo-date-picker/geo-date-picker.types.mjs +2 -0
- package/esm2022/lib/figma/geo-date-range-picker/geo-date-range-picker.component.mjs +116 -0
- package/esm2022/lib/figma/geo-date-range-picker/geo-date-range-picker.types.mjs +2 -0
- package/esm2022/lib/figma/geo-file-picker/geo-file-picker.component.mjs +145 -0
- package/esm2022/lib/figma/geo-file-picker/geo-file-picker.types.mjs +2 -0
- package/esm2022/lib/figma/geo-form-modal/geo-form-modal.component.mjs +153 -0
- package/esm2022/lib/figma/geo-icon/geo-icon.component.mjs +51 -0
- package/esm2022/lib/figma/geo-icon/geo-icon.types.mjs +8 -0
- package/esm2022/lib/figma/geo-input/geo-input.component.mjs +118 -0
- package/esm2022/lib/figma/geo-page-title/geo-page-title.component.mjs +51 -0
- package/esm2022/lib/figma/geo-pagination/geo-pagination.component.mjs +54 -0
- package/esm2022/lib/figma/geo-radio/geo-radio.component.mjs +95 -0
- package/esm2022/lib/figma/geo-radio/geo-radio.types.mjs +2 -0
- package/esm2022/lib/figma/geo-select/geo-select.component.mjs +113 -0
- package/esm2022/lib/figma/geo-select/geo-select.types.mjs +2 -0
- package/esm2022/lib/figma/geo-slider/geo-slider.component.mjs +43 -0
- package/esm2022/lib/figma/geo-status-tag/geo-status-tag.component.mjs +62 -0
- package/esm2022/lib/figma/geo-status-tag/geo-status-tag.types.mjs +30 -0
- package/esm2022/lib/figma/geo-step-form-layout/geo-step-form-layout.component.mjs +157 -0
- package/esm2022/lib/figma/geo-step-form-layout/geo-step-form-layout.types.mjs +2 -0
- package/esm2022/lib/figma/geo-stepper/geo-stepper.component.mjs +77 -0
- package/esm2022/lib/figma/geo-stepper/geo-stepper.types.mjs +2 -0
- package/esm2022/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.mjs +65 -0
- package/esm2022/lib/figma/geo-table/geo-column-picker/geo-column-picker.storage.mjs +31 -0
- package/esm2022/lib/figma/geo-table/geo-column-picker/geo-column-picker.types.mjs +2 -0
- package/esm2022/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.mjs +64 -0
- package/esm2022/lib/figma/geo-table/geo-row-actions/geo-row-actions.types.mjs +24 -0
- package/esm2022/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.mjs +195 -0
- package/esm2022/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.mjs +118 -0
- package/esm2022/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.mjs +68 -0
- package/esm2022/lib/figma/geo-table/geo-table.component.mjs +381 -0
- package/esm2022/lib/figma/geo-table/geo-table.types.mjs +4 -0
- package/esm2022/lib/figma/geo-tabs/geo-tabs.component.mjs +94 -0
- package/esm2022/lib/figma/geo-tabs/geo-tabs.types.mjs +2 -0
- package/esm2022/lib/figma/geo-textarea/geo-textarea.component.mjs +85 -0
- package/esm2022/lib/figma/geo-toast/geo-toast.component.mjs +57 -0
- package/esm2022/lib/figma/geo-toast/geo-toast.service.mjs +116 -0
- package/esm2022/lib/figma/geo-toast/geo-toast.types.mjs +13 -0
- package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +52 -0
- package/esm2022/lib/figma/geo-tree/geo-tree.types.mjs +2 -0
- package/esm2022/lib/figma/geo-typography/geo-typography.component.mjs +112 -0
- package/esm2022/lib/figma/geo-typography/geo-typography.types.mjs +96 -0
- package/esm2022/lib/figma/geo-upload/geo-upload.component.mjs +218 -0
- package/esm2022/lib/figma/geo-upload/geo-upload.types.mjs +30 -0
- package/esm2022/lib/figma/index.mjs +56 -0
- package/esm2022/lib/ng-zorro/ng-zorro-antd.module.mjs +293 -0
- package/esm2022/lib/styles/tokens.mjs +144 -0
- package/esm2022/public-api.mjs +7 -0
- package/fesm2022/geoit-ui.mjs +3805 -0
- package/fesm2022/geoit-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/figma/geo-alert/geo-alert.component.d.ts +17 -0
- package/lib/figma/geo-alert/geo-alert.types.d.ts +2 -0
- package/lib/figma/geo-back-button/geo-back-button.component.d.ts +18 -0
- package/lib/figma/geo-breadcrumb/geo-breadcrumb.component.d.ts +12 -0
- package/lib/figma/geo-breadcrumb/geo-breadcrumb.types.d.ts +10 -0
- package/lib/figma/geo-button/geo-button.component.d.ts +27 -0
- package/lib/figma/geo-button/geo-button.types.d.ts +4 -0
- package/lib/figma/geo-checkbox/geo-checkbox.component.d.ts +12 -0
- package/lib/figma/geo-confirm-modal/geo-confirm-modal.component.d.ts +24 -0
- package/lib/figma/geo-confirm-modal/geo-confirm-modal.types.d.ts +5 -0
- package/lib/figma/geo-date-picker/geo-date-picker.component.d.ts +35 -0
- package/lib/figma/geo-date-picker/geo-date-picker.types.d.ts +2 -0
- package/lib/figma/geo-date-range-picker/geo-date-range-picker.component.d.ts +34 -0
- package/lib/figma/geo-date-range-picker/geo-date-range-picker.types.d.ts +2 -0
- package/lib/figma/geo-file-picker/geo-file-picker.component.d.ts +39 -0
- package/lib/figma/geo-file-picker/geo-file-picker.types.d.ts +4 -0
- package/lib/figma/geo-form-modal/geo-form-modal.component.d.ts +57 -0
- package/lib/figma/geo-icon/geo-icon.component.d.ts +19 -0
- package/lib/figma/geo-icon/geo-icon.types.d.ts +3 -0
- package/lib/figma/geo-input/geo-input.component.d.ts +37 -0
- package/lib/figma/geo-page-title/geo-page-title.component.d.ts +22 -0
- package/lib/figma/geo-pagination/geo-pagination.component.d.ts +21 -0
- package/lib/figma/geo-radio/geo-radio.component.d.ts +31 -0
- package/lib/figma/geo-radio/geo-radio.types.d.ts +9 -0
- package/lib/figma/geo-select/geo-select.component.d.ts +33 -0
- package/lib/figma/geo-select/geo-select.types.d.ts +7 -0
- package/lib/figma/geo-slider/geo-slider.component.d.ts +17 -0
- package/lib/figma/geo-status-tag/geo-status-tag.component.d.ts +18 -0
- package/lib/figma/geo-status-tag/geo-status-tag.types.d.ts +13 -0
- package/lib/figma/geo-step-form-layout/geo-step-form-layout.component.d.ts +67 -0
- package/lib/figma/geo-step-form-layout/geo-step-form-layout.types.d.ts +9 -0
- package/lib/figma/geo-stepper/geo-stepper.component.d.ts +42 -0
- package/lib/figma/geo-stepper/geo-stepper.types.d.ts +9 -0
- package/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.d.ts +20 -0
- package/lib/figma/geo-table/geo-column-picker/geo-column-picker.storage.d.ts +5 -0
- package/lib/figma/geo-table/geo-column-picker/geo-column-picker.types.d.ts +17 -0
- package/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.d.ts +21 -0
- package/lib/figma/geo-table/geo-row-actions/geo-row-actions.types.d.ts +13 -0
- package/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.d.ts +75 -0
- package/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.d.ts +33 -0
- package/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.d.ts +24 -0
- package/lib/figma/geo-table/geo-table.component.d.ts +113 -0
- package/lib/figma/geo-table/geo-table.types.d.ts +47 -0
- package/lib/figma/geo-tabs/geo-tabs.component.d.ts +31 -0
- package/lib/figma/geo-tabs/geo-tabs.types.d.ts +7 -0
- package/lib/figma/geo-textarea/geo-textarea.component.d.ts +27 -0
- package/lib/figma/geo-toast/geo-toast.component.d.ts +23 -0
- package/lib/figma/geo-toast/geo-toast.service.d.ts +33 -0
- package/lib/figma/geo-toast/geo-toast.types.d.ts +45 -0
- package/lib/figma/geo-tree/geo-tree.component.d.ts +23 -0
- package/lib/figma/geo-tree/geo-tree.types.d.ts +12 -0
- package/lib/figma/geo-typography/geo-typography.component.d.ts +35 -0
- package/lib/figma/geo-typography/geo-typography.types.d.ts +12 -0
- package/lib/figma/geo-upload/geo-upload.component.d.ts +59 -0
- package/lib/figma/geo-upload/geo-upload.types.d.ts +13 -0
- package/lib/figma/index.d.ts +55 -0
- package/lib/ng-zorro/ng-zorro-antd.module.d.ts +76 -0
- package/lib/styles/tokens.d.ts +184 -0
- package/package.json +38 -0
- package/public-api.d.ts +3 -0
- package/src/lib/styles/design-tokens.scss +143 -0
- package/src/lib/styles/geo-toast-notification.scss +129 -0
- package/src/lib/styles/scrollbar.scss +38 -0
- package/src/lib/styles/theme.scss +153 -0
package/ai/recipes.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# GEO UI — Recipes (AI)
|
|
2
|
+
|
|
3
|
+
Copy-paste patterns for common screens. Adjust labels/bindings only.
|
|
4
|
+
|
|
5
|
+
## 1. Form modal (single step)
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<geo-button appearance="primary" color="brand" (clicked)="open = true">Mở</geo-button>
|
|
9
|
+
|
|
10
|
+
<geo-form-modal
|
|
11
|
+
[open]="open"
|
|
12
|
+
title="Thêm mới danh mục"
|
|
13
|
+
cancelText="Hủy bỏ"
|
|
14
|
+
okText="Lưu"
|
|
15
|
+
[width]="720"
|
|
16
|
+
(openChange)="open = $event"
|
|
17
|
+
(ok)="onSave()"
|
|
18
|
+
(cancel)="open = false"
|
|
19
|
+
>
|
|
20
|
+
<div style="display:grid;grid-template-columns:1fr 1fr;gap:16px;">
|
|
21
|
+
<geo-input label="Mã" [required]="true" [block]="true" [(ngModel)]="code"></geo-input>
|
|
22
|
+
<geo-input label="Tên" [required]="true" [block]="true" [(ngModel)]="name"></geo-input>
|
|
23
|
+
</div>
|
|
24
|
+
</geo-form-modal>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 2. Form modal + steps (multi-step dialog)
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<geo-form-modal
|
|
31
|
+
[open]="open"
|
|
32
|
+
title="Lập phiếu đăng ký khai thác"
|
|
33
|
+
[cancelText]="activeIndex === 0 ? 'Hủy bỏ' : 'Quay lại'"
|
|
34
|
+
[cancelIcon]="activeIndex === 0 ? undefined : 'left'"
|
|
35
|
+
[okText]="isLast ? 'Gửi phiếu đăng ký' : 'Tiếp theo'"
|
|
36
|
+
[okIcon]="isLast ? undefined : 'right'"
|
|
37
|
+
okIconPlacement="end"
|
|
38
|
+
[width]="800"
|
|
39
|
+
(ok)="onNext()"
|
|
40
|
+
(cancel)="onBackOrClose()"
|
|
41
|
+
(openChange)="open = $event"
|
|
42
|
+
>
|
|
43
|
+
<geo-stepper
|
|
44
|
+
[steps]="steps"
|
|
45
|
+
[activeIndex]="activeIndex"
|
|
46
|
+
orientation="horizontal"
|
|
47
|
+
[clickable]="false"
|
|
48
|
+
></geo-stepper>
|
|
49
|
+
|
|
50
|
+
@if (activeIndex === 0) {
|
|
51
|
+
<!-- step 1 form fields -->
|
|
52
|
+
} @else {
|
|
53
|
+
<!-- step 2 confirm -->
|
|
54
|
+
}
|
|
55
|
+
</geo-form-modal>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
steps = [
|
|
60
|
+
{ key: 'info', label: '1. Thông tin phiếu mượn' },
|
|
61
|
+
{ key: 'confirm', label: '2. Xác nhận yêu cầu' },
|
|
62
|
+
];
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 3. Page header: breadcrumb + title
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<div style="display:flex;flex-direction:column;gap:16px;">
|
|
69
|
+
<geo-breadcrumb [items]="[
|
|
70
|
+
{ label: 'Trang chủ', link: '/' },
|
|
71
|
+
{ label: 'Tra cứu hồ sơ', link: '/tra-cuu' },
|
|
72
|
+
{ label: 'Xem chi tiết hồ sơ' }
|
|
73
|
+
]"></geo-breadcrumb>
|
|
74
|
+
<geo-page-title title="Thông tin chi tiết hồ sơ"></geo-page-title>
|
|
75
|
+
</div>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## 4. Toast after action
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import { GeoToastService } from '@geoit/ui';
|
|
82
|
+
|
|
83
|
+
constructor(private toast: GeoToastService) {}
|
|
84
|
+
|
|
85
|
+
save(): void {
|
|
86
|
+
this.toast.success('Thành công!', 'Đã lưu hồ sơ.');
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## 5. Table list (minimal)
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<geo-table-toolbar [resultCount]="total" [showAdd]="true" (addClick)="openCreate()"></geo-table-toolbar>
|
|
94
|
+
|
|
95
|
+
<geo-table
|
|
96
|
+
[columns]="columns"
|
|
97
|
+
[data]="rows"
|
|
98
|
+
[total]="total"
|
|
99
|
+
[pageIndex]="pageIndex"
|
|
100
|
+
[pageSize]="pageSize"
|
|
101
|
+
(pageIndexChange)="pageIndex = $event; load()"
|
|
102
|
+
(pageSizeChange)="pageSize = $event; load()"
|
|
103
|
+
></geo-table>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## 6. Typography + status
|
|
107
|
+
|
|
108
|
+
```html
|
|
109
|
+
<geo-typography variant="h4" [strong]="true">1. Thông tin cá nhân</geo-typography>
|
|
110
|
+
<geo-status-tag status="success" label="Đã duyệt"></geo-status-tag>
|
|
111
|
+
```
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvaXQtdWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2dlb2l0LXVpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
4
|
+
import { UI_ALERT_DEFAULT_TITLES } from './geo-alert.types';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "ng-zorro-antd/icon";
|
|
7
|
+
export class GeoAlertComponent {
|
|
8
|
+
type = 'info';
|
|
9
|
+
title = '';
|
|
10
|
+
message = '';
|
|
11
|
+
closable = true;
|
|
12
|
+
visible = true;
|
|
13
|
+
showIcon = true;
|
|
14
|
+
closed = new EventEmitter();
|
|
15
|
+
get displayTitle() {
|
|
16
|
+
return this.title || UI_ALERT_DEFAULT_TITLES[this.type];
|
|
17
|
+
}
|
|
18
|
+
get iconType() {
|
|
19
|
+
switch (this.type) {
|
|
20
|
+
case 'success':
|
|
21
|
+
return 'check-circle';
|
|
22
|
+
case 'error':
|
|
23
|
+
return 'close-circle';
|
|
24
|
+
case 'warning':
|
|
25
|
+
return 'exclamation-circle';
|
|
26
|
+
default:
|
|
27
|
+
return 'info-circle';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
onClose() {
|
|
31
|
+
this.visible = false;
|
|
32
|
+
this.closed.emit();
|
|
33
|
+
}
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoAlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoAlertComponent, isStandalone: true, selector: "geo-alert", inputs: { type: "type", title: "title", message: "message", closable: "closable", visible: "visible", showIcon: "showIcon" }, outputs: { closed: "closed" }, host: { properties: { "class.geo-alert-host--hidden": "!visible" }, classAttribute: "geo-alert-host" }, ngImport: i0, template: "@if (visible) {\n <div class=\"geo-alert\" [class]=\"'geo-alert--' + type\" role=\"alert\">\n <div class=\"geo-alert__main\">\n @if (showIcon) {\n <span class=\"geo-alert__icon\" nz-icon [nzType]=\"iconType\" nzTheme=\"outline\"></span>\n }\n\n <div class=\"geo-alert__content\">\n <p class=\"geo-alert__title\">{{ displayTitle }}</p>\n @if (message) {\n <p class=\"geo-alert__message\">{{ message }}</p>\n }\n </div>\n </div>\n\n @if (closable) {\n <button type=\"button\" class=\"geo-alert__close\" aria-label=\"\u0110\u00F3ng th\u00F4ng b\u00E1o\" (click)=\"onClose()\">\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";geo-alert.geo-alert-host,.geo-alert-host{display:block;width:100%}.geo-alert-host--hidden{display:none}.geo-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;width:100%;padding:16px;border:1px solid transparent;border-radius:var(--geo-radius);box-sizing:border-box}.geo-alert__main{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1 1 auto}.geo-alert__icon{display:inline-flex;flex-shrink:0;width:24px;height:24px;font-size:24px;line-height:1}.geo-alert__content{display:flex;flex-direction:column;gap:0;min-width:0}.geo-alert__title,.geo-alert__message{margin:0;font-size:var(--geo-font-size-lg);line-height:24px}.geo-alert__title{font-weight:700}.geo-alert__message{font-weight:400}.geo-alert__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.geo-alert--success{background:var(--geo-color-success-light);border-color:var(--geo-color-success-default)}.geo-alert--success .geo-alert__title,.geo-alert--success .geo-alert__message,.geo-alert--success .geo-alert__icon{color:var(--geo-color-success-dark)}.geo-alert--success .geo-alert__close{color:var(--geo-color-success-default)}.geo-alert--error{background:var(--geo-color-error-light);border-color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__title,.geo-alert--error .geo-alert__message,.geo-alert--error .geo-alert__icon{color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__close{color:var(--geo-color-error-dark)}.geo-alert--warning{background:var(--geo-color-warning-light);border-color:var(--geo-color-warning-default)}.geo-alert--warning .geo-alert__title,.geo-alert--warning .geo-alert__message{color:var(--geo-color-warning-dark)}.geo-alert--warning .geo-alert__icon,.geo-alert--warning .geo-alert__close{color:var(--geo-color-warning-default)}.geo-alert--info{background:var(--geo-color-info-light);border-color:var(--geo-color-info-default)}.geo-alert--info .geo-alert__title,.geo-alert--info .geo-alert__message,.geo-alert--info .geo-alert__icon{color:var(--geo-color-info-dark)}.geo-alert--info .geo-alert__close{color:var(--geo-color-info-default)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoAlertComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'geo-alert', standalone: true, imports: [CommonModule, NzIconModule], encapsulation: ViewEncapsulation.None, host: {
|
|
40
|
+
class: 'geo-alert-host',
|
|
41
|
+
'[class.geo-alert-host--hidden]': '!visible',
|
|
42
|
+
}, template: "@if (visible) {\n <div class=\"geo-alert\" [class]=\"'geo-alert--' + type\" role=\"alert\">\n <div class=\"geo-alert__main\">\n @if (showIcon) {\n <span class=\"geo-alert__icon\" nz-icon [nzType]=\"iconType\" nzTheme=\"outline\"></span>\n }\n\n <div class=\"geo-alert__content\">\n <p class=\"geo-alert__title\">{{ displayTitle }}</p>\n @if (message) {\n <p class=\"geo-alert__message\">{{ message }}</p>\n }\n </div>\n </div>\n\n @if (closable) {\n <button type=\"button\" class=\"geo-alert__close\" aria-label=\"\u0110\u00F3ng th\u00F4ng b\u00E1o\" (click)=\"onClose()\">\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";geo-alert.geo-alert-host,.geo-alert-host{display:block;width:100%}.geo-alert-host--hidden{display:none}.geo-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;width:100%;padding:16px;border:1px solid transparent;border-radius:var(--geo-radius);box-sizing:border-box}.geo-alert__main{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1 1 auto}.geo-alert__icon{display:inline-flex;flex-shrink:0;width:24px;height:24px;font-size:24px;line-height:1}.geo-alert__content{display:flex;flex-direction:column;gap:0;min-width:0}.geo-alert__title,.geo-alert__message{margin:0;font-size:var(--geo-font-size-lg);line-height:24px}.geo-alert__title{font-weight:700}.geo-alert__message{font-weight:400}.geo-alert__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.geo-alert--success{background:var(--geo-color-success-light);border-color:var(--geo-color-success-default)}.geo-alert--success .geo-alert__title,.geo-alert--success .geo-alert__message,.geo-alert--success .geo-alert__icon{color:var(--geo-color-success-dark)}.geo-alert--success .geo-alert__close{color:var(--geo-color-success-default)}.geo-alert--error{background:var(--geo-color-error-light);border-color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__title,.geo-alert--error .geo-alert__message,.geo-alert--error .geo-alert__icon{color:var(--geo-color-error-default)}.geo-alert--error .geo-alert__close{color:var(--geo-color-error-dark)}.geo-alert--warning{background:var(--geo-color-warning-light);border-color:var(--geo-color-warning-default)}.geo-alert--warning .geo-alert__title,.geo-alert--warning .geo-alert__message{color:var(--geo-color-warning-dark)}.geo-alert--warning .geo-alert__icon,.geo-alert--warning .geo-alert__close{color:var(--geo-color-warning-default)}.geo-alert--info{background:var(--geo-color-info-light);border-color:var(--geo-color-info-default)}.geo-alert--info .geo-alert__title,.geo-alert--info .geo-alert__message,.geo-alert--info .geo-alert__icon{color:var(--geo-color-info-dark)}.geo-alert--info .geo-alert__close{color:var(--geo-color-info-default)}\n"] }]
|
|
43
|
+
}], propDecorators: { type: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], title: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], message: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], closable: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], visible: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], showIcon: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], closed: [{
|
|
56
|
+
type: Output
|
|
57
|
+
}] } });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWFsZXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1hbGVydC9nZW8tYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWFsZXJ0L2dlby1hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBYzFFLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsSUFBSSxHQUFpQixNQUFNLENBQUM7SUFDNUIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDYixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDZixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRWYsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFNUMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUssT0FBTztnQkFDVixPQUFPLGNBQWMsQ0FBQztZQUN4QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxvQkFBb0IsQ0FBQztZQUM5QjtnQkFDRSxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7d0dBOUJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDBVQ3ZCOUIsa3ZCQXNCQSx3dUVEUlksWUFBWSw4QkFBRSxZQUFZOzs0RkFTekIsaUJBQWlCO2tCQVo3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxnQkFBZ0I7d0JBQ3ZCLGdDQUFnQyxFQUFFLFVBQVU7cUJBQzdDOzhCQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuaW1wb3J0IHsgVUlfQUxFUlRfREVGQVVMVF9USVRMRVMsIEdlb0FsZXJ0VHlwZSB9IGZyb20gJy4vZ2VvLWFsZXJ0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLWFsZXJ0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTnpJY29uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tYWxlcnQuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdnZW8tYWxlcnQtaG9zdCcsXG4gICAgJ1tjbGFzcy5nZW8tYWxlcnQtaG9zdC0taGlkZGVuXSc6ICchdmlzaWJsZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdlb0FsZXJ0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgdHlwZTogR2VvQWxlcnRUeXBlID0gJ2luZm8nO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIGNsb3NhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgdmlzaWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dJY29uID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBkaXNwbGF5VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZSB8fCBVSV9BTEVSVF9ERUZBVUxUX1RJVExFU1t0aGlzLnR5cGVdO1xuICB9XG5cbiAgZ2V0IGljb25UeXBlKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICByZXR1cm4gJ2NoZWNrLWNpcmNsZSc7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnY2xvc2UtY2lyY2xlJztcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICByZXR1cm4gJ2V4Y2xhbWF0aW9uLWNpcmNsZSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ2luZm8tY2lyY2xlJztcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiQGlmICh2aXNpYmxlKSB7XG4gIDxkaXYgY2xhc3M9XCJnZW8tYWxlcnRcIiBbY2xhc3NdPVwiJ2dlby1hbGVydC0tJyArIHR5cGVcIiByb2xlPVwiYWxlcnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLWFsZXJ0X19tYWluXCI+XG4gICAgICBAaWYgKHNob3dJY29uKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWFsZXJ0X19pY29uXCIgbnotaWNvbiBbbnpUeXBlXT1cImljb25UeXBlXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnZW8tYWxlcnRfX2NvbnRlbnRcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJnZW8tYWxlcnRfX3RpdGxlXCI+e3sgZGlzcGxheVRpdGxlIH19PC9wPlxuICAgICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICA8cCBjbGFzcz1cImdlby1hbGVydF9fbWVzc2FnZVwiPnt7IG1lc3NhZ2UgfX08L3A+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnZW8tYWxlcnRfX2Nsb3NlXCIgYXJpYS1sYWJlbD1cIsSQw7NuZyB0aMO0bmcgYsOhb1wiIChjbGljayk9XCJvbkNsb3NlKClcIj5cbiAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJjbG9zZVwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const UI_ALERT_DEFAULT_TITLES = {
|
|
2
|
+
success: 'Thành công!',
|
|
3
|
+
error: 'Lỗi!',
|
|
4
|
+
warning: 'Cảnh báo!',
|
|
5
|
+
info: 'Thông tin!',
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWFsZXJ0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWFsZXJ0L2dlby1hbGVydC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBaUM7SUFDbkUsT0FBTyxFQUFFLGFBQWE7SUFDdEIsS0FBSyxFQUFFLE1BQU07SUFDYixPQUFPLEVBQUUsV0FBVztJQUNwQixJQUFJLEVBQUUsWUFBWTtDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgR2VvQWxlcnRUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJztcblxuZXhwb3J0IGNvbnN0IFVJX0FMRVJUX0RFRkFVTFRfVElUTEVTOiBSZWNvcmQ8R2VvQWxlcnRUeXBlLCBzdHJpbmc+ID0ge1xuICBzdWNjZXNzOiAnVGjDoG5oIGPDtG5nIScsXG4gIGVycm9yOiAnTOG7l2khJyxcbiAgd2FybmluZzogJ0PhuqNuaCBiw6FvIScsXG4gIGluZm86ICdUaMO0bmcgdGluIScsXG59O1xuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CommonModule, Location } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, inject, } from '@angular/core';
|
|
3
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "ng-zorro-antd/icon";
|
|
6
|
+
/**
|
|
7
|
+
* Nút quay lại dùng chung cho các page form/detail.
|
|
8
|
+
* Mặc định `history.back()` (−1). Set `[historyBack]="false"` nếu parent tự navigate.
|
|
9
|
+
*/
|
|
10
|
+
export class GeoBackButtonComponent {
|
|
11
|
+
location = inject(Location);
|
|
12
|
+
ariaLabel = 'Quay lại';
|
|
13
|
+
title = 'Quay lại';
|
|
14
|
+
disabled = false;
|
|
15
|
+
/** `true` (mặc định): `Location.back()` — về trang trước trong history. */
|
|
16
|
+
historyBack = true;
|
|
17
|
+
clicked = new EventEmitter();
|
|
18
|
+
onClick(event) {
|
|
19
|
+
if (this.disabled) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
event.stopPropagation();
|
|
24
|
+
this.clicked.emit(event);
|
|
25
|
+
if (this.historyBack) {
|
|
26
|
+
this.location.back();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBackButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GeoBackButtonComponent, isStandalone: true, selector: "geo-back-button", inputs: { ariaLabel: "ariaLabel", title: "title", disabled: "disabled", historyBack: "historyBack" }, outputs: { clicked: "clicked" }, host: { classAttribute: "geo-back-button-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-back-button\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.title]=\"title || ariaLabel\"\n [disabled]=\"disabled\"\n (click)=\"onClick($event)\"\n>\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\" aria-hidden=\"true\"></span>\n</button>\n", styles: [":host,.geo-back-button-host{display:inline-flex;flex-shrink:0;position:relative;z-index:2;pointer-events:auto}.geo-back-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--geo-radius);background:var(--geo-color-primary-surface-light);color:var(--geo-color-primary-default);cursor:pointer;pointer-events:auto;transition:background-color .15s ease}.geo-back-button .anticon{font-size:16px;pointer-events:none}.geo-back-button:hover:not(:disabled){background:var(--geo-color-primary-surface-light)}.geo-back-button:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-back-button:disabled{opacity:.45;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBackButtonComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'geo-back-button', standalone: true, imports: [CommonModule, NzIconModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
35
|
+
class: 'geo-back-button-host',
|
|
36
|
+
}, template: "<button\n type=\"button\"\n class=\"geo-back-button\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.title]=\"title || ariaLabel\"\n [disabled]=\"disabled\"\n (click)=\"onClick($event)\"\n>\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\" aria-hidden=\"true\"></span>\n</button>\n", styles: [":host,.geo-back-button-host{display:inline-flex;flex-shrink:0;position:relative;z-index:2;pointer-events:auto}.geo-back-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--geo-radius);background:var(--geo-color-primary-surface-light);color:var(--geo-color-primary-default);cursor:pointer;pointer-events:auto;transition:background-color .15s ease}.geo-back-button .anticon{font-size:16px;pointer-events:none}.geo-back-button:hover:not(:disabled){background:var(--geo-color-primary-surface-light)}.geo-back-button:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-back-button:disabled{opacity:.45;cursor:not-allowed}\n"] }]
|
|
37
|
+
}], propDecorators: { ariaLabel: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], title: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], disabled: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], historyBack: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], clicked: [{
|
|
46
|
+
type: Output
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJhY2stYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1iYWNrLWJ1dHRvbi9nZW8tYmFjay1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJhY2stYnV0dG9uL2dlby1iYWNrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUVsRDs7O0dBR0c7QUFZSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2hCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUN2QixLQUFLLEdBQUcsVUFBVSxDQUFDO0lBQ25CLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsMkVBQTJFO0lBQ2xFLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFbEIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFFbkQsT0FBTyxDQUFDLEtBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO3dHQXZCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQixvUUMxQm5DLHFTQVVBLHV4QkRRWSxZQUFZLDhCQUFFLFlBQVk7OzRGQVF6QixzQkFBc0I7a0JBWGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5Qjs4QkFLUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcblxuLyoqXG4gKiBOw7p0IHF1YXkgbOG6oWkgZMO5bmcgY2h1bmcgY2hvIGPDoWMgcGFnZSBmb3JtL2RldGFpbC5cbiAqIE3hurdjIMSR4buLbmggYGhpc3RvcnkuYmFjaygpYCAo4oiSMSkuIFNldCBgW2hpc3RvcnlCYWNrXT1cImZhbHNlXCJgIG7hur91IHBhcmVudCB04buxIG5hdmlnYXRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tYmFjay1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOekljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWJhY2stYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1iYWNrLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdnZW8tYmFjay1idXR0b24taG9zdCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdlb0JhY2tCdXR0b25Db21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcblxuICBASW5wdXQoKSBhcmlhTGFiZWwgPSAnUXVheSBs4bqhaSc7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ1F1YXkgbOG6oWknO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAvKiogYHRydWVgICht4bq3YyDEkeG7i25oKTogYExvY2F0aW9uLmJhY2soKWAg4oCUIHbhu4EgdHJhbmcgdHLGsOG7m2MgdHJvbmcgaGlzdG9yeS4gKi9cbiAgQElucHV0KCkgaGlzdG9yeUJhY2sgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGlja2VkLmVtaXQoZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMuaGlzdG9yeUJhY2spIHtcbiAgICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGJ1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgY2xhc3M9XCJnZW8tYmFjay1idXR0b25cIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gIFthdHRyLnRpdGxlXT1cInRpdGxlIHx8IGFyaWFMYWJlbFwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuPlxuICA8c3BhbiBuei1pY29uIG56VHlwZT1cImFycm93LWxlZnRcIiBuelRoZW1lPVwib3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { NzBreadCrumbModule } from 'ng-zorro-antd/breadcrumb';
|
|
5
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "ng-zorro-antd/breadcrumb";
|
|
9
|
+
import * as i3 from "ng-zorro-antd/icon";
|
|
10
|
+
/**
|
|
11
|
+
* Breadcrumb GEO — dựa trên `nz-breadcrumb`.
|
|
12
|
+
* Item thường: neutral gray; item active (cuối): primary + semibold.
|
|
13
|
+
*/
|
|
14
|
+
export class GeoBreadcrumbComponent {
|
|
15
|
+
items = [];
|
|
16
|
+
isActive(item, index) {
|
|
17
|
+
if (item.active != null) {
|
|
18
|
+
return item.active;
|
|
19
|
+
}
|
|
20
|
+
return index === this.items.length - 1;
|
|
21
|
+
}
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoBreadcrumbComponent, isStandalone: true, selector: "geo-breadcrumb", inputs: { items: "items" }, host: { classAttribute: "geo-breadcrumb-host" }, ngImport: i0, template: "<nav class=\"geo-breadcrumb\" aria-label=\"Breadcrumb\">\n <nz-breadcrumb class=\"geo-breadcrumb__antd\" [nzSeparator]=\"separatorTpl\">\n @for (item of items; track $index) {\n <nz-breadcrumb-item>\n @if (item.link && !isActive(item, $index)) {\n <a\n class=\"geo-breadcrumb__link\"\n [routerLink]=\"item.link\"\n [queryParams]=\"item.queryParams || null\"\n >\n {{ item.label }}\n </a>\n } @else {\n <span\n class=\"geo-breadcrumb__text\"\n [class.geo-breadcrumb__text--active]=\"isActive(item, $index)\"\n [attr.aria-current]=\"isActive(item, $index) ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n</nav>\n\n<ng-template #separatorTpl>\n <span class=\"geo-breadcrumb__separator\" nz-icon nzType=\"right\" nzTheme=\"outline\"></span>\n</ng-template>\n", styles: ["geo-breadcrumb.geo-breadcrumb-host,.geo-breadcrumb-host{display:block;background:transparent;font-family:var(--geo-font-family)}.geo-breadcrumb__antd.ant-breadcrumb{font-size:var(--geo-font-size-body);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-500)}.geo-breadcrumb__antd.ant-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0}.geo-breadcrumb__antd.ant-breadcrumb .ant-breadcrumb-separator{margin:0 8px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__separator{font-size:10px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__link{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular);text-decoration:none;transition:color .15s ease}.geo-breadcrumb__link:hover{color:var(--geo-color-primary-default)}.geo-breadcrumb__text{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular)}.geo-breadcrumb__text--active{color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: NzBreadCrumbModule }, { kind: "component", type: i2.NzBreadCrumbComponent, selector: "nz-breadcrumb", inputs: ["nzAutoGenerate", "nzSeparator", "nzRouteLabel", "nzRouteLabelFn", "nzRouteFn"], exportAs: ["nzBreadcrumb"] }, { kind: "component", type: i2.NzBreadCrumbItemComponent, selector: "nz-breadcrumb-item", inputs: ["nzOverlay"], exportAs: ["nzBreadcrumbItem"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoBreadcrumbComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{ selector: 'geo-breadcrumb', standalone: true, imports: [CommonModule, RouterModule, NzBreadCrumbModule, NzIconModule], encapsulation: ViewEncapsulation.None, host: {
|
|
28
|
+
class: 'geo-breadcrumb-host',
|
|
29
|
+
}, template: "<nav class=\"geo-breadcrumb\" aria-label=\"Breadcrumb\">\n <nz-breadcrumb class=\"geo-breadcrumb__antd\" [nzSeparator]=\"separatorTpl\">\n @for (item of items; track $index) {\n <nz-breadcrumb-item>\n @if (item.link && !isActive(item, $index)) {\n <a\n class=\"geo-breadcrumb__link\"\n [routerLink]=\"item.link\"\n [queryParams]=\"item.queryParams || null\"\n >\n {{ item.label }}\n </a>\n } @else {\n <span\n class=\"geo-breadcrumb__text\"\n [class.geo-breadcrumb__text--active]=\"isActive(item, $index)\"\n [attr.aria-current]=\"isActive(item, $index) ? 'page' : null\"\n >\n {{ item.label }}\n </span>\n }\n </nz-breadcrumb-item>\n }\n </nz-breadcrumb>\n</nav>\n\n<ng-template #separatorTpl>\n <span class=\"geo-breadcrumb__separator\" nz-icon nzType=\"right\" nzTheme=\"outline\"></span>\n</ng-template>\n", styles: ["geo-breadcrumb.geo-breadcrumb-host,.geo-breadcrumb-host{display:block;background:transparent;font-family:var(--geo-font-family)}.geo-breadcrumb__antd.ant-breadcrumb{font-size:var(--geo-font-size-body);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-500)}.geo-breadcrumb__antd.ant-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0}.geo-breadcrumb__antd.ant-breadcrumb .ant-breadcrumb-separator{margin:0 8px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__separator{font-size:10px;color:var(--geo-color-neutral-500)}.geo-breadcrumb__link{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular);text-decoration:none;transition:color .15s ease}.geo-breadcrumb__link:hover{color:var(--geo-color-primary-default)}.geo-breadcrumb__text{color:var(--geo-color-neutral-500);font-weight:var(--geo-font-weight-regular)}.geo-breadcrumb__text--active{color:var(--geo-color-primary-default);font-weight:var(--geo-font-weight-semibold)}\n"] }]
|
|
30
|
+
}], propDecorators: { items: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}] } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJyZWFkY3J1bWIvZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJyZWFkY3J1bWIvZ2VvLWJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBR2xEOzs7R0FHRztBQVlILE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsS0FBSyxHQUF3QixFQUFFLENBQUM7SUFFekMsUUFBUSxDQUFDLElBQXVCLEVBQUUsS0FBYTtRQUM3QyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQzt3R0FSVSxzQkFBc0I7NEZBQXRCLHNCQUFzQix1SkN0Qm5DLGkrQkE2QkEsdWlDRGZZLFlBQVksOEJBQUUsWUFBWSwrUUFBRSxrQkFBa0Isd1hBQUUsWUFBWTs7NEZBUTNELHNCQUFzQjtrQkFYbEMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxpQkFHeEQsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3FCQUM3Qjs4QkFHUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOekJyZWFkQ3J1bWJNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2JyZWFkY3J1bWInO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IEdlb0JyZWFkY3J1bWJJdGVtIH0gZnJvbSAnLi9nZW8tYnJlYWRjcnVtYi50eXBlcyc7XG5cbi8qKlxuICogQnJlYWRjcnVtYiBHRU8g4oCUIGThu7FhIHRyw6puIGBuei1icmVhZGNydW1iYC5cbiAqIEl0ZW0gdGjGsOG7nW5nOiBuZXV0cmFsIGdyYXk7IGl0ZW0gYWN0aXZlIChjdeG7kWkpOiBwcmltYXJ5ICsgc2VtaWJvbGQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1icmVhZGNydW1iJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBOekJyZWFkQ3J1bWJNb2R1bGUsIE56SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby1icmVhZGNydW1iLWhvc3QnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHZW9CcmVhZGNydW1iQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbXM6IEdlb0JyZWFkY3J1bWJJdGVtW10gPSBbXTtcblxuICBpc0FjdGl2ZShpdGVtOiBHZW9CcmVhZGNydW1iSXRlbSwgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmIChpdGVtLmFjdGl2ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gaXRlbS5hY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiBpbmRleCA9PT0gdGhpcy5pdGVtcy5sZW5ndGggLSAxO1xuICB9XG59XG4iLCI8bmF2IGNsYXNzPVwiZ2VvLWJyZWFkY3J1bWJcIiBhcmlhLWxhYmVsPVwiQnJlYWRjcnVtYlwiPlxuICA8bnotYnJlYWRjcnVtYiBjbGFzcz1cImdlby1icmVhZGNydW1iX19hbnRkXCIgW256U2VwYXJhdG9yXT1cInNlcGFyYXRvclRwbFwiPlxuICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPG56LWJyZWFkY3J1bWItaXRlbT5cbiAgICAgICAgQGlmIChpdGVtLmxpbmsgJiYgIWlzQWN0aXZlKGl0ZW0sICRpbmRleCkpIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJnZW8tYnJlYWRjcnVtYl9fbGlua1wiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLmxpbmtcIlxuICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cIml0ZW0ucXVlcnlQYXJhbXMgfHwgbnVsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZ2VvLWJyZWFkY3J1bWJfX3RleHRcIlxuICAgICAgICAgICAgW2NsYXNzLmdlby1icmVhZGNydW1iX190ZXh0LS1hY3RpdmVdPVwiaXNBY3RpdmUoaXRlbSwgJGluZGV4KVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXNBY3RpdmUoaXRlbSwgJGluZGV4KSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvbnotYnJlYWRjcnVtYi1pdGVtPlxuICAgIH1cbiAgPC9uei1icmVhZGNydW1iPlxuPC9uYXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VwYXJhdG9yVHBsPlxuICA8c3BhbiBjbGFzcz1cImdlby1icmVhZGNydW1iX19zZXBhcmF0b3JcIiBuei1pY29uIG56VHlwZT1cInJpZ2h0XCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJyZWFkY3J1bWIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tYnJlYWRjcnVtYi9nZW8tYnJlYWRjcnVtYi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHZW9CcmVhZGNydW1iSXRlbSB7XG4gIC8qKiBIaeG7g24gdGjhu4sgdHLDqm4gYnJlYWRjcnVtYi4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIFJvdXRlciBsaW5rIChvcHRpb25hbCkg4oCUIGLhu48gdHLhu5FuZyA9IGtow7RuZyBwaOG6o2kgbGluay4gKi9cbiAgbGluaz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKiogUXVlcnkgcGFyYW1zIGtoaSBkw7luZyByb3V0ZXJMaW5rLiAqL1xuICBxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xuICAvKiogxJDDoW5oIGThuqV1IGl0ZW0gaGnhu4duIHThuqFpICh0aMaw4budbmcgbMOgIGl0ZW0gY3Xhu5FpKS4gKi9cbiAgYWN0aXZlPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
4
|
+
import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "ng-zorro-antd/icon";
|
|
8
|
+
import * as i3 from "ng-zorro-antd/tooltip";
|
|
9
|
+
export class GeoButtonComponent {
|
|
10
|
+
appearance = 'primary';
|
|
11
|
+
color = 'brand';
|
|
12
|
+
icon;
|
|
13
|
+
iconTheme = 'outline';
|
|
14
|
+
/** Vị trí icon: `start` (trái) hoặc `end` (phải). */
|
|
15
|
+
iconPlacement = 'start';
|
|
16
|
+
iconOnly = false;
|
|
17
|
+
type = 'button';
|
|
18
|
+
disabled = false;
|
|
19
|
+
/** Tooltip Ant Design (`nz-tooltip`). Ưu tiên hơn `title` native. */
|
|
20
|
+
tooltip = '';
|
|
21
|
+
tooltipPlacement = 'top';
|
|
22
|
+
/** Trạng thái active (vd. toolbar toggle đang bật). */
|
|
23
|
+
active = false;
|
|
24
|
+
/** Native `title` — fallback khi không set `tooltip`. */
|
|
25
|
+
title = '';
|
|
26
|
+
clicked = new EventEmitter();
|
|
27
|
+
get tooltipTitle() {
|
|
28
|
+
return this.tooltip || this.title || '';
|
|
29
|
+
}
|
|
30
|
+
get classNames() {
|
|
31
|
+
return {
|
|
32
|
+
[`geo-button--${this.appearance}`]: true,
|
|
33
|
+
[`geo-button--${this.color}`]: true,
|
|
34
|
+
'geo-button--icon-only': this.iconOnly,
|
|
35
|
+
'geo-button--icon-end': !!this.icon && this.iconPlacement === 'end',
|
|
36
|
+
'geo-button--active': this.active,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
onClick(event) {
|
|
40
|
+
if (!this.disabled) {
|
|
41
|
+
this.clicked.emit(event);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoButtonComponent, isStandalone: true, selector: "geo-button", inputs: { appearance: "appearance", color: "color", icon: "icon", iconTheme: "iconTheme", iconPlacement: "iconPlacement", iconOnly: "iconOnly", type: "type", disabled: "disabled", tooltip: "tooltip", tooltipPlacement: "tooltipPlacement", active: "active", title: "title" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n class=\"geo-button\"\n [ngClass]=\"classNames\"\n [nz-tooltip]=\"tooltipTitle\"\n [nzTooltipPlacement]=\"tooltipPlacement\"\n [nzTooltipTrigger]=\"tooltipTitle ? 'hover' : null\"\n [attr.aria-label]=\"tooltipTitle || null\"\n [attr.aria-pressed]=\"active ? true : null\"\n (click)=\"onClick($event)\"\n>\n @if (icon && iconPlacement === 'start') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n @if (!iconOnly) {\n <span class=\"geo-button__label\">\n <ng-content></ng-content>\n </span>\n }\n @if (icon && iconPlacement === 'end') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n</button>\n", styles: [".geo-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--geo-control-height);min-height:var(--geo-control-height);padding:0 16px;border-radius:var(--geo-radius);border:1px solid transparent;font-size:var(--geo-font-size-sm);font-weight:500;line-height:normal;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;font-family:inherit;background:transparent;box-sizing:border-box}.geo-button.geo-button--brand{--geo-btn-tone: var(--geo-color-primary-default);--geo-btn-tone-dark: var(--geo-color-primary-hover);--geo-btn-tone-surface: var(--geo-color-primary-surface-light);--geo-btn-secondary-hover: var(--geo-color-primary-secondary-hover)}.geo-button.geo-button--danger{--geo-btn-tone: var(--geo-color-error-default);--geo-btn-tone-dark: var(--geo-color-error-dark);--geo-btn-tone-surface: var(--geo-color-error-light);--geo-btn-secondary-hover: var(--geo-color-error-light)}.geo-button.geo-button--warning{--geo-btn-tone: var(--geo-color-warning-default);--geo-btn-tone-dark: var(--geo-color-warning-dark);--geo-btn-tone-surface: var(--geo-color-warning-light);--geo-btn-secondary-hover: var(--geo-color-warning-light)}.geo-button.geo-button--success{--geo-btn-tone: var(--geo-color-success-default);--geo-btn-tone-dark: var(--geo-color-success-dark);--geo-btn-tone-surface: var(--geo-color-success-light);--geo-btn-secondary-hover: var(--geo-color-success-light)}.geo-button:disabled{cursor:not-allowed;pointer-events:none}.geo-button--primary{background:var(--geo-btn-tone);border-color:var(--geo-btn-tone);color:var(--geo-color-neutral-white)}.geo-button--primary:hover:not(:disabled){background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark)}.geo-button--primary:disabled{background:var(--geo-color-neutral-300);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--secondary{background:var(--geo-color-neutral-white);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone)}.geo-button--secondary:hover:not(:disabled){background:var(--geo-btn-secondary-hover)}.geo-button--secondary:disabled{background:var(--geo-color-neutral-white);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--tertiary{background:transparent;border-color:transparent;color:var(--geo-btn-tone)}.geo-button--tertiary:hover:not(:disabled){background:var(--geo-btn-tone-surface)}.geo-button--tertiary:disabled{background:transparent;border-color:transparent;color:var(--geo-color-neutral-disabled-text)}.geo-button--icon-only{width:var(--geo-control-height);min-width:var(--geo-control-height);padding:0}.geo-button--active:not(:disabled).geo-button--secondary,.geo-button--active:not(:disabled).geo-button--tertiary{background:var(--geo-btn-tone-surface);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone);box-shadow:inset 0 0 0 1px var(--geo-btn-tone)}.geo-button--active:not(:disabled).geo-button--primary{background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark);color:var(--geo-color-neutral-white)}.geo-button__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;font-size:16px;line-height:1}.geo-button__icon:empty{display:none}.geo-button__icon :deep(.anticon),.geo-button__icon :deep(em){width:16px;height:16px;font-size:16px}.geo-button__label{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i3.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }] });
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoButtonComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'geo-button', standalone: true, imports: [CommonModule, NzIconModule, NzToolTipModule], template: "<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n class=\"geo-button\"\n [ngClass]=\"classNames\"\n [nz-tooltip]=\"tooltipTitle\"\n [nzTooltipPlacement]=\"tooltipPlacement\"\n [nzTooltipTrigger]=\"tooltipTitle ? 'hover' : null\"\n [attr.aria-label]=\"tooltipTitle || null\"\n [attr.aria-pressed]=\"active ? true : null\"\n (click)=\"onClick($event)\"\n>\n @if (icon && iconPlacement === 'start') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n @if (!iconOnly) {\n <span class=\"geo-button__label\">\n <ng-content></ng-content>\n </span>\n }\n @if (icon && iconPlacement === 'end') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n</button>\n", styles: [".geo-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--geo-control-height);min-height:var(--geo-control-height);padding:0 16px;border-radius:var(--geo-radius);border:1px solid transparent;font-size:var(--geo-font-size-sm);font-weight:500;line-height:normal;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;font-family:inherit;background:transparent;box-sizing:border-box}.geo-button.geo-button--brand{--geo-btn-tone: var(--geo-color-primary-default);--geo-btn-tone-dark: var(--geo-color-primary-hover);--geo-btn-tone-surface: var(--geo-color-primary-surface-light);--geo-btn-secondary-hover: var(--geo-color-primary-secondary-hover)}.geo-button.geo-button--danger{--geo-btn-tone: var(--geo-color-error-default);--geo-btn-tone-dark: var(--geo-color-error-dark);--geo-btn-tone-surface: var(--geo-color-error-light);--geo-btn-secondary-hover: var(--geo-color-error-light)}.geo-button.geo-button--warning{--geo-btn-tone: var(--geo-color-warning-default);--geo-btn-tone-dark: var(--geo-color-warning-dark);--geo-btn-tone-surface: var(--geo-color-warning-light);--geo-btn-secondary-hover: var(--geo-color-warning-light)}.geo-button.geo-button--success{--geo-btn-tone: var(--geo-color-success-default);--geo-btn-tone-dark: var(--geo-color-success-dark);--geo-btn-tone-surface: var(--geo-color-success-light);--geo-btn-secondary-hover: var(--geo-color-success-light)}.geo-button:disabled{cursor:not-allowed;pointer-events:none}.geo-button--primary{background:var(--geo-btn-tone);border-color:var(--geo-btn-tone);color:var(--geo-color-neutral-white)}.geo-button--primary:hover:not(:disabled){background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark)}.geo-button--primary:disabled{background:var(--geo-color-neutral-300);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--secondary{background:var(--geo-color-neutral-white);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone)}.geo-button--secondary:hover:not(:disabled){background:var(--geo-btn-secondary-hover)}.geo-button--secondary:disabled{background:var(--geo-color-neutral-white);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--tertiary{background:transparent;border-color:transparent;color:var(--geo-btn-tone)}.geo-button--tertiary:hover:not(:disabled){background:var(--geo-btn-tone-surface)}.geo-button--tertiary:disabled{background:transparent;border-color:transparent;color:var(--geo-color-neutral-disabled-text)}.geo-button--icon-only{width:var(--geo-control-height);min-width:var(--geo-control-height);padding:0}.geo-button--active:not(:disabled).geo-button--secondary,.geo-button--active:not(:disabled).geo-button--tertiary{background:var(--geo-btn-tone-surface);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone);box-shadow:inset 0 0 0 1px var(--geo-btn-tone)}.geo-button--active:not(:disabled).geo-button--primary{background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark);color:var(--geo-color-neutral-white)}.geo-button__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;font-size:16px;line-height:1}.geo-button__icon:empty{display:none}.geo-button__icon :deep(.anticon),.geo-button__icon :deep(em){width:16px;height:16px;font-size:16px}.geo-button__label{display:inline-flex;align-items:center}\n"] }]
|
|
50
|
+
}], propDecorators: { appearance: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], color: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], icon: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], iconTheme: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], iconPlacement: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], iconOnly: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], type: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], disabled: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], tooltip: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], tooltipPlacement: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], active: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], title: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], clicked: [{
|
|
75
|
+
type: Output
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tYnV0dG9uL2dlby1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJ1dHRvbi9nZW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBVXhELE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsVUFBVSxHQUF3QixTQUFTLENBQUM7SUFDNUMsS0FBSyxHQUFtQixPQUFPLENBQUM7SUFDaEMsSUFBSSxDQUFVO0lBQ2QsU0FBUyxHQUFtQyxTQUFTLENBQUM7SUFDL0QscURBQXFEO0lBQzVDLGFBQWEsR0FBb0IsT0FBTyxDQUFDO0lBQ3pDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsSUFBSSxHQUF3QixRQUFRLENBQUM7SUFDckMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixxRUFBcUU7SUFDNUQsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGdCQUFnQixHQUE4QixLQUFLLENBQUM7SUFDN0QsdURBQXVEO0lBQzlDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIseURBQXlEO0lBQ2hELEtBQUssR0FBRyxFQUFFLENBQUM7SUFFVixPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUVuRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU87WUFDTCxDQUFDLGVBQWUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUN4QyxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNuQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN0QyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUs7WUFDbkUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzt3R0F0Q1Usa0JBQWtCOzRGQUFsQixrQkFBa0IseVhDYi9CLHMwQkE0QkEsMDdHRG5CWSxZQUFZLDRIQUFFLFlBQVksaU5BQUUsZUFBZTs7NEZBSTFDLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUM7OEJBSzdDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IE56VG9vbFRpcE1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvdG9vbHRpcCc7XG5pbXBvcnQgeyBHZW9CdXR0b25BcHBlYXJhbmNlLCBHZW9CdXR0b25Db2xvciwgR2VvQnV0dG9uVG9vbHRpcFBsYWNlbWVudCB9IGZyb20gJy4vZ2VvLWJ1dHRvbi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOekljb25Nb2R1bGUsIE56VG9vbFRpcE1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1idXR0b24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBHZW9CdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBHZW9CdXR0b25BcHBlYXJhbmNlID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBjb2xvcjogR2VvQnV0dG9uQ29sb3IgPSAnYnJhbmQnO1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uVGhlbWU6ICdvdXRsaW5lJyB8ICdmaWxsJyB8ICd0d290b25lJyA9ICdvdXRsaW5lJztcbiAgLyoqIFbhu4sgdHLDrSBpY29uOiBgc3RhcnRgICh0csOhaSkgaG/hurdjIGBlbmRgIChwaOG6o2kpLiAqL1xuICBASW5wdXQoKSBpY29uUGxhY2VtZW50OiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuICBASW5wdXQoKSBpY29uT25seSA9IGZhbHNlO1xuICBASW5wdXQoKSB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnID0gJ2J1dHRvbic7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKiBUb29sdGlwIEFudCBEZXNpZ24gKGBuei10b29sdGlwYCkuIMavdSB0acOqbiBoxqFuIGB0aXRsZWAgbmF0aXZlLiAqL1xuICBASW5wdXQoKSB0b29sdGlwID0gJyc7XG4gIEBJbnB1dCgpIHRvb2x0aXBQbGFjZW1lbnQ6IEdlb0J1dHRvblRvb2x0aXBQbGFjZW1lbnQgPSAndG9wJztcbiAgLyoqIFRy4bqhbmcgdGjDoWkgYWN0aXZlICh2ZC4gdG9vbGJhciB0b2dnbGUgxJFhbmcgYuG6rXQpLiAqL1xuICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcbiAgLyoqIE5hdGl2ZSBgdGl0bGVgIOKAlCBmYWxsYmFjayBraGkga2jDtG5nIHNldCBgdG9vbHRpcGAuICovXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG5cbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgZ2V0IHRvb2x0aXBUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvb2x0aXAgfHwgdGhpcy50aXRsZSB8fCAnJztcbiAgfVxuXG4gIGdldCBjbGFzc05hbWVzKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW2BnZW8tYnV0dG9uLS0ke3RoaXMuYXBwZWFyYW5jZX1gXTogdHJ1ZSxcbiAgICAgIFtgZ2VvLWJ1dHRvbi0tJHt0aGlzLmNvbG9yfWBdOiB0cnVlLFxuICAgICAgJ2dlby1idXR0b24tLWljb24tb25seSc6IHRoaXMuaWNvbk9ubHksXG4gICAgICAnZ2VvLWJ1dHRvbi0taWNvbi1lbmQnOiAhIXRoaXMuaWNvbiAmJiB0aGlzLmljb25QbGFjZW1lbnQgPT09ICdlbmQnLFxuICAgICAgJ2dlby1idXR0b24tLWFjdGl2ZSc6IHRoaXMuYWN0aXZlLFxuICAgIH07XG4gIH1cblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIFt0eXBlXT1cInR5cGVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBjbGFzcz1cImdlby1idXR0b25cIlxuICBbbmdDbGFzc109XCJjbGFzc05hbWVzXCJcbiAgW256LXRvb2x0aXBdPVwidG9vbHRpcFRpdGxlXCJcbiAgW256VG9vbHRpcFBsYWNlbWVudF09XCJ0b29sdGlwUGxhY2VtZW50XCJcbiAgW256VG9vbHRpcFRyaWdnZXJdPVwidG9vbHRpcFRpdGxlID8gJ2hvdmVyJyA6IG51bGxcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2x0aXBUaXRsZSB8fCBudWxsXCJcbiAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cImFjdGl2ZSA/IHRydWUgOiBudWxsXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gIEBpZiAoaWNvbiAmJiBpY29uUGxhY2VtZW50ID09PSAnc3RhcnQnKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJnZW8tYnV0dG9uX19pY29uXCI+XG4gICAgICA8c3BhbiBuei1pY29uIFtuelR5cGVdPVwiaWNvblwiIFtuelRoZW1lXT1cImljb25UaGVtZVwiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIH1cbiAgQGlmICghaWNvbk9ubHkpIHtcbiAgICA8c3BhbiBjbGFzcz1cImdlby1idXR0b25fX2xhYmVsXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuICB9XG4gIEBpZiAoaWNvbiAmJiBpY29uUGxhY2VtZW50ID09PSAnZW5kJykge1xuICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWJ1dHRvbl9faWNvblwiPlxuICAgICAgPHNwYW4gbnotaWNvbiBbbnpUeXBlXT1cImljb25cIiBbbnpUaGVtZV09XCJpY29uVGhlbWVcIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICB9XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJ1dHRvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1idXR0b24vZ2VvLWJ1dHRvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgR2VvQnV0dG9uQXBwZWFyYW5jZSA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5JztcblxuZXhwb3J0IHR5cGUgR2VvQnV0dG9uQ29sb3IgPSAnYnJhbmQnIHwgJ2RhbmdlcicgfCAnd2FybmluZycgfCAnc3VjY2Vzcyc7XG5cbi8qKiBLaOG7m3AgYE56VG9vbHRpcFBsYWNlbWVudGAg4oCUIGdp4buvIHR5cGUgaOG6uXAgxJHhu4MgZG9tYWluIGtow7RuZyBpbXBvcnQgbmctem9ycm8uICovXG5leHBvcnQgdHlwZSBHZW9CdXR0b25Ub29sdGlwUGxhY2VtZW50ID1cbiAgfCAndG9wJ1xuICB8ICdsZWZ0J1xuICB8ICdyaWdodCdcbiAgfCAnYm90dG9tJ1xuICB8ICd0b3BMZWZ0J1xuICB8ICd0b3BSaWdodCdcbiAgfCAnYm90dG9tTGVmdCdcbiAgfCAnYm90dG9tUmlnaHQnXG4gIHwgJ2xlZnRUb3AnXG4gIHwgJ2xlZnRCb3R0b20nXG4gIHwgJ3JpZ2h0VG9wJ1xuICB8ICdyaWdodEJvdHRvbSc7XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { NgZorroAntdModule } from '../../ng-zorro/ng-zorro-antd.module';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "ng-zorro-antd/checkbox";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
export class GeoCheckboxComponent {
|
|
8
|
+
label = '';
|
|
9
|
+
checked = false;
|
|
10
|
+
disabled = false;
|
|
11
|
+
indeterminate = false;
|
|
12
|
+
checkedChange = new EventEmitter();
|
|
13
|
+
onChange(value) {
|
|
14
|
+
this.checked = value;
|
|
15
|
+
this.checkedChange.emit(value);
|
|
16
|
+
}
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GeoCheckboxComponent, isStandalone: true, selector: "geo-checkbox", inputs: { label: "label", checked: "checked", disabled: "disabled", indeterminate: "indeterminate" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<label\n nz-checkbox\n class=\"geo-checkbox\"\n [nzDisabled]=\"disabled\"\n [nzIndeterminate]=\"indeterminate\"\n [(ngModel)]=\"checked\"\n (ngModelChange)=\"onChange($event)\"\n>{{ label }}</label>\n", styles: ["geo-checkbox{display:inline-block;--ant-primary-color: var(--geo-color-primary-default);--ant-primary-color-hover: var(--geo-color-primary-hover);--ant-primary-color-active: var(--geo-color-primary-hover)}geo-checkbox .geo-checkbox{font-size:14px;color:var(--geo-color-neutral-900)}geo-checkbox .ant-checkbox:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-primary-default)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):after{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-neutral-white)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner:after{background-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-input:focus+.ant-checkbox-inner,geo-checkbox .ant-checkbox-input:focus-visible+.ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{background-color:var(--geo-color-primary-hover)!important;border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner:after{background-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-disabled .ant-checkbox-inner{background-color:var(--geo-color-neutral-100)!important;border-color:var(--geo-color-neutral-300)!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:#00000040!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#00000040!important}\n"], dependencies: [{ kind: "ngmodule", type: NgZorroAntdModule }, { kind: "component", type: i1.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoCheckboxComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{ selector: 'geo-checkbox', standalone: true, imports: [NgZorroAntdModule, FormsModule], encapsulation: ViewEncapsulation.None, template: "<label\n nz-checkbox\n class=\"geo-checkbox\"\n [nzDisabled]=\"disabled\"\n [nzIndeterminate]=\"indeterminate\"\n [(ngModel)]=\"checked\"\n (ngModelChange)=\"onChange($event)\"\n>{{ label }}</label>\n", styles: ["geo-checkbox{display:inline-block;--ant-primary-color: var(--geo-color-primary-default);--ant-primary-color-hover: var(--geo-color-primary-hover);--ant-primary-color-active: var(--geo-color-primary-hover)}geo-checkbox .geo-checkbox{font-size:14px;color:var(--geo-color-neutral-900)}geo-checkbox .ant-checkbox:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-primary-default)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):after{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-neutral-white)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner:after{background-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-input:focus+.ant-checkbox-inner,geo-checkbox .ant-checkbox-input:focus-visible+.ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{background-color:var(--geo-color-primary-hover)!important;border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner:after{background-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-disabled .ant-checkbox-inner{background-color:var(--geo-color-neutral-100)!important;border-color:var(--geo-color-neutral-300)!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:#00000040!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#00000040!important}\n"] }]
|
|
23
|
+
}], propDecorators: { label: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], checked: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], disabled: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], indeterminate: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], checkedChange: [{
|
|
32
|
+
type: Output
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1jaGVja2JveC9nZW8tY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWNoZWNrYm94L2dlby1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztBQVV4RSxNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUVyQixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUV0RCxRQUFRLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQVhVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDJOQ1pqQyxnTkFRQSxpdEVERFksaUJBQWlCLGdRQUFFLFdBQVc7OzRGQUs3QixvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFHMUIsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1pvcnJvQW50ZE1vZHVsZSB9IGZyb20gJy4uLy4uL25nLXpvcnJvL25nLXpvcnJvLWFudGQubW9kdWxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLWNoZWNrYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nWm9ycm9BbnRkTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2VvLWNoZWNrYm94LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvQ2hlY2tib3hDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBjaGVja2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBvbkNoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxufVxuIiwiPGxhYmVsXG4gIG56LWNoZWNrYm94XG4gIGNsYXNzPVwiZ2VvLWNoZWNrYm94XCJcbiAgW256RGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbbnpJbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICBbKG5nTW9kZWwpXT1cImNoZWNrZWRcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbj57eyBsYWJlbCB9fTwvbGFiZWw+XG4iXX0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgZorroAntdModule } from '../../ng-zorro/ng-zorro-antd.module';
|
|
4
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
5
|
+
import { GeoButtonComponent } from '../geo-button/geo-button.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "ng-zorro-antd/core/transition-patch";
|
|
8
|
+
import * as i2 from "ng-zorro-antd/icon";
|
|
9
|
+
import * as i3 from "ng-zorro-antd/modal";
|
|
10
|
+
export class GeoConfirmModalComponent {
|
|
11
|
+
visible = false;
|
|
12
|
+
title = 'Xác nhận xoá';
|
|
13
|
+
message = '';
|
|
14
|
+
highlight = '';
|
|
15
|
+
description = 'Hành động không thể hoàn tác, bạn chắc chắn muốn thực hiện?';
|
|
16
|
+
cancelText = 'Hủy';
|
|
17
|
+
confirmText = 'Xác nhận';
|
|
18
|
+
confirmLoading = false;
|
|
19
|
+
width = 445;
|
|
20
|
+
maskClosable = false;
|
|
21
|
+
closable = true;
|
|
22
|
+
visibleChange = new EventEmitter();
|
|
23
|
+
confirm = new EventEmitter();
|
|
24
|
+
cancel = new EventEmitter();
|
|
25
|
+
get hasDefaultBody() {
|
|
26
|
+
return !!(this.message || this.highlight || this.description);
|
|
27
|
+
}
|
|
28
|
+
onVisibleChange(visible) {
|
|
29
|
+
if (this.visible === visible) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.visibleChange.emit(visible);
|
|
33
|
+
}
|
|
34
|
+
onCancel() {
|
|
35
|
+
this.visibleChange.emit(false);
|
|
36
|
+
this.cancel.emit();
|
|
37
|
+
}
|
|
38
|
+
onConfirm() {
|
|
39
|
+
this.confirm.emit();
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoConfirmModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoConfirmModalComponent, isStandalone: true, selector: "geo-confirm-modal", inputs: { visible: "visible", title: "title", message: "message", highlight: "highlight", description: "description", cancelText: "cancelText", confirmText: "confirmText", confirmLoading: "confirmLoading", width: "width", maskClosable: "maskClosable", closable: "closable" }, outputs: { visibleChange: "visibleChange", confirm: "confirm", cancel: "cancel" }, ngImport: i0, template: "<nz-modal\n [nzVisible]=\"visible\"\n [nzTitle]=\"''\"\n [nzFooter]=\"null\"\n [nzClosable]=\"false\"\n [nzMaskClosable]=\"maskClosable\"\n [nzWidth]=\"width\"\n nzWrapClassName=\"geo-confirm-modal-wrap\"\n nzClassName=\"geo-confirm-modal\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n>\n <ng-container *nzModalContent>\n <div class=\"geo-confirm-modal__content\">\n <div class=\"geo-confirm-modal__header\">\n <h2 class=\"geo-confirm-modal__title\">{{ title }}</h2>\n @if (closable) {\n <button\n type=\"button\"\n class=\"geo-confirm-modal__close\"\n aria-label=\"\u0110\u00F3ng\"\n (click)=\"onCancel()\"\n >\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n\n <div class=\"geo-confirm-modal__body\">\n @if (hasDefaultBody) {\n <div class=\"geo-confirm-modal__message\">\n @if (message || highlight) {\n <p class=\"geo-confirm-modal__paragraph\">\n @if (message) {\n <span>{{ message }}</span>\n }\n @if (highlight) {\n <strong class=\"geo-confirm-modal__highlight\">\u201C{{ highlight }}\u201D</strong>\n }\n </p>\n }\n @if (description) {\n <p class=\"geo-confirm-modal__paragraph\">{{ description }}</p>\n }\n </div>\n } @else {\n <div class=\"geo-confirm-modal__message\">\n <ng-content></ng-content>\n </div>\n }\n </div>\n\n <div class=\"geo-confirm-modal__footer\">\n <geo-button appearance=\"secondary\" color=\"brand\" (clicked)=\"onCancel()\">\n {{ cancelText }}\n </geo-button>\n <geo-button\n appearance=\"primary\"\n color=\"brand\"\n [disabled]=\"confirmLoading\"\n (clicked)=\"onConfirm()\"\n >\n {{ confirmText }}\n </geo-button>\n </div>\n </div>\n </ng-container>\n</nz-modal>\n", styles: [".geo-confirm-modal-wrap .ant-modal-header{display:none}.geo-confirm-modal-wrap .ant-modal-content{border-radius:var(--geo-radius);padding:0;overflow:hidden}.geo-confirm-modal-wrap .ant-modal-body{padding:0}.geo-confirm-modal__content{display:flex;flex-direction:column;gap:17px;padding:24px;background:var(--geo-color-neutral-white)}.geo-confirm-modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px}.geo-confirm-modal__title{margin:0;font-size:18px;font-weight:700;line-height:normal;color:var(--geo-color-neutral-500)}.geo-confirm-modal__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--geo-color-neutral-500);cursor:pointer;flex-shrink:0}.geo-confirm-modal__close:hover{color:var(--geo-color-neutral-900)}.geo-confirm-modal__body{display:flex;flex-direction:column}.geo-confirm-modal__message{display:flex;flex-direction:column;gap:8px;max-width:397px;font-size:14px;line-height:1.4;color:var(--geo-color-neutral-900)}.geo-confirm-modal__paragraph{margin:0}.geo-confirm-modal__highlight{font-weight:600}.geo-confirm-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: NgZorroAntdModule }, { kind: "directive", type: i1.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: i3.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i3.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "component", type: GeoButtonComponent, selector: "geo-button", inputs: ["appearance", "color", "icon", "iconTheme", "iconPlacement", "iconOnly", "type", "disabled", "tooltip", "tooltipPlacement", "active", "title"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoConfirmModalComponent, decorators: [{
|
|
45
|
+
type: Component,
|
|
46
|
+
args: [{ selector: 'geo-confirm-modal', standalone: true, imports: [CommonModule, NgZorroAntdModule, NzIconModule, GeoButtonComponent], encapsulation: ViewEncapsulation.None, template: "<nz-modal\n [nzVisible]=\"visible\"\n [nzTitle]=\"''\"\n [nzFooter]=\"null\"\n [nzClosable]=\"false\"\n [nzMaskClosable]=\"maskClosable\"\n [nzWidth]=\"width\"\n nzWrapClassName=\"geo-confirm-modal-wrap\"\n nzClassName=\"geo-confirm-modal\"\n (nzVisibleChange)=\"onVisibleChange($event)\"\n>\n <ng-container *nzModalContent>\n <div class=\"geo-confirm-modal__content\">\n <div class=\"geo-confirm-modal__header\">\n <h2 class=\"geo-confirm-modal__title\">{{ title }}</h2>\n @if (closable) {\n <button\n type=\"button\"\n class=\"geo-confirm-modal__close\"\n aria-label=\"\u0110\u00F3ng\"\n (click)=\"onCancel()\"\n >\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n }\n </div>\n\n <div class=\"geo-confirm-modal__body\">\n @if (hasDefaultBody) {\n <div class=\"geo-confirm-modal__message\">\n @if (message || highlight) {\n <p class=\"geo-confirm-modal__paragraph\">\n @if (message) {\n <span>{{ message }}</span>\n }\n @if (highlight) {\n <strong class=\"geo-confirm-modal__highlight\">\u201C{{ highlight }}\u201D</strong>\n }\n </p>\n }\n @if (description) {\n <p class=\"geo-confirm-modal__paragraph\">{{ description }}</p>\n }\n </div>\n } @else {\n <div class=\"geo-confirm-modal__message\">\n <ng-content></ng-content>\n </div>\n }\n </div>\n\n <div class=\"geo-confirm-modal__footer\">\n <geo-button appearance=\"secondary\" color=\"brand\" (clicked)=\"onCancel()\">\n {{ cancelText }}\n </geo-button>\n <geo-button\n appearance=\"primary\"\n color=\"brand\"\n [disabled]=\"confirmLoading\"\n (clicked)=\"onConfirm()\"\n >\n {{ confirmText }}\n </geo-button>\n </div>\n </div>\n </ng-container>\n</nz-modal>\n", styles: [".geo-confirm-modal-wrap .ant-modal-header{display:none}.geo-confirm-modal-wrap .ant-modal-content{border-radius:var(--geo-radius);padding:0;overflow:hidden}.geo-confirm-modal-wrap .ant-modal-body{padding:0}.geo-confirm-modal__content{display:flex;flex-direction:column;gap:17px;padding:24px;background:var(--geo-color-neutral-white)}.geo-confirm-modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px}.geo-confirm-modal__title{margin:0;font-size:18px;font-weight:700;line-height:normal;color:var(--geo-color-neutral-500)}.geo-confirm-modal__close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--geo-color-neutral-500);cursor:pointer;flex-shrink:0}.geo-confirm-modal__close:hover{color:var(--geo-color-neutral-900)}.geo-confirm-modal__body{display:flex;flex-direction:column}.geo-confirm-modal__message{display:flex;flex-direction:column;gap:8px;max-width:397px;font-size:14px;line-height:1.4;color:var(--geo-color-neutral-900)}.geo-confirm-modal__paragraph{margin:0}.geo-confirm-modal__highlight{font-weight:600}.geo-confirm-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:12px}\n"] }]
|
|
47
|
+
}], propDecorators: { visible: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], title: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], message: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], highlight: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], description: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], cancelText: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], confirmText: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], confirmLoading: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], width: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], maskClosable: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], closable: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], visibleChange: [{
|
|
70
|
+
type: Output
|
|
71
|
+
}], confirm: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}], cancel: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWNvbmZpcm0tbW9kYWwvZ2VvLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWNvbmZpcm0tbW9kYWwvZ2VvLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFVeEUsTUFBTSxPQUFPLHdCQUF3QjtJQUMxQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLEtBQUssR0FBRyxjQUFjLENBQUM7SUFDdkIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixXQUFXLEdBQUcsNkRBQTZELENBQUM7SUFDNUUsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDdkIsS0FBSyxHQUFvQixHQUFHLENBQUM7SUFDN0IsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRWYsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFDNUMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDbkMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFNUMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzt3R0FwQ1Usd0JBQXdCOzRGQUF4Qix3QkFBd0Isb2JDcEJyQyxnbEVBbUVBLDR4Q0RwRFksWUFBWSw4QkFBRSxpQkFBaUIscXNDQUFFLFlBQVksK0JBQUUsa0JBQWtCOzs0RkFLaEUsd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGlCQUc3RCxpQkFBaUIsQ0FBQyxJQUFJOzhCQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ1pvcnJvQW50ZE1vZHVsZSB9IGZyb20gJy4uLy4uL25nLXpvcnJvL25nLXpvcnJvLWFudGQubW9kdWxlJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5pbXBvcnQgeyBHZW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9nZW8tYnV0dG9uL2dlby1idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLWNvbmZpcm0tbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ1pvcnJvQW50ZE1vZHVsZSwgTnpJY29uTW9kdWxlLCBHZW9CdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2VvLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBHZW9Db25maXJtTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRpdGxlID0gJ1jDoWMgbmjhuq1uIHhvw6EnO1xuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIGhpZ2hsaWdodCA9ICcnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICdIw6BuaCDEkeG7mW5nIGtow7RuZyB0aOG7gyBob8OgbiB0w6FjLCBi4bqhbiBjaOG6r2MgY2jhuq9uIG114buRbiB0aOG7sWMgaGnhu4duPyc7XG4gIEBJbnB1dCgpIGNhbmNlbFRleHQgPSAnSOG7p3knO1xuICBASW5wdXQoKSBjb25maXJtVGV4dCA9ICdYw6FjIG5o4bqtbic7XG4gIEBJbnB1dCgpIGNvbmZpcm1Mb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSA0NDU7XG4gIEBJbnB1dCgpIG1hc2tDbG9zYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBjbG9zYWJsZSA9IHRydWU7XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBjb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBoYXNEZWZhdWx0Qm9keSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5tZXNzYWdlIHx8IHRoaXMuaGlnaGxpZ2h0IHx8IHRoaXMuZGVzY3JpcHRpb24pO1xuICB9XG5cbiAgb25WaXNpYmxlQ2hhbmdlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aXNpYmxlID09PSB2aXNpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodmlzaWJsZSk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgb25Db25maXJtKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlybS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxuei1tb2RhbFxuICBbbnpWaXNpYmxlXT1cInZpc2libGVcIlxuICBbbnpUaXRsZV09XCInJ1wiXG4gIFtuekZvb3Rlcl09XCJudWxsXCJcbiAgW256Q2xvc2FibGVdPVwiZmFsc2VcIlxuICBbbnpNYXNrQ2xvc2FibGVdPVwibWFza0Nsb3NhYmxlXCJcbiAgW256V2lkdGhdPVwid2lkdGhcIlxuICBueldyYXBDbGFzc05hbWU9XCJnZW8tY29uZmlybS1tb2RhbC13cmFwXCJcbiAgbnpDbGFzc05hbWU9XCJnZW8tY29uZmlybS1tb2RhbFwiXG4gIChuelZpc2libGVDaGFuZ2UpPVwib25WaXNpYmxlQ2hhbmdlKCRldmVudClcIlxuPlxuICA8bmctY29udGFpbmVyICpuek1vZGFsQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLWNvbmZpcm0tbW9kYWxfX2NvbnRlbnRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnZW8tY29uZmlybS1tb2RhbF9faGVhZGVyXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImdlby1jb25maXJtLW1vZGFsX190aXRsZVwiPnt7IHRpdGxlIH19PC9oMj5cbiAgICAgICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJnZW8tY29uZmlybS1tb2RhbF9fY2xvc2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIsSQw7NuZ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJjbG9zZVwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdlby1jb25maXJtLW1vZGFsX19ib2R5XCI+XG4gICAgICAgIEBpZiAoaGFzRGVmYXVsdEJvZHkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VvLWNvbmZpcm0tbW9kYWxfX21lc3NhZ2VcIj5cbiAgICAgICAgICAgIEBpZiAobWVzc2FnZSB8fCBoaWdobGlnaHQpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJnZW8tY29uZmlybS1tb2RhbF9fcGFyYWdyYXBoXCI+XG4gICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBtZXNzYWdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGhpZ2hsaWdodCkge1xuICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImdlby1jb25maXJtLW1vZGFsX19oaWdobGlnaHRcIj7igJx7eyBoaWdobGlnaHQgfX3igJ08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJnZW8tY29uZmlybS1tb2RhbF9fcGFyYWdyYXBoXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZW8tY29uZmlybS1tb2RhbF9fbWVzc2FnZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImdlby1jb25maXJtLW1vZGFsX19mb290ZXJcIj5cbiAgICAgICAgPGdlby1idXR0b24gYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiIGNvbG9yPVwiYnJhbmRcIiAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCI+XG4gICAgICAgICAge3sgY2FuY2VsVGV4dCB9fVxuICAgICAgICA8L2dlby1idXR0b24+XG4gICAgICAgIDxnZW8tYnV0dG9uXG4gICAgICAgICAgYXBwZWFyYW5jZT1cInByaW1hcnlcIlxuICAgICAgICAgIGNvbG9yPVwiYnJhbmRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maXJtTG9hZGluZ1wiXG4gICAgICAgICAgKGNsaWNrZWQpPVwib25Db25maXJtKClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29uZmlybVRleHQgfX1cbiAgICAgICAgPC9nZW8tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uei1tb2RhbD5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWNvbmZpcm0tbW9kYWwudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tY29uZmlybS1tb2RhbC9nZW8tY29uZmlybS1tb2RhbC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHZW9Db25maXJtTW9kYWxDb250ZW50IHtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgaGlnaGxpZ2h0Pzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbiJdfQ==
|