@rolatech/angular-cart 18.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 (46) hide show
  1. package/README.md +7 -0
  2. package/esm2022/index.mjs +4 -0
  3. package/esm2022/lib/components/cart-checkout-action/cart-checkout-action.component.mjs +20 -0
  4. package/esm2022/lib/components/cart-checkout-item/cart-checkout-item.component.mjs +40 -0
  5. package/esm2022/lib/components/cart-checkout-summary/cart-checkout-summary.component.mjs +18 -0
  6. package/esm2022/lib/components/cart-icon/cart-icon.component.mjs +52 -0
  7. package/esm2022/lib/components/cart-side/cart-side.component.mjs +99 -0
  8. package/esm2022/lib/components/index.mjs +3 -0
  9. package/esm2022/lib/interfaces/cart.mjs +2 -0
  10. package/esm2022/lib/interfaces/index.mjs +2 -0
  11. package/esm2022/lib/pages/cart-checkout/cart-checkout-course/cart-checkout-course.component.mjs +12 -0
  12. package/esm2022/lib/pages/cart-checkout/cart-checkout-index/cart-checkout-index.component.mjs +12 -0
  13. package/esm2022/lib/pages/cart-checkout/cart-checkout-product/cart-checkout-product.component.mjs +58 -0
  14. package/esm2022/lib/pages/cart-checkout/cart-checkout-variant/cart-checkout-variant.component.mjs +59 -0
  15. package/esm2022/lib/pages/cart-checkout/cart-checkout.routes.mjs +24 -0
  16. package/esm2022/lib/pages/cart-index/cart-index.component.mjs +83 -0
  17. package/esm2022/lib/pages/cart.routes.mjs +12 -0
  18. package/esm2022/rolatech-angular-cart.mjs +5 -0
  19. package/esm2022/state/cart.state.mjs +20 -0
  20. package/esm2022/state/index.mjs +2 -0
  21. package/fesm2022/rolatech-angular-cart-cart-checkout.routes-GF-sHoRZ.mjs +153 -0
  22. package/fesm2022/rolatech-angular-cart-cart-checkout.routes-GF-sHoRZ.mjs.map +1 -0
  23. package/fesm2022/rolatech-angular-cart-rolatech-angular-cart-Es6OXxDd.mjs +297 -0
  24. package/fesm2022/rolatech-angular-cart-rolatech-angular-cart-Es6OXxDd.mjs.map +1 -0
  25. package/fesm2022/rolatech-angular-cart.mjs +15 -0
  26. package/fesm2022/rolatech-angular-cart.mjs.map +1 -0
  27. package/index.d.ts +3 -0
  28. package/lib/components/cart-checkout-action/cart-checkout-action.component.d.ts +7 -0
  29. package/lib/components/cart-checkout-item/cart-checkout-item.component.d.ts +18 -0
  30. package/lib/components/cart-checkout-summary/cart-checkout-summary.component.d.ts +7 -0
  31. package/lib/components/cart-icon/cart-icon.component.d.ts +18 -0
  32. package/lib/components/cart-side/cart-side.component.d.ts +23 -0
  33. package/lib/components/index.d.ts +2 -0
  34. package/lib/interfaces/cart.d.ts +4 -0
  35. package/lib/interfaces/index.d.ts +1 -0
  36. package/lib/pages/cart-checkout/cart-checkout-course/cart-checkout-course.component.d.ts +5 -0
  37. package/lib/pages/cart-checkout/cart-checkout-index/cart-checkout-index.component.d.ts +5 -0
  38. package/lib/pages/cart-checkout/cart-checkout-product/cart-checkout-product.component.d.ts +21 -0
  39. package/lib/pages/cart-checkout/cart-checkout-variant/cart-checkout-variant.component.d.ts +21 -0
  40. package/lib/pages/cart-checkout/cart-checkout.routes.d.ts +3 -0
  41. package/lib/pages/cart-index/cart-index.component.d.ts +23 -0
  42. package/lib/pages/cart.routes.d.ts +2 -0
  43. package/package.json +22 -0
  44. package/state/cart.state.d.ts +8 -0
  45. package/state/index.d.ts +1 -0
  46. package/themes/_default.scss +1 -0
@@ -0,0 +1,83 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CartCheckoutItemComponent } from '../../components/cart-checkout-item/cart-checkout-item.component';
4
+ import { ContainerComponent, ToolbarComponent } from '@rolatech/angular-components';
5
+ import { CartService } from '@rolatech/angular-services';
6
+ import { OptionsFormatPipe } from '@rolatech/angular-common';
7
+ import { CartCheckoutActionComponent } from '../../components/cart-checkout-action/cart-checkout-action.component';
8
+ import { CartCheckoutSummaryComponent } from '../../components/cart-checkout-summary/cart-checkout-summary.component';
9
+ import { sumBy, map, uniq } from 'lodash';
10
+ import { ProductService, OrderService } from '@rolatech/angular-services';
11
+ import { Router } from '@angular/router';
12
+ import * as i0 from "@angular/core";
13
+ export class CartIndexComponent {
14
+ constructor() {
15
+ this.cartService = inject(CartService);
16
+ this.productService = inject(ProductService);
17
+ this.orderService = inject(OrderService);
18
+ this.router = inject(Router);
19
+ this.carts = [];
20
+ this.totalPrice = 0;
21
+ }
22
+ ngOnInit() {
23
+ this.findCarts();
24
+ }
25
+ findCarts() {
26
+ this.cartService.findDetails({}).subscribe({
27
+ next: (res) => {
28
+ this.carts = res.data;
29
+ this.calcPrice();
30
+ },
31
+ });
32
+ }
33
+ calcPrice() {
34
+ this.totalPrice = sumBy(this.carts, (item) => item.variant ? item.quantity * item.variant.price : item.quantity * item.product.price);
35
+ }
36
+ onAdd(cart) {
37
+ this.cartService.update(cart.id, { quantity: cart.quantity }).subscribe({
38
+ next: (res) => {
39
+ this.calcPrice();
40
+ },
41
+ });
42
+ }
43
+ onRemove(cart) {
44
+ this.cartService.update(cart.id, { quantity: cart.quantity }).subscribe({
45
+ next: (res) => {
46
+ this.calcPrice();
47
+ },
48
+ });
49
+ }
50
+ onDelete(cart) {
51
+ this.cartService.delete(cart.id).subscribe({
52
+ next: (res) => {
53
+ const index = this.carts.findIndex((item) => item.id === cart.id);
54
+ this.carts.splice(index, 1);
55
+ this.calcPrice();
56
+ },
57
+ });
58
+ }
59
+ createOrder() {
60
+ const ids = uniq(map(this.carts, 'id')); // [12, 14, 16, 18]
61
+ this.orderService.create({ type: 'PRODUCT', cartIds: ids }).subscribe({
62
+ next: (res) => {
63
+ this.router.navigateByUrl(`/orders/${res.data.id}`);
64
+ },
65
+ });
66
+ }
67
+ deleteAllCarts() { }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: CartIndexComponent, isStandalone: true, selector: "rolatech-cart-index", ngImport: i0, template: "<rolatech-container>\n <rolatech-toolbar title=\"\u8D2D\u7269\u8F66\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div>\n @for (item of carts; track $index) {\n @if (item.variant) {\n <rolatech-cart-checkout-item\n [name]=\"item.variant.title ? item.variant.title : item.product.name\"\n [description]=\"item.variant.options | options\"\n [thumbnail]=\"item.variant.media ? item.variant.media[0].url + '!w400' : item.product.media[0].url + '!w400'\"\n [price]=\"item.variant ? item.variant.price * item.quantity : item.product.price\"\n [(quantity)]=\"item.quantity\"\n [max]=\"3\"\n (add)=\"onAdd(item)\"\n (remove)=\"onRemove(item)\"\n (delete)=\"onDelete(item)\"\n ></rolatech-cart-checkout-item>\n } @else {\n <rolatech-cart-checkout-item\n [name]=\"item.product.name\"\n [description]=\"item.product.description\"\n [thumbnail]=\"item.product.media[0].url + '!w400'\"\n [price]=\"item.product.price * item.quantity\"\n [(quantity)]=\"item.quantity\"\n [max]=\"3\"\n (add)=\"onAdd(item)\"\n (remove)=\"onRemove(item)\"\n (delete)=\"onDelete(item)\"\n ></rolatech-cart-checkout-item>\n }\n }\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"totalPrice\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n</rolatech-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: CartCheckoutItemComponent, selector: "rolatech-cart-checkout-item", inputs: ["thumbnail", "name", "description", "quantity", "price", "max"], outputs: ["quantityChange", "add", "remove", "delete"] }, { kind: "component", type: CartCheckoutSummaryComponent, selector: "rolatech-cart-checkout-summary", inputs: ["price"] }, { kind: "component", type: CartCheckoutActionComponent, selector: "rolatech-cart-checkout-action", outputs: ["create"] }, { kind: "pipe", type: OptionsFormatPipe, name: "options" }] }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartIndexComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'rolatech-cart-index', standalone: true, imports: [
74
+ CommonModule,
75
+ ContainerComponent,
76
+ ToolbarComponent,
77
+ CartCheckoutItemComponent,
78
+ CartCheckoutSummaryComponent,
79
+ CartCheckoutActionComponent,
80
+ OptionsFormatPipe,
81
+ ], template: "<rolatech-container>\n <rolatech-toolbar title=\"\u8D2D\u7269\u8F66\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div>\n @for (item of carts; track $index) {\n @if (item.variant) {\n <rolatech-cart-checkout-item\n [name]=\"item.variant.title ? item.variant.title : item.product.name\"\n [description]=\"item.variant.options | options\"\n [thumbnail]=\"item.variant.media ? item.variant.media[0].url + '!w400' : item.product.media[0].url + '!w400'\"\n [price]=\"item.variant ? item.variant.price * item.quantity : item.product.price\"\n [(quantity)]=\"item.quantity\"\n [max]=\"3\"\n (add)=\"onAdd(item)\"\n (remove)=\"onRemove(item)\"\n (delete)=\"onDelete(item)\"\n ></rolatech-cart-checkout-item>\n } @else {\n <rolatech-cart-checkout-item\n [name]=\"item.product.name\"\n [description]=\"item.product.description\"\n [thumbnail]=\"item.product.media[0].url + '!w400'\"\n [price]=\"item.product.price * item.quantity\"\n [(quantity)]=\"item.quantity\"\n [max]=\"3\"\n (add)=\"onAdd(item)\"\n (remove)=\"onRemove(item)\"\n (delete)=\"onDelete(item)\"\n ></rolatech-cart-checkout-item>\n }\n }\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"totalPrice\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n</rolatech-container>\n" }]
82
+ }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1pbmRleC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvbGliL3BhZ2VzL2NhcnQtaW5kZXgvY2FydC1pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvbGliL3BhZ2VzL2NhcnQtaW5kZXgvY2FydC1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFpQnpDLE1BQU0sT0FBTyxrQkFBa0I7SUFmL0I7UUFnQkUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxN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YSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsY0FBYyxLQUFJLENBQUM7OEdBdERSLGtCQUFrQjtrR0FBbEIsa0JBQWtCLCtFQzNCL0IscXdEQXdDQSx5RER4QkksWUFBWSwrQkFDWixrQkFBa0IsK0RBQ2xCLGdCQUFnQixnSUFDaEIseUJBQXlCLDBNQUN6Qiw0QkFBNEIsOEZBQzVCLDJCQUEyQiwwRkFDM0IsaUJBQWlCOzsyRkFLUixrQkFBa0I7a0JBZjlCLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3dCQUMzQixpQkFBaUI7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENhcnRDaGVja291dEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NhcnQtY2hlY2tvdXQtaXRlbS9jYXJ0LWNoZWNrb3V0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRhaW5lckNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zRm9ybWF0UGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBDYXJ0Q2hlY2tvdXRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NhcnQtY2hlY2tvdXQtYWN0aW9uL2NhcnQtY2hlY2tvdXQtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJ0Q2hlY2tvdXRTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LXN1bW1hcnkvY2FydC1jaGVja291dC1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBzdW1CeSwgbWFwLCB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlLCBPcmRlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jYXJ0LWluZGV4JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBDYXJ0Q2hlY2tvdXRJdGVtQ29tcG9uZW50LFxuICAgIENhcnRDaGVja291dFN1bW1hcnlDb21wb25lbnQsXG4gICAgQ2FydENoZWNrb3V0QWN0aW9uQ29tcG9uZW50LFxuICAgIE9wdGlvbnNGb3JtYXRQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJ0LWluZGV4LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydEluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xuICBwcm9kdWN0U2VydmljZSA9IGluamVjdChQcm9kdWN0U2VydmljZSk7XG4gIG9yZGVyU2VydmljZSA9IGluamVjdChPcmRlclNlcnZpY2UpO1xuICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY2FydHM6IGFueSA9IFtdO1xuICB0b3RhbFByaWNlID0gMDtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kQ2FydHMoKTtcbiAgfVxuICBmaW5kQ2FydHMoKSB7XG4gICAgdGhpcy5jYXJ0U2VydmljZS5maW5kRGV0YWlscyh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhcnRzID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMuY2FsY1ByaWNlKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGNhbGNQcmljZSgpOiBhbnkge1xuICAgIHRoaXMudG90YWxQcmljZSA9IHN1bUJ5KHRoaXMuY2FydHMsIChpdGVtOiBhbnkpID0+XG4gICAgICBpdGVtLnZhcmlhbnQgPyBpdGVtLnF1YW50aXR5ICogaXRlbS52YXJpYW50LnByaWNlIDogaXRlbS5xdWFudGl0eSAqIGl0ZW0ucHJvZHVjdC5wcmljZSxcbiAgICApO1xuICB9XG4gIG9uQWRkKGNhcnQ6IGFueSkge1xuICAgIHRoaXMuY2FydFNlcnZpY2UudXBkYXRlKGNhcnQuaWQsIHsgcXVhbnRpdHk6IGNhcnQucXVhbnRpdHkgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5jYWxjUHJpY2UoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25SZW1vdmUoY2FydDogYW55KSB7XG4gICAgdGhpcy5jYXJ0U2VydmljZS51cGRhdGUoY2FydC5pZCwgeyBxdWFudGl0eTogY2FydC5xdWFudGl0eSB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNhbGNQcmljZSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvbkRlbGV0ZShjYXJ0OiBhbnkpIHtcbiAgICB0aGlzLmNhcnRTZXJ2aWNlLmRlbGV0ZShjYXJ0LmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY2FydHMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmlkID09PSBjYXJ0LmlkKTtcbiAgICAgICAgdGhpcy5jYXJ0cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLmNhbGNQcmljZSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBjcmVhdGVPcmRlcigpIHtcbiAgICBjb25zdCBpZHMgPSB1bmlxKG1hcCh0aGlzLmNhcnRzLCAnaWQnKSk7IC8vIFsxMiwgMTQsIDE2LCAxOF1cbiAgICB0aGlzLm9yZGVyU2VydmljZS5jcmVhdGUoeyB0eXBlOiAnUFJPRFVDVCcsIGNhcnRJZHM6IGlkcyB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9vcmRlcnMvJHtyZXMuZGF0YS5pZH1gKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlQWxsQ2FydHMoKSB7fVxufVxuIiwiPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLotK3nianovaZcIiBsYXJnZT48L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0zIG10LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWQ6dy0yLzMgbWQ6cHItMTZcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgY2FydHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIEBpZiAoaXRlbS52YXJpYW50KSB7XG4gICAgICAgICAgICA8cm9sYXRlY2gtY2FydC1jaGVja291dC1pdGVtXG4gICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0udmFyaWFudC50aXRsZSA/IGl0ZW0udmFyaWFudC50aXRsZSA6IGl0ZW0ucHJvZHVjdC5uYW1lXCJcbiAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIml0ZW0udmFyaWFudC5vcHRpb25zIHwgb3B0aW9uc1wiXG4gICAgICAgICAgICAgIFt0aHVtYm5haWxdPVwiaXRlbS52YXJpYW50Lm1lZGlhID8gaXRlbS52YXJpYW50Lm1lZGlhWzBdLnVybCArICchdzQwMCcgOiBpdGVtLnByb2R1Y3QubWVkaWFbMF0udXJsICsgJyF3NDAwJ1wiXG4gICAgICAgICAgICAgIFtwcmljZV09XCJpdGVtLnZhcmlhbnQgPyBpdGVtLnZhcmlhbnQucHJpY2UgKiBpdGVtLnF1YW50aXR5IDogaXRlbS5wcm9kdWN0LnByaWNlXCJcbiAgICAgICAgICAgICAgWyhxdWFudGl0eSldPVwiaXRlbS5xdWFudGl0eVwiXG4gICAgICAgICAgICAgIFttYXhdPVwiM1wiXG4gICAgICAgICAgICAgIChhZGQpPVwib25BZGQoaXRlbSlcIlxuICAgICAgICAgICAgICAocmVtb3ZlKT1cIm9uUmVtb3ZlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgKGRlbGV0ZSk9XCJvbkRlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgICA+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWl0ZW0+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8cm9sYXRlY2gtY2FydC1jaGVja291dC1pdGVtXG4gICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0ucHJvZHVjdC5uYW1lXCJcbiAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIml0ZW0ucHJvZHVjdC5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIFt0aHVtYm5haWxdPVwiaXRlbS5wcm9kdWN0Lm1lZGlhWzBdLnVybCArICchdzQwMCdcIlxuICAgICAgICAgICAgICBbcHJpY2VdPVwiaXRlbS5wcm9kdWN0LnByaWNlICogaXRlbS5xdWFudGl0eVwiXG4gICAgICAgICAgICAgIFsocXVhbnRpdHkpXT1cIml0ZW0ucXVhbnRpdHlcIlxuICAgICAgICAgICAgICBbbWF4XT1cIjNcIlxuICAgICAgICAgICAgICAoYWRkKT1cIm9uQWRkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgKHJlbW92ZSk9XCJvblJlbW92ZShpdGVtKVwiXG4gICAgICAgICAgICAgIChkZWxldGUpPVwib25EZWxldGUoaXRlbSlcIlxuICAgICAgICAgICAgPjwvcm9sYXRlY2gtY2FydC1jaGVja291dC1pdGVtPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1kOnctMS8zXCI+XG4gICAgICA8cm9sYXRlY2gtY2FydC1jaGVja291dC1zdW1tYXJ5IFtwcmljZV09XCJ0b3RhbFByaWNlXCI+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LXN1bW1hcnk+XG4gICAgICA8cm9sYXRlY2gtY2FydC1jaGVja291dC1hY3Rpb24gKGNyZWF0ZSk9XCJjcmVhdGVPcmRlcigpXCI+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWFjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { CartIndexComponent } from './cart-index/cart-index.component';
2
+ export const cartRoutes = [
3
+ {
4
+ path: '',
5
+ component: CartIndexComponent,
6
+ },
7
+ {
8
+ path: 'checkout',
9
+ loadChildren: () => import('./cart-checkout/cart-checkout.routes'),
10
+ },
11
+ ];
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvbGliL3BhZ2VzL2NhcnQucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBVztJQUNoQztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGtCQUFrQjtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQztLQUNuRTtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FydEluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9jYXJ0LWluZGV4L2NhcnQtaW5kZXguY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGNhcnRSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogQ2FydEluZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2NoZWNrb3V0JyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jYXJ0LWNoZWNrb3V0L2NhcnQtY2hlY2tvdXQucm91dGVzJyksXG4gIH0sXG5dO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1jYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNhcnQvc3JjL3JvbGF0ZWNoLWFuZ3VsYXItY2FydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class CartState {
5
+ constructor() {
6
+ this.$count = new BehaviorSubject(0);
7
+ }
8
+ getCount() {
9
+ return this.$count.asObservable();
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartState, providedIn: 'root' }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartState, decorators: [{
15
+ type: Injectable,
16
+ args: [{
17
+ providedIn: 'root',
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9zdGF0ZS9jYXJ0LnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLFNBQVM7SUFIdEI7UUFJRSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FJakM7SUFIQyxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBSlUsU0FBUztrSEFBVCxTQUFTLGNBRlIsTUFBTTs7MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENhcnRTdGF0ZSB7XG4gICRjb3VudCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIGdldENvdW50KCkge1xuICAgIHJldHVybiB0aGlzLiRjb3VudC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './cart.state';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvc3RhdGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhcnQuc3RhdGUnO1xuIl19
@@ -0,0 +1,153 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, inject, ViewEncapsulation } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { BaseComponent, ContainerComponent, ToolbarComponent, ThumbnailComponent } from '@rolatech/angular-components';
5
+ import { AuthUserService } from '@rolatech/angular-auth';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import { ProductType } from '@rolatech/angular-product';
8
+ import { ProductService, CartService, OrderService } from '@rolatech/angular-services';
9
+ import { C as CartCheckoutSummaryComponent, a as CartCheckoutItemComponent, b as CartCheckoutActionComponent } from './rolatech-angular-cart-rolatech-angular-cart-Es6OXxDd.mjs';
10
+ import { OptionsFormatPipe } from '@rolatech/angular-common';
11
+ import '@angular/material/icon';
12
+ import 'lodash';
13
+ import '@angular/router';
14
+ import '@angular/material/badge';
15
+ import '@angular/material/divider';
16
+ import 'libs/angular-cart/src/state';
17
+ import '@angular/material/menu';
18
+
19
+ class CartCheckoutIndexComponent {
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: CartCheckoutIndexComponent, isStandalone: true, selector: "rolatech-cart-checkout-index", ngImport: i0, template: "<p>cart-checkout-index works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutIndexComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'rolatech-cart-checkout-index', standalone: true, imports: [CommonModule], template: "<p>cart-checkout-index works!</p>\n" }]
26
+ }] });
27
+
28
+ class CartCheckoutCourseComponent {
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutCourseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: CartCheckoutCourseComponent, isStandalone: true, selector: "rolatech-cart-checkout-course", ngImport: i0, template: "<p>cart-checkout-course works!</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutCourseComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'rolatech-cart-checkout-course', standalone: true, imports: [CommonModule], template: "<p>cart-checkout-course works!</p>\n" }]
35
+ }] });
36
+
37
+ class CartCheckoutProductComponent extends BaseComponent {
38
+ constructor() {
39
+ super(...arguments);
40
+ this.productService = inject(ProductService);
41
+ this.cartService = inject(CartService);
42
+ this.orderService = inject(OrderService);
43
+ this.authUserService = inject(AuthUserService);
44
+ this.type = ProductType;
45
+ this.quantity = 1;
46
+ }
47
+ ngOnInit() {
48
+ this.getProduct();
49
+ }
50
+ createOrder() {
51
+ this.orderService.create({ type: 'PRODUCT', productId: this.id }).subscribe({
52
+ next: (res) => {
53
+ this.router.navigateByUrl(`/orders/${res.data.id}`);
54
+ },
55
+ error: (error) => {
56
+ this.snackBarService.open(error.message);
57
+ },
58
+ });
59
+ }
60
+ getProduct() {
61
+ this.productService.get(this.id).subscribe({
62
+ next: (res) => {
63
+ this.product = res.data;
64
+ this.titleService.setTitle(`订单确认 - ${this.product.name}`);
65
+ },
66
+ });
67
+ }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutProductComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: CartCheckoutProductComponent, isStandalone: true, selector: "rolatech-cart-checkout-product", usesInheritance: true, ngImport: i0, template: "@if (product) {\n <rolatech-container>\n <rolatech-toolbar title=\"\u8BA2\u5355\u786E\u8BA4\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div class=\"flex flex-col\">\n <div class=\"text-xl\">\u5546\u54C1\u4FE1\u606F</div>\n <rolatech-cart-checkout-item\n [name]=\"product.name\"\n [description]=\"product.description\"\n [thumbnail]=\"product.media[0].url + '!w200'\"\n [price]=\"product.price\"\n [(quantity)]=\"quantity\"\n ></rolatech-cart-checkout-item>\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"product.price\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n </rolatech-container>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: CartCheckoutSummaryComponent, selector: "rolatech-cart-checkout-summary", inputs: ["price"] }, { kind: "component", type: CartCheckoutItemComponent, selector: "rolatech-cart-checkout-item", inputs: ["thumbnail", "name", "description", "quantity", "price", "max"], outputs: ["quantityChange", "add", "remove", "delete"] }, { kind: "component", type: CartCheckoutActionComponent, selector: "rolatech-cart-checkout-action", outputs: ["create"] }], encapsulation: i0.ViewEncapsulation.None }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutProductComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'rolatech-cart-checkout-product', standalone: true, imports: [
74
+ ContainerComponent,
75
+ ToolbarComponent,
76
+ ThumbnailComponent,
77
+ MatButtonModule,
78
+ CartCheckoutSummaryComponent,
79
+ CartCheckoutItemComponent,
80
+ CartCheckoutActionComponent,
81
+ ], encapsulation: ViewEncapsulation.None, template: "@if (product) {\n <rolatech-container>\n <rolatech-toolbar title=\"\u8BA2\u5355\u786E\u8BA4\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div class=\"flex flex-col\">\n <div class=\"text-xl\">\u5546\u54C1\u4FE1\u606F</div>\n <rolatech-cart-checkout-item\n [name]=\"product.name\"\n [description]=\"product.description\"\n [thumbnail]=\"product.media[0].url + '!w200'\"\n [price]=\"product.price\"\n [(quantity)]=\"quantity\"\n ></rolatech-cart-checkout-item>\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"product.price\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n </rolatech-container>\n}\n" }]
82
+ }] });
83
+
84
+ class CartCheckoutVariantComponent extends BaseComponent {
85
+ constructor() {
86
+ super();
87
+ this.productService = inject(ProductService);
88
+ this.orderService = inject(OrderService);
89
+ this.cartService = inject(CartService);
90
+ this.variantId = '';
91
+ this.quantity = 1;
92
+ this.variantId = this.route.snapshot.params['variant-id'];
93
+ }
94
+ ngOnInit() {
95
+ this.getProduct();
96
+ }
97
+ getProduct() {
98
+ this.productService.get(this.id).subscribe({
99
+ next: (res) => {
100
+ this.product = res.data;
101
+ this.variant = res.data.variants.find((item) => item.id === this.variantId);
102
+ this.titleService.setTitle(`订单确认 - ${this.product.name}`);
103
+ },
104
+ });
105
+ }
106
+ createOrder() {
107
+ this.orderService.create({ type: 'PRODUCT', variantId: this.variant.id }).subscribe({
108
+ next: (res) => {
109
+ this.router.navigateByUrl(`/orders/${res.data.id}`);
110
+ },
111
+ error: (error) => {
112
+ this.snackBarService.open(error.message);
113
+ },
114
+ });
115
+ }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutVariantComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: CartCheckoutVariantComponent, isStandalone: true, selector: "rolatech-cart-checkout-variant", usesInheritance: true, ngImport: i0, template: "@if (variant) {\n <rolatech-container>\n <rolatech-toolbar title=\"\u8BA2\u5355\u786E\u8BA4\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div class=\"flex flex-col\">\n <div class=\"text-xl\">\u5546\u54C1\u4FE1\u606F</div>\n <rolatech-cart-checkout-item\n [name]=\"variant.title ? variant.title : product.name\"\n [description]=\"variant.options | options\"\n [thumbnail]=\"variant.media ? variant.media[0].url + '!w200' : product.media[0].url + '!w200'\"\n [price]=\"variant.price\"\n [(quantity)]=\"quantity\"\n [max]=\"3\"\n ></rolatech-cart-checkout-item>\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"variant.price * quantity\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n </rolatech-container>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ContainerComponent, selector: "rolatech-container" }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: CartCheckoutSummaryComponent, selector: "rolatech-cart-checkout-summary", inputs: ["price"] }, { kind: "component", type: CartCheckoutItemComponent, selector: "rolatech-cart-checkout-item", inputs: ["thumbnail", "name", "description", "quantity", "price", "max"], outputs: ["quantityChange", "add", "remove", "delete"] }, { kind: "component", type: CartCheckoutActionComponent, selector: "rolatech-cart-checkout-action", outputs: ["create"] }, { kind: "pipe", type: OptionsFormatPipe, name: "options" }] }); }
118
+ }
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutVariantComponent, decorators: [{
120
+ type: Component,
121
+ args: [{ selector: 'rolatech-cart-checkout-variant', standalone: true, imports: [
122
+ ContainerComponent,
123
+ ToolbarComponent,
124
+ ThumbnailComponent,
125
+ MatButtonModule,
126
+ CartCheckoutSummaryComponent,
127
+ CartCheckoutItemComponent,
128
+ CartCheckoutActionComponent,
129
+ OptionsFormatPipe,
130
+ ], template: "@if (variant) {\n <rolatech-container>\n <rolatech-toolbar title=\"\u8BA2\u5355\u786E\u8BA4\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div class=\"flex flex-col\">\n <div class=\"text-xl\">\u5546\u54C1\u4FE1\u606F</div>\n <rolatech-cart-checkout-item\n [name]=\"variant.title ? variant.title : product.name\"\n [description]=\"variant.options | options\"\n [thumbnail]=\"variant.media ? variant.media[0].url + '!w200' : product.media[0].url + '!w200'\"\n [price]=\"variant.price\"\n [(quantity)]=\"quantity\"\n [max]=\"3\"\n ></rolatech-cart-checkout-item>\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"variant.price * quantity\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n </rolatech-container>\n}\n" }]
131
+ }], ctorParameters: () => [] });
132
+
133
+ const cartCheckoutRoutes = [
134
+ {
135
+ path: '',
136
+ component: CartCheckoutIndexComponent,
137
+ },
138
+ {
139
+ path: 'courses/:id',
140
+ component: CartCheckoutCourseComponent,
141
+ },
142
+ {
143
+ path: 'products/:id',
144
+ component: CartCheckoutProductComponent,
145
+ },
146
+ {
147
+ path: 'products/:id/variants/:variant-id',
148
+ component: CartCheckoutVariantComponent,
149
+ },
150
+ ];
151
+
152
+ export { cartCheckoutRoutes as default };
153
+ //# sourceMappingURL=rolatech-angular-cart-cart-checkout.routes-GF-sHoRZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rolatech-angular-cart-cart-checkout.routes-GF-sHoRZ.mjs","sources":["../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-index/cart-checkout-index.component.ts","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-index/cart-checkout-index.component.html","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-course/cart-checkout-course.component.ts","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-course/cart-checkout-course.component.html","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-product/cart-checkout-product.component.ts","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-product/cart-checkout-product.component.html","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-variant/cart-checkout-variant.component.ts","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout-variant/cart-checkout-variant.component.html","../../../../libs/angular-cart/src/lib/pages/cart-checkout/cart-checkout.routes.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-cart-checkout-index',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './cart-checkout-index.component.html',\n styleUrl: './cart-checkout-index.component.scss',\n})\nexport class CartCheckoutIndexComponent {}\n","<p>cart-checkout-index works!</p>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-cart-checkout-course',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './cart-checkout-course.component.html',\n styleUrl: './cart-checkout-course.component.scss',\n})\nexport class CartCheckoutCourseComponent {}\n","<p>cart-checkout-course works!</p>\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, ContainerComponent, ThumbnailComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Product, ProductType } from '@rolatech/angular-product';\nimport { OrderService } from '@rolatech/angular-services';\nimport { CartCheckoutSummaryComponent } from '../../../components/cart-checkout-summary/cart-checkout-summary.component';\nimport { CartCheckoutItemComponent } from '../../../components/cart-checkout-item/cart-checkout-item.component';\nimport { CartCheckoutActionComponent } from '../../../components/cart-checkout-action/cart-checkout-action.component';\nimport { CartService, ProductService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-cart-checkout-product',\n standalone: true,\n imports: [\n ContainerComponent,\n ToolbarComponent,\n ThumbnailComponent,\n MatButtonModule,\n CartCheckoutSummaryComponent,\n CartCheckoutItemComponent,\n CartCheckoutActionComponent,\n ],\n templateUrl: './cart-checkout-product.component.html',\n styleUrl: './cart-checkout-product.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class CartCheckoutProductComponent extends BaseComponent implements OnInit {\n productService = inject(ProductService);\n cartService = inject(CartService);\n orderService = inject(OrderService);\n authUserService = inject(AuthUserService);\n product!: Product;\n type = ProductType;\n quantity = 1;\n ngOnInit(): void {\n this.getProduct();\n }\n createOrder() {\n this.orderService.create({ type: 'PRODUCT', productId: this.id }).subscribe({\n next: (res: any) => {\n this.router.navigateByUrl(`/orders/${res.data.id}`);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n getProduct() {\n this.productService.get(this.id).subscribe({\n next: (res: any) => {\n this.product = res.data;\n this.titleService.setTitle(`订单确认 - ${this.product.name}`);\n },\n });\n }\n}\n","@if (product) {\n <rolatech-container>\n <rolatech-toolbar title=\"订单确认\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div class=\"flex flex-col\">\n <div class=\"text-xl\">商品信息</div>\n <rolatech-cart-checkout-item\n [name]=\"product.name\"\n [description]=\"product.description\"\n [thumbnail]=\"product.media[0].url + '!w200'\"\n [price]=\"product.price\"\n [(quantity)]=\"quantity\"\n ></rolatech-cart-checkout-item>\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"product.price\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n </rolatech-container>\n}\n","import { Component, computed, forwardRef, inject, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ContainerComponent, ToolbarComponent, ThumbnailComponent, BaseComponent } from '@rolatech/angular-components';\nimport { CartCheckoutActionComponent } from '../../../components/cart-checkout-action/cart-checkout-action.component';\nimport { CartCheckoutItemComponent } from '../../../components/cart-checkout-item/cart-checkout-item.component';\nimport { CartCheckoutSummaryComponent } from '../../../components/cart-checkout-summary/cart-checkout-summary.component';\nimport { Product, ProductVariant } from '@rolatech/angular-product';\nimport { OptionsFormatPipe } from '@rolatech/angular-common';\nimport { OrderService } from '@rolatech/angular-services';\nimport { ProductService, CartService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-cart-checkout-variant',\n standalone: true,\n imports: [\n ContainerComponent,\n ToolbarComponent,\n ThumbnailComponent,\n MatButtonModule,\n CartCheckoutSummaryComponent,\n CartCheckoutItemComponent,\n CartCheckoutActionComponent,\n OptionsFormatPipe,\n ],\n templateUrl: './cart-checkout-variant.component.html',\n styleUrl: './cart-checkout-variant.component.scss',\n})\nexport class CartCheckoutVariantComponent extends BaseComponent implements OnInit {\n productService = inject(ProductService);\n orderService = inject(OrderService);\n cartService = inject(CartService);\n product!: Product;\n variant!: ProductVariant;\n variantId = '';\n quantity = 1;\n constructor() {\n super();\n this.variantId = this.route.snapshot.params['variant-id'];\n }\n\n ngOnInit(): void {\n this.getProduct();\n }\n getProduct() {\n this.productService.get(this.id).subscribe({\n next: (res: any) => {\n this.product = res.data;\n this.variant = res.data.variants.find((item) => item.id === this.variantId);\n this.titleService.setTitle(`订单确认 - ${this.product.name}`);\n },\n });\n }\n createOrder() {\n this.orderService.create({ type: 'PRODUCT', variantId: this.variant.id }).subscribe({\n next: (res: any) => {\n this.router.navigateByUrl(`/orders/${res.data.id}`);\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n}\n","@if (variant) {\n <rolatech-container>\n <rolatech-toolbar title=\"订单确认\" large></rolatech-toolbar>\n <div class=\"flex flex-col md:flex-row gap-3 mt-3\">\n <div class=\"md:w-2/3 md:pr-16\">\n <div class=\"flex flex-col\">\n <div class=\"text-xl\">商品信息</div>\n <rolatech-cart-checkout-item\n [name]=\"variant.title ? variant.title : product.name\"\n [description]=\"variant.options | options\"\n [thumbnail]=\"variant.media ? variant.media[0].url + '!w200' : product.media[0].url + '!w200'\"\n [price]=\"variant.price\"\n [(quantity)]=\"quantity\"\n [max]=\"3\"\n ></rolatech-cart-checkout-item>\n </div>\n </div>\n <div class=\"md:w-1/3\">\n <rolatech-cart-checkout-summary [price]=\"variant.price * quantity\"></rolatech-cart-checkout-summary>\n <rolatech-cart-checkout-action (create)=\"createOrder()\"></rolatech-cart-checkout-action>\n </div>\n </div>\n </rolatech-container>\n}\n","import { Routes } from '@angular/router';\nimport { CartCheckoutIndexComponent } from './cart-checkout-index/cart-checkout-index.component';\nimport { CartCheckoutCourseComponent } from './cart-checkout-course/cart-checkout-course.component';\nimport { CartCheckoutProductComponent } from './cart-checkout-product/cart-checkout-product.component';\nimport { CartCheckoutVariantComponent } from './cart-checkout-variant/cart-checkout-variant.component';\n\nconst cartCheckoutRoutes: Routes = [\n {\n path: '',\n component: CartCheckoutIndexComponent,\n },\n {\n path: 'courses/:id',\n component: CartCheckoutCourseComponent,\n },\n {\n path: 'products/:id',\n component: CartCheckoutProductComponent,\n },\n {\n path: 'products/:id/variants/:variant-id',\n component: CartCheckoutVariantComponent,\n },\n];\nexport default cartCheckoutRoutes;\n"],"names":[],"mappings":"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"}