@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
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { GEO_TYPOGRAPHY_TAG, } from './geo-typography.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Typography based on Ant Design Typography, styled with GEO type scale (Inter).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <geo-typography variant="h1">Page title</geo-typography>
|
|
10
|
+
* <geo-typography variant="body" color="secondary">Helper</geo-typography>
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export class GeoTypographyComponent {
|
|
14
|
+
/** Type scale variant from the design system. */
|
|
15
|
+
variant = 'body';
|
|
16
|
+
/** Semantic text color. */
|
|
17
|
+
color = 'default';
|
|
18
|
+
/** Force bold weight (overrides variant weight when true). */
|
|
19
|
+
strong = false;
|
|
20
|
+
/** Underline text decoration. */
|
|
21
|
+
underline = false;
|
|
22
|
+
/** Strikethrough text decoration. */
|
|
23
|
+
delete = false;
|
|
24
|
+
/** Mark / highlight background. */
|
|
25
|
+
mark = false;
|
|
26
|
+
/** Monospace code appearance. */
|
|
27
|
+
code = false;
|
|
28
|
+
/** Disabled appearance */
|
|
29
|
+
disabled = false;
|
|
30
|
+
get hostClassList() {
|
|
31
|
+
const classes = [
|
|
32
|
+
'geo-typography',
|
|
33
|
+
'ant-typography',
|
|
34
|
+
`geo-typography--${this.variant}`,
|
|
35
|
+
`geo-typography--color-${this.color}`,
|
|
36
|
+
];
|
|
37
|
+
if (this.strong)
|
|
38
|
+
classes.push('geo-typography--strong');
|
|
39
|
+
if (this.underline)
|
|
40
|
+
classes.push('geo-typography--underline');
|
|
41
|
+
if (this.delete)
|
|
42
|
+
classes.push('geo-typography--delete');
|
|
43
|
+
if (this.mark)
|
|
44
|
+
classes.push('geo-typography--mark');
|
|
45
|
+
if (this.code)
|
|
46
|
+
classes.push('geo-typography--code');
|
|
47
|
+
if (this.disabled)
|
|
48
|
+
classes.push('geo-typography--disabled', 'ant-typography-disabled');
|
|
49
|
+
if (this.nzType)
|
|
50
|
+
classes.push(`ant-typography-${this.nzType}`);
|
|
51
|
+
return classes.join(' ');
|
|
52
|
+
}
|
|
53
|
+
get headingRole() {
|
|
54
|
+
const tag = GEO_TYPOGRAPHY_TAG[this.variant];
|
|
55
|
+
return tag.startsWith('h') ? 'heading' : null;
|
|
56
|
+
}
|
|
57
|
+
get headingLevel() {
|
|
58
|
+
switch (this.variant) {
|
|
59
|
+
case 'h1':
|
|
60
|
+
return 1;
|
|
61
|
+
case 'h2':
|
|
62
|
+
return 2;
|
|
63
|
+
case 'h3':
|
|
64
|
+
return 3;
|
|
65
|
+
case 'h4':
|
|
66
|
+
return 4;
|
|
67
|
+
default:
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
get nzType() {
|
|
72
|
+
switch (this.color) {
|
|
73
|
+
case 'secondary':
|
|
74
|
+
return 'secondary';
|
|
75
|
+
case 'success':
|
|
76
|
+
return 'success';
|
|
77
|
+
case 'warning':
|
|
78
|
+
return 'warning';
|
|
79
|
+
case 'danger':
|
|
80
|
+
return 'danger';
|
|
81
|
+
default:
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoTypographyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GeoTypographyComponent, isStandalone: true, selector: "geo-typography", inputs: { variant: "variant", color: "color", strong: "strong", underline: "underline", delete: "delete", mark: "mark", code: "code", disabled: "disabled" }, host: { properties: { "class": "hostClassList", "attr.role": "headingRole", "attr.aria-level": "headingLevel" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["@charset \"UTF-8\";.geo-typography.ant-typography,.geo-typography{margin:0;padding:0;font-family:var(--geo-font-family);color:var(--geo-color-neutral-900);box-sizing:border-box}.geo-typography.ant-typography.ant-typography,.geo-typography.ant-typography{margin-bottom:0}.geo-typography.ant-typography--h1,.geo-typography.ant-typography--h2,.geo-typography.ant-typography--h3,.geo-typography.ant-typography--h4,.geo-typography.ant-typography--subtitle,.geo-typography.ant-typography--body,.geo-typography.ant-typography--body-small,.geo-typography--h1,.geo-typography--h2,.geo-typography--h3,.geo-typography--h4,.geo-typography--subtitle,.geo-typography--body,.geo-typography--body-small{display:block}.geo-typography.ant-typography--caption,.geo-typography.ant-typography--overline,.geo-typography.ant-typography--tiny,.geo-typography--caption,.geo-typography--overline,.geo-typography--tiny{display:inline}.geo-typography.ant-typography--h1,.geo-typography--h1{font-size:var(--geo-font-size-h1);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h1)}.geo-typography.ant-typography--h2,.geo-typography--h2{font-size:var(--geo-font-size-h2);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h2)}.geo-typography.ant-typography--h3,.geo-typography--h3{font-size:var(--geo-font-size-h3);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h3)}.geo-typography.ant-typography--h4,.geo-typography--h4{font-size:var(--geo-font-size-h4);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h4)}.geo-typography.ant-typography--subtitle,.geo-typography--subtitle{font-size:var(--geo-font-size-subtitle);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-subtitle)}.geo-typography.ant-typography--body,.geo-typography--body{font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-body)}.geo-typography.ant-typography--body-small,.geo-typography--body-small{font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-body-small)}.geo-typography.ant-typography--caption,.geo-typography--caption{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-caption)}.geo-typography.ant-typography--overline,.geo-typography--overline{font-size:var(--geo-font-size-overline);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-overline);text-transform:uppercase;letter-spacing:.04em}.geo-typography.ant-typography--tiny,.geo-typography--tiny{font-size:var(--geo-font-size-tiny);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-tiny)}.geo-typography.ant-typography--color-default,.geo-typography--color-default{color:var(--geo-color-neutral-900)}.geo-typography.ant-typography--color-secondary,.geo-typography.ant-typography.ant-typography-secondary,.geo-typography--color-secondary,.geo-typography.ant-typography-secondary{color:var(--geo-color-neutral-500)}.geo-typography.ant-typography--color-primary,.geo-typography--color-primary{color:var(--geo-color-primary-default)}.geo-typography.ant-typography--color-success,.geo-typography.ant-typography.ant-typography-success,.geo-typography--color-success,.geo-typography.ant-typography-success{color:var(--geo-color-success-dark)}.geo-typography.ant-typography--color-warning,.geo-typography.ant-typography.ant-typography-warning,.geo-typography--color-warning,.geo-typography.ant-typography-warning{color:var(--geo-color-warning-dark)}.geo-typography.ant-typography--color-danger,.geo-typography.ant-typography.ant-typography-danger,.geo-typography--color-danger,.geo-typography.ant-typography-danger{color:var(--geo-color-error-default)}.geo-typography.ant-typography--color-disabled,.geo-typography.ant-typography--disabled,.geo-typography.ant-typography.ant-typography-disabled,.geo-typography--color-disabled,.geo-typography--disabled,.geo-typography.ant-typography-disabled{color:var(--geo-color-neutral-disabled-text)!important;cursor:not-allowed}.geo-typography.ant-typography--strong,.geo-typography--strong{font-weight:var(--geo-font-weight-bold)}.geo-typography.ant-typography--underline,.geo-typography--underline{text-decoration:underline}.geo-typography.ant-typography--delete,.geo-typography--delete{text-decoration:line-through}.geo-typography.ant-typography--mark,.geo-typography--mark{background:var(--geo-color-warning-light);padding:0 .25em;border-radius:2px}.geo-typography.ant-typography--code,.geo-typography--code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:var(--geo-color-neutral-100);border:1px solid var(--geo-color-neutral-200);border-radius:var(--geo-radius);padding:.1em .35em}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoTypographyComponent, decorators: [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{ selector: 'geo-typography', standalone: true, template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, host: {
|
|
91
|
+
'[class]': 'hostClassList',
|
|
92
|
+
'[attr.role]': 'headingRole',
|
|
93
|
+
'[attr.aria-level]': 'headingLevel',
|
|
94
|
+
}, styles: ["@charset \"UTF-8\";.geo-typography.ant-typography,.geo-typography{margin:0;padding:0;font-family:var(--geo-font-family);color:var(--geo-color-neutral-900);box-sizing:border-box}.geo-typography.ant-typography.ant-typography,.geo-typography.ant-typography{margin-bottom:0}.geo-typography.ant-typography--h1,.geo-typography.ant-typography--h2,.geo-typography.ant-typography--h3,.geo-typography.ant-typography--h4,.geo-typography.ant-typography--subtitle,.geo-typography.ant-typography--body,.geo-typography.ant-typography--body-small,.geo-typography--h1,.geo-typography--h2,.geo-typography--h3,.geo-typography--h4,.geo-typography--subtitle,.geo-typography--body,.geo-typography--body-small{display:block}.geo-typography.ant-typography--caption,.geo-typography.ant-typography--overline,.geo-typography.ant-typography--tiny,.geo-typography--caption,.geo-typography--overline,.geo-typography--tiny{display:inline}.geo-typography.ant-typography--h1,.geo-typography--h1{font-size:var(--geo-font-size-h1);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h1)}.geo-typography.ant-typography--h2,.geo-typography--h2{font-size:var(--geo-font-size-h2);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h2)}.geo-typography.ant-typography--h3,.geo-typography--h3{font-size:var(--geo-font-size-h3);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h3)}.geo-typography.ant-typography--h4,.geo-typography--h4{font-size:var(--geo-font-size-h4);font-weight:var(--geo-font-weight-bold);line-height:var(--geo-line-height-h4)}.geo-typography.ant-typography--subtitle,.geo-typography--subtitle{font-size:var(--geo-font-size-subtitle);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-subtitle)}.geo-typography.ant-typography--body,.geo-typography--body{font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-body)}.geo-typography.ant-typography--body-small,.geo-typography--body-small{font-size:var(--geo-font-size-body-small);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-body-small)}.geo-typography.ant-typography--caption,.geo-typography--caption{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-caption)}.geo-typography.ant-typography--overline,.geo-typography--overline{font-size:var(--geo-font-size-overline);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-overline);text-transform:uppercase;letter-spacing:.04em}.geo-typography.ant-typography--tiny,.geo-typography--tiny{font-size:var(--geo-font-size-tiny);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-tiny)}.geo-typography.ant-typography--color-default,.geo-typography--color-default{color:var(--geo-color-neutral-900)}.geo-typography.ant-typography--color-secondary,.geo-typography.ant-typography.ant-typography-secondary,.geo-typography--color-secondary,.geo-typography.ant-typography-secondary{color:var(--geo-color-neutral-500)}.geo-typography.ant-typography--color-primary,.geo-typography--color-primary{color:var(--geo-color-primary-default)}.geo-typography.ant-typography--color-success,.geo-typography.ant-typography.ant-typography-success,.geo-typography--color-success,.geo-typography.ant-typography-success{color:var(--geo-color-success-dark)}.geo-typography.ant-typography--color-warning,.geo-typography.ant-typography.ant-typography-warning,.geo-typography--color-warning,.geo-typography.ant-typography-warning{color:var(--geo-color-warning-dark)}.geo-typography.ant-typography--color-danger,.geo-typography.ant-typography.ant-typography-danger,.geo-typography--color-danger,.geo-typography.ant-typography-danger{color:var(--geo-color-error-default)}.geo-typography.ant-typography--color-disabled,.geo-typography.ant-typography--disabled,.geo-typography.ant-typography.ant-typography-disabled,.geo-typography--color-disabled,.geo-typography--disabled,.geo-typography.ant-typography-disabled{color:var(--geo-color-neutral-disabled-text)!important;cursor:not-allowed}.geo-typography.ant-typography--strong,.geo-typography--strong{font-weight:var(--geo-font-weight-bold)}.geo-typography.ant-typography--underline,.geo-typography--underline{text-decoration:underline}.geo-typography.ant-typography--delete,.geo-typography--delete{text-decoration:line-through}.geo-typography.ant-typography--mark,.geo-typography--mark{background:var(--geo-color-warning-light);padding:0 .25em;border-radius:2px}.geo-typography.ant-typography--code,.geo-typography--code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:var(--geo-color-neutral-100);border:1px solid var(--geo-color-neutral-200);border-radius:var(--geo-radius);padding:.1em .35em}\n"] }]
|
|
95
|
+
}], propDecorators: { variant: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], color: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], strong: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], underline: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], delete: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], mark: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], code: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], disabled: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}] } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXR5cG9ncmFwaHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLXR5cG9ncmFwaHkvZ2VvLXR5cG9ncmFwaHkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFDTCxrQkFBa0IsR0FHbkIsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFaEM7Ozs7Ozs7O0dBUUc7QUFhSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGlEQUFpRDtJQUN4QyxPQUFPLEdBQXlCLE1BQU0sQ0FBQztJQUNoRCwyQkFBMkI7SUFDbEIsS0FBSyxHQUF1QixTQUFTLENBQUM7SUFDL0MsOERBQThEO0lBQ3JELE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsaUNBQWlDO0lBQ3hCLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IscUNBQXFDO0lBQzVCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsbUNBQW1DO0lBQzFCLElBQUksR0FBRyxLQUFLLENBQUM7SUFDdEIsaUNBQWlDO0lBQ3hCLElBQUksR0FBRyxLQUFLLENBQUM7SUFDdEIsMEJBQTBCO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFMUIsSUFBSSxhQUFhO1FBQ2YsTUFBTSxPQUFPLEdBQUc7WUFDZCxnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pDLHlCQUF5QixJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ3RDLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3hELElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN4RCxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUN2RixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsS0FBSyxJQUFJO2dCQUNQLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsS0FBSyxJQUFJO2dCQUNQLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsS0FBSyxJQUFJO2dCQUNQLE9BQU8sQ0FBQyxDQUFDO1lBQ1g7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxXQUFXLENBQUM7WUFDckIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7d0dBcEVVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDJWQVR2QiwyQkFBMkI7OzRGQVMxQixzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxZQUNOLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixTQUFTLEVBQUUsZUFBZTt3QkFDMUIsYUFBYSxFQUFFLGFBQWE7d0JBQzVCLG1CQUFtQixFQUFFLGNBQWM7cUJBQ3BDOzhCQUlRLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHRU9fVFlQT0dSQVBIWV9UQUcsXG4gIEdlb1R5cG9ncmFwaHlDb2xvcixcbiAgR2VvVHlwb2dyYXBoeVZhcmlhbnQsXG59IGZyb20gJy4vZ2VvLXR5cG9ncmFwaHkudHlwZXMnO1xuXG4vKipcbiAqIFR5cG9ncmFwaHkgYmFzZWQgb24gQW50IERlc2lnbiBUeXBvZ3JhcGh5LCBzdHlsZWQgd2l0aCBHRU8gdHlwZSBzY2FsZSAoSW50ZXIpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8Z2VvLXR5cG9ncmFwaHkgdmFyaWFudD1cImgxXCI+UGFnZSB0aXRsZTwvZ2VvLXR5cG9ncmFwaHk+XG4gKiA8Z2VvLXR5cG9ncmFwaHkgdmFyaWFudD1cImJvZHlcIiBjb2xvcj1cInNlY29uZGFyeVwiPkhlbHBlcjwvZ2VvLXR5cG9ncmFwaHk+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLXR5cG9ncmFwaHknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBzdHlsZVVybDogJy4vZ2VvLXR5cG9ncmFwaHkuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnaG9zdENsYXNzTGlzdCcsXG4gICAgJ1thdHRyLnJvbGVdJzogJ2hlYWRpbmdSb2xlJyxcbiAgICAnW2F0dHIuYXJpYS1sZXZlbF0nOiAnaGVhZGluZ0xldmVsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvVHlwb2dyYXBoeUNvbXBvbmVudCB7XG4gIC8qKiBUeXBlIHNjYWxlIHZhcmlhbnQgZnJvbSB0aGUgZGVzaWduIHN5c3RlbS4gKi9cbiAgQElucHV0KCkgdmFyaWFudDogR2VvVHlwb2dyYXBoeVZhcmlhbnQgPSAnYm9keSc7XG4gIC8qKiBTZW1hbnRpYyB0ZXh0IGNvbG9yLiAqL1xuICBASW5wdXQoKSBjb2xvcjogR2VvVHlwb2dyYXBoeUNvbG9yID0gJ2RlZmF1bHQnO1xuICAvKiogRm9yY2UgYm9sZCB3ZWlnaHQgKG92ZXJyaWRlcyB2YXJpYW50IHdlaWdodCB3aGVuIHRydWUpLiAqL1xuICBASW5wdXQoKSBzdHJvbmcgPSBmYWxzZTtcbiAgLyoqIFVuZGVybGluZSB0ZXh0IGRlY29yYXRpb24uICovXG4gIEBJbnB1dCgpIHVuZGVybGluZSA9IGZhbHNlO1xuICAvKiogU3RyaWtldGhyb3VnaCB0ZXh0IGRlY29yYXRpb24uICovXG4gIEBJbnB1dCgpIGRlbGV0ZSA9IGZhbHNlO1xuICAvKiogTWFyayAvIGhpZ2hsaWdodCBiYWNrZ3JvdW5kLiAqL1xuICBASW5wdXQoKSBtYXJrID0gZmFsc2U7XG4gIC8qKiBNb25vc3BhY2UgY29kZSBhcHBlYXJhbmNlLiAqL1xuICBASW5wdXQoKSBjb2RlID0gZmFsc2U7XG4gIC8qKiBEaXNhYmxlZCBhcHBlYXJhbmNlICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgZ2V0IGhvc3RDbGFzc0xpc3QoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbGFzc2VzID0gW1xuICAgICAgJ2dlby10eXBvZ3JhcGh5JyxcbiAgICAgICdhbnQtdHlwb2dyYXBoeScsXG4gICAgICBgZ2VvLXR5cG9ncmFwaHktLSR7dGhpcy52YXJpYW50fWAsXG4gICAgICBgZ2VvLXR5cG9ncmFwaHktLWNvbG9yLSR7dGhpcy5jb2xvcn1gLFxuICAgIF07XG4gICAgaWYgKHRoaXMuc3Ryb25nKSBjbGFzc2VzLnB1c2goJ2dlby10eXBvZ3JhcGh5LS1zdHJvbmcnKTtcbiAgICBpZiAodGhpcy51bmRlcmxpbmUpIGNsYXNzZXMucHVzaCgnZ2VvLXR5cG9ncmFwaHktLXVuZGVybGluZScpO1xuICAgIGlmICh0aGlzLmRlbGV0ZSkgY2xhc3Nlcy5wdXNoKCdnZW8tdHlwb2dyYXBoeS0tZGVsZXRlJyk7XG4gICAgaWYgKHRoaXMubWFyaykgY2xhc3Nlcy5wdXNoKCdnZW8tdHlwb2dyYXBoeS0tbWFyaycpO1xuICAgIGlmICh0aGlzLmNvZGUpIGNsYXNzZXMucHVzaCgnZ2VvLXR5cG9ncmFwaHktLWNvZGUnKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgY2xhc3Nlcy5wdXNoKCdnZW8tdHlwb2dyYXBoeS0tZGlzYWJsZWQnLCAnYW50LXR5cG9ncmFwaHktZGlzYWJsZWQnKTtcbiAgICBpZiAodGhpcy5uelR5cGUpIGNsYXNzZXMucHVzaChgYW50LXR5cG9ncmFwaHktJHt0aGlzLm56VHlwZX1gKTtcbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXQgaGVhZGluZ1JvbGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgdGFnID0gR0VPX1RZUE9HUkFQSFlfVEFHW3RoaXMudmFyaWFudF07XG4gICAgcmV0dXJuIHRhZy5zdGFydHNXaXRoKCdoJykgPyAnaGVhZGluZycgOiBudWxsO1xuICB9XG5cbiAgZ2V0IGhlYWRpbmdMZXZlbCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBzd2l0Y2ggKHRoaXMudmFyaWFudCkge1xuICAgICAgY2FzZSAnaDEnOlxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIGNhc2UgJ2gyJzpcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICBjYXNlICdoMyc6XG4gICAgICAgIHJldHVybiAzO1xuICAgICAgY2FzZSAnaDQnOlxuICAgICAgICByZXR1cm4gNDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldCBuelR5cGUoKTogJ3NlY29uZGFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJyB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoICh0aGlzLmNvbG9yKSB7XG4gICAgICBjYXNlICdzZWNvbmRhcnknOlxuICAgICAgICByZXR1cm4gJ3NlY29uZGFyeSc7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xuICAgICAgY2FzZSAnZGFuZ2VyJzpcbiAgICAgICAgcmV0dXJuICdkYW5nZXInO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** Semantic HTML element rendered for each variant. */
|
|
2
|
+
export const GEO_TYPOGRAPHY_TAG = {
|
|
3
|
+
h1: 'h1',
|
|
4
|
+
h2: 'h2',
|
|
5
|
+
h3: 'h3',
|
|
6
|
+
h4: 'h4',
|
|
7
|
+
subtitle: 'p',
|
|
8
|
+
body: 'p',
|
|
9
|
+
'body-small': 'p',
|
|
10
|
+
caption: 'span',
|
|
11
|
+
overline: 'span',
|
|
12
|
+
tiny: 'span',
|
|
13
|
+
};
|
|
14
|
+
export const GEO_TYPOGRAPHY_VARIANTS = [
|
|
15
|
+
{
|
|
16
|
+
variant: 'h1',
|
|
17
|
+
label: 'Heading 1',
|
|
18
|
+
size: '28px',
|
|
19
|
+
weight: 'Bold (700)',
|
|
20
|
+
lineHeight: '36px',
|
|
21
|
+
usage: 'Tiêu đề trang chính',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
variant: 'h2',
|
|
25
|
+
label: 'Heading 2',
|
|
26
|
+
size: '24px',
|
|
27
|
+
weight: 'Bold (700)',
|
|
28
|
+
lineHeight: '32px',
|
|
29
|
+
usage: 'Tiêu đề section',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
variant: 'h3',
|
|
33
|
+
label: 'Heading 3',
|
|
34
|
+
size: '20px',
|
|
35
|
+
weight: 'Bold (700)',
|
|
36
|
+
lineHeight: '28px',
|
|
37
|
+
usage: 'Tiêu đề component, section header',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
variant: 'h4',
|
|
41
|
+
label: 'Heading 4',
|
|
42
|
+
size: '16px',
|
|
43
|
+
weight: 'Bold (700)',
|
|
44
|
+
lineHeight: '24px',
|
|
45
|
+
usage: 'Tiêu đề card, form section',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
variant: 'subtitle',
|
|
49
|
+
label: 'Subtitle',
|
|
50
|
+
size: '14px',
|
|
51
|
+
weight: 'Semi Bold (600)',
|
|
52
|
+
lineHeight: '20px',
|
|
53
|
+
usage: 'Label, form label, table header',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
variant: 'body',
|
|
57
|
+
label: 'Body',
|
|
58
|
+
size: '14px',
|
|
59
|
+
weight: 'Regular (400)',
|
|
60
|
+
lineHeight: '20px',
|
|
61
|
+
usage: 'Nội dung chính, input text',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
variant: 'body-small',
|
|
65
|
+
label: 'Body Small',
|
|
66
|
+
size: '13px',
|
|
67
|
+
weight: 'Regular (400)',
|
|
68
|
+
lineHeight: '18px',
|
|
69
|
+
usage: 'Mô tả phụ, toast message',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
variant: 'caption',
|
|
73
|
+
label: 'Caption',
|
|
74
|
+
size: '12px',
|
|
75
|
+
weight: 'Regular (400)',
|
|
76
|
+
lineHeight: '16px',
|
|
77
|
+
usage: 'Helper text, timestamp',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
variant: 'overline',
|
|
81
|
+
label: 'Overline',
|
|
82
|
+
size: '11px',
|
|
83
|
+
weight: 'Semi Bold (600)',
|
|
84
|
+
lineHeight: '16px',
|
|
85
|
+
usage: 'Badge text, status label',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
variant: 'tiny',
|
|
89
|
+
label: 'Tiny',
|
|
90
|
+
size: '10px',
|
|
91
|
+
weight: 'Regular (400)',
|
|
92
|
+
lineHeight: '14px',
|
|
93
|
+
usage: 'Hex code, footnote',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXR5cG9ncmFwaHkudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tdHlwb2dyYXBoeS9nZW8tdHlwb2dyYXBoeS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsdURBQXVEO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUF5QztJQUN0RSxFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLFFBQVEsRUFBRSxHQUFHO0lBQ2IsSUFBSSxFQUFFLEdBQUc7SUFDVCxZQUFZLEVBQUUsR0FBRztJQUNqQixPQUFPLEVBQUUsTUFBTTtJQUNmLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQU85QjtJQUNKO1FBQ0UsT0FBTyxFQUFFLElBQUk7UUFDYixLQUFLLEVBQUUsV0FBVztRQUNsQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRSxxQkFBcUI7S0FDN0I7SUFDRDtRQUNFLE9BQU8sRUFBRSxJQUFJO1FBQ2IsS0FBSyxFQUFFLFdBQVc7UUFDbEIsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsWUFBWTtRQUNwQixVQUFVLEVBQUUsTUFBTTtRQUNsQixLQUFLLEVBQUUsaUJBQWlCO0tBQ3pCO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsSUFBSTtRQUNiLEtBQUssRUFBRSxXQUFXO1FBQ2xCLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLFlBQVk7UUFDcEIsVUFBVSxFQUFFLE1BQU07UUFDbEIsS0FBSyxFQUFFLG1DQUFtQztLQUMzQztJQUNEO1FBQ0UsT0FBTyxFQUFFLElBQUk7UUFDYixLQUFLLEVBQUUsV0FBVztRQUNsQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRSw0QkFBNEI7S0FDcEM7SUFDRDtRQUNFLE9BQU8sRUFBRSxVQUFVO1FBQ25CLEtBQUssRUFBRSxVQUFVO1FBQ2pCLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixVQUFVLEVBQUUsTUFBTTtRQUNsQixLQUFLLEVBQUUsaUNBQWlDO0tBQ3pDO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsTUFBTTtRQUNmLEtBQUssRUFBRSxNQUFNO1FBQ2IsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsZUFBZTtRQUN2QixVQUFVLEVBQUUsTUFBTTtRQUNsQixLQUFLLEVBQUUsNEJBQTRCO0tBQ3BDO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsWUFBWTtRQUNyQixLQUFLLEVBQUUsWUFBWTtRQUNuQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRSwwQkFBMEI7S0FDbEM7SUFDRDtRQUNFLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLGVBQWU7UUFDdkIsVUFBVSxFQUFFLE1BQU07UUFDbEIsS0FBSyxFQUFFLHdCQUF3QjtLQUNoQztJQUNEO1FBQ0UsT0FBTyxFQUFFLFVBQVU7UUFDbkIsS0FBSyxFQUFFLFVBQVU7UUFDakIsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsaUJBQWlCO1FBQ3pCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRSwwQkFBMEI7S0FDbEM7SUFDRDtRQUNFLE9BQU8sRUFBRSxNQUFNO1FBQ2YsS0FBSyxFQUFFLE1BQU07UUFDYixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRSxvQkFBb0I7S0FDNUI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgR2VvVHlwb2dyYXBoeVZhcmlhbnQgPVxuICB8ICdoMSdcbiAgfCAnaDInXG4gIHwgJ2gzJ1xuICB8ICdoNCdcbiAgfCAnc3VidGl0bGUnXG4gIHwgJ2JvZHknXG4gIHwgJ2JvZHktc21hbGwnXG4gIHwgJ2NhcHRpb24nXG4gIHwgJ292ZXJsaW5lJ1xuICB8ICd0aW55JztcblxuZXhwb3J0IHR5cGUgR2VvVHlwb2dyYXBoeUNvbG9yID1cbiAgfCAnZGVmYXVsdCdcbiAgfCAnc2Vjb25kYXJ5J1xuICB8ICdwcmltYXJ5J1xuICB8ICdzdWNjZXNzJ1xuICB8ICd3YXJuaW5nJ1xuICB8ICdkYW5nZXInXG4gIHwgJ2Rpc2FibGVkJztcblxuLyoqIFNlbWFudGljIEhUTUwgZWxlbWVudCByZW5kZXJlZCBmb3IgZWFjaCB2YXJpYW50LiAqL1xuZXhwb3J0IGNvbnN0IEdFT19UWVBPR1JBUEhZX1RBRzogUmVjb3JkPEdlb1R5cG9ncmFwaHlWYXJpYW50LCBzdHJpbmc+ID0ge1xuICBoMTogJ2gxJyxcbiAgaDI6ICdoMicsXG4gIGgzOiAnaDMnLFxuICBoNDogJ2g0JyxcbiAgc3VidGl0bGU6ICdwJyxcbiAgYm9keTogJ3AnLFxuICAnYm9keS1zbWFsbCc6ICdwJyxcbiAgY2FwdGlvbjogJ3NwYW4nLFxuICBvdmVybGluZTogJ3NwYW4nLFxuICB0aW55OiAnc3BhbicsXG59O1xuXG5leHBvcnQgY29uc3QgR0VPX1RZUE9HUkFQSFlfVkFSSUFOVFM6IHtcbiAgdmFyaWFudDogR2VvVHlwb2dyYXBoeVZhcmlhbnQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHNpemU6IHN0cmluZztcbiAgd2VpZ2h0OiBzdHJpbmc7XG4gIGxpbmVIZWlnaHQ6IHN0cmluZztcbiAgdXNhZ2U6IHN0cmluZztcbn1bXSA9IFtcbiAge1xuICAgIHZhcmlhbnQ6ICdoMScsXG4gICAgbGFiZWw6ICdIZWFkaW5nIDEnLFxuICAgIHNpemU6ICcyOHB4JyxcbiAgICB3ZWlnaHQ6ICdCb2xkICg3MDApJyxcbiAgICBsaW5lSGVpZ2h0OiAnMzZweCcsXG4gICAgdXNhZ2U6ICdUacOqdSDEkeG7gSB0cmFuZyBjaMOtbmgnLFxuICB9LFxuICB7XG4gICAgdmFyaWFudDogJ2gyJyxcbiAgICBsYWJlbDogJ0hlYWRpbmcgMicsXG4gICAgc2l6ZTogJzI0cHgnLFxuICAgIHdlaWdodDogJ0JvbGQgKDcwMCknLFxuICAgIGxpbmVIZWlnaHQ6ICczMnB4JyxcbiAgICB1c2FnZTogJ1Rpw6p1IMSR4buBIHNlY3Rpb24nLFxuICB9LFxuICB7XG4gICAgdmFyaWFudDogJ2gzJyxcbiAgICBsYWJlbDogJ0hlYWRpbmcgMycsXG4gICAgc2l6ZTogJzIwcHgnLFxuICAgIHdlaWdodDogJ0JvbGQgKDcwMCknLFxuICAgIGxpbmVIZWlnaHQ6ICcyOHB4JyxcbiAgICB1c2FnZTogJ1Rpw6p1IMSR4buBIGNvbXBvbmVudCwgc2VjdGlvbiBoZWFkZXInLFxuICB9LFxuICB7XG4gICAgdmFyaWFudDogJ2g0JyxcbiAgICBsYWJlbDogJ0hlYWRpbmcgNCcsXG4gICAgc2l6ZTogJzE2cHgnLFxuICAgIHdlaWdodDogJ0JvbGQgKDcwMCknLFxuICAgIGxpbmVIZWlnaHQ6ICcyNHB4JyxcbiAgICB1c2FnZTogJ1Rpw6p1IMSR4buBIGNhcmQsIGZvcm0gc2VjdGlvbicsXG4gIH0sXG4gIHtcbiAgICB2YXJpYW50OiAnc3VidGl0bGUnLFxuICAgIGxhYmVsOiAnU3VidGl0bGUnLFxuICAgIHNpemU6ICcxNHB4JyxcbiAgICB3ZWlnaHQ6ICdTZW1pIEJvbGQgKDYwMCknLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICB1c2FnZTogJ0xhYmVsLCBmb3JtIGxhYmVsLCB0YWJsZSBoZWFkZXInLFxuICB9LFxuICB7XG4gICAgdmFyaWFudDogJ2JvZHknLFxuICAgIGxhYmVsOiAnQm9keScsXG4gICAgc2l6ZTogJzE0cHgnLFxuICAgIHdlaWdodDogJ1JlZ3VsYXIgKDQwMCknLFxuICAgIGxpbmVIZWlnaHQ6ICcyMHB4JyxcbiAgICB1c2FnZTogJ07hu5lpIGR1bmcgY2jDrW5oLCBpbnB1dCB0ZXh0JyxcbiAgfSxcbiAge1xuICAgIHZhcmlhbnQ6ICdib2R5LXNtYWxsJyxcbiAgICBsYWJlbDogJ0JvZHkgU21hbGwnLFxuICAgIHNpemU6ICcxM3B4JyxcbiAgICB3ZWlnaHQ6ICdSZWd1bGFyICg0MDApJyxcbiAgICBsaW5lSGVpZ2h0OiAnMThweCcsXG4gICAgdXNhZ2U6ICdNw7QgdOG6oyBwaOG7pSwgdG9hc3QgbWVzc2FnZScsXG4gIH0sXG4gIHtcbiAgICB2YXJpYW50OiAnY2FwdGlvbicsXG4gICAgbGFiZWw6ICdDYXB0aW9uJyxcbiAgICBzaXplOiAnMTJweCcsXG4gICAgd2VpZ2h0OiAnUmVndWxhciAoNDAwKScsXG4gICAgbGluZUhlaWdodDogJzE2cHgnLFxuICAgIHVzYWdlOiAnSGVscGVyIHRleHQsIHRpbWVzdGFtcCcsXG4gIH0sXG4gIHtcbiAgICB2YXJpYW50OiAnb3ZlcmxpbmUnLFxuICAgIGxhYmVsOiAnT3ZlcmxpbmUnLFxuICAgIHNpemU6ICcxMXB4JyxcbiAgICB3ZWlnaHQ6ICdTZW1pIEJvbGQgKDYwMCknLFxuICAgIGxpbmVIZWlnaHQ6ICcxNnB4JyxcbiAgICB1c2FnZTogJ0JhZGdlIHRleHQsIHN0YXR1cyBsYWJlbCcsXG4gIH0sXG4gIHtcbiAgICB2YXJpYW50OiAndGlueScsXG4gICAgbGFiZWw6ICdUaW55JyxcbiAgICBzaXplOiAnMTBweCcsXG4gICAgd2VpZ2h0OiAnUmVndWxhciAoNDAwKScsXG4gICAgbGluZUhlaWdodDogJzE0cHgnLFxuICAgIHVzYWdlOiAnSGV4IGNvZGUsIGZvb3Rub3RlJyxcbiAgfSxcbl07XG4iXX0=
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation, inject, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
4
|
+
import { NzUploadModule } from 'ng-zorro-antd/upload';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import { geoFormatBytes, geoFormatSpeed, geoUploadPercent, } from './geo-upload.types';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "ng-zorro-antd/icon";
|
|
9
|
+
import * as i2 from "ng-zorro-antd/upload";
|
|
10
|
+
/**
|
|
11
|
+
* Upload kéo-thả theo design GEO (dropzone + danh sách file có progress).
|
|
12
|
+
* Dựa trên `nz-upload` (Ant Design). Form field gọn dùng `geo-file-picker`.
|
|
13
|
+
*/
|
|
14
|
+
export class GeoUploadComponent {
|
|
15
|
+
cdr = inject(ChangeDetectorRef);
|
|
16
|
+
/** Upload endpoint — bỏ trống nếu dùng `customRequest` / chỉ chọn file local. */
|
|
17
|
+
action = '';
|
|
18
|
+
accept = '.png,.jpg,.jpeg,.svg';
|
|
19
|
+
/** Max size (bytes). Default 1MB. `0` = không giới hạn. */
|
|
20
|
+
maxSize = 1024 * 1024;
|
|
21
|
+
multiple = true;
|
|
22
|
+
disabled = false;
|
|
23
|
+
error = false;
|
|
24
|
+
errorMessage = '';
|
|
25
|
+
hint = 'Chỉ cho phép file dạng .png, .jpg, .jpeg, .svg và dung lượng không quá 1Mb';
|
|
26
|
+
titlePrefix = 'Kéo thả ảnh hoặc';
|
|
27
|
+
selectText = 'Chọn file';
|
|
28
|
+
titleSuffix = 'để tải lên';
|
|
29
|
+
listTitle = 'Tập tin đính kèm';
|
|
30
|
+
showListTitle = true;
|
|
31
|
+
/** Controlled file list. */
|
|
32
|
+
fileList = [];
|
|
33
|
+
headers;
|
|
34
|
+
data;
|
|
35
|
+
name = 'file';
|
|
36
|
+
withCredentials = false;
|
|
37
|
+
directory = false;
|
|
38
|
+
/** Custom XHR — mặc định simulate progress khi không có `action`. */
|
|
39
|
+
customRequest;
|
|
40
|
+
beforeUpload;
|
|
41
|
+
fileListChange = new EventEmitter();
|
|
42
|
+
change = new EventEmitter();
|
|
43
|
+
remove = new EventEmitter();
|
|
44
|
+
reject = new EventEmitter();
|
|
45
|
+
formatBytes = geoFormatBytes;
|
|
46
|
+
formatSpeed = geoFormatSpeed;
|
|
47
|
+
percentOf = geoUploadPercent;
|
|
48
|
+
get resolvedCustomRequest() {
|
|
49
|
+
if (this.customRequest) {
|
|
50
|
+
return this.customRequest;
|
|
51
|
+
}
|
|
52
|
+
if (!this.action) {
|
|
53
|
+
return (item) => this.simulateUpload(item);
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
onFileListChange(list) {
|
|
58
|
+
this.fileList = list;
|
|
59
|
+
this.fileListChange.emit(this.fileList);
|
|
60
|
+
}
|
|
61
|
+
onChange(event) {
|
|
62
|
+
this.fileList = event.fileList;
|
|
63
|
+
this.fileListChange.emit(this.fileList);
|
|
64
|
+
this.change.emit(event);
|
|
65
|
+
}
|
|
66
|
+
handleBeforeUpload = (file, _fileList) => {
|
|
67
|
+
if (this.beforeUpload) {
|
|
68
|
+
return this.beforeUpload(file, _fileList);
|
|
69
|
+
}
|
|
70
|
+
const raw = file;
|
|
71
|
+
const name = (file.name || raw.name || '').toLowerCase();
|
|
72
|
+
if (this.accept) {
|
|
73
|
+
const tokens = this.accept
|
|
74
|
+
.split(',')
|
|
75
|
+
.map((t) => t.trim().toLowerCase())
|
|
76
|
+
.filter(Boolean);
|
|
77
|
+
const ok = tokens.some((token) => {
|
|
78
|
+
if (token.startsWith('.')) {
|
|
79
|
+
return name.endsWith(token);
|
|
80
|
+
}
|
|
81
|
+
if (token.includes('/*')) {
|
|
82
|
+
const prefix = token.replace('/*', '');
|
|
83
|
+
return (file.type || raw.type || '').startsWith(prefix);
|
|
84
|
+
}
|
|
85
|
+
return (file.type || raw.type || '') === token;
|
|
86
|
+
});
|
|
87
|
+
if (!ok) {
|
|
88
|
+
this.reject.emit({ file: raw, reason: 'type' });
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const size = file.size ?? raw.size ?? 0;
|
|
93
|
+
if (this.maxSize > 0 && size > this.maxSize) {
|
|
94
|
+
this.reject.emit({ file: raw, reason: 'size' });
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
};
|
|
99
|
+
onRemove = (file) => {
|
|
100
|
+
this.remove.emit(file);
|
|
101
|
+
return true;
|
|
102
|
+
};
|
|
103
|
+
removeFile(file, event) {
|
|
104
|
+
event.preventDefault();
|
|
105
|
+
event.stopPropagation();
|
|
106
|
+
if (this.disabled) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (this.onRemove(file) === false) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
this.fileList = this.fileList.filter((item) => item.uid !== file.uid);
|
|
113
|
+
this.fileListChange.emit(this.fileList);
|
|
114
|
+
}
|
|
115
|
+
progressLabel(file) {
|
|
116
|
+
const total = file.size ?? file.originFileObj?.size ?? 0;
|
|
117
|
+
const percent = this.percentOf(file);
|
|
118
|
+
const loaded = file.loaded != null
|
|
119
|
+
? file.loaded
|
|
120
|
+
: Math.round((percent / 100) * total);
|
|
121
|
+
return `${this.formatBytes(loaded)}/ ${this.formatBytes(total)} (${percent}%)`;
|
|
122
|
+
}
|
|
123
|
+
speedLabel(file) {
|
|
124
|
+
return this.formatSpeed(file.speed);
|
|
125
|
+
}
|
|
126
|
+
/** Demo / local upload khi không có action. */
|
|
127
|
+
simulateUpload(item) {
|
|
128
|
+
const file = item.file;
|
|
129
|
+
const total = file.size ?? file.originFileObj?.size ?? 0;
|
|
130
|
+
let loaded = 0;
|
|
131
|
+
const started = Date.now();
|
|
132
|
+
file.status = 'uploading';
|
|
133
|
+
file.percent = 0;
|
|
134
|
+
file.loaded = 0;
|
|
135
|
+
file.speed = 0;
|
|
136
|
+
const timer = window.setInterval(() => {
|
|
137
|
+
const step = Math.max(total * 0.08, 16 * 1024);
|
|
138
|
+
loaded = Math.min(total, loaded + step);
|
|
139
|
+
const elapsedSec = Math.max((Date.now() - started) / 1000, 0.001);
|
|
140
|
+
const percent = total > 0 ? Math.round((loaded / total) * 100) : 100;
|
|
141
|
+
file.loaded = loaded;
|
|
142
|
+
file.percent = percent;
|
|
143
|
+
file.speed = loaded / elapsedSec;
|
|
144
|
+
item.onProgress?.({ percent }, file);
|
|
145
|
+
this.cdr.markForCheck();
|
|
146
|
+
if (loaded >= total) {
|
|
147
|
+
window.clearInterval(timer);
|
|
148
|
+
file.status = 'done';
|
|
149
|
+
file.percent = 100;
|
|
150
|
+
file.loaded = total;
|
|
151
|
+
item.onSuccess?.({}, file, null);
|
|
152
|
+
this.cdr.markForCheck();
|
|
153
|
+
}
|
|
154
|
+
}, 200);
|
|
155
|
+
return new Subscription(() => window.clearInterval(timer));
|
|
156
|
+
}
|
|
157
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
158
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoUploadComponent, isStandalone: true, selector: "geo-upload", inputs: { action: "action", accept: "accept", maxSize: "maxSize", multiple: "multiple", disabled: "disabled", error: "error", errorMessage: "errorMessage", hint: "hint", titlePrefix: "titlePrefix", selectText: "selectText", titleSuffix: "titleSuffix", listTitle: "listTitle", showListTitle: "showListTitle", fileList: "fileList", headers: "headers", data: "data", name: "name", withCredentials: "withCredentials", directory: "directory", customRequest: "customRequest", beforeUpload: "beforeUpload" }, outputs: { fileListChange: "fileListChange", change: "change", remove: "remove", reject: "reject" }, host: { properties: { "class.geo-upload-host--disabled": "disabled", "class.geo-upload-host--error": "error" }, classAttribute: "geo-upload-host" }, ngImport: i0, template: "<div class=\"geo-upload\">\n <nz-upload\n class=\"geo-upload__dragger\"\n nzType=\"drag\"\n [nzAction]=\"action\"\n [nzAccept]=\"accept\"\n [nzMultiple]=\"multiple\"\n [nzDisabled]=\"disabled\"\n [nzDirectory]=\"directory\"\n [nzName]=\"name\"\n [nzHeaders]=\"headers\"\n [nzData]=\"data\"\n [nzWithCredentials]=\"withCredentials\"\n [nzFileList]=\"fileList\"\n [nzShowUploadList]=\"false\"\n [nzBeforeUpload]=\"handleBeforeUpload\"\n [nzCustomRequest]=\"resolvedCustomRequest\"\n [nzRemove]=\"onRemove\"\n (nzFileListChange)=\"onFileListChange($event)\"\n (nzChange)=\"onChange($event)\"\n >\n <div class=\"geo-upload__dropzone\">\n <span class=\"geo-upload__icon-wrap\" aria-hidden=\"true\">\n <span class=\"geo-upload__icon\" nz-icon nzType=\"cloud-upload\" nzTheme=\"outline\"></span>\n </span>\n\n <div class=\"geo-upload__copy\">\n <p class=\"geo-upload__title\">\n <span>{{ titlePrefix }} </span>\n <span class=\"geo-upload__select\">{{ selectText }}</span>\n <span> {{ titleSuffix }}</span>\n </p>\n\n @if (hint) {\n <p class=\"geo-upload__hint\">{{ hint }}</p>\n }\n </div>\n </div>\n </nz-upload>\n\n @if (fileList.length > 0) {\n <div class=\"geo-upload__list\">\n @if (showListTitle) {\n <h4 class=\"geo-upload__list-title\">{{ listTitle }}</h4>\n }\n\n <ul class=\"geo-upload__files\">\n @for (file of fileList; track file.uid) {\n <li class=\"geo-upload__file\" [class.geo-upload__file--error]=\"file.status === 'error'\">\n <div class=\"geo-upload__file-icon\" aria-hidden=\"true\">\n <span nz-icon nzType=\"file\" nzTheme=\"outline\"></span>\n </div>\n\n <div class=\"geo-upload__file-main\">\n <div class=\"geo-upload__file-row\">\n <span class=\"geo-upload__file-name\" [title]=\"file.name\">{{ file.name }}</span>\n <button\n type=\"button\"\n class=\"geo-upload__file-remove\"\n aria-label=\"X\u00F3a t\u1EADp tin\"\n [disabled]=\"disabled\"\n (click)=\"removeFile(file, $event)\"\n >\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n </div>\n\n <div class=\"geo-upload__progress\" role=\"progressbar\" [attr.aria-valuenow]=\"percentOf(file)\" aria-valuemin=\"0\" aria-valuemax=\"100\">\n <div class=\"geo-upload__progress-bar\" [style.width.%]=\"percentOf(file)\"></div>\n </div>\n\n <div class=\"geo-upload__file-meta\">\n <span>{{ progressLabel(file) }}</span>\n <span>{{ speedLabel(file) }}</span>\n </div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n\n @if (error && errorMessage) {\n <p class=\"geo-upload__error\" role=\"alert\">{{ errorMessage }}</p>\n }\n</div>\n", styles: ["@charset \"UTF-8\";geo-upload.geo-upload-host,.geo-upload-host{display:block;width:100%;font-family:var(--geo-font-family);color:var(--geo-color-neutral-900)}.geo-upload{display:flex;flex-direction:column;gap:20px}.geo-upload__dragger{display:block;width:100%}.geo-upload__dragger .ant-upload.ant-upload-drag{display:block;width:100%;background:var(--geo-color-neutral-100)!important;border:1.5px dashed var(--geo-color-neutral-300)!important;border-radius:var(--geo-radius);text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-btn{display:block;padding:0;background:transparent}.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-drag-icon,.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-text,.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-hint{display:none}.geo-upload__dragger .ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover,.geo-upload__dragger .ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:var(--geo-color-primary-default)!important;background:var(--geo-color-primary-surface-light)!important}.geo-upload__dragger .ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed;opacity:.65}.geo-upload__dropzone{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:16px;padding:20px 24px;box-sizing:border-box}.geo-upload__icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--geo-color-primary-default);color:var(--geo-color-neutral-white);flex-shrink:0}.geo-upload__icon{font-size:24px;line-height:1;color:var(--geo-color-neutral-white)}.geo-upload__copy{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;text-align:left}.geo-upload__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-900)}.geo-upload__select{font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-primary-default)}.geo-upload__hint{margin:0;max-width:420px;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-caption);color:var(--geo-color-neutral-500)}.geo-upload__list{display:flex;flex-direction:column;gap:12px}.geo-upload__list-title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-900)}.geo-upload__files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.geo-upload__file{display:flex;align-items:flex-start;gap:12px}.geo-upload__file-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--geo-radius);background:var(--geo-color-neutral-100);color:var(--geo-color-neutral-500);font-size:18px}.geo-upload__file-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}.geo-upload__file-row{display:flex;align-items:center;gap:8px}.geo-upload__file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-900)}.geo-upload__file-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--geo-color-neutral-500);cursor:pointer;flex-shrink:0;font-size:12px}.geo-upload__file-remove:hover:not(:disabled){color:var(--geo-color-error-default)}.geo-upload__file-remove:disabled{cursor:not-allowed;opacity:.5}.geo-upload__progress{width:100%;height:6px;border-radius:999px;background:var(--geo-color-neutral-200);overflow:hidden}.geo-upload__progress-bar{height:100%;border-radius:inherit;background:var(--geo-color-primary-default);transition:width .2s ease}.geo-upload__file-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--geo-font-size-caption);line-height:var(--geo-line-height-caption);color:var(--geo-color-neutral-500)}.geo-upload__file--error .geo-upload__file-name{color:var(--geo-color-error-default)}.geo-upload__file--error .geo-upload__progress-bar{background:var(--geo-color-error-default)}.geo-upload__error{margin:0;font-size:var(--geo-font-size-body-small);line-height:var(--geo-line-height-body-small);color:var(--geo-color-error-default)}.geo-upload-host--disabled .geo-upload__select{color:var(--geo-color-neutral-disabled-text)}\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"] }, { kind: "ngmodule", type: NzUploadModule }, { kind: "component", type: i2.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
159
|
+
}
|
|
160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoUploadComponent, decorators: [{
|
|
161
|
+
type: Component,
|
|
162
|
+
args: [{ selector: 'geo-upload', standalone: true, imports: [CommonModule, NzIconModule, NzUploadModule], encapsulation: ViewEncapsulation.None, host: {
|
|
163
|
+
class: 'geo-upload-host',
|
|
164
|
+
'[class.geo-upload-host--disabled]': 'disabled',
|
|
165
|
+
'[class.geo-upload-host--error]': 'error',
|
|
166
|
+
}, template: "<div class=\"geo-upload\">\n <nz-upload\n class=\"geo-upload__dragger\"\n nzType=\"drag\"\n [nzAction]=\"action\"\n [nzAccept]=\"accept\"\n [nzMultiple]=\"multiple\"\n [nzDisabled]=\"disabled\"\n [nzDirectory]=\"directory\"\n [nzName]=\"name\"\n [nzHeaders]=\"headers\"\n [nzData]=\"data\"\n [nzWithCredentials]=\"withCredentials\"\n [nzFileList]=\"fileList\"\n [nzShowUploadList]=\"false\"\n [nzBeforeUpload]=\"handleBeforeUpload\"\n [nzCustomRequest]=\"resolvedCustomRequest\"\n [nzRemove]=\"onRemove\"\n (nzFileListChange)=\"onFileListChange($event)\"\n (nzChange)=\"onChange($event)\"\n >\n <div class=\"geo-upload__dropzone\">\n <span class=\"geo-upload__icon-wrap\" aria-hidden=\"true\">\n <span class=\"geo-upload__icon\" nz-icon nzType=\"cloud-upload\" nzTheme=\"outline\"></span>\n </span>\n\n <div class=\"geo-upload__copy\">\n <p class=\"geo-upload__title\">\n <span>{{ titlePrefix }} </span>\n <span class=\"geo-upload__select\">{{ selectText }}</span>\n <span> {{ titleSuffix }}</span>\n </p>\n\n @if (hint) {\n <p class=\"geo-upload__hint\">{{ hint }}</p>\n }\n </div>\n </div>\n </nz-upload>\n\n @if (fileList.length > 0) {\n <div class=\"geo-upload__list\">\n @if (showListTitle) {\n <h4 class=\"geo-upload__list-title\">{{ listTitle }}</h4>\n }\n\n <ul class=\"geo-upload__files\">\n @for (file of fileList; track file.uid) {\n <li class=\"geo-upload__file\" [class.geo-upload__file--error]=\"file.status === 'error'\">\n <div class=\"geo-upload__file-icon\" aria-hidden=\"true\">\n <span nz-icon nzType=\"file\" nzTheme=\"outline\"></span>\n </div>\n\n <div class=\"geo-upload__file-main\">\n <div class=\"geo-upload__file-row\">\n <span class=\"geo-upload__file-name\" [title]=\"file.name\">{{ file.name }}</span>\n <button\n type=\"button\"\n class=\"geo-upload__file-remove\"\n aria-label=\"X\u00F3a t\u1EADp tin\"\n [disabled]=\"disabled\"\n (click)=\"removeFile(file, $event)\"\n >\n <span nz-icon nzType=\"close\" nzTheme=\"outline\"></span>\n </button>\n </div>\n\n <div class=\"geo-upload__progress\" role=\"progressbar\" [attr.aria-valuenow]=\"percentOf(file)\" aria-valuemin=\"0\" aria-valuemax=\"100\">\n <div class=\"geo-upload__progress-bar\" [style.width.%]=\"percentOf(file)\"></div>\n </div>\n\n <div class=\"geo-upload__file-meta\">\n <span>{{ progressLabel(file) }}</span>\n <span>{{ speedLabel(file) }}</span>\n </div>\n </div>\n </li>\n }\n </ul>\n </div>\n }\n\n @if (error && errorMessage) {\n <p class=\"geo-upload__error\" role=\"alert\">{{ errorMessage }}</p>\n }\n</div>\n", styles: ["@charset \"UTF-8\";geo-upload.geo-upload-host,.geo-upload-host{display:block;width:100%;font-family:var(--geo-font-family);color:var(--geo-color-neutral-900)}.geo-upload{display:flex;flex-direction:column;gap:20px}.geo-upload__dragger{display:block;width:100%}.geo-upload__dragger .ant-upload.ant-upload-drag{display:block;width:100%;background:var(--geo-color-neutral-100)!important;border:1.5px dashed var(--geo-color-neutral-300)!important;border-radius:var(--geo-radius);text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-btn{display:block;padding:0;background:transparent}.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-drag-icon,.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-text,.geo-upload__dragger .ant-upload.ant-upload-drag .ant-upload-hint{display:none}.geo-upload__dragger .ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover,.geo-upload__dragger .ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:var(--geo-color-primary-default)!important;background:var(--geo-color-primary-surface-light)!important}.geo-upload__dragger .ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed;opacity:.65}.geo-upload__dropzone{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:16px;padding:20px 24px;box-sizing:border-box}.geo-upload__icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--geo-color-primary-default);color:var(--geo-color-neutral-white);flex-shrink:0}.geo-upload__icon{font-size:24px;line-height:1;color:var(--geo-color-neutral-white)}.geo-upload__copy{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;text-align:left}.geo-upload__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-900)}.geo-upload__select{font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-primary-default)}.geo-upload__hint{margin:0;max-width:420px;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-regular);line-height:var(--geo-line-height-caption);color:var(--geo-color-neutral-500)}.geo-upload__list{display:flex;flex-direction:column;gap:12px}.geo-upload__list-title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-900)}.geo-upload__files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.geo-upload__file{display:flex;align-items:flex-start;gap:12px}.geo-upload__file-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--geo-radius);background:var(--geo-color-neutral-100);color:var(--geo-color-neutral-500);font-size:18px}.geo-upload__file-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}.geo-upload__file-row{display:flex;align-items:center;gap:8px}.geo-upload__file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);line-height:var(--geo-line-height-body);color:var(--geo-color-neutral-900)}.geo-upload__file-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--geo-color-neutral-500);cursor:pointer;flex-shrink:0;font-size:12px}.geo-upload__file-remove:hover:not(:disabled){color:var(--geo-color-error-default)}.geo-upload__file-remove:disabled{cursor:not-allowed;opacity:.5}.geo-upload__progress{width:100%;height:6px;border-radius:999px;background:var(--geo-color-neutral-200);overflow:hidden}.geo-upload__progress-bar{height:100%;border-radius:inherit;background:var(--geo-color-primary-default);transition:width .2s ease}.geo-upload__file-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--geo-font-size-caption);line-height:var(--geo-line-height-caption);color:var(--geo-color-neutral-500)}.geo-upload__file--error .geo-upload__file-name{color:var(--geo-color-error-default)}.geo-upload__file--error .geo-upload__progress-bar{background:var(--geo-color-error-default)}.geo-upload__error{margin:0;font-size:var(--geo-font-size-body-small);line-height:var(--geo-line-height-body-small);color:var(--geo-color-error-default)}.geo-upload-host--disabled .geo-upload__select{color:var(--geo-color-neutral-disabled-text)}\n"] }]
|
|
167
|
+
}], propDecorators: { action: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], accept: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], maxSize: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], multiple: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], disabled: [{
|
|
176
|
+
type: Input
|
|
177
|
+
}], error: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], errorMessage: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], hint: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], titlePrefix: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], selectText: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], titleSuffix: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], listTitle: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], showListTitle: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], fileList: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], headers: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], data: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], name: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}], withCredentials: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}], directory: [{
|
|
204
|
+
type: Input
|
|
205
|
+
}], customRequest: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], beforeUpload: [{
|
|
208
|
+
type: Input
|
|
209
|
+
}], fileListChange: [{
|
|
210
|
+
type: Output
|
|
211
|
+
}], change: [{
|
|
212
|
+
type: Output
|
|
213
|
+
}], remove: [{
|
|
214
|
+
type: Output
|
|
215
|
+
}], reject: [{
|
|
216
|
+
type: Output
|
|
217
|
+
}] } });
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tdXBsb2FkL2dlby11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLXVwbG9hZC9nZW8tdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFzRCxNQUFNLHNCQUFzQixDQUFDO0FBQzFHLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUdMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFFNUI7OztHQUdHO0FBY0gsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVqRCxpRkFBaUY7SUFDeEUsTUFBTSxHQUFtRSxFQUFFLENBQUM7SUFDNUUsTUFBTSxHQUFHLHNCQUFzQixDQUFDO0lBQ3pDLDJEQUEyRDtJQUNsRCxPQUFPLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztJQUN0QixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLFlBQVksR0FB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QUFpQjt3QkFDeEIsbUNBQW1DLEVBQUUsVUFBVTt3QkFDL0MsZ0NBQWdDLEVBQUUsT0FBTztxQkFDMUM7OEJBTVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5pbXBvcnQgeyBOelVwbG9hZE1vZHVsZSwgTnpVcGxvYWRDaGFuZ2VQYXJhbSwgTnpVcGxvYWRGaWxlLCBOelVwbG9hZFhIUkFyZ3MgfSBmcm9tICduZy16b3Jyby1hbnRkL3VwbG9hZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEdlb1VwbG9hZEN1c3RvbVJlcXVlc3QsXG4gIEdlb1VwbG9hZEZpbGUsXG4gIGdlb0Zvcm1hdEJ5dGVzLFxuICBnZW9Gb3JtYXRTcGVlZCxcbiAgZ2VvVXBsb2FkUGVyY2VudCxcbn0gZnJvbSAnLi9nZW8tdXBsb2FkLnR5cGVzJztcblxuLyoqXG4gKiBVcGxvYWQga8Opby10aOG6oyB0aGVvIGRlc2lnbiBHRU8gKGRyb3B6b25lICsgZGFuaCBzw6FjaCBmaWxlIGPDsyBwcm9ncmVzcykuXG4gKiBE4buxYSB0csOqbiBgbnotdXBsb2FkYCAoQW50IERlc2lnbikuIEZvcm0gZmllbGQgZ+G7jW4gZMO5bmcgYGdlby1maWxlLXBpY2tlcmAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOekljb25Nb2R1bGUsIE56VXBsb2FkTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2VvLXVwbG9hZC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2dlby11cGxvYWQtaG9zdCcsXG4gICAgJ1tjbGFzcy5nZW8tdXBsb2FkLWhvc3QtLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5nZW8tdXBsb2FkLWhvc3QtLWVycm9yXSc6ICdlcnJvcicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdlb1VwbG9hZENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAvKiogVXBsb2FkIGVuZHBvaW50IOKAlCBi4buPIHRy4buRbmcgbuG6v3UgZMO5bmcgYGN1c3RvbVJlcXVlc3RgIC8gY2jhu4kgY2jhu41uIGZpbGUgbG9jYWwuICovXG4gIEBJbnB1dCgpIGFjdGlvbjogc3RyaW5nIHwgKChmaWxlOiBOelVwbG9hZEZpbGUpID0+IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPikgPSAnJztcbiAgQElucHV0KCkgYWNjZXB0ID0gJy5wbmcsLmpwZywuanBlZywuc3ZnJztcbiAgLyoqIE1heCBzaXplIChieXRlcykuIERlZmF1bHQgMU1CLiBgMGAgPSBraMO0bmcgZ2nhu5tpIGjhuqFuLiAqL1xuICBASW5wdXQoKSBtYXhTaXplID0gMTAyNCAqIDEwMjQ7XG4gIEBJbnB1dCgpIG11bHRpcGxlID0gdHJ1ZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIGhpbnQgPVxuICAgICdDaOG7iSBjaG8gcGjDqXAgZmlsZSBk4bqhbmcgLnBuZywgLmpwZywgLmpwZWcsIC5zdmcgdsOgIGR1bmcgbMaw4bujbmcga2jDtG5nIHF1w6EgMU1iJztcbiAgQElucHV0KCkgdGl0bGVQcmVmaXggPSAnS8OpbyB0aOG6oyDhuqNuaCBob+G6t2MnO1xuICBASW5wdXQoKSBzZWxlY3RUZXh0ID0gJ0No4buNbiBmaWxlJztcbiAgQElucHV0KCkgdGl0bGVTdWZmaXggPSAnxJHhu4MgdOG6o2kgbMOqbic7XG4gIEBJbnB1dCgpIGxpc3RUaXRsZSA9ICdU4bqtcCB0aW4gxJHDrW5oIGvDqG0nO1xuICBASW5wdXQoKSBzaG93TGlzdFRpdGxlID0gdHJ1ZTtcbiAgLyoqIENvbnRyb2xsZWQgZmlsZSBsaXN0LiAqL1xuICBASW5wdXQoKSBmaWxlTGlzdDogR2VvVXBsb2FkRmlsZVtdID0gW107XG4gIEBJbnB1dCgpIGhlYWRlcnM/OiB7fSB8ICgoZmlsZTogTnpVcGxvYWRGaWxlKSA9PiB7fSB8IE9ic2VydmFibGU8e30+KTtcbiAgQElucHV0KCkgZGF0YT86IHt9IHwgKChmaWxlOiBOelVwbG9hZEZpbGUpID0+IHt9IHwgT2JzZXJ2YWJsZTx7fT4pO1xuICBASW5wdXQoKSBuYW1lID0gJ2ZpbGUnO1xuICBASW5wdXQoKSB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlyZWN0b3J5ID0gZmFsc2U7XG4gIC8qKiBDdXN0b20gWEhSIOKAlCBt4bq3YyDEkeG7i25oIHNpbXVsYXRlIHByb2dyZXNzIGtoaSBraMO0bmcgY8OzIGBhY3Rpb25gLiAqL1xuICBASW5wdXQoKSBjdXN0b21SZXF1ZXN0PzogR2VvVXBsb2FkQ3VzdG9tUmVxdWVzdDtcbiAgQElucHV0KCkgYmVmb3JlVXBsb2FkPzogKFxuICAgIGZpbGU6IE56VXBsb2FkRmlsZSxcbiAgICBmaWxlTGlzdDogTnpVcGxvYWRGaWxlW11cbiAgKSA9PiBib29sZWFuIHwgT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBAT3V0cHV0KCkgZmlsZUxpc3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEdlb1VwbG9hZEZpbGVbXT4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnpVcGxvYWRDaGFuZ2VQYXJhbT4oKTtcbiAgQE91dHB1dCgpIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8R2VvVXBsb2FkRmlsZT4oKTtcbiAgQE91dHB1dCgpIHJlamVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWxlOiBGaWxlOyByZWFzb246ICd0eXBlJyB8ICdzaXplJyB9PigpO1xuXG4gIHJlYWRvbmx5IGZvcm1hdEJ5dGVzID0gZ2VvRm9ybWF0Qnl0ZXM7XG4gIHJlYWRvbmx5IGZvcm1hdFNwZWVkID0gZ2VvRm9ybWF0U3BlZWQ7XG4gIHJlYWRvbmx5IHBlcmNlbnRPZiA9IGdlb1VwbG9hZFBlcmNlbnQ7XG5cbiAgZ2V0IHJlc29sdmVkQ3VzdG9tUmVxdWVzdCgpOiBHZW9VcGxvYWRDdXN0b21SZXF1ZXN0IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5jdXN0b21SZXF1ZXN0KSB7XG4gICAgICByZXR1cm4gdGhpcy5jdXN0b21SZXF1ZXN0O1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYWN0aW9uKSB7XG4gICAgICByZXR1cm4gKGl0ZW0pID0+IHRoaXMuc2ltdWxhdGVVcGxvYWQoaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBvbkZpbGVMaXN0Q2hhbmdlKGxpc3Q6IE56VXBsb2FkRmlsZVtdKTogdm9pZCB7XG4gICAgdGhpcy5maWxlTGlzdCA9IGxpc3QgYXMgR2VvVXBsb2FkRmlsZVtdO1xuICAgIHRoaXMuZmlsZUxpc3RDaGFuZ2UuZW1pdCh0aGlzLmZpbGVMaXN0KTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBOelVwbG9hZENoYW5nZVBhcmFtKTogdm9pZCB7XG4gICAgdGhpcy5maWxlTGlzdCA9IGV2ZW50LmZpbGVMaXN0IGFzIEdlb1VwbG9hZEZpbGVbXTtcbiAgICB0aGlzLmZpbGVMaXN0Q2hhbmdlLmVtaXQodGhpcy5maWxlTGlzdCk7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBoYW5kbGVCZWZvcmVVcGxvYWQgPSAoXG4gICAgZmlsZTogTnpVcGxvYWRGaWxlLFxuICAgIF9maWxlTGlzdDogTnpVcGxvYWRGaWxlW11cbiAgKTogYm9vbGVhbiB8IE9ic2VydmFibGU8Ym9vbGVhbj4gPT4ge1xuICAgIGlmICh0aGlzLmJlZm9yZVVwbG9hZCkge1xuICAgICAgcmV0dXJuIHRoaXMuYmVmb3JlVXBsb2FkKGZpbGUsIF9maWxlTGlzdCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmF3ID0gZmlsZSBhcyB1bmtub3duIGFzIEZpbGU7XG4gICAgY29uc3QgbmFtZSA9IChmaWxlLm5hbWUgfHwgcmF3Lm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMuYWNjZXB0KSB7XG4gICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLmFjY2VwdFxuICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAubWFwKCh0KSA9PiB0LnRyaW0oKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgY29uc3Qgb2sgPSB0b2tlbnMuc29tZSgodG9rZW4pID0+IHtcbiAgICAgICAgaWYgKHRva2VuLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgICAgIHJldHVybiBuYW1lLmVuZHNXaXRoKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4uaW5jbHVkZXMoJy8qJykpIHtcbiAgICAgICAgICBjb25zdCBwcmVmaXggPSB0b2tlbi5yZXBsYWNlKCcvKicsICcnKTtcbiAgICAgICAgICByZXR1cm4gKGZpbGUudHlwZSB8fCByYXcudHlwZSB8fCAnJykuc3RhcnRzV2l0aChwcmVmaXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoZmlsZS50eXBlIHx8IHJhdy50eXBlIHx8ICcnKSA9PT0gdG9rZW47XG4gICAgICB9KTtcbiAgICAgIGlmICghb2spIHtcbiAgICAgICAgdGhpcy5yZWplY3QuZW1pdCh7IGZpbGU6IHJhdywgcmVhc29uOiAndHlwZScgfSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzaXplID0gZmlsZS5zaXplID8/IHJhdy5zaXplID8/IDA7XG4gICAgaWYgKHRoaXMubWF4U2l6ZSA+IDAgJiYgc2l6ZSA+IHRoaXMubWF4U2l6ZSkge1xuICAgICAgdGhpcy5yZWplY3QuZW1pdCh7IGZpbGU6IHJhdywgcmVhc29uOiAnc2l6ZScgfSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgb25SZW1vdmUgPSAoZmlsZTogTnpVcGxvYWRGaWxlKTogYm9vbGVhbiA9PiB7XG4gICAgdGhpcy5yZW1vdmUuZW1pdChmaWxlIGFzIEdlb1VwbG9hZEZpbGUpO1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIHJlbW92ZUZpbGUoZmlsZTogR2VvVXBsb2FkRmlsZSwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5vblJlbW92ZShmaWxlKSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5maWxlTGlzdCA9IHRoaXMuZmlsZUxpc3QuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnVpZCAhPT0gZmlsZS51aWQpO1xuICAgIHRoaXMuZmlsZUxpc3RDaGFuZ2UuZW1pdCh0aGlzLmZpbGVMaXN0KTtcbiAgfVxuXG4gIHByb2dyZXNzTGFiZWwoZmlsZTogR2VvVXBsb2FkRmlsZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdG90YWwgPSBmaWxlLnNpemUgPz8gZmlsZS5vcmlnaW5GaWxlT2JqPy5zaXplID8/IDA7XG4gICAgY29uc3QgcGVyY2VudCA9IHRoaXMucGVyY2VudE9mKGZpbGUpO1xuICAgIGNvbnN0IGxvYWRlZCA9XG4gICAgICBmaWxlLmxvYWRlZCAhPSBudWxsXG4gICAgICAgID8gZmlsZS5sb2FkZWRcbiAgICAgICAgOiBNYXRoLnJvdW5kKChwZXJjZW50IC8gMTAwKSAqIHRvdGFsKTtcbiAgICByZXR1cm4gYCR7dGhpcy5mb3JtYXRCeXRlcyhsb2FkZWQpfS8gJHt0aGlzLmZvcm1hdEJ5dGVzKHRvdGFsKX0gKCR7cGVyY2VudH0lKWA7XG4gIH1cblxuICBzcGVlZExhYmVsKGZpbGU6IEdlb1VwbG9hZEZpbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFNwZWVkKGZpbGUuc3BlZWQpO1xuICB9XG5cbiAgLyoqIERlbW8gLyBsb2NhbCB1cGxvYWQga2hpIGtow7RuZyBjw7MgYWN0aW9uLiAqL1xuICBwcml2YXRlIHNpbXVsYXRlVXBsb2FkKGl0ZW06IE56VXBsb2FkWEhSQXJncyk6IFN1YnNjcmlwdGlvbiB7XG4gICAgY29uc3QgZmlsZSA9IGl0ZW0uZmlsZSBhcyBHZW9VcGxvYWRGaWxlO1xuICAgIGNvbnN0IHRvdGFsID0gZmlsZS5zaXplID8/IGZpbGUub3JpZ2luRmlsZU9iaj8uc2l6ZSA/PyAwO1xuICAgIGxldCBsb2FkZWQgPSAwO1xuICAgIGNvbnN0IHN0YXJ0ZWQgPSBEYXRlLm5vdygpO1xuXG4gICAgZmlsZS5zdGF0dXMgPSAndXBsb2FkaW5nJztcbiAgICBmaWxlLnBlcmNlbnQgPSAwO1xuICAgIGZpbGUubG9hZGVkID0gMDtcbiAgICBmaWxlLnNwZWVkID0gMDtcblxuICAgIGNvbnN0IHRpbWVyID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXAgPSBNYXRoLm1heCh0b3RhbCAqIDAuMDgsIDE2ICogMTAyNCk7XG4gICAgICBsb2FkZWQgPSBNYXRoLm1pbih0b3RhbCwgbG9hZGVkICsgc3RlcCk7XG4gICAgICBjb25zdCBlbGFwc2VkU2VjID0gTWF0aC5tYXgoKERhdGUubm93KCkgLSBzdGFydGVkKSAvIDEwMDAsIDAuMDAxKTtcbiAgICAgIGNvbnN0IHBlcmNlbnQgPSB0b3RhbCA+IDAgPyBNYXRoLnJvdW5kKChsb2FkZWQgLyB0b3RhbCkgKiAxMDApIDogMTAwO1xuXG4gICAgICBmaWxlLmxvYWRlZCA9IGxvYWRlZDtcbiAgICAgIGZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XG4gICAgICBmaWxlLnNwZWVkID0gbG9hZGVkIC8gZWxhcHNlZFNlYztcbiAgICAgIGl0ZW0ub25Qcm9ncmVzcz8uKHsgcGVyY2VudCB9LCBmaWxlKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICBpZiAobG9hZGVkID49IHRvdGFsKSB7XG4gICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgICAgZmlsZS5zdGF0dXMgPSAnZG9uZSc7XG4gICAgICAgIGZpbGUucGVyY2VudCA9IDEwMDtcbiAgICAgICAgZmlsZS5sb2FkZWQgPSB0b3RhbDtcbiAgICAgICAgaXRlbS5vblN1Y2Nlc3M/Lih7fSwgZmlsZSwgbnVsbCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgIH0sIDIwMCk7XG5cbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbigoKSA9PiB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aW1lcikpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ2VvLXVwbG9hZFwiPlxuICA8bnotdXBsb2FkXG4gICAgY2xhc3M9XCJnZW8tdXBsb2FkX19kcmFnZ2VyXCJcbiAgICBuelR5cGU9XCJkcmFnXCJcbiAgICBbbnpBY3Rpb25dPVwiYWN0aW9uXCJcbiAgICBbbnpBY2NlcHRdPVwiYWNjZXB0XCJcbiAgICBbbnpNdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgW256RGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtuekRpcmVjdG9yeV09XCJkaXJlY3RvcnlcIlxuICAgIFtuek5hbWVdPVwibmFtZVwiXG4gICAgW256SGVhZGVyc109XCJoZWFkZXJzXCJcbiAgICBbbnpEYXRhXT1cImRhdGFcIlxuICAgIFtueldpdGhDcmVkZW50aWFsc109XCJ3aXRoQ3JlZGVudGlhbHNcIlxuICAgIFtuekZpbGVMaXN0XT1cImZpbGVMaXN0XCJcbiAgICBbbnpTaG93VXBsb2FkTGlzdF09XCJmYWxzZVwiXG4gICAgW256QmVmb3JlVXBsb2FkXT1cImhhbmRsZUJlZm9yZVVwbG9hZFwiXG4gICAgW256Q3VzdG9tUmVxdWVzdF09XCJyZXNvbHZlZEN1c3RvbVJlcXVlc3RcIlxuICAgIFtuelJlbW92ZV09XCJvblJlbW92ZVwiXG4gICAgKG56RmlsZUxpc3RDaGFuZ2UpPVwib25GaWxlTGlzdENoYW5nZSgkZXZlbnQpXCJcbiAgICAobnpDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLXVwbG9hZF9fZHJvcHpvbmVcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLXVwbG9hZF9faWNvbi13cmFwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLXVwbG9hZF9faWNvblwiIG56LWljb24gbnpUeXBlPVwiY2xvdWQtdXBsb2FkXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJnZW8tdXBsb2FkX19jb3B5XCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZ2VvLXVwbG9hZF9fdGl0bGVcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0aXRsZVByZWZpeCB9fSA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnZW8tdXBsb2FkX19zZWxlY3RcIj57eyBzZWxlY3RUZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuPiB7eyB0aXRsZVN1ZmZpeCB9fTwvc3Bhbj5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIEBpZiAoaGludCkge1xuICAgICAgICAgIDxwIGNsYXNzPVwiZ2VvLXVwbG9hZF9faGludFwiPnt7IGhpbnQgfX08L3A+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L256LXVwbG9hZD5cblxuICBAaWYgKGZpbGVMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLXVwbG9hZF9fbGlzdFwiPlxuICAgICAgQGlmIChzaG93TGlzdFRpdGxlKSB7XG4gICAgICAgIDxoNCBjbGFzcz1cImdlby11cGxvYWRfX2xpc3QtdGl0bGVcIj57eyBsaXN0VGl0bGUgfX08L2g0PlxuICAgICAgfVxuXG4gICAgICA8dWwgY2xhc3M9XCJnZW8tdXBsb2FkX19maWxlc1wiPlxuICAgICAgICBAZm9yIChmaWxlIG9mIGZpbGVMaXN0OyB0cmFjayBmaWxlLnVpZCkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cImdlby11cGxvYWRfX2ZpbGVcIiBbY2xhc3MuZ2VvLXVwbG9hZF9fZmlsZS0tZXJyb3JdPVwiZmlsZS5zdGF0dXMgPT09ICdlcnJvcidcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZW8tdXBsb2FkX19maWxlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJmaWxlXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdlby11cGxvYWRfX2ZpbGUtbWFpblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VvLXVwbG9hZF9fZmlsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby11cGxvYWRfX2ZpbGUtbmFtZVwiIFt0aXRsZV09XCJmaWxlLm5hbWVcIj57eyBmaWxlLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImdlby11cGxvYWRfX2ZpbGUtcmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJYw7NhIHThuq1wIHRpblwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoZmlsZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJjbG9zZVwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VvLXVwbG9hZF9fcHJvZ3Jlc3NcIiByb2xlPVwicHJvZ3Jlc3NiYXJcIiBbYXR0ci5hcmlhLXZhbHVlbm93XT1cInBlcmNlbnRPZihmaWxlKVwiIGFyaWEtdmFsdWVtaW49XCIwXCIgYXJpYS12YWx1ZW1heD1cIjEwMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZW8tdXBsb2FkX19wcm9ncmVzcy1iYXJcIiBbc3R5bGUud2lkdGguJV09XCJwZXJjZW50T2YoZmlsZSlcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdlby11cGxvYWRfX2ZpbGUtbWV0YVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHByb2dyZXNzTGFiZWwoZmlsZSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgc3BlZWRMYWJlbChmaWxlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICB9XG5cbiAgQGlmIChlcnJvciAmJiBlcnJvck1lc3NhZ2UpIHtcbiAgICA8cCBjbGFzcz1cImdlby11cGxvYWRfX2Vycm9yXCIgcm9sZT1cImFsZXJ0XCI+e3sgZXJyb3JNZXNzYWdlIH19PC9wPlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function geoFormatBytes(bytes) {
|
|
2
|
+
if (bytes == null || Number.isNaN(bytes)) {
|
|
3
|
+
return '0Kb';
|
|
4
|
+
}
|
|
5
|
+
const kb = bytes / 1024;
|
|
6
|
+
if (kb < 1024) {
|
|
7
|
+
return `${Math.round(kb)}Kb`;
|
|
8
|
+
}
|
|
9
|
+
return `${(kb / 1024).toFixed(kb >= 10240 ? 0 : 1)}Mb`;
|
|
10
|
+
}
|
|
11
|
+
export function geoFormatSpeed(bytesPerSec) {
|
|
12
|
+
if (bytesPerSec == null || bytesPerSec <= 0) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
const kb = bytesPerSec / 1024;
|
|
16
|
+
if (kb < 1024) {
|
|
17
|
+
return `${Math.round(kb)}kb/sec`;
|
|
18
|
+
}
|
|
19
|
+
return `${(kb / 1024).toFixed(1)}Mb/sec`;
|
|
20
|
+
}
|
|
21
|
+
export function geoUploadPercent(file) {
|
|
22
|
+
if (file.percent != null) {
|
|
23
|
+
return Math.max(0, Math.min(100, Math.round(file.percent)));
|
|
24
|
+
}
|
|
25
|
+
if (file.status === 'done' || file.status === 'success') {
|
|
26
|
+
return 100;
|
|
27
|
+
}
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXVwbG9hZC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby11cGxvYWQvZ2VvLXVwbG9hZC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQXFCO0lBQ2xELElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxFQUFFLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN4QixJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNkLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQTJCO0lBQ3hELElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsTUFBTSxFQUFFLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM5QixJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNkLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQW1CO0lBQ2xELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE56VXBsb2FkRmlsZSwgTnpVcGxvYWRYSFJBcmdzIH0gZnJvbSAnbmctem9ycm8tYW50ZC91cGxvYWQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8qKiBFeHRlbmRzIEFudCBEZXNpZ24gdXBsb2FkIGZpbGUgd2l0aCBwcm9ncmVzcyBtZXRhZGF0YSBmb3IgR0VPIFVJLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW9VcGxvYWRGaWxlIGV4dGVuZHMgTnpVcGxvYWRGaWxlIHtcbiAgLyoqIEJ5dGVzIHVwbG9hZGVkIHNvIGZhciAoZm9yIFwiMTAwS2IgLyAyMDBLYlwiKS4gKi9cbiAgbG9hZGVkPzogbnVtYmVyO1xuICAvKiogVXBsb2FkIHNwZWVkIGluIGJ5dGVzL3NlYyAoZm9yIFwiODcwa2Ivc2VjXCIpLiAqL1xuICBzcGVlZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgR2VvVXBsb2FkQ3VzdG9tUmVxdWVzdCA9IChpdGVtOiBOelVwbG9hZFhIUkFyZ3MpID0+IFN1YnNjcmlwdGlvbjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdlb0Zvcm1hdEJ5dGVzKGJ5dGVzPzogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB7XG4gIGlmIChieXRlcyA9PSBudWxsIHx8IE51bWJlci5pc05hTihieXRlcykpIHtcbiAgICByZXR1cm4gJzBLYic7XG4gIH1cbiAgY29uc3Qga2IgPSBieXRlcyAvIDEwMjQ7XG4gIGlmIChrYiA8IDEwMjQpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChrYil9S2JgO1xuICB9XG4gIHJldHVybiBgJHsoa2IgLyAxMDI0KS50b0ZpeGVkKGtiID49IDEwMjQwID8gMCA6IDEpfU1iYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlb0Zvcm1hdFNwZWVkKGJ5dGVzUGVyU2VjPzogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB7XG4gIGlmIChieXRlc1BlclNlYyA9PSBudWxsIHx8IGJ5dGVzUGVyU2VjIDw9IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgY29uc3Qga2IgPSBieXRlc1BlclNlYyAvIDEwMjQ7XG4gIGlmIChrYiA8IDEwMjQpIHtcbiAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChrYil9a2Ivc2VjYDtcbiAgfVxuICByZXR1cm4gYCR7KGtiIC8gMTAyNCkudG9GaXhlZCgxKX1NYi9zZWNgO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VvVXBsb2FkUGVyY2VudChmaWxlOiBHZW9VcGxvYWRGaWxlKTogbnVtYmVyIHtcbiAgaWYgKGZpbGUucGVyY2VudCAhPSBudWxsKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKDEwMCwgTWF0aC5yb3VuZChmaWxlLnBlcmNlbnQpKSk7XG4gIH1cbiAgaWYgKGZpbGUuc3RhdHVzID09PSAnZG9uZScgfHwgZmlsZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgIHJldHVybiAxMDA7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG4iXX0=
|