rd-outer-component 0.0.20 → 0.0.22

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.
Files changed (39) hide show
  1. package/esm2020/lib/modules/custom-checkbox/custom-checkbox.component.mjs +2 -2
  2. package/esm2020/lib/modules/custom-date/custom-date.component.mjs +2 -2
  3. package/esm2020/lib/modules/custom-filter/custom-filter-select/custom-filter-select.component.mjs +9 -3
  4. package/esm2020/lib/modules/custom-filter/custom-filter.component.mjs +10 -4
  5. package/esm2020/lib/modules/custom-filter/custom-filter.types.mjs +1 -1
  6. package/esm2020/lib/modules/custom-input/custom-input.component.mjs +2 -2
  7. package/esm2020/lib/modules/custom-input-amount/custom-input-amount.component.mjs +3 -3
  8. package/esm2020/lib/modules/custom-radio/custom-radio.component.mjs +2 -2
  9. package/esm2020/lib/modules/custom-select/custom-select.component.mjs +3 -3
  10. package/esm2020/lib/modules/custom-select/index.mjs +4 -1
  11. package/esm2020/lib/modules/custom-select/pure-select-token/pure-select-token.component.mjs +78 -0
  12. package/esm2020/lib/modules/custom-select/pure-select-token/pure-select-token.module.mjs +43 -0
  13. package/esm2020/lib/modules/custom-select/pure-select-token/pure-select-token.type.mjs +2 -0
  14. package/esm2020/lib/modules/custom-textarea/custom-textarea.component.mjs +2 -2
  15. package/esm2020/lib/modules/form-item/form-item.component.mjs +30 -0
  16. package/esm2020/lib/modules/form-item/form-item.module.mjs +18 -0
  17. package/esm2020/lib/modules/status-field/status-field.component.mjs +52 -10
  18. package/fesm2015/rd-outer-component.mjs +237 -76
  19. package/fesm2015/rd-outer-component.mjs.map +1 -1
  20. package/fesm2020/rd-outer-component.mjs +235 -77
  21. package/fesm2020/rd-outer-component.mjs.map +1 -1
  22. package/lib/modules/custom-filter/custom-filter-select/custom-filter-select.component.d.ts +4 -2
  23. package/lib/modules/custom-filter/custom-filter.component.d.ts +4 -2
  24. package/lib/modules/custom-filter/custom-filter.types.d.ts +14 -0
  25. package/lib/modules/custom-input-amount/custom-input-amount.component.d.ts +1 -1
  26. package/lib/modules/custom-select/index.d.ts +3 -0
  27. package/lib/modules/custom-select/pure-select-token/pure-select-token.component.d.ts +31 -0
  28. package/lib/modules/custom-select/pure-select-token/pure-select-token.module.d.ts +13 -0
  29. package/lib/modules/custom-select/pure-select-token/pure-select-token.type.d.ts +6 -0
  30. package/lib/modules/form-item/form-item.component.d.ts +12 -0
  31. package/lib/modules/form-item/form-item.module.d.ts +8 -0
  32. package/lib/modules/status-field/status-field.component.d.ts +9 -23
  33. package/package.json +1 -1
  34. package/src/lib/assets/img/no-data.svg +6 -0
  35. package/src/lib/assets/scss/form-item.scss +5 -4
  36. package/esm2020/lib/constants/common.constant.mjs +0 -21
  37. package/esm2020/lib/types/common.enum.mjs +0 -24
  38. package/lib/constants/common.constant.d.ts +0 -19
  39. package/lib/types/common.enum.d.ts +0 -19
@@ -0,0 +1,43 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NzSelectModule } from 'ng-zorro-antd/select';
4
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { NzSpinModule } from 'ng-zorro-antd/spin';
6
+ import { NzAvatarModule } from 'ng-zorro-antd/avatar';
7
+ import { PureSelectTokenComponent } from './pure-select-token.component';
8
+ import { FormItemModule } from '../../form-item/form-item.module';
9
+ import * as i0 from "@angular/core";
10
+ export class RdPureSelectTokenModule {
11
+ }
12
+ RdPureSelectTokenModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RdPureSelectTokenModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ RdPureSelectTokenModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: RdPureSelectTokenModule, declarations: [PureSelectTokenComponent], imports: [CommonModule,
14
+ FormsModule,
15
+ ReactiveFormsModule,
16
+ NzSpinModule,
17
+ NzSelectModule,
18
+ FormItemModule,
19
+ NzAvatarModule], exports: [PureSelectTokenComponent] });
20
+ RdPureSelectTokenModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RdPureSelectTokenModule, imports: [CommonModule,
21
+ FormsModule,
22
+ ReactiveFormsModule,
23
+ NzSpinModule,
24
+ NzSelectModule,
25
+ FormItemModule,
26
+ NzAvatarModule] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RdPureSelectTokenModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [PureSelectTokenComponent],
31
+ imports: [
32
+ CommonModule,
33
+ FormsModule,
34
+ ReactiveFormsModule,
35
+ NzSpinModule,
36
+ NzSelectModule,
37
+ FormItemModule,
38
+ NzAvatarModule,
39
+ ],
40
+ exports: [PureSelectTokenComponent],
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZS1zZWxlY3QtdG9rZW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvY3VzdG9tLXNlbGVjdC9wdXJlLXNlbGVjdC10b2tlbi9wdXJlLXNlbGVjdC10b2tlbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFlbEUsTUFBTSxPQUFPLHVCQUF1Qjs7cUhBQXZCLHVCQUF1QjtzSEFBdkIsdUJBQXVCLGlCQVpuQix3QkFBd0IsYUFFckMsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLGNBQWM7UUFDZCxjQUFjO1FBQ2QsY0FBYyxhQUVOLHdCQUF3QjtzSEFFdkIsdUJBQXVCLFlBVmhDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixjQUFjO1FBQ2QsY0FBYztRQUNkLGNBQWM7NEZBSUwsdUJBQXVCO2tCQWJuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE56U2VsZWN0TW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9zZWxlY3QnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOelNwaW5Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3NwaW4nO1xuaW1wb3J0IHsgTnpBdmF0YXJNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2F2YXRhcic7XG5cbmltcG9ydCB7IFB1cmVTZWxlY3RUb2tlbkNvbXBvbmVudCB9IGZyb20gJy4vcHVyZS1zZWxlY3QtdG9rZW4uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JdGVtTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9ybS1pdGVtL2Zvcm0taXRlbS5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQdXJlU2VsZWN0VG9rZW5Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTnpTcGluTW9kdWxlLFxuICAgIE56U2VsZWN0TW9kdWxlLFxuICAgIEZvcm1JdGVtTW9kdWxlLFxuICAgIE56QXZhdGFyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbUHVyZVNlbGVjdFRva2VuQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgUmRQdXJlU2VsZWN0VG9rZW5Nb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZS1zZWxlY3QtdG9rZW4udHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2N1c3RvbS1zZWxlY3QvcHVyZS1zZWxlY3QtdG9rZW4vcHVyZS1zZWxlY3QtdG9rZW4udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJVG9rZW5TZWxlY3RPcHRpb24ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaWNvblVybD86IHN0cmluZztcbn1cbiJdfQ==
@@ -131,7 +131,7 @@ CustomTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
131
131
  useExisting: forwardRef(() => CustomTextareaComponent),
132
132
  multi: true,
133
133
  },
134
- ], ngImport: i0, template: "<div>\n <div class=\"form-item\" [ngClass]=\"{ disabled: disabled, error: showError }\">\n <textarea\n nz-input\n nzBorderless\n [name]=\"name\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"handleValueChange($event)\"\n (blur)=\"onBlur()\"\n [nzAutosize]=\"nzAutosize\"\n placeholder=\" \"\n class=\"form-item-input\"\n ></textarea>\n <div class=\"form-item-label\">{{ label }}</div>\n </div>\n <div *ngIf=\"showError\" class=\"form-item-error\">\n <img *ngIf=\"currentErrorMessage\" src=\"/assets/img/icon/icon-error.svg\" />\n {{ currentErrorMessage }}\n </div>\n</div>\n", styles: ["", ".form-item{position:relative;border-radius:4px;padding:2px 6px;border:1px solid #e5e7eb;background-color:#fff;width:100%;margin-top:16px;height:64px}.form-item .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}.form-item-input{color:#030712;font-size:14px;width:100%;font-weight:500;padding:18px 16px}.form-item-input:focus,.form-item-input:not(:placeholder-shown){top:10px}.form-item .form-item-input:focus~.form-item-label,.form-item .form-item-input:not(:placeholder-shown)~.form-item-label{top:16px;font-size:12px}.form-item-select{width:100%}.form-item-select ::ng-deep .ant-select-selection-item{color:#030712;font-size:14px;font-weight:500}.form-item.selected .form-item-label{top:16px;font-size:12px}.form-item.selected .form-item-select{top:10px}.form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-item.disabled .form-item-label,.form-item.disabled .form-item-input{color:#9ca3af}.form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}.form-item.error{border-color:#e51c36}.form-item-check{position:relative;background-color:#fff;width:100%;margin-top:16px}.form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.form-item-error img{width:16px}.form-number-item{position:relative;border-radius:12px;padding:12px 6px;background-color:#fff;border:1px solid #e5e7eb;width:100%;margin-top:16px}.form-number-item .item-label{color:#6b7280;font-size:12px;padding:0 12px;font-weight:500}.form-number-item .item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:#9ca3af}.form-number-item .item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:#030712;border:none}.form-number-item .item-content-value:focus,.form-number-item .item-content-value:active,.form-number-item .item-content-value:hover{outline:none;box-shadow:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.form-number-item .item-content-value ::ng-deep .ant-input-number-input::placeholder{color:#9ca3af}.form-number-item .item-content-symbol{flex-shrink:0}.form-number-item ::ng-deep .item-warning{font-weight:500;font-size:12px;color:#6b7280;margin-top:4px;padding:0 12px}.form-number-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-number-item.disabled .item-label,.form-number-item.disabled .item-content-value{color:#9ca3af}.form-number-item.error{border-color:#e51c36}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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"] }, { kind: "directive", type: i3.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i3.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }] });
134
+ ], ngImport: i0, template: "<div>\n <div class=\"form-item\" [ngClass]=\"{ disabled: disabled, error: showError }\">\n <textarea\n nz-input\n nzBorderless\n [name]=\"name\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"handleValueChange($event)\"\n (blur)=\"onBlur()\"\n [nzAutosize]=\"nzAutosize\"\n placeholder=\" \"\n class=\"form-item-input\"\n ></textarea>\n <div class=\"form-item-label\">{{ label }}</div>\n </div>\n <div *ngIf=\"showError\" class=\"form-item-error\">\n <img *ngIf=\"currentErrorMessage\" src=\"/assets/img/icon/icon-error.svg\" />\n {{ currentErrorMessage }}\n </div>\n</div>\n", styles: ["", ".form-item{position:relative;border-radius:4px;padding:2px 6px;border:1px solid #e5e7eb;background-color:#fff;width:100%;margin-top:16px;height:64px}.form-item .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}.form-item-input{color:#030712;font-size:14px;width:100%;font-weight:500;padding:18px 16px}.form-item-input:focus,.form-item-input:not(:placeholder-shown){top:10px}.form-item .form-item-input:focus~.form-item-label,.form-item .form-item-input:not(:placeholder-shown)~.form-item-label{top:16px;font-size:12px}.form-item-select{width:100%}.form-item-select ::ng-deep .ant-select-selection-item{color:#030712;font-size:14px;font-weight:500}.form-item.selected .form-item-label{top:16px;font-size:12px}.form-item.selected .form-item-select{top:10px}.form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-item.disabled .form-item-label,.form-item.disabled .form-item-input{color:#9ca3af}.form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}.form-item.error{border-color:#e51c36}.form-item-check{position:relative;background-color:#fff;width:100%;margin-top:16px}.form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.form-item-error img{width:16px}.form-number-item{position:relative;border-radius:4px;padding:12px 16px;background-color:#fff;border:1px solid #e5e7eb;width:100%;margin-top:16px}.form-number-item .item-label{color:#6b7280;font-size:12px;font-weight:600}.form-number-item .item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:#9ca3af}.form-number-item .item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:#030712;border:none;padding:4px 0}.form-number-item .item-content-value:focus,.form-number-item .item-content-value:active,.form-number-item .item-content-value:hover{outline:none;box-shadow:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.form-number-item .item-content-value ::ng-deep .ant-input-number-input::placeholder{color:#9ca3af}.form-number-item .item-content-symbol{flex-shrink:0}.form-number-item ::ng-deep .item-warning{font-weight:500;font-size:12px;color:#6b7280;margin-top:4px;padding:0 12px}.form-number-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-number-item.disabled .item-label,.form-number-item.disabled .item-content-value{color:#9ca3af}.form-number-item.error{border-color:#e51c36}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: 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"] }, { kind: "directive", type: i3.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i3.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }] });
135
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomTextareaComponent, decorators: [{
136
136
  type: Component,
137
137
  args: [{ selector: 'app-rd-textarea', providers: [
@@ -145,7 +145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
145
145
  useExisting: forwardRef(() => CustomTextareaComponent),
146
146
  multi: true,
147
147
  },
148
- ], template: "<div>\n <div class=\"form-item\" [ngClass]=\"{ disabled: disabled, error: showError }\">\n <textarea\n nz-input\n nzBorderless\n [name]=\"name\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"handleValueChange($event)\"\n (blur)=\"onBlur()\"\n [nzAutosize]=\"nzAutosize\"\n placeholder=\" \"\n class=\"form-item-input\"\n ></textarea>\n <div class=\"form-item-label\">{{ label }}</div>\n </div>\n <div *ngIf=\"showError\" class=\"form-item-error\">\n <img *ngIf=\"currentErrorMessage\" src=\"/assets/img/icon/icon-error.svg\" />\n {{ currentErrorMessage }}\n </div>\n</div>\n", styles: [".form-item{position:relative;border-radius:4px;padding:2px 6px;border:1px solid #e5e7eb;background-color:#fff;width:100%;margin-top:16px;height:64px}.form-item .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}.form-item-input{color:#030712;font-size:14px;width:100%;font-weight:500;padding:18px 16px}.form-item-input:focus,.form-item-input:not(:placeholder-shown){top:10px}.form-item .form-item-input:focus~.form-item-label,.form-item .form-item-input:not(:placeholder-shown)~.form-item-label{top:16px;font-size:12px}.form-item-select{width:100%}.form-item-select ::ng-deep .ant-select-selection-item{color:#030712;font-size:14px;font-weight:500}.form-item.selected .form-item-label{top:16px;font-size:12px}.form-item.selected .form-item-select{top:10px}.form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-item.disabled .form-item-label,.form-item.disabled .form-item-input{color:#9ca3af}.form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}.form-item.error{border-color:#e51c36}.form-item-check{position:relative;background-color:#fff;width:100%;margin-top:16px}.form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.form-item-error img{width:16px}.form-number-item{position:relative;border-radius:12px;padding:12px 6px;background-color:#fff;border:1px solid #e5e7eb;width:100%;margin-top:16px}.form-number-item .item-label{color:#6b7280;font-size:12px;padding:0 12px;font-weight:500}.form-number-item .item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:#9ca3af}.form-number-item .item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:#030712;border:none}.form-number-item .item-content-value:focus,.form-number-item .item-content-value:active,.form-number-item .item-content-value:hover{outline:none;box-shadow:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.form-number-item .item-content-value ::ng-deep .ant-input-number-input::placeholder{color:#9ca3af}.form-number-item .item-content-symbol{flex-shrink:0}.form-number-item ::ng-deep .item-warning{font-weight:500;font-size:12px;color:#6b7280;margin-top:4px;padding:0 12px}.form-number-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-number-item.disabled .item-label,.form-number-item.disabled .item-content-value{color:#9ca3af}.form-number-item.error{border-color:#e51c36}\n"] }]
148
+ ], template: "<div>\n <div class=\"form-item\" [ngClass]=\"{ disabled: disabled, error: showError }\">\n <textarea\n nz-input\n nzBorderless\n [name]=\"name\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"handleValueChange($event)\"\n (blur)=\"onBlur()\"\n [nzAutosize]=\"nzAutosize\"\n placeholder=\" \"\n class=\"form-item-input\"\n ></textarea>\n <div class=\"form-item-label\">{{ label }}</div>\n </div>\n <div *ngIf=\"showError\" class=\"form-item-error\">\n <img *ngIf=\"currentErrorMessage\" src=\"/assets/img/icon/icon-error.svg\" />\n {{ currentErrorMessage }}\n </div>\n</div>\n", styles: [".form-item{position:relative;border-radius:4px;padding:2px 6px;border:1px solid #e5e7eb;background-color:#fff;width:100%;margin-top:16px;height:64px}.form-item .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none}.form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}.form-item-input{color:#030712;font-size:14px;width:100%;font-weight:500;padding:18px 16px}.form-item-input:focus,.form-item-input:not(:placeholder-shown){top:10px}.form-item .form-item-input:focus~.form-item-label,.form-item .form-item-input:not(:placeholder-shown)~.form-item-label{top:16px;font-size:12px}.form-item-select{width:100%}.form-item-select ::ng-deep .ant-select-selection-item{color:#030712;font-size:14px;font-weight:500}.form-item.selected .form-item-label{top:16px;font-size:12px}.form-item.selected .form-item-select{top:10px}.form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-item.disabled .form-item-label,.form-item.disabled .form-item-input{color:#9ca3af}.form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}.form-item.error{border-color:#e51c36}.form-item-check{position:relative;background-color:#fff;width:100%;margin-top:16px}.form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}.form-item-error img{width:16px}.form-number-item{position:relative;border-radius:4px;padding:12px 16px;background-color:#fff;border:1px solid #e5e7eb;width:100%;margin-top:16px}.form-number-item .item-label{color:#6b7280;font-size:12px;font-weight:600}.form-number-item .item-content{display:flex;align-items:center;font-size:32px;font-weight:600;line-height:48px;color:#9ca3af}.form-number-item .item-content-value{flex:1;font-size:32px;font-weight:600;line-height:48px;color:#030712;border:none;padding:4px 0}.form-number-item .item-content-value:focus,.form-number-item .item-content-value:active,.form-number-item .item-content-value:hover{outline:none;box-shadow:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-handler-wrap{display:none}.form-number-item .item-content-value ::ng-deep .ant-input-number-input{font-size:32px;font-weight:600;line-height:48px}.form-number-item .item-content-value ::ng-deep .ant-input-number-input::placeholder{color:#9ca3af}.form-number-item .item-content-symbol{flex-shrink:0}.form-number-item ::ng-deep .item-warning{font-weight:500;font-size:12px;color:#6b7280;margin-top:4px;padding:0 12px}.form-number-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}.form-number-item.disabled .item-label,.form-number-item.disabled .item-content-value{color:#9ca3af}.form-number-item.error{border-color:#e51c36}\n"] }]
149
149
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
150
150
  type: Input
151
151
  }], name: [{
@@ -0,0 +1,30 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class FormItemComponent {
5
+ constructor() {
6
+ this.size = 'normal';
7
+ }
8
+ get isShowSelectIcon() {
9
+ return this.type === 'select';
10
+ }
11
+ }
12
+ FormItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ FormItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FormItemComponent, selector: "app-rd-form-item", inputs: { errorMessage: "errorMessage", disabled: "disabled", label: "label", type: "type", focus: "focus", size: "size" }, ngImport: i0, template: "<div\n class=\"form-item\"\n [ngClass]=\"{\n disabled: disabled,\n error: !!errorMessage,\n focus: focus,\n 'form-item-s': size === 'small',\n 'form-item-normal': size === 'normal'\n }\"\n>\n <ng-content></ng-content>\n <div *ngIf=\"label\" class=\"form-item-label\">{{ label }}</div>\n <svg\n *ngIf=\"isShowSelectIcon\"\n class=\"form-item-select-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n >\n <path\n d=\"M3 5.83337L8 11.1667L13 5.83337\"\n [attr.stroke]=\"disabled ? '#9CA3AF' : '#030712'\"\n stroke-width=\"1.16667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n</div>\n<div *ngIf=\"errorMessage\" class=\"form-item-error\">\n <img src=\"/assets/img/icon/icon-error.svg\" />\n {{ errorMessage }}\n</div>\n", styles: [":host .form-item{position:relative;border-radius:4px;border:1px solid #e5e7eb;background-color:#fff;width:100%;font-size:14px;line-height:1;padding:0;transition:all .3s cubic-bezier(.645,.045,.355,1)}:host .form-item.form-item-normal{height:64px}:host .form-item.form-item-s{height:40px}:host .form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}:host .form-item.disabled .form-item-label,:host .form-item.disabled .form-item-input{color:#9ca3af}:host .form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}:host .form-item.error{border-color:#e51c36}:host .form-item.focus{border:1px solid #367af6;box-shadow:0 0 0 2px #367af61a}:host .form-item.focus .form-item-select-icon{transform:translateY(-50%) rotate(-180deg)}:host .form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}:host .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none;transition:transform .2s ease}:host .form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}:host .form-item-error img{width:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormItemComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'app-rd-form-item', template: "<div\n class=\"form-item\"\n [ngClass]=\"{\n disabled: disabled,\n error: !!errorMessage,\n focus: focus,\n 'form-item-s': size === 'small',\n 'form-item-normal': size === 'normal'\n }\"\n>\n <ng-content></ng-content>\n <div *ngIf=\"label\" class=\"form-item-label\">{{ label }}</div>\n <svg\n *ngIf=\"isShowSelectIcon\"\n class=\"form-item-select-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n >\n <path\n d=\"M3 5.83337L8 11.1667L13 5.83337\"\n [attr.stroke]=\"disabled ? '#9CA3AF' : '#030712'\"\n stroke-width=\"1.16667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n</div>\n<div *ngIf=\"errorMessage\" class=\"form-item-error\">\n <img src=\"/assets/img/icon/icon-error.svg\" />\n {{ errorMessage }}\n</div>\n", styles: [":host .form-item{position:relative;border-radius:4px;border:1px solid #e5e7eb;background-color:#fff;width:100%;font-size:14px;line-height:1;padding:0;transition:all .3s cubic-bezier(.645,.045,.355,1)}:host .form-item.form-item-normal{height:64px}:host .form-item.form-item-s{height:40px}:host .form-item.disabled{background-color:#f3f4f6;border-color:#d1d5db}:host .form-item.disabled .form-item-label,:host .form-item.disabled .form-item-input{color:#9ca3af}:host .form-item.disabled ::ng-deep .ant-select-selection-item{color:#9ca3af}:host .form-item.error{border-color:#e51c36}:host .form-item.focus{border:1px solid #367af6;box-shadow:0 0 0 2px #367af61a}:host .form-item.focus .form-item-select-icon{transform:translateY(-50%) rotate(-180deg)}:host .form-item-label{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#6b7280;transition:all .3s ease;pointer-events:none;z-index:1;font-size:14px;font-weight:500}:host .form-item-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;pointer-events:none;transition:transform .2s ease}:host .form-item-error{color:#d2152e;font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px;margin-top:4px}:host .form-item-error img{width:16px}\n"] }]
17
+ }], propDecorators: { errorMessage: [{
18
+ type: Input
19
+ }], disabled: [{
20
+ type: Input
21
+ }], label: [{
22
+ type: Input
23
+ }], type: [{
24
+ type: Input
25
+ }], focus: [{
26
+ type: Input
27
+ }], size: [{
28
+ type: Input
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2Zvcm0taXRlbS9mb3JtLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvZm9ybS1pdGVtL2Zvcm0taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT2pELE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFXVyxTQUFJLEdBQXdCLFFBQVEsQ0FBQztLQUsvQztJQUhDLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7SUFDaEMsQ0FBQzs7K0dBVlUsaUJBQWlCO21HQUFqQixpQkFBaUIsb0xDUDlCLHkzQkFrQ0E7NEZEM0JhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxrQkFBa0I7OEJBS25CLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZC1mb3JtLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1JdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSB0eXBlPzogJ3NlbGVjdCc7XG4gIEBJbnB1dCgpIGZvY3VzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc2l6ZT86ICdzbWFsbCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xuXG4gIGdldCBpc1Nob3dTZWxlY3RJY29uKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdzZWxlY3QnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZm9ybS1pdGVtXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgIGRpc2FibGVkOiBkaXNhYmxlZCxcbiAgICBlcnJvcjogISFlcnJvck1lc3NhZ2UsXG4gICAgZm9jdXM6IGZvY3VzLFxuICAgICdmb3JtLWl0ZW0tcyc6IHNpemUgPT09ICdzbWFsbCcsXG4gICAgJ2Zvcm0taXRlbS1ub3JtYWwnOiBzaXplID09PSAnbm9ybWFsJ1xuICB9XCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8ZGl2ICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImZvcm0taXRlbS1sYWJlbFwiPnt7IGxhYmVsIH19PC9kaXY+XG4gIDxzdmdcbiAgICAqbmdJZj1cImlzU2hvd1NlbGVjdEljb25cIlxuICAgIGNsYXNzPVwiZm9ybS1pdGVtLXNlbGVjdC1pY29uXCJcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD1cIjE2XCJcbiAgICBoZWlnaHQ9XCIxN1wiXG4gICAgdmlld0JveD1cIjAgMCAxNiAxN1wiXG4gICAgZmlsbD1cIm5vbmVcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNMyA1LjgzMzM3TDggMTEuMTY2N0wxMyA1LjgzMzM3XCJcbiAgICAgIFthdHRyLnN0cm9rZV09XCJkaXNhYmxlZCA/ICcjOUNBM0FGJyA6ICcjMDMwNzEyJ1wiXG4gICAgICBzdHJva2Utd2lkdGg9XCIxLjE2NjY3XCJcbiAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgIC8+XG4gIDwvc3ZnPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJmb3JtLWl0ZW0tZXJyb3JcIj5cbiAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9pY29uL2ljb24tZXJyb3Iuc3ZnXCIgLz5cbiAge3sgZXJyb3JNZXNzYWdlIH19XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormItemComponent } from './form-item.component';
4
+ import * as i0 from "@angular/core";
5
+ export class FormItemModule {
6
+ }
7
+ FormItemModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ FormItemModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FormItemModule, declarations: [FormItemComponent], imports: [CommonModule], exports: [FormItemComponent] });
9
+ FormItemModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormItemModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormItemModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [FormItemComponent],
14
+ exports: [FormItemComponent],
15
+ imports: [CommonModule],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL2Zvcm0taXRlbS9mb3JtLWl0ZW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU8xRCxNQUFNLE9BQU8sY0FBYzs7NEdBQWQsY0FBYzs2R0FBZCxjQUFjLGlCQUpWLGlCQUFpQixhQUV0QixZQUFZLGFBRFosaUJBQWlCOzZHQUdoQixjQUFjLFlBRmYsWUFBWTs0RkFFWCxjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0taXRlbS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtGb3JtSXRlbUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtGb3JtSXRlbUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtSXRlbU1vZHVsZSB7fVxuIl19
@@ -1,28 +1,70 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { ONOFFStatusEnum } from '../../types/common.enum';
3
- import { ONOFFStatusEnumTextMap } from '../../constants/common.constant';
4
2
  import * as i0 from "@angular/core";
5
3
  import * as i1 from "@angular/common";
6
4
  export class StatusFieldComponent {
7
5
  constructor() {
8
6
  this.size = 'default';
9
- this.statusEnum = ONOFFStatusEnum;
10
- this.textEnum = ONOFFStatusEnumTextMap;
7
+ this.statusDisplayConfigs = [];
8
+ this.statusGroupConfigs = {};
11
9
  }
12
- get defaultText() {
13
- return (this.text || this.textEnum[this.status] || this.status);
10
+ getStatusDisplay() {
11
+ // 1. 查找精确匹配的配置
12
+ const exactMatch = this.statusDisplayConfigs?.find((c) => c?.status === this.status);
13
+ if (exactMatch) {
14
+ return {
15
+ icon: exactMatch?.icon,
16
+ text: exactMatch?.text || this.status,
17
+ };
18
+ }
19
+ // 2. 查找分组匹配
20
+ for (const groupName in this.statusGroupConfigs) {
21
+ const group = this.statusGroupConfigs[groupName];
22
+ if (group?.match(this.status)) {
23
+ return {
24
+ icon: group?.icon,
25
+ text: this.status, // 或者可以配置默认文本
26
+ };
27
+ }
28
+ }
29
+ // 3. 默认返回
30
+ return {
31
+ icon: '',
32
+ text: this.status,
33
+ };
14
34
  }
15
35
  }
16
36
  StatusFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StatusFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- StatusFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StatusFieldComponent, selector: "app-rd-status-field", inputs: { status: "status", text: "text", size: "size" }, ngImport: i0, template: "<div class=\"status-field\" [ngClass]=\"size\">\n <ng-container [ngSwitch]=\"status\">\n <ng-container\n *ngSwitchCase=\"\n [\n statusEnum.PENDING_DEPOSIT,\n statusEnum.WAITING,\n statusEnum.VERIFYING,\n statusEnum.PAYMENT_VERIFYING,\n statusEnum.DECLARATION_REVIEW\n ].includes(status)\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/pending.svg\" alt=\"\" />\n </ng-container>\n <ng-container\n *ngSwitchCase=\"\n [\n statusEnum.AWAIT_FOR_RECEIVE,\n statusEnum.AWAIT_FOR_DECLARATION\n ].includes(status)\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/warning.svg\" alt=\"\" />\n </ng-container>\n <ng-container\n *ngSwitchCase=\"\n status == statusEnum.SUBMITTED ||\n status == statusEnum.PENDING ||\n status == statusEnum.CONVERTING\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/submitted.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.SETTLING\">\n <img src=\"/assets/img/status/settling.svg\" alt=\"\" />\n </ng-container>\n <ng-container\n *ngSwitchCase=\"\n status == statusEnum.SUCCESSFUL || status == statusEnum.SUCCESS\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/success.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"status == statusEnum.CLOSED ? status : ''\">\n <img src=\"/assets/img/status/cancel.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.FAILED\">\n <img src=\"/assets/img/status/failed.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.RETURNING\">\n <img src=\"/assets/img/status/returning.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.RETURNED\">\n <img src=\"/assets/img/status/returned.svg\" alt=\"\" />\n </ng-container>\n\n {{ defaultText }}\n </ng-container>\n</div>\n", styles: [":host .status-field{display:flex;align-items:center;gap:8px;font-weight:500}:host .status-field img{width:12px;height:12px;flex-shrink:0}:host .status-field.large img{width:16px;height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }] });
37
+ StatusFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StatusFieldComponent, selector: "app-rd-status-field", inputs: { status: "status", text: "text", size: "size", statusDisplayConfigs: "statusDisplayConfigs", statusGroupConfigs: "statusGroupConfigs" }, ngImport: i0, template: `
38
+ <div class="status-field" [ngClass]="size">
39
+ <img
40
+ *ngIf="getStatusDisplay()?.icon"
41
+ [src]="getStatusDisplay()?.icon"
42
+ alt=""
43
+ />
44
+ {{ getStatusDisplay()?.text }}
45
+ </div>
46
+ `, isInline: true, styles: [":host .status-field{display:flex;align-items:center;gap:8px;font-weight:500}:host .status-field img{width:12px;height:12px;flex-shrink:0}:host .status-field.large img{width:16px;height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
18
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StatusFieldComponent, decorators: [{
19
48
  type: Component,
20
- args: [{ selector: 'app-rd-status-field', template: "<div class=\"status-field\" [ngClass]=\"size\">\n <ng-container [ngSwitch]=\"status\">\n <ng-container\n *ngSwitchCase=\"\n [\n statusEnum.PENDING_DEPOSIT,\n statusEnum.WAITING,\n statusEnum.VERIFYING,\n statusEnum.PAYMENT_VERIFYING,\n statusEnum.DECLARATION_REVIEW\n ].includes(status)\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/pending.svg\" alt=\"\" />\n </ng-container>\n <ng-container\n *ngSwitchCase=\"\n [\n statusEnum.AWAIT_FOR_RECEIVE,\n statusEnum.AWAIT_FOR_DECLARATION\n ].includes(status)\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/warning.svg\" alt=\"\" />\n </ng-container>\n <ng-container\n *ngSwitchCase=\"\n status == statusEnum.SUBMITTED ||\n status == statusEnum.PENDING ||\n status == statusEnum.CONVERTING\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/submitted.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.SETTLING\">\n <img src=\"/assets/img/status/settling.svg\" alt=\"\" />\n </ng-container>\n <ng-container\n *ngSwitchCase=\"\n status == statusEnum.SUCCESSFUL || status == statusEnum.SUCCESS\n ? status\n : ''\n \"\n >\n <img src=\"/assets/img/status/success.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"status == statusEnum.CLOSED ? status : ''\">\n <img src=\"/assets/img/status/cancel.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.FAILED\">\n <img src=\"/assets/img/status/failed.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.RETURNING\">\n <img src=\"/assets/img/status/returning.svg\" alt=\"\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"statusEnum.RETURNED\">\n <img src=\"/assets/img/status/returned.svg\" alt=\"\" />\n </ng-container>\n\n {{ defaultText }}\n </ng-container>\n</div>\n", styles: [":host .status-field{display:flex;align-items:center;gap:8px;font-weight:500}:host .status-field img{width:12px;height:12px;flex-shrink:0}:host .status-field.large img{width:16px;height:16px}\n"] }]
21
- }], propDecorators: { status: [{
49
+ args: [{ selector: 'app-rd-status-field', template: `
50
+ <div class="status-field" [ngClass]="size">
51
+ <img
52
+ *ngIf="getStatusDisplay()?.icon"
53
+ [src]="getStatusDisplay()?.icon"
54
+ alt=""
55
+ />
56
+ {{ getStatusDisplay()?.text }}
57
+ </div>
58
+ `, styles: [":host .status-field{display:flex;align-items:center;gap:8px;font-weight:500}:host .status-field img{width:12px;height:12px;flex-shrink:0}:host .status-field.large img{width:16px;height:16px}\n"] }]
59
+ }], ctorParameters: function () { return []; }, propDecorators: { status: [{
22
60
  type: Input
23
61
  }], text: [{
24
62
  type: Input
25
63
  }], size: [{
26
64
  type: Input
65
+ }], statusDisplayConfigs: [{
66
+ type: Input
67
+ }], statusGroupConfigs: [{
68
+ type: Input
27
69
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL3N0YXR1cy1maWVsZC9zdGF0dXMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkLWxpYi9zcmMvbGliL21vZHVsZXMvc3RhdHVzLWZpZWxkL3N0YXR1cy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQU96RSxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBUVcsU0FBSSxHQUF3QixTQUFTLENBQUM7UUFFL0MsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUM3QixhQUFRLEdBQUcsc0JBQXNCLENBQUM7S0FPbkM7SUFMQyxJQUFJLFdBQVc7UUFDYixPQUFPLENBQ0wsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUF5QixDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FDMUUsQ0FBQztJQUNKLENBQUM7O2tIQVpVLG9CQUFvQjtzR0FBcEIsb0JBQW9CLHFIQ1RqQyxnbUVBb0VBOzRGRDNEYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UscUJBQXFCOzhCQUt0QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9OT0ZGU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbW1vbi5lbnVtJztcbmltcG9ydCB7IE9OT0ZGU3RhdHVzRW51bVRleHRNYXAgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29tbW9uLmNvbnN0YW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJkLXN0YXR1cy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGF0dXMtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdGF0dXMtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHVzRmllbGRDb21wb25lbnQge1xuICBASW5wdXQoKSBzdGF0dXMhOiBPTk9GRlN0YXR1c0VudW0gfCBzdHJpbmcgfCBhbnk7XG4gIEBJbnB1dCgpIHRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpemU6ICdkZWZhdWx0JyB8ICdsYXJnZScgPSAnZGVmYXVsdCc7XG5cbiAgc3RhdHVzRW51bSA9IE9OT0ZGU3RhdHVzRW51bTtcbiAgdGV4dEVudW0gPSBPTk9GRlN0YXR1c0VudW1UZXh0TWFwO1xuXG4gIGdldCBkZWZhdWx0VGV4dCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy50ZXh0IHx8IHRoaXMudGV4dEVudW1bdGhpcy5zdGF0dXMgYXMgT05PRkZTdGF0dXNFbnVtXSB8fCB0aGlzLnN0YXR1c1xuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzdGF0dXMtZmllbGRcIiBbbmdDbGFzc109XCJzaXplXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInN0YXR1c1wiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJcbiAgICAgICAgW1xuICAgICAgICAgIHN0YXR1c0VudW0uUEVORElOR19ERVBPU0lULFxuICAgICAgICAgIHN0YXR1c0VudW0uV0FJVElORyxcbiAgICAgICAgICBzdGF0dXNFbnVtLlZFUklGWUlORyxcbiAgICAgICAgICBzdGF0dXNFbnVtLlBBWU1FTlRfVkVSSUZZSU5HLFxuICAgICAgICAgIHN0YXR1c0VudW0uREVDTEFSQVRJT05fUkVWSUVXXG4gICAgICAgIF0uaW5jbHVkZXMoc3RhdHVzKVxuICAgICAgICAgID8gc3RhdHVzXG4gICAgICAgICAgOiAnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL3N0YXR1cy9wZW5kaW5nLnN2Z1wiIGFsdD1cIlwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIlxuICAgICAgICBbXG4gICAgICAgICAgc3RhdHVzRW51bS5BV0FJVF9GT1JfUkVDRUlWRSxcbiAgICAgICAgICBzdGF0dXNFbnVtLkFXQUlUX0ZPUl9ERUNMQVJBVElPTlxuICAgICAgICBdLmluY2x1ZGVzKHN0YXR1cylcbiAgICAgICAgICA/IHN0YXR1c1xuICAgICAgICAgIDogJydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9zdGF0dXMvd2FybmluZy5zdmdcIiBhbHQ9XCJcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJcbiAgICAgICAgc3RhdHVzID09IHN0YXR1c0VudW0uU1VCTUlUVEVEIHx8XG4gICAgICAgIHN0YXR1cyA9PSBzdGF0dXNFbnVtLlBFTkRJTkcgfHxcbiAgICAgICAgc3RhdHVzID09IHN0YXR1c0VudW0uQ09OVkVSVElOR1xuICAgICAgICAgID8gc3RhdHVzXG4gICAgICAgICAgOiAnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL3N0YXR1cy9zdWJtaXR0ZWQuc3ZnXCIgYWx0PVwiXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdGF0dXNFbnVtLlNFVFRMSU5HXCI+XG4gICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL3N0YXR1cy9zZXR0bGluZy5zdmdcIiBhbHQ9XCJcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJcbiAgICAgICAgc3RhdHVzID09IHN0YXR1c0VudW0uU1VDQ0VTU0ZVTCB8fCBzdGF0dXMgPT0gc3RhdHVzRW51bS5TVUNDRVNTXG4gICAgICAgICAgPyBzdGF0dXNcbiAgICAgICAgICA6ICcnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvc3RhdHVzL3N1Y2Nlc3Muc3ZnXCIgYWx0PVwiXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdGF0dXMgPT0gc3RhdHVzRW51bS5DTE9TRUQgPyBzdGF0dXMgOiAnJ1wiPlxuICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2ltZy9zdGF0dXMvY2FuY2VsLnN2Z1wiIGFsdD1cIlwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3RhdHVzRW51bS5GQUlMRURcIj5cbiAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWcvc3RhdHVzL2ZhaWxlZC5zdmdcIiBhbHQ9XCJcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN0YXR1c0VudW0uUkVUVVJOSU5HXCI+XG4gICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL3N0YXR1cy9yZXR1cm5pbmcuc3ZnXCIgYWx0PVwiXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdGF0dXNFbnVtLlJFVFVSTkVEXCI+XG4gICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaW1nL3N0YXR1cy9yZXR1cm5lZC5zdmdcIiBhbHQ9XCJcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAge3sgZGVmYXVsdFRleHQgfX1cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC1saWIvc3JjL2xpYi9tb2R1bGVzL3N0YXR1cy1maWVsZC9zdGF0dXMtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFvQmpELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0I7UUFIUyxTQUFJLEdBQXdCLFNBQVMsQ0FBQztRQUN0Qyx5QkFBb0IsR0FBMEIsRUFBRSxDQUFDO1FBQ2pELHVCQUFrQixHQUFzQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVoQixnQkFBZ0I7UUFDZCxlQUFlO1FBQ2YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FDaEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FDakMsQ0FBQztRQUNGLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTztnQkFDTCxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUk7Z0JBQ3RCLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxJQUFLLElBQUksQ0FBQyxNQUFpQjthQUNsRCxDQUFDO1NBQ0g7UUFFRCxZQUFZO1FBQ1osS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pELElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBZ0IsQ0FBQyxFQUFFO2dCQUN2QyxPQUFPO29CQUNMLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSTtvQkFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFnQixFQUFFLGFBQWE7aUJBQzNDLENBQUM7YUFDSDtTQUNGO1FBRUQsVUFBVTtRQUNWLE9BQU87WUFDTCxJQUFJLEVBQUUsRUFBRTtZQUNSLElBQUksRUFBRSxJQUFJLENBQUMsTUFBZ0I7U0FDNUIsQ0FBQztJQUNKLENBQUM7O2tIQXBDVSxvQkFBb0I7c0dBQXBCLG9CQUFvQiw2TUFackI7Ozs7Ozs7OztHQVNUOzRGQUdVLG9CQUFvQjtrQkFkaEMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7Ozs7OztHQVNUOzBFQUlRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTdGF0dXNEaXNwbGF5Q29uZmlnLFxuICBTdGF0dXNHcm91cENvbmZpZyxcbn0gZnJvbSAnLi4vY3VzdG9tLWZpbHRlci9jdXN0b20tZmlsdGVyLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJkLXN0YXR1cy1maWVsZCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInN0YXR1cy1maWVsZFwiIFtuZ0NsYXNzXT1cInNpemVcIj5cbiAgICAgIDxpbWdcbiAgICAgICAgKm5nSWY9XCJnZXRTdGF0dXNEaXNwbGF5KCk/Lmljb25cIlxuICAgICAgICBbc3JjXT1cImdldFN0YXR1c0Rpc3BsYXkoKT8uaWNvblwiXG4gICAgICAgIGFsdD1cIlwiXG4gICAgICAvPlxuICAgICAge3sgZ2V0U3RhdHVzRGlzcGxheSgpPy50ZXh0IH19XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3N0YXR1cy1maWVsZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdGF0dXNGaWVsZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgdGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogJ2RlZmF1bHQnIHwgJ2xhcmdlJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgc3RhdHVzRGlzcGxheUNvbmZpZ3M6IFN0YXR1c0Rpc3BsYXlDb25maWdbXSA9IFtdO1xuICBASW5wdXQoKSBzdGF0dXNHcm91cENvbmZpZ3M6IFN0YXR1c0dyb3VwQ29uZmlnID0ge307XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXRTdGF0dXNEaXNwbGF5KCk6IHsgaWNvbjogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfSB7XG4gICAgLy8gMS4g5p+l5om+57K+56Gu5Yy56YWN55qE6YWN572uXG4gICAgY29uc3QgZXhhY3RNYXRjaCA9IHRoaXMuc3RhdHVzRGlzcGxheUNvbmZpZ3M/LmZpbmQoXG4gICAgICAoYykgPT4gYz8uc3RhdHVzID09PSB0aGlzLnN0YXR1c1xuICAgICk7XG4gICAgaWYgKGV4YWN0TWF0Y2gpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb246IGV4YWN0TWF0Y2g/Lmljb24sXG4gICAgICAgIHRleHQ6IGV4YWN0TWF0Y2g/LnRleHQgfHwgKHRoaXMuc3RhdHVzIGFzIHN0cmluZyksXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIDIuIOafpeaJvuWIhue7hOWMuemFjVxuICAgIGZvciAoY29uc3QgZ3JvdXBOYW1lIGluIHRoaXMuc3RhdHVzR3JvdXBDb25maWdzKSB7XG4gICAgICBjb25zdCBncm91cCA9IHRoaXMuc3RhdHVzR3JvdXBDb25maWdzW2dyb3VwTmFtZV07XG4gICAgICBpZiAoZ3JvdXA/Lm1hdGNoKHRoaXMuc3RhdHVzIGFzIHN0cmluZykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpY29uOiBncm91cD8uaWNvbixcbiAgICAgICAgICB0ZXh0OiB0aGlzLnN0YXR1cyBhcyBzdHJpbmcsIC8vIOaIluiAheWPr+S7pemFjee9rum7mOiupOaWh+acrFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDMuIOm7mOiupOi/lOWbnlxuICAgIHJldHVybiB7XG4gICAgICBpY29uOiAnJyxcbiAgICAgIHRleHQ6IHRoaXMuc3RhdHVzIGFzIHN0cmluZyxcbiAgICB9O1xuICB9XG59XG4iXX0=