@rolatech/angular-product 17.2.0 → 19.0.0-beta.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.
- package/fesm2022/{rolatech-angular-product-product-index.component-DEoLkyVK.mjs → rolatech-angular-product-product-index.component-Dy6tCxJf.mjs} +6 -7
- package/fesm2022/rolatech-angular-product-product-index.component-Dy6tCxJf.mjs.map +1 -0
- package/fesm2022/rolatech-angular-product.mjs +128 -171
- package/fesm2022/rolatech-angular-product.mjs.map +1 -1
- package/package.json +8 -6
- package/themes/_default.scss +1 -1
- package/esm2022/index.mjs +0 -7
- package/esm2022/lib/components/index.mjs +0 -12
- package/esm2022/lib/components/product-action/product-action.component.mjs +0 -32
- package/esm2022/lib/components/product-info/product-info.component.mjs +0 -19
- package/esm2022/lib/components/product-item/product-item.component.mjs +0 -17
- package/esm2022/lib/components/product-manage-option-add/product-manage-option-add.component.mjs +0 -68
- package/esm2022/lib/components/product-manage-option-item/product-manage-option-item.component.mjs +0 -49
- package/esm2022/lib/components/product-manage-variant/product-manage-variant.component.mjs +0 -127
- package/esm2022/lib/components/product-mange-option-action/product-manage-option-action.component.mjs +0 -22
- package/esm2022/lib/components/product-mange-section-item/product-mange-section-item.component.mjs +0 -89
- package/esm2022/lib/components/product-media/product-media.component.mjs +0 -34
- package/esm2022/lib/components/product-option/product-option.component.mjs +0 -23
- package/esm2022/lib/components/product-owner-renderer/product-owner-renderer.component.mjs +0 -20
- package/esm2022/lib/components/product-pricing/product-pricing.component.mjs +0 -31
- package/esm2022/lib/components/product-section/product-section.component.mjs +0 -26
- package/esm2022/lib/interfaces/category.mjs +0 -2
- package/esm2022/lib/interfaces/index.mjs +0 -2
- package/esm2022/lib/interfaces/product.mjs +0 -36
- package/esm2022/lib/pages/product/product-category/product-category.component.mjs +0 -73
- package/esm2022/lib/pages/product/product-details/product-details.component.mjs +0 -185
- package/esm2022/lib/pages/product/product-details/selected.pipe.mjs +0 -18
- package/esm2022/lib/pages/product/product-index/product-index.component.mjs +0 -43
- package/esm2022/lib/pages/product/product-layout/product-layout.component.mjs +0 -49
- package/esm2022/lib/pages/product/product.routes.mjs +0 -24
- package/esm2022/lib/pages/product-manage/product-manage-content/product-manage-content.component.mjs +0 -12
- package/esm2022/lib/pages/product-manage/product-manage-create/product-manage-create.component.mjs +0 -61
- package/esm2022/lib/pages/product-manage/product-manage-index/product-manage-index.component.mjs +0 -155
- package/esm2022/lib/pages/product-manage/product-manage-info/product-manage-info.component.mjs +0 -111
- package/esm2022/lib/pages/product-manage/product-manage-inventory/product-manage-inventory.component.mjs +0 -153
- package/esm2022/lib/pages/product-manage/product-manage-item/product-manage-item.component.mjs +0 -28
- package/esm2022/lib/pages/product-manage/product-manage-item-header/product-manage-item-header.component.mjs +0 -12
- package/esm2022/lib/pages/product-manage/product-manage-layout/product-manage-layout.component.mjs +0 -55
- package/esm2022/lib/pages/product-manage/product-manage-media/product-manage-media.component.mjs +0 -137
- package/esm2022/lib/pages/product-manage/product-manage-options/product-manage-options.component.mjs +0 -102
- package/esm2022/lib/pages/product-manage/product-manage-pricing/product-manage-pricing.component.mjs +0 -12
- package/esm2022/lib/pages/product-manage/product-manage-schedule/product-manage-schedule.component.mjs +0 -14
- package/esm2022/lib/pages/product-manage/product-manage-sections/product-manage-sections.component.mjs +0 -171
- package/esm2022/lib/pages/product-manage/product-manage-variants/product-manage-variants.component.mjs +0 -130
- package/esm2022/lib/pages/product-manage/product-manage.routes.mjs +0 -60
- package/esm2022/lib/services/index.mjs +0 -2
- package/esm2022/provider.mjs +0 -11
- package/esm2022/rolatech-angular-product.mjs +0 -5
- package/fesm2022/rolatech-angular-product-product-index.component-DEoLkyVK.mjs.map +0 -1
- package/lib/components/product-mange-option-action/product-manage-option-action.component.d.ts +0 -10
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
3
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
4
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
6
|
-
import { ActivatedRoute } from '@angular/router';
|
|
7
|
-
import { ToolbarComponent, ConfirmationDialogComponent } from '@rolatech/angular-components';
|
|
8
|
-
import { remove } from 'lodash';
|
|
9
|
-
import { ProductStatus, ProductType } from '../../../interfaces';
|
|
10
|
-
import { ProductService } from '@rolatech/angular-services';
|
|
11
|
-
import { ProductManageContentComponent } from '../product-manage-content/product-manage-content.component';
|
|
12
|
-
import { ProductManageSectionItemComponent } from '../../../components';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/material/button";
|
|
15
|
-
import * as i2 from "@angular/material/icon";
|
|
16
|
-
export class ProductManageSectionsComponent {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.route = inject(ActivatedRoute);
|
|
19
|
-
this.productService = inject(ProductService);
|
|
20
|
-
this.dialog = inject(MatDialog);
|
|
21
|
-
this.snackBar = inject(MatSnackBar);
|
|
22
|
-
this.isLoading = false;
|
|
23
|
-
this.isUploading = false;
|
|
24
|
-
this.sections = [];
|
|
25
|
-
this.status = ProductStatus;
|
|
26
|
-
this.productType = ProductType;
|
|
27
|
-
this.id = this.route.parent?.snapshot.paramMap.get('id');
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
this.find();
|
|
31
|
-
}
|
|
32
|
-
find() {
|
|
33
|
-
this.productService.findSections(this.id).subscribe({
|
|
34
|
-
next: (res) => {
|
|
35
|
-
if (res.data) {
|
|
36
|
-
this.sections = res.data;
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
addSection() {
|
|
42
|
-
if (!this.sections) {
|
|
43
|
-
this.sections = [];
|
|
44
|
-
}
|
|
45
|
-
this.productService
|
|
46
|
-
.addSection(this.id, {
|
|
47
|
-
title: '',
|
|
48
|
-
description: '',
|
|
49
|
-
content: '',
|
|
50
|
-
media: [],
|
|
51
|
-
})
|
|
52
|
-
.subscribe({
|
|
53
|
-
next: (res) => {
|
|
54
|
-
const section = res.data;
|
|
55
|
-
this.sections.push({
|
|
56
|
-
id: section.id,
|
|
57
|
-
title: '无标题',
|
|
58
|
-
description: '',
|
|
59
|
-
media: [],
|
|
60
|
-
});
|
|
61
|
-
},
|
|
62
|
-
error: (e) => {
|
|
63
|
-
this.snackBar.open(e.message);
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
onUploadSectionMedia(event) {
|
|
68
|
-
const section = event.section;
|
|
69
|
-
const sectionId = section.id;
|
|
70
|
-
const file = event.data.target.files[0];
|
|
71
|
-
if (file) {
|
|
72
|
-
const reader = new FileReader();
|
|
73
|
-
reader.readAsDataURL(file);
|
|
74
|
-
reader.onload = () => {
|
|
75
|
-
if (!section.media) {
|
|
76
|
-
section.media = [];
|
|
77
|
-
}
|
|
78
|
-
section.media.push({
|
|
79
|
-
url: reader.result,
|
|
80
|
-
alt: 'upload image',
|
|
81
|
-
});
|
|
82
|
-
section.isUploading = true;
|
|
83
|
-
const formData = new FormData();
|
|
84
|
-
formData.append('file', file);
|
|
85
|
-
this.productService.uploadSectionMedia(sectionId, formData).subscribe({
|
|
86
|
-
next: (res) => {
|
|
87
|
-
this.isUploading = false;
|
|
88
|
-
section.isUploading = false;
|
|
89
|
-
delete res.data.productSection;
|
|
90
|
-
section.media[section.media.length - 1].id = res.data.id;
|
|
91
|
-
section.media[section.media.length - 1].url = res.data.url;
|
|
92
|
-
},
|
|
93
|
-
error: (e) => {
|
|
94
|
-
this.isUploading = false;
|
|
95
|
-
this.snackBar.open('上传失败: ' + e.message);
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
reader.onerror = (error) => {
|
|
100
|
-
this.isUploading = false;
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
onDeleteSectionMedia(event) {
|
|
105
|
-
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
106
|
-
width: '400px',
|
|
107
|
-
data: {
|
|
108
|
-
title: '删除图片',
|
|
109
|
-
message: `确定删除吗?`,
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
113
|
-
if (result) {
|
|
114
|
-
const section = event.section;
|
|
115
|
-
const mediaId = event.media.id;
|
|
116
|
-
remove(section.media, {
|
|
117
|
-
id: mediaId,
|
|
118
|
-
});
|
|
119
|
-
this.productService.deleteSectionMedia(section.id, mediaId).subscribe({
|
|
120
|
-
next: (res) => {
|
|
121
|
-
// remove(section.media, {
|
|
122
|
-
// id: mediaId,
|
|
123
|
-
// });
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
onSectionSave(section) {
|
|
130
|
-
delete section.isUploading;
|
|
131
|
-
this.productService.updateSection(section.id, section).subscribe({
|
|
132
|
-
next: (res) => {
|
|
133
|
-
this.snackBar.open('保存成功');
|
|
134
|
-
},
|
|
135
|
-
error: (e) => {
|
|
136
|
-
this.snackBar.open(e.message);
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
onSectionDelete(section) {
|
|
141
|
-
const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
|
|
142
|
-
width: '400px',
|
|
143
|
-
data: {
|
|
144
|
-
title: '删除详情',
|
|
145
|
-
message: '确定删除此详情吗?',
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
149
|
-
if (result) {
|
|
150
|
-
this.productService.deleteSection(section.id).subscribe({
|
|
151
|
-
next: (res) => {
|
|
152
|
-
this.snackBar.open(res.data);
|
|
153
|
-
remove(this.sections, {
|
|
154
|
-
id: section.id,
|
|
155
|
-
});
|
|
156
|
-
},
|
|
157
|
-
error: (e) => {
|
|
158
|
-
this.snackBar.open(e.message);
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ProductManageSectionsComponent, isStandalone: true, selector: "rolatech-product-manage-sections", ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u8BE6\u60C5\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (section of sections; track section) {\n <rolatech-product-manage-section-item\n [section]=\"section\"\n (upload)=\"onUploadSectionMedia($event)\"\n (deleteMedia)=\"onDeleteSectionMedia($event)\"\n (save)=\"onSectionSave($event)\"\n (delete)=\"onSectionDelete($event)\"\n [actions]=\"true\"\n ></rolatech-product-manage-section-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSection()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u8BE6\u60C5</span>\n </button>\n </div>\n</rolatech-product-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: ProductManageSectionItemComponent, selector: "rolatech-product-manage-section-item", inputs: ["isUploading", "section", "actions", "selectMedia"], outputs: ["upload", "delete", "save", "deleteMedia"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }] }); }
|
|
166
|
-
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageSectionsComponent, decorators: [{
|
|
168
|
-
type: Component,
|
|
169
|
-
args: [{ selector: 'rolatech-product-manage-sections', standalone: true, imports: [ProductManageSectionItemComponent, MatButtonModule, MatIconModule, ToolbarComponent, ProductManageContentComponent], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u8BE6\u60C5\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (section of sections; track section) {\n <rolatech-product-manage-section-item\n [section]=\"section\"\n (upload)=\"onUploadSectionMedia($event)\"\n (deleteMedia)=\"onDeleteSectionMedia($event)\"\n (save)=\"onSectionSave($event)\"\n (delete)=\"onSectionDelete($event)\"\n [actions]=\"true\"\n ></rolatech-product-manage-section-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSection()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span>\u6DFB\u52A0\u8BE6\u60C5</span>\n </button>\n </div>\n</rolatech-product-manage-content>\n" }]
|
|
170
|
-
}], ctorParameters: () => [] });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2Utc2VjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9wYWdlcy9wcm9kdWN0LW1hbmFnZS9wcm9kdWN0LW1hbmFnZS1zZWN0aW9ucy9wcm9kdWN0LW1hbmFnZS1zZWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLXNlY3Rpb25zL3Byb2R1Y3QtbWFuYWdlLXNlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0YsT0FBTyxFQUFhLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQWtCLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FB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LENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXRKVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw0RkNwQjNDLGt5QkFxQkEsMERETFksaUNBQWlDLG9NQUFFLGVBQWUsMk5BQUUsYUFBYSxvTEFBRSxnQkFBZ0IsZ0lBQUUsNkJBQTZCOzsyRkFJakgsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLGtDQUFrQyxjQUNoQyxJQUFJLFdBQ1AsQ0FBQyxpQ0FBaUMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50LCBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IGZpbmRJbmRleCwgcmVtb3ZlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFByb2R1Y3RTZWN0aW9uLCBQcm9kdWN0U3RhdHVzLCBQcm9kdWN0VHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUHJvZHVjdFNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQvcHJvZHVjdC1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdE1hbmFnZVNlY3Rpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXNlY3Rpb25zJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1Byb2R1Y3RNYW5hZ2VTZWN0aW9uSXRlbUNvbXBvbmVudCwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBUb29sYmFyQ29tcG9uZW50LCBQcm9kdWN0TWFuYWdlQ29udGVudENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LW1hbmFnZS1zZWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LW1hbmFnZS1zZWN0aW9ucy5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNYW5hZ2VTZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvZHVjdFNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdFNlcnZpY2UpO1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuXG4gIGlkOiBzdHJpbmc7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBpc1VwbG9hZGluZyA9IGZhbHNlO1xuICBzZWN0aW9uczogUHJvZHVjdFNlY3Rpb25bXSA9IFtdO1xuICBzdGF0dXMgPSBQcm9kdWN0U3RhdHVzO1xuICBwcm9kdWN0VHlwZTogYW55ID0gUHJvZHVjdFR5cGU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmQoKTtcbiAgfVxuICBmaW5kKCkge1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UuZmluZFNlY3Rpb25zKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMuZGF0YSkge1xuICAgICAgICAgIHRoaXMuc2VjdGlvbnMgPSByZXMuZGF0YTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBhZGRTZWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5zZWN0aW9ucykge1xuICAgICAgdGhpcy5zZWN0aW9ucyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlXG4gICAgICAuYWRkU2VjdGlvbih0aGlzLmlkLCB7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgbWVkaWE6IFtdLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWN0aW9uID0gcmVzLmRhdGE7XG4gICAgICAgICAgdGhpcy5zZWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBzZWN0aW9uLmlkLFxuICAgICAgICAgICAgdGl0bGU6ICfml6DmoIfpopgnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgICAgbWVkaWE6IFtdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG4gIG9uVXBsb2FkU2VjdGlvbk1lZGlhKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWN0aW9uID0gZXZlbnQuc2VjdGlvbjtcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBzZWN0aW9uLmlkO1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhLnRhcmdldC5maWxlc1swXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFzZWN0aW9uLm1lZGlhKSB7XG4gICAgICAgICAgc2VjdGlvbi5tZWRpYSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIChzZWN0aW9uLm1lZGlhIGFzIGFueSkucHVzaCh7XG4gICAgICAgICAgdXJsOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgIGFsdDogJ3VwbG9hZCBpbWFnZScsXG4gICAgICAgIH0pO1xuICAgICAgICBzZWN0aW9uLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBsb2FkU2VjdGlvbk1lZGlhKHNlY3Rpb25JZCwgZm9ybURhdGEpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBzZWN0aW9uLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBkZWxldGUgcmVzLmRhdGEucHJvZHVjdFNlY3Rpb247XG4gICAgICAgICAgICBzZWN0aW9uLm1lZGlhW3NlY3Rpb24ubWVkaWEubGVuZ3RoIC0gMV0uaWQgPSByZXMuZGF0YS5pZDtcbiAgICAgICAgICAgIHNlY3Rpb24ubWVkaWFbc2VjdGlvbi5tZWRpYS5sZW5ndGggLSAxXS51cmwgPSByZXMuZGF0YS51cmw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3Blbign5LiK5Lyg5aSx6LSlOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBvbkRlbGV0ZVNlY3Rpb25NZWRpYShldmVudDogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+WIoOmZpOWbvueJhycsXG4gICAgICAgIG1lc3NhZ2U6IGDnoa7lrprliKDpmaTlkJc/YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjb25zdCBzZWN0aW9uID0gZXZlbnQuc2VjdGlvbjtcbiAgICAgICAgY29uc3QgbWVkaWFJZCA9IGV2ZW50Lm1lZGlhLmlkO1xuICAgICAgICByZW1vdmUoc2VjdGlvbi5tZWRpYSwge1xuICAgICAgICAgIGlkOiBtZWRpYUlkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5kZWxldGVTZWN0aW9uTWVkaWEoc2VjdGlvbi5pZCwgbWVkaWFJZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIC8vIHJlbW92ZShzZWN0aW9uLm1lZGlhLCB7XG4gICAgICAgICAgICAvLyAgIGlkOiBtZWRpYUlkLFxuICAgICAgICAgICAgLy8gfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgb25TZWN0aW9uU2F2ZShzZWN0aW9uOiBQcm9kdWN0U2VjdGlvbikge1xuICAgIGRlbGV0ZSBzZWN0aW9uLmlzVXBsb2FkaW5nO1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UudXBkYXRlU2VjdGlvbihzZWN0aW9uLmlkLCBzZWN0aW9uKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3Blbign5L+d5a2Y5oiQ5YqfJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblNlY3Rpb25EZWxldGUoc2VjdGlvbjogUHJvZHVjdFNlY3Rpb24pIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAn5Yig6Zmk6K+m5oOFJyxcbiAgICAgICAgbWVzc2FnZTogJ+ehruWumuWIoOmZpOatpOivpuaDheWQlz8nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmRlbGV0ZVNlY3Rpb24oc2VjdGlvbi5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihyZXMuZGF0YSk7XG4gICAgICAgICAgICByZW1vdmUodGhpcy5zZWN0aW9ucywge1xuICAgICAgICAgICAgICBpZDogc2VjdGlvbi5pZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwi6K+m5oOFXCIgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiBkaXZpZGVyPiA8L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXY+XG4gICAgPGRpdj5cbiAgICAgIEBmb3IgKHNlY3Rpb24gb2Ygc2VjdGlvbnM7IHRyYWNrIHNlY3Rpb24pIHtcbiAgICAgICAgPHJvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXNlY3Rpb24taXRlbVxuICAgICAgICAgIFtzZWN0aW9uXT1cInNlY3Rpb25cIlxuICAgICAgICAgICh1cGxvYWQpPVwib25VcGxvYWRTZWN0aW9uTWVkaWEoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZU1lZGlhKT1cIm9uRGVsZXRlU2VjdGlvbk1lZGlhKCRldmVudClcIlxuICAgICAgICAgIChzYXZlKT1cIm9uU2VjdGlvblNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJvblNlY3Rpb25EZWxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgW2FjdGlvbnNdPVwidHJ1ZVwiXG4gICAgICAgID48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXNlY3Rpb24taXRlbT5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkU2VjdGlvbigpXCIgY2xhc3M9XCJtdC0zXCI+XG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPua3u+WKoOivpuaDhTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, inject, model, signal } from '@angular/core';
|
|
2
|
-
import { ProductManageContentComponent } from '../product-manage-content/product-manage-content.component';
|
|
3
|
-
import { AngularComponentsModule, BaseComponent, ImageComponent, SpinnerComponent, ThumbnailComponent, ToolbarComponent, } from '@rolatech/angular-components';
|
|
4
|
-
import { ProductService } from '@rolatech/angular-services';
|
|
5
|
-
import { MatIcon } from '@angular/material/icon';
|
|
6
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
-
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
8
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
9
|
-
import { ProductManageVariantComponent } from '../../../components/product-manage-variant/product-manage-variant.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/material/button";
|
|
12
|
-
import * as i2 from "@angular/material/slide-toggle";
|
|
13
|
-
export class ProductManageVariantsComponent extends BaseComponent {
|
|
14
|
-
constructor() {
|
|
15
|
-
super(...arguments);
|
|
16
|
-
this.productService = inject(ProductService);
|
|
17
|
-
this.changeDetectorRefs = inject(ChangeDetectorRef);
|
|
18
|
-
this.options = signal([]);
|
|
19
|
-
this.snackBar = inject(MatSnackBar);
|
|
20
|
-
this.productPrice = model();
|
|
21
|
-
this.variantPriceChecked = false;
|
|
22
|
-
this.loading = false;
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
this.id = this.route.parent?.snapshot.paramMap.get('id');
|
|
26
|
-
this.getProduct();
|
|
27
|
-
}
|
|
28
|
-
onVariantSlideToggle(event) {
|
|
29
|
-
const newState = event.checked;
|
|
30
|
-
if (newState) {
|
|
31
|
-
this.productService.updateVariantPrice(this.id, true).subscribe({
|
|
32
|
-
next: (res) => {
|
|
33
|
-
this.variants = res.data;
|
|
34
|
-
this.variantPriceChecked = newState;
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
const options = {
|
|
40
|
-
title: '取消价格策略吗',
|
|
41
|
-
message: '这会删除现有策略, 确定吗?',
|
|
42
|
-
cancelText: '取消',
|
|
43
|
-
confirmText: '确认',
|
|
44
|
-
};
|
|
45
|
-
this.dialogService.open(options);
|
|
46
|
-
this.dialogService.confirmed().subscribe({
|
|
47
|
-
next: (res) => {
|
|
48
|
-
if (res) {
|
|
49
|
-
this.productService.updateVariantPrice(this.id, false).subscribe({
|
|
50
|
-
next: (res) => {
|
|
51
|
-
this.variantPriceChecked = false;
|
|
52
|
-
this.variants = res.data;
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
event.source.checked = !newState;
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
onInventorySlideToggle(e) { }
|
|
64
|
-
saveVariants() {
|
|
65
|
-
this.productService.updateVariants(this.id, this.variants).subscribe({
|
|
66
|
-
next: (res) => {
|
|
67
|
-
this.snackBarService.open('保存成功');
|
|
68
|
-
},
|
|
69
|
-
error: (error) => {
|
|
70
|
-
this.snackBarService.open(error.message);
|
|
71
|
-
},
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
onUpload(variant, data) {
|
|
75
|
-
this.productService.uploadVariantMedia(variant.id, data).subscribe({
|
|
76
|
-
next: (res) => {
|
|
77
|
-
variant.media[variant.media.length - 1] = {
|
|
78
|
-
id: res.data.id,
|
|
79
|
-
url: res.data.url + '!w200',
|
|
80
|
-
uploading: false,
|
|
81
|
-
};
|
|
82
|
-
},
|
|
83
|
-
error: (e) => {
|
|
84
|
-
this.snackBar.open('上传失败: ' + e.message);
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
findVariants() {
|
|
89
|
-
this.productService.findVariants(this.id).subscribe({
|
|
90
|
-
next: (res) => {
|
|
91
|
-
if (res.data) {
|
|
92
|
-
this.variantPriceChecked = true;
|
|
93
|
-
}
|
|
94
|
-
this.variants = res.data;
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
getProduct() {
|
|
99
|
-
this.loading = true;
|
|
100
|
-
this.productService.get(this.id).subscribe({
|
|
101
|
-
next: (res) => {
|
|
102
|
-
this.product = res.data;
|
|
103
|
-
this.variants = this.product.variants;
|
|
104
|
-
this.variantPriceChecked = this.variants ? this.variants.length > 0 : false;
|
|
105
|
-
this.options.set(res.data.options || []);
|
|
106
|
-
const price = (res.data.price / 100).toFixed(2);
|
|
107
|
-
this.productPrice.set(price);
|
|
108
|
-
this.loading = false;
|
|
109
|
-
},
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageVariantsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ProductManageVariantsComponent, isStandalone: true, selector: "rolatech-product-manage-variants", inputs: { productPrice: { classPropertyName: "productPrice", publicName: "productPrice", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { productPrice: "productPriceChange" }, usesInheritance: true, ngImport: i0, template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\u7B56\u7565\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n @if (loading) {\n <rolatech-spinner></rolatech-spinner>\n } @else {\n <div class=\"flex items-center\">\n <mat-slide-toggle\n color=\"primary\"\n #slide\n [checked]=\"variantPriceChecked\"\n (change)=\"onVariantSlideToggle($event)\"\n [disabled]=\"options().length <= 0\"\n ></mat-slide-toggle>\n <div>\u6839\u636E\u5546\u54C1\u9009\u9879\u8BBE\u7F6E\u4E0D\u540C\u7684\u4EF7\u683C\u548C\u5E93\u5B58</div>\n </div>\n <div class=\"flex items-center\">\n <mat-slide-toggle color=\"primary\" #inventorySlide (change)=\"onInventorySlideToggle($event)\"></mat-slide-toggle>\n <div>\u8DDF\u8E2A\u5E93\u5B58</div>\n </div>\n\n @if (slide.checked) {\n <div>\n <div class=\"header flex gap-3 h-14 items-center\">\n <div class=\"px-3\">\u540D\u79F0</div>\n <div class=\"flex-1\"></div>\n <div class=\"w-[160px]\">\u4EF7\u683C</div>\n <div class=\"w-[160px]\">\u72B6\u6001</div>\n @if (inventorySlide.checked) {\n <div class=\"w-[160px]\">\u5E93\u5B58</div>\n }\n\n <div class=\"block w-20 text-right\">\u5C55\u5F00/\u6298\u53E0</div>\n </div>\n @for (item of variants; track $index) {\n <rolatech-product-manage-variant [variant]=\"item\" (upload)=\"onUpload(item, $event)\"></rolatech-product-manage-variant>\n }\n </div>\n <div class=\"mt-3\">\n <button mat-button (click)=\"saveVariants()\">\u4FDD\u5B58</button>\n </div>\n }\n }\n</rolatech-product-manage-content>\n", styles: ["mat-slide-toggle{scale:.8}mat-form-field{width:72px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: ProductManageContentComponent, selector: "rolatech-product-manage-content" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: ProductManageVariantComponent, selector: "rolatech-product-manage-variant", inputs: ["variant"], outputs: ["variantChange", "upload"] }, { kind: "component", type: SpinnerComponent, selector: "rolatech-spinner", inputs: ["title"] }] }); }
|
|
114
|
-
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProductManageVariantsComponent, decorators: [{
|
|
116
|
-
type: Component,
|
|
117
|
-
args: [{ selector: 'rolatech-product-manage-variants', standalone: true, imports: [
|
|
118
|
-
AngularCommonModule,
|
|
119
|
-
AngularComponentsModule,
|
|
120
|
-
ProductManageContentComponent,
|
|
121
|
-
ToolbarComponent,
|
|
122
|
-
MatIcon,
|
|
123
|
-
MatFormFieldModule,
|
|
124
|
-
ThumbnailComponent,
|
|
125
|
-
ImageComponent,
|
|
126
|
-
ProductManageVariantComponent,
|
|
127
|
-
SpinnerComponent,
|
|
128
|
-
], template: "<rolatech-product-manage-content>\n <rolatech-toolbar title=\"\u4EF7\u683C\u7B56\u7565\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n @if (loading) {\n <rolatech-spinner></rolatech-spinner>\n } @else {\n <div class=\"flex items-center\">\n <mat-slide-toggle\n color=\"primary\"\n #slide\n [checked]=\"variantPriceChecked\"\n (change)=\"onVariantSlideToggle($event)\"\n [disabled]=\"options().length <= 0\"\n ></mat-slide-toggle>\n <div>\u6839\u636E\u5546\u54C1\u9009\u9879\u8BBE\u7F6E\u4E0D\u540C\u7684\u4EF7\u683C\u548C\u5E93\u5B58</div>\n </div>\n <div class=\"flex items-center\">\n <mat-slide-toggle color=\"primary\" #inventorySlide (change)=\"onInventorySlideToggle($event)\"></mat-slide-toggle>\n <div>\u8DDF\u8E2A\u5E93\u5B58</div>\n </div>\n\n @if (slide.checked) {\n <div>\n <div class=\"header flex gap-3 h-14 items-center\">\n <div class=\"px-3\">\u540D\u79F0</div>\n <div class=\"flex-1\"></div>\n <div class=\"w-[160px]\">\u4EF7\u683C</div>\n <div class=\"w-[160px]\">\u72B6\u6001</div>\n @if (inventorySlide.checked) {\n <div class=\"w-[160px]\">\u5E93\u5B58</div>\n }\n\n <div class=\"block w-20 text-right\">\u5C55\u5F00/\u6298\u53E0</div>\n </div>\n @for (item of variants; track $index) {\n <rolatech-product-manage-variant [variant]=\"item\" (upload)=\"onUpload(item, $event)\"></rolatech-product-manage-variant>\n }\n </div>\n <div class=\"mt-3\">\n <button mat-button (click)=\"saveVariants()\">\u4FDD\u5B58</button>\n </div>\n }\n }\n</rolatech-product-manage-content>\n", styles: ["mat-slide-toggle{scale:.8}mat-form-field{width:72px}\n"] }]
|
|
129
|
-
}] });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtdmFyaWFudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9wYWdlcy9wcm9kdWN0LW1hbmFnZS9wcm9kdWN0LW1hbmFnZS12YXJpYW50cy9wcm9kdWN0LW1hbmFnZS12YXJpYW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUNMLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEdBQ2pCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7Ozs7QUFvQjVILE1BQU0sT0FB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgbW9kZWwsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQvcHJvZHVjdC1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gIEJhc2VDb21wb25lbnQsXG4gIEltYWdlQ29tcG9uZW50LFxuICBTcGlubmVyQ29tcG9uZW50LFxuICBUaHVtYm5haWxDb21wb25lbnQsXG4gIFRvb2xiYXJDb21wb25lbnQsXG59IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvZHVjdCwgUHJvZHVjdE9wdGlvbiwgUHJvZHVjdFZhcmlhbnQgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7IFByb2R1Y3RNYW5hZ2VWYXJpYW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcm9kdWN0LW1hbmFnZS12YXJpYW50L3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtdmFyaWFudHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQW5ndWxhckNvbW1vbk1vZHVsZSxcbiAgICBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSxcbiAgICBQcm9kdWN0TWFuYWdlQ29udGVudENvbXBvbmVudCxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIE1hdEljb24sXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBQcm9kdWN0TWFuYWdlVmFyaWFudENvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2UtdmFyaWFudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1tYW5hZ2UtdmFyaWFudHMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TWFuYWdlVmFyaWFudHNDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvZHVjdFNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdFNlcnZpY2UpO1xuICBjaGFuZ2VEZXRlY3RvclJlZnMgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBvcHRpb25zID0gc2lnbmFsPFByb2R1Y3RPcHRpb25bXT4oW10pO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIHByb2R1Y3RQcmljZSA9IG1vZGVsPHN0cmluZz4oKTtcbiAgdmFyaWFudHM6IGFueTtcbiAgdmFyaWFudFByaWNlQ2hlY2tlZCA9IGZhbHNlO1xuICBwcm9kdWN0ITogUHJvZHVjdDtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgdGhpcy5nZXRQcm9kdWN0KCk7XG4gIH1cbiAgb25WYXJpYW50U2xpZGVUb2dnbGUoZXZlbnQ6IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlKSB7XG4gICAgY29uc3QgbmV3U3RhdGUgPSBldmVudC5jaGVja2VkO1xuICAgIGlmIChuZXdTdGF0ZSkge1xuICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS51cGRhdGVWYXJpYW50UHJpY2UodGhpcy5pZCwgdHJ1ZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgIHRoaXMudmFyaWFudHMgPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLnZhcmlhbnRQcmljZUNoZWNrZWQgPSBuZXdTdGF0ZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICB0aXRsZTogJ+WPlua2iOS7t+agvOetlueVpeWQlycsXG4gICAgICAgIG1lc3NhZ2U6ICfov5nkvJrliKDpmaTnjrDmnInnrZbnlaUsIOehruWumuWQlz8nLFxuICAgICAgICBjYW5jZWxUZXh0OiAn5Y+W5raIJyxcbiAgICAgICAgY29uZmlybVRleHQ6ICfnoa7orqQnLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKG9wdGlvbnMpO1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnVwZGF0ZVZhcmlhbnRQcmljZSh0aGlzLmlkLCBmYWxzZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFudFByaWNlQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFudHMgPSByZXMuZGF0YTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBldmVudC5zb3VyY2UuY2hlY2tlZCA9ICFuZXdTdGF0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgb25JbnZlbnRvcnlTbGlkZVRvZ2dsZShlOiBNYXRTbGlkZVRvZ2dsZUNoYW5nZSkge31cblxuICBzYXZlVmFyaWFudHMoKSB7XG4gICAgdGhpcy5wcm9kdWN0U2VydmljZS51cGRhdGVWYXJpYW50cyh0aGlzLmlkLCB0aGlzLnZhcmlhbnRzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCfkv53lrZjmiJDlip8nKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uVXBsb2FkKHZhcmlhbnQ6IGFueSwgZGF0YTogYW55KSB7XG4gICAgdGhpcy5wcm9kdWN0U2VydmljZS51cGxvYWRWYXJpYW50TWVkaWEodmFyaWFudC5pZCwgZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB2YXJpYW50Lm1lZGlhW3ZhcmlhbnQubWVkaWEubGVuZ3RoIC0gMV0gPSB7XG4gICAgICAgICAgaWQ6IHJlcy5kYXRhLmlkLFxuICAgICAgICAgIHVybDogcmVzLmRhdGEudXJsICsgJyF3MjAwJyxcbiAgICAgICAgICB1cGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3Blbign5LiK5Lyg5aSx6LSlOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZmluZFZhcmlhbnRzKCkge1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UuZmluZFZhcmlhbnRzKHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMuZGF0YSkge1xuICAgICAgICAgIHRoaXMudmFyaWFudFByaWNlQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YXJpYW50cyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRQcm9kdWN0KCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5wcm9kdWN0U2VydmljZS5nZXQodGhpcy5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb2R1Y3QgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy52YXJpYW50cyA9IHRoaXMucHJvZHVjdC52YXJpYW50cztcbiAgICAgICAgdGhpcy52YXJpYW50UHJpY2VDaGVja2VkID0gdGhpcy52YXJpYW50cyA/IHRoaXMudmFyaWFudHMubGVuZ3RoID4gMCA6IGZhbHNlO1xuICAgICAgICB0aGlzLm9wdGlvbnMuc2V0KHJlcy5kYXRhLm9wdGlvbnMgfHwgW10pO1xuICAgICAgICBjb25zdCBwcmljZSA9IChyZXMuZGF0YS5wcmljZSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2Uuc2V0KHByaWNlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtY29udGVudD5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLku7fmoLznrZbnlaVcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgQGlmIChsb2FkaW5nKSB7XG4gICAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICNzbGlkZVxuICAgICAgICBbY2hlY2tlZF09XCJ2YXJpYW50UHJpY2VDaGVja2VkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvblZhcmlhbnRTbGlkZVRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbnMoKS5sZW5ndGggPD0gMFwiXG4gICAgICA+PC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPGRpdj7moLnmja7llYblk4HpgInpobnorr7nva7kuI3lkIznmoTku7fmoLzlkozlupPlrZg8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNvbG9yPVwicHJpbWFyeVwiICNpbnZlbnRvcnlTbGlkZSAoY2hhbmdlKT1cIm9uSW52ZW50b3J5U2xpZGVUb2dnbGUoJGV2ZW50KVwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDxkaXY+6Lef6Liq5bqT5a2YPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKHNsaWRlLmNoZWNrZWQpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgZmxleCBnYXAtMyBoLTE0IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0zXCI+5ZCN56ewPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LVsxNjBweF1cIj7ku7fmoLw8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1bMTYwcHhdXCI+54q25oCBPC9kaXY+XG4gICAgICAgICAgQGlmIChpbnZlbnRvcnlTbGlkZS5jaGVja2VkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1bMTYwcHhdXCI+5bqT5a2YPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIHctMjAgdGV4dC1yaWdodFwiPuWxleW8gC/mipjlj6A8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgdmFyaWFudHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxyb2xhdGVjaC1wcm9kdWN0LW1hbmFnZS12YXJpYW50IFt2YXJpYW50XT1cIml0ZW1cIiAodXBsb2FkKT1cIm9uVXBsb2FkKGl0ZW0sICRldmVudClcIj48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXZhcmlhbnQ+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzYXZlVmFyaWFudHMoKVwiPuS/neWtmDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG48L3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ProductManageLayoutComponent } from './product-manage-layout/product-manage-layout.component';
|
|
2
|
-
import { ProductManageInfoComponent } from './product-manage-info/product-manage-info.component';
|
|
3
|
-
import { ProductManageSectionsComponent } from './product-manage-sections/product-manage-sections.component';
|
|
4
|
-
import { ProductManageMediaComponent } from './product-manage-media/product-manage-media.component';
|
|
5
|
-
import { ProductManagePricingComponent } from './product-manage-pricing/product-manage-pricing.component';
|
|
6
|
-
import { ProductManageIndexComponent } from './product-manage-index/product-manage-index.component';
|
|
7
|
-
import { ProductManageCreateComponent } from './product-manage-create/product-manage-create.component';
|
|
8
|
-
import { ProductManageOptionsComponent } from './product-manage-options/product-manage-options.component';
|
|
9
|
-
import { ProductManageVariantsComponent } from './product-manage-variants/product-manage-variants.component';
|
|
10
|
-
import { ProductManageScheduleComponent } from './product-manage-schedule/product-manage-schedule.component';
|
|
11
|
-
import { ProductManageInventoryComponent } from './product-manage-inventory/product-manage-inventory.component';
|
|
12
|
-
export const productManageRoutes = [
|
|
13
|
-
{
|
|
14
|
-
path: '',
|
|
15
|
-
component: ProductManageIndexComponent,
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
path: 'create',
|
|
19
|
-
component: ProductManageCreateComponent,
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
path: ':id/manage',
|
|
23
|
-
component: ProductManageLayoutComponent,
|
|
24
|
-
children: [
|
|
25
|
-
{
|
|
26
|
-
path: 'info',
|
|
27
|
-
component: ProductManageInfoComponent,
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
path: 'media',
|
|
31
|
-
component: ProductManageMediaComponent,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
path: 'sections',
|
|
35
|
-
component: ProductManageSectionsComponent,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
path: 'options',
|
|
39
|
-
component: ProductManageOptionsComponent,
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
path: 'variants',
|
|
43
|
-
component: ProductManageVariantsComponent,
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
path: 'inventory',
|
|
47
|
-
component: ProductManageInventoryComponent,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
path: 'pricing',
|
|
51
|
-
component: ProductManagePricingComponent,
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
path: 'schedule',
|
|
55
|
-
component: ProductManageScheduleComponent,
|
|
56
|
-
},
|
|
57
|
-
],
|
|
58
|
-
},
|
|
59
|
-
];
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2Uucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9wYWdlcy9wcm9kdWN0LW1hbmFnZS9wcm9kdWN0LW1hbmFnZS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0csT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0csT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFaEgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQVc7SUFDekM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSwyQkFBMkI7S0FDdkM7SUFDRDtRQUNFLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLDRCQUE0QjtLQUN4QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsU0FBUyxFQUFFLDRCQUE0QjtRQUN2QyxRQUFRLEVBQUU7WUFDUjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixTQUFTLEVBQUUsMEJBQTBCO2FBQ3RDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLDJCQUEyQjthQUN2QztZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsOEJBQThCO2FBQzFDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsU0FBUyxFQUFFLDZCQUE2QjthQUN6QztZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsOEJBQThCO2FBQzFDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFNBQVMsRUFBRSwrQkFBK0I7YUFDM0M7WUFFRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixTQUFTLEVBQUUsNkJBQTZCO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFNBQVMsRUFBRSw4QkFBOEI7YUFDMUM7U0FDRjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9kdWN0LW1hbmFnZS1sYXlvdXQvcHJvZHVjdC1tYW5hZ2UtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2UtaW5mby9wcm9kdWN0LW1hbmFnZS1pbmZvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlU2VjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3Byb2R1Y3QtbWFuYWdlLXNlY3Rpb25zL3Byb2R1Y3QtbWFuYWdlLXNlY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlTWVkaWFDb21wb25lbnQgfSBmcm9tICcuL3Byb2R1Y3QtbWFuYWdlLW1lZGlhL3Byb2R1Y3QtbWFuYWdlLW1lZGlhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlUHJpY2luZ0NvbXBvbmVudCB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2UtcHJpY2luZy9wcm9kdWN0LW1hbmFnZS1wcmljaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlSW5kZXhDb21wb25lbnQgfSBmcm9tICcuL3Byb2R1Y3QtbWFuYWdlLWluZGV4L3Byb2R1Y3QtbWFuYWdlLWluZGV4LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9kdWN0LW1hbmFnZS1jcmVhdGUvcHJvZHVjdC1tYW5hZ2UtY3JlYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vcHJvZHVjdC1tYW5hZ2Utb3B0aW9ucy9wcm9kdWN0LW1hbmFnZS1vcHRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlVmFyaWFudHNDb21wb25lbnQgfSBmcm9tICcuL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzL3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlU2NoZWR1bGVDb21wb25lbnQgfSBmcm9tICcuL3Byb2R1Y3QtbWFuYWdlLXNjaGVkdWxlL3Byb2R1Y3QtbWFuYWdlLXNjaGVkdWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlSW52ZW50b3J5Q29tcG9uZW50IH0gZnJvbSAnLi9wcm9kdWN0LW1hbmFnZS1pbnZlbnRvcnkvcHJvZHVjdC1tYW5hZ2UtaW52ZW50b3J5LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBwcm9kdWN0TWFuYWdlUm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IFByb2R1Y3RNYW5hZ2VJbmRleENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdjcmVhdGUnLFxuICAgIGNvbXBvbmVudDogUHJvZHVjdE1hbmFnZUNyZWF0ZUNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICc6aWQvbWFuYWdlJyxcbiAgICBjb21wb25lbnQ6IFByb2R1Y3RNYW5hZ2VMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2luZm8nLFxuICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3RNYW5hZ2VJbmZvQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ21lZGlhJyxcbiAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TWFuYWdlTWVkaWFDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnc2VjdGlvbnMnLFxuICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3RNYW5hZ2VTZWN0aW9uc0NvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdvcHRpb25zJyxcbiAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TWFuYWdlT3B0aW9uc0NvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICd2YXJpYW50cycsXG4gICAgICAgIGNvbXBvbmVudDogUHJvZHVjdE1hbmFnZVZhcmlhbnRzQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2ludmVudG9yeScsXG4gICAgICAgIGNvbXBvbmVudDogUHJvZHVjdE1hbmFnZUludmVudG9yeUNvbXBvbmVudCxcbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3ByaWNpbmcnLFxuICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3RNYW5hZ2VQcmljaW5nQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3NjaGVkdWxlJyxcbiAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TWFuYWdlU2NoZWR1bGVDb21wb25lbnQsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const services = [];
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBVSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2VydmljZXM6IGFueVtdID0gW107XG4iXX0=
|
package/esm2022/provider.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { importProvidersFrom, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
export function provideAngularProduct() {
|
|
6
|
-
const providers = [
|
|
7
|
-
importProvidersFrom(CommonModule, ReactiveFormsModule, FormsModule, RouterModule),
|
|
8
|
-
];
|
|
9
|
-
return makeEnvironmentProviders(providers);
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQyxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE1BQU0sU0FBUyxHQUF3QztRQUNyRCxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQztLQUNsRixDQUFDO0lBQ0YsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIFByb3ZpZGVyLCBpbXBvcnRQcm92aWRlcnNGcm9tLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQW5ndWxhclByb2R1Y3QoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICBjb25zdCBwcm92aWRlcnM6IChQcm92aWRlciB8IEVudmlyb25tZW50UHJvdmlkZXJzKVtdID0gW1xuICAgIGltcG9ydFByb3ZpZGVyc0Zyb20oQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgUm91dGVyTW9kdWxlKSxcbiAgXTtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1wcm9kdWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL3JvbGF0ZWNoLWFuZ3VsYXItcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rolatech-angular-product-product-index.component-DEoLkyVK.mjs","sources":["../../../../libs/angular-product/src/lib/pages/product/product-index/product-index.component.ts","../../../../libs/angular-product/src/lib/pages/product/product-index/product-index.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { ProductService } from '@rolatech/angular-services';\nimport { Product } from '../../../interfaces/product';\nimport { RichViewComponent, RichItemComponent, AngularComponentsModule } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { ProductItemComponent } from '../../../components';\n@Component({\n selector: 'rolatech-product-index',\n standalone: true,\n imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, ProductItemComponent],\n templateUrl: './product-index.component.html',\n styleUrl: './product-index.component.scss',\n encapsulation: ViewEncapsulation.None,\n // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductIndexComponent implements OnInit {\n productService = inject(ProductService);\n // products: Product[] = [];\n products = signal<Product[]>([]);\n\n meta: any;\n loading = false;\n constructor() {}\n\n ngOnInit(): void {\n this.findProducts();\n }\n findProducts() {\n this.loading = true;\n const options = {\n sort: 'updatedAt desc',\n // filter: 'published:true',\n };\n this.productService.find(options).subscribe({\n next: (res: any) => {\n // this.products = res.data;\n this.products.set(res.data);\n this.meta = res.meta;\n this.loading = false;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">全部商品</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n thumbnailRatio=\"square\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n"],"names":[],"mappings":";;;;;;;;MAea,qBAAqB,CAAA;AAOhC,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;;AAExC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAY,EAAE,CAAC,CAAC;QAGjC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KACA;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IACD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,gBAAgB;;SAEvB,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC1C,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;;gBAEjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;AACF,SAAA,CAAC,CAAC;KACJ;8GA7BU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECflC,u7CAmCA,ED1BY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8BAAE,uBAAuB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,UAAA,EAAE,iBAAiB,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMjF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cACtB,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,EAGpG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,u7CAAA,EAAA,CAAA;;;;;"}
|
package/lib/components/product-mange-option-action/product-manage-option-action.component.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ProductOption } from '../../interfaces';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class ProductManageOptionActionComponent {
|
|
4
|
-
delete: import("@angular/core").OutputEmitterRef<ProductOption>;
|
|
5
|
-
save: import("@angular/core").OutputEmitterRef<ProductOption>;
|
|
6
|
-
onDelete(option: ProductOption): void;
|
|
7
|
-
onSave(option: ProductOption): void;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ProductManageOptionActionComponent, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ProductManageOptionActionComponent, "rolatech-product-manage-option-action", never, {}, { "delete": "delete"; "save": "save"; }, never, never, true, never>;
|
|
10
|
-
}
|