ai-text-summary-ng 1.0.0

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 (35) hide show
  1. package/README.md +118 -0
  2. package/ai-text-summary-ng-1.0.0.tgz +0 -0
  3. package/app/app.component.d.ts +38 -0
  4. package/app/components/fmode-avatar/fmode-avatar.component.d.ts +16 -0
  5. package/app/components/fmode-badge/fmode-badge.component.d.ts +8 -0
  6. package/app/components/fmode-button/fmode-button.component.d.ts +10 -0
  7. package/app/components/fmode-card/fmode-card.component.d.ts +6 -0
  8. package/app/components/fmode-digital-human/fmode-digital-human.component.d.ts +10 -0
  9. package/app/components/fmode-divider/fmode-divider.component.d.ts +7 -0
  10. package/app/components/fmode-header/fmode-header.component.d.ts +7 -0
  11. package/app/components/fmode-list/fmode-list.component.d.ts +9 -0
  12. package/app/components/fmode-loading/fmode-loading.component.d.ts +6 -0
  13. package/app/components/fmode-select/fmode-select.component.d.ts +17 -0
  14. package/app/components/fmode-tag/fmode-tag.component.d.ts +9 -0
  15. package/app/components/fmode-textarea/fmode-textarea.component.d.ts +15 -0
  16. package/esm2022/ai-text-summary-ng.mjs +5 -0
  17. package/esm2022/app/app.component.mjs +533 -0
  18. package/esm2022/app/components/fmode-avatar/fmode-avatar.component.mjs +83 -0
  19. package/esm2022/app/components/fmode-badge/fmode-badge.component.mjs +49 -0
  20. package/esm2022/app/components/fmode-button/fmode-button.component.mjs +52 -0
  21. package/esm2022/app/components/fmode-card/fmode-card.component.mjs +34 -0
  22. package/esm2022/app/components/fmode-digital-human/fmode-digital-human.component.mjs +119 -0
  23. package/esm2022/app/components/fmode-divider/fmode-divider.component.mjs +35 -0
  24. package/esm2022/app/components/fmode-header/fmode-header.component.mjs +33 -0
  25. package/esm2022/app/components/fmode-list/fmode-list.component.mjs +50 -0
  26. package/esm2022/app/components/fmode-loading/fmode-loading.component.mjs +25 -0
  27. package/esm2022/app/components/fmode-select/fmode-select.component.mjs +62 -0
  28. package/esm2022/app/components/fmode-tag/fmode-tag.component.mjs +54 -0
  29. package/esm2022/app/components/fmode-textarea/fmode-textarea.component.mjs +75 -0
  30. package/esm2022/public-api.mjs +15 -0
  31. package/fesm2022/ai-text-summary-ng.mjs +1155 -0
  32. package/fesm2022/ai-text-summary-ng.mjs.map +1 -0
  33. package/index.d.ts +5 -0
  34. package/package.json +42 -0
  35. package/public-api.d.ts +13 -0
@@ -0,0 +1,62 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ export class FmodeSelectComponent {
8
+ value = '';
9
+ valueChange = new EventEmitter();
10
+ label = '';
11
+ disabled = false;
12
+ options = [];
13
+ onSelectChange(event) {
14
+ const newValue = event.target.value;
15
+ this.valueChange.emit(newValue);
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmodeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FmodeSelectComponent, isStandalone: true, selector: "fmode-select", inputs: { value: "value", label: "label", disabled: "disabled", options: "options" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: `
19
+ <div class="fmode-select-wrapper">
20
+ <label *ngIf="label" class="select-label">{{ label }}</label>
21
+ <select
22
+ [value]="value"
23
+ (change)="onSelectChange($event)"
24
+ [disabled]="disabled"
25
+ class="fmode-select"
26
+ >
27
+ <option *ngFor="let option of options" [value]="option.value">
28
+ {{ option.label }}
29
+ </option>
30
+ </select>
31
+ </div>
32
+ `, isInline: true, styles: [".fmode-select-wrapper{display:flex;flex-direction:column;gap:.5rem}.select-label{font-weight:600;color:#495057;font-size:.9rem}.fmode-select{width:100%;padding:.75rem 1rem;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;font-family:inherit;background:#fff;cursor:pointer;transition:border-color .3s,box-shadow .3s;box-sizing:border-box}.fmode-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.fmode-select:disabled{background:#f8f9fa;cursor:not-allowed;opacity:.7}.fmode-select option{padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmodeSelectComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'fmode-select', standalone: true, imports: [CommonModule, FormsModule], template: `
37
+ <div class="fmode-select-wrapper">
38
+ <label *ngIf="label" class="select-label">{{ label }}</label>
39
+ <select
40
+ [value]="value"
41
+ (change)="onSelectChange($event)"
42
+ [disabled]="disabled"
43
+ class="fmode-select"
44
+ >
45
+ <option *ngFor="let option of options" [value]="option.value">
46
+ {{ option.label }}
47
+ </option>
48
+ </select>
49
+ </div>
50
+ `, styles: [".fmode-select-wrapper{display:flex;flex-direction:column;gap:.5rem}.select-label{font-weight:600;color:#495057;font-size:.9rem}.fmode-select{width:100%;padding:.75rem 1rem;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;font-family:inherit;background:#fff;cursor:pointer;transition:border-color .3s,box-shadow .3s;box-sizing:border-box}.fmode-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.fmode-select:disabled{background:#f8f9fa;cursor:not-allowed;opacity:.7}.fmode-select option{padding:.5rem}\n"] }]
51
+ }], propDecorators: { value: [{
52
+ type: Input
53
+ }], valueChange: [{
54
+ type: Output
55
+ }], label: [{
56
+ type: Input
57
+ }], disabled: [{
58
+ type: Input
59
+ }], options: [{
60
+ type: Input
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1vZGUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mbW9kZS1zZWxlY3QvZm1vZGUtc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFxRTdDLE1BQU0sT0FBTyxvQkFBb0I7SUFDdEIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNWLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLE9BQU8sR0FBbUIsRUFBRSxDQUFDO0lBRXRDLGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBVlUsb0JBQW9COzRGQUFwQixvQkFBb0IsdU1BMURyQjs7Ozs7Ozs7Ozs7Ozs7R0FjVCxxbUJBZlMsWUFBWSwrUEFBRSxXQUFXOzs0RkEyRHhCLG9CQUFvQjtrQkE5RGhDLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsWUFDMUI7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7OEJBNkNRLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmludGVyZmFjZSBTZWxlY3RPcHRpb24ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbW9kZS1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZtb2RlLXNlbGVjdC13cmFwcGVyXCI+XG4gICAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwic2VsZWN0LWxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgICAgPHNlbGVjdFxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBjbGFzcz1cImZtb2RlLXNlbGVjdFwiXG4gICAgICA+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLmZtb2RlLXNlbGVjdC13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAwLjVyZW07XG4gICAgfVxuXG4gICAgLnNlbGVjdC1sYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6ICM0OTUwNTc7XG4gICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB9XG5cbiAgICAuZm1vZGUtc2VsZWN0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2RlZTJlNjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcywgYm94LXNoYWRvdyAwLjNzO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAuZm1vZGUtc2VsZWN0OmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItY29sb3I6ICM2NjdlZWE7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjEpO1xuICAgIH1cblxuICAgIC5mbW9kZS1zZWxlY3Q6ZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgfVxuXG4gICAgLmZtb2RlLXNlbGVjdCBvcHRpb24ge1xuICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgRm1vZGVTZWxlY3RDb21wb25lbnQge1xuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgb3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcblxuICBvblNlbGVjdENoYW5nZShldmVudDogYW55KSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgfVxufSJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class FmodeTagComponent {
6
+ color = 'primary';
7
+ closable = false;
8
+ onClose = new EventEmitter();
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmodeTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FmodeTagComponent, isStandalone: true, selector: "fmode-tag", inputs: { color: "color", closable: "closable" }, outputs: { onClose: "onClose" }, ngImport: i0, template: `
11
+ <span
12
+ class="fmode-tag"
13
+ [class.closable]="closable"
14
+ [class.primary]="color === 'primary'"
15
+ [class.secondary]="color === 'secondary'"
16
+ [class.success]="color === 'success'"
17
+ [class.warning]="color === 'warning'"
18
+ [class.danger]="color === 'danger'"
19
+ [class.info]="color === 'info'"
20
+ >
21
+ <span class="tag-content">
22
+ <ng-content></ng-content>
23
+ </span>
24
+ <span *ngIf="closable" class="tag-close" (click)="onClose.emit()">×</span>
25
+ </span>
26
+ `, isInline: true, styles: [".fmode-tag{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;transition:all .3s;gap:.5rem}.fmode-tag.primary{background:linear-gradient(135deg,#667eea1a,#764ba21a);color:#667eea;border:1px solid rgba(102,126,234,.2)}.fmode-tag.secondary{background:#6c757d1a;color:#6c757d;border:1px solid rgba(108,117,125,.2)}.fmode-tag.success{background:#28a7451a;color:#28a745;border:1px solid rgba(40,167,69,.2)}.fmode-tag.warning{background:#ffc1071a;color:#ffc107;border:1px solid rgba(255,193,7,.2)}.fmode-tag.danger{background:#dc35451a;color:#dc3545;border:1px solid rgba(220,53,69,.2)}.fmode-tag.info{background:#17a2b81a;color:#17a2b8;border:1px solid rgba(23,162,184,.2)}.fmode-tag:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.fmode-tag.closable{padding-right:.5rem}.tag-content{display:inline-block}.tag-close{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;cursor:pointer;transition:all .3s;font-size:1.2rem;line-height:1}.tag-close:hover{background:#0000001a;transform:scale(1.1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmodeTagComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'fmode-tag', standalone: true, imports: [CommonModule], template: `
31
+ <span
32
+ class="fmode-tag"
33
+ [class.closable]="closable"
34
+ [class.primary]="color === 'primary'"
35
+ [class.secondary]="color === 'secondary'"
36
+ [class.success]="color === 'success'"
37
+ [class.warning]="color === 'warning'"
38
+ [class.danger]="color === 'danger'"
39
+ [class.info]="color === 'info'"
40
+ >
41
+ <span class="tag-content">
42
+ <ng-content></ng-content>
43
+ </span>
44
+ <span *ngIf="closable" class="tag-close" (click)="onClose.emit()">×</span>
45
+ </span>
46
+ `, styles: [".fmode-tag{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;transition:all .3s;gap:.5rem}.fmode-tag.primary{background:linear-gradient(135deg,#667eea1a,#764ba21a);color:#667eea;border:1px solid rgba(102,126,234,.2)}.fmode-tag.secondary{background:#6c757d1a;color:#6c757d;border:1px solid rgba(108,117,125,.2)}.fmode-tag.success{background:#28a7451a;color:#28a745;border:1px solid rgba(40,167,69,.2)}.fmode-tag.warning{background:#ffc1071a;color:#ffc107;border:1px solid rgba(255,193,7,.2)}.fmode-tag.danger{background:#dc35451a;color:#dc3545;border:1px solid rgba(220,53,69,.2)}.fmode-tag.info{background:#17a2b81a;color:#17a2b8;border:1px solid rgba(23,162,184,.2)}.fmode-tag:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.fmode-tag.closable{padding-right:.5rem}.tag-content{display:inline-block}.tag-close{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;cursor:pointer;transition:all .3s;font-size:1.2rem;line-height:1}.tag-close:hover{background:#0000001a;transform:scale(1.1)}\n"] }]
47
+ }], propDecorators: { color: [{
48
+ type: Input
49
+ }], closable: [{
50
+ type: Input
51
+ }], onClose: [{
52
+ type: Output
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1vZGUtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9mbW9kZS10YWcvZm1vZGUtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBdUcvQyxNQUFNLE9BQU8saUJBQWlCO0lBQ25CLEtBQUssR0FBd0UsU0FBUyxDQUFDO0lBQ3ZGLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDaEIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7d0dBSGxDLGlCQUFpQjs0RkFBakIsaUJBQWlCLHdKQWpHbEI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQseXFDQWpCUyxZQUFZOzs0RkFrR1gsaUJBQWlCO2tCQXJHN0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7OEJBa0ZRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm1vZGUtdGFnJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZm1vZGUtdGFnXCJcbiAgICAgIFtjbGFzcy5jbG9zYWJsZV09XCJjbG9zYWJsZVwiXG4gICAgICBbY2xhc3MucHJpbWFyeV09XCJjb2xvciA9PT0gJ3ByaW1hcnknXCJcbiAgICAgIFtjbGFzcy5zZWNvbmRhcnldPVwiY29sb3IgPT09ICdzZWNvbmRhcnknXCJcbiAgICAgIFtjbGFzcy5zdWNjZXNzXT1cImNvbG9yID09PSAnc3VjY2VzcydcIlxuICAgICAgW2NsYXNzLndhcm5pbmddPVwiY29sb3IgPT09ICd3YXJuaW5nJ1wiXG4gICAgICBbY2xhc3MuZGFuZ2VyXT1cImNvbG9yID09PSAnZGFuZ2VyJ1wiXG4gICAgICBbY2xhc3MuaW5mb109XCJjb2xvciA9PT0gJ2luZm8nXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInRhZy1jb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2xvc2FibGVcIiBjbGFzcz1cInRhZy1jbG9zZVwiIChjbGljayk9XCJvbkNsb3NlLmVtaXQoKVwiPsOXPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIC5mbW9kZS10YWcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAuZm1vZGUtdGFnLnByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjEpIDAlLCByZ2JhKDExOCwgNzUsIDE2MiwgMC4xKSAxMDAlKTtcbiAgICAgIGNvbG9yOiAjNjY3ZWVhO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjIpO1xuICAgIH1cblxuICAgIC5mbW9kZS10YWcuc2Vjb25kYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTA4LCAxMTcsIDEyNSwgMC4xKTtcbiAgICAgIGNvbG9yOiAjNmM3NTdkO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMDgsIDExNywgMTI1LCAwLjIpO1xuICAgIH1cblxuICAgIC5mbW9kZS10YWcuc3VjY2VzcyB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDQwLCAxNjcsIDY5LCAwLjEpO1xuICAgICAgY29sb3I6ICMyOGE3NDU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQwLCAxNjcsIDY5LCAwLjIpO1xuICAgIH1cblxuICAgIC5mbW9kZS10YWcud2FybmluZyB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTkzLCA3LCAwLjEpO1xuICAgICAgY29sb3I6ICNmZmMxMDc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMTkzLCA3LCAwLjIpO1xuICAgIH1cblxuICAgIC5mbW9kZS10YWcuZGFuZ2VyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjIwLCA1MywgNjksIDAuMSk7XG4gICAgICBjb2xvcjogI2RjMzU0NTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjIwLCA1MywgNjksIDAuMik7XG4gICAgfVxuXG4gICAgLmZtb2RlLXRhZy5pbmZvIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjMsIDE2MiwgMTg0LCAwLjEpO1xuICAgICAgY29sb3I6ICMxN2EyYjg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzLCAxNjIsIDE4NCwgMC4yKTtcbiAgICB9XG5cbiAgICAuZm1vZGUtdGFnOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgfVxuXG4gICAgLmZtb2RlLXRhZy5jbG9zYWJsZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLnRhZy1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAudGFnLWNsb3NlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLnRhZy1jbG9zZTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBGbW9kZVRhZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbG9yOiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInIHwgJ2luZm8nID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBjbG9zYWJsZSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cbiJdfQ==
@@ -0,0 +1,75 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class FmodeTextareaComponent {
7
+ value = '';
8
+ valueChange = new EventEmitter();
9
+ placeholder = '';
10
+ label = '';
11
+ rows = 4;
12
+ disabled = false;
13
+ maxLength = 10000;
14
+ showCharCount = true;
15
+ onInputChange(event) {
16
+ const newValue = event.target.value;
17
+ console.log('Textarea onInputChange - newValue:', newValue);
18
+ this.valueChange.emit(newValue);
19
+ }
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmodeTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FmodeTextareaComponent, isStandalone: true, selector: "fmode-textarea", inputs: { value: "value", placeholder: "placeholder", label: "label", rows: "rows", disabled: "disabled", maxLength: "maxLength", showCharCount: "showCharCount" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: `
22
+ <div class="fmode-textarea-wrapper">
23
+ <label *ngIf="label" class="textarea-label">{{ label }}</label>
24
+ <textarea
25
+ [value]="value"
26
+ (input)="onInputChange($event)"
27
+ [placeholder]="placeholder"
28
+ [rows]="rows"
29
+ [disabled]="disabled"
30
+ [maxLength]="maxLength"
31
+ class="fmode-textarea"
32
+ ></textarea>
33
+ <div class="textarea-footer" *ngIf="showCharCount">
34
+ <span class="char-count">{{ value?.length || 0 }}/{{ maxLength }}</span>
35
+ </div>
36
+ </div>
37
+ `, isInline: true, styles: [".fmode-textarea-wrapper{display:flex;flex-direction:column;gap:.5rem}.textarea-label{font-weight:600;color:#495057;font-size:.9rem}.fmode-textarea{width:100%;padding:1rem;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;font-family:inherit;line-height:1.6;resize:vertical;transition:border-color .3s,box-shadow .3s;box-sizing:border-box}.fmode-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.fmode-textarea:disabled{background:#f8f9fa;cursor:not-allowed;opacity:.7}.textarea-footer{display:flex;justify-content:flex-end;align-items:center}.char-count{font-size:.85rem;color:#6c757d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] });
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmodeTextareaComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'fmode-textarea', standalone: true, imports: [CommonModule, FormsModule], template: `
42
+ <div class="fmode-textarea-wrapper">
43
+ <label *ngIf="label" class="textarea-label">{{ label }}</label>
44
+ <textarea
45
+ [value]="value"
46
+ (input)="onInputChange($event)"
47
+ [placeholder]="placeholder"
48
+ [rows]="rows"
49
+ [disabled]="disabled"
50
+ [maxLength]="maxLength"
51
+ class="fmode-textarea"
52
+ ></textarea>
53
+ <div class="textarea-footer" *ngIf="showCharCount">
54
+ <span class="char-count">{{ value?.length || 0 }}/{{ maxLength }}</span>
55
+ </div>
56
+ </div>
57
+ `, styles: [".fmode-textarea-wrapper{display:flex;flex-direction:column;gap:.5rem}.textarea-label{font-weight:600;color:#495057;font-size:.9rem}.fmode-textarea{width:100%;padding:1rem;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;font-family:inherit;line-height:1.6;resize:vertical;transition:border-color .3s,box-shadow .3s;box-sizing:border-box}.fmode-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.fmode-textarea:disabled{background:#f8f9fa;cursor:not-allowed;opacity:.7}.textarea-footer{display:flex;justify-content:flex-end;align-items:center}.char-count{font-size:.85rem;color:#6c757d}\n"] }]
58
+ }], propDecorators: { value: [{
59
+ type: Input
60
+ }], valueChange: [{
61
+ type: Output
62
+ }], placeholder: [{
63
+ type: Input
64
+ }], label: [{
65
+ type: Input
66
+ }], rows: [{
67
+ type: Input
68
+ }], disabled: [{
69
+ type: Input
70
+ }], maxLength: [{
71
+ type: Input
72
+ }], showCharCount: [{
73
+ type: Input
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm1vZGUtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2Ztb2RlLXRleHRhcmVhL2Ztb2RlLXRleHRhcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQXlFN0MsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1YsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFDMUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixhQUFhLEdBQUcsSUFBSSxDQUFDO0lBRTlCLGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0FkVSxzQkFBc0I7NEZBQXRCLHNCQUFzQix1UkFuRXZCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULDJyQkFqQlMsWUFBWSxrSUFBRSxXQUFXOzs0RkFvRXhCLHNCQUFzQjtrQkF2RWxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUMxQjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDs4QkFvRFEsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm1vZGUtdGV4dGFyZWEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZtb2RlLXRleHRhcmVhLXdyYXBwZXJcIj5cbiAgICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJ0ZXh0YXJlYS1sYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoXCJcbiAgICAgICAgY2xhc3M9XCJmbW9kZS10ZXh0YXJlYVwiXG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0YXJlYS1mb290ZXJcIiAqbmdJZj1cInNob3dDaGFyQ291bnRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFyLWNvdW50XCI+e3sgdmFsdWU/Lmxlbmd0aCB8fCAwIH19L3t7IG1heExlbmd0aCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLmZtb2RlLXRleHRhcmVhLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAudGV4dGFyZWEtbGFiZWwge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiAjNDk1MDU3O1xuICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgfVxuXG4gICAgLmZtb2RlLXRleHRhcmVhIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkZWUyZTY7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MsIGJveC1zaGFkb3cgMC4zcztcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLmZtb2RlLXRleHRhcmVhOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBib3JkZXItY29sb3I6ICM2NjdlZWE7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgxMDIsIDEyNiwgMjM0LCAwLjEpO1xuICAgIH1cblxuICAgIC5mbW9kZS10ZXh0YXJlYTpkaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjhmOWZhO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG5cbiAgICAudGV4dGFyZWEtZm9vdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY2hhci1jb3VudCB7XG4gICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICBjb2xvcjogIzZjNzU3ZDtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIEZtb2RlVGV4dGFyZWFDb21wb25lbnQge1xuICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgcm93cyA9IDQ7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1heExlbmd0aCA9IDEwMDAwO1xuICBASW5wdXQoKSBzaG93Q2hhckNvdW50ID0gdHJ1ZTtcblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBjb25zb2xlLmxvZygnVGV4dGFyZWEgb25JbnB1dENoYW5nZSAtIG5ld1ZhbHVlOicsIG5ld1ZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xuICB9XG59Il19
@@ -0,0 +1,15 @@
1
+ // 导出组件和模块
2
+ export * from './app/app.component';
3
+ export * from './app/components/fmode-avatar/fmode-avatar.component';
4
+ export * from './app/components/fmode-badge/fmode-badge.component';
5
+ export * from './app/components/fmode-button/fmode-button.component';
6
+ export * from './app/components/fmode-card/fmode-card.component';
7
+ export * from './app/components/fmode-divider/fmode-divider.component';
8
+ export * from './app/components/fmode-digital-human/fmode-digital-human.component';
9
+ export * from './app/components/fmode-header/fmode-header.component';
10
+ export * from './app/components/fmode-loading/fmode-loading.component';
11
+ export * from './app/components/fmode-list/fmode-list.component';
12
+ export * from './app/components/fmode-select/fmode-select.component';
13
+ export * from './app/components/fmode-tag/fmode-tag.component';
14
+ export * from './app/components/fmode-textarea/fmode-textarea.component';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDBEQUEwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8g5a+85Ye657uE5Lu25ZKM5qih5Z2XXG5leHBvcnQgKiBmcm9tICcuL2FwcC9hcHAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvZm1vZGUtYXZhdGFyL2Ztb2RlLWF2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAvY29tcG9uZW50cy9mbW9kZS1iYWRnZS9mbW9kZS1iYWRnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAvY29tcG9uZW50cy9mbW9kZS1idXR0b24vZm1vZGUtYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9jb21wb25lbnRzL2Ztb2RlLWNhcmQvZm1vZGUtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAvY29tcG9uZW50cy9mbW9kZS1kaXZpZGVyL2Ztb2RlLWRpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvZm1vZGUtZGlnaXRhbC1odW1hbi9mbW9kZS1kaWdpdGFsLWh1bWFuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9jb21wb25lbnRzL2Ztb2RlLWhlYWRlci9mbW9kZS1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvZm1vZGUtbG9hZGluZy9mbW9kZS1sb2FkaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9jb21wb25lbnRzL2Ztb2RlLWxpc3QvZm1vZGUtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hcHAvY29tcG9uZW50cy9mbW9kZS1zZWxlY3QvZm1vZGUtc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9jb21wb25lbnRzL2Ztb2RlLXRhZy9mbW9kZS10YWcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL2NvbXBvbmVudHMvZm1vZGUtdGV4dGFyZWEvZm1vZGUtdGV4dGFyZWEuY29tcG9uZW50JztcbiJdfQ==