@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.
- package/README.md +7 -0
- package/esm2022/index.mjs +4 -0
- package/esm2022/lib/components/cart-checkout-action/cart-checkout-action.component.mjs +20 -0
- package/esm2022/lib/components/cart-checkout-item/cart-checkout-item.component.mjs +40 -0
- package/esm2022/lib/components/cart-checkout-summary/cart-checkout-summary.component.mjs +18 -0
- package/esm2022/lib/components/cart-icon/cart-icon.component.mjs +52 -0
- package/esm2022/lib/components/cart-side/cart-side.component.mjs +99 -0
- package/esm2022/lib/components/index.mjs +3 -0
- package/esm2022/lib/interfaces/cart.mjs +2 -0
- package/esm2022/lib/interfaces/index.mjs +2 -0
- package/esm2022/lib/pages/cart-checkout/cart-checkout-course/cart-checkout-course.component.mjs +12 -0
- package/esm2022/lib/pages/cart-checkout/cart-checkout-index/cart-checkout-index.component.mjs +12 -0
- package/esm2022/lib/pages/cart-checkout/cart-checkout-product/cart-checkout-product.component.mjs +58 -0
- package/esm2022/lib/pages/cart-checkout/cart-checkout-variant/cart-checkout-variant.component.mjs +59 -0
- package/esm2022/lib/pages/cart-checkout/cart-checkout.routes.mjs +24 -0
- package/esm2022/lib/pages/cart-index/cart-index.component.mjs +83 -0
- package/esm2022/lib/pages/cart.routes.mjs +12 -0
- package/esm2022/rolatech-angular-cart.mjs +5 -0
- package/esm2022/state/cart.state.mjs +20 -0
- package/esm2022/state/index.mjs +2 -0
- package/fesm2022/rolatech-angular-cart-cart-checkout.routes-GF-sHoRZ.mjs +153 -0
- package/fesm2022/rolatech-angular-cart-cart-checkout.routes-GF-sHoRZ.mjs.map +1 -0
- package/fesm2022/rolatech-angular-cart-rolatech-angular-cart-Es6OXxDd.mjs +297 -0
- package/fesm2022/rolatech-angular-cart-rolatech-angular-cart-Es6OXxDd.mjs.map +1 -0
- package/fesm2022/rolatech-angular-cart.mjs +15 -0
- package/fesm2022/rolatech-angular-cart.mjs.map +1 -0
- package/index.d.ts +3 -0
- package/lib/components/cart-checkout-action/cart-checkout-action.component.d.ts +7 -0
- package/lib/components/cart-checkout-item/cart-checkout-item.component.d.ts +18 -0
- package/lib/components/cart-checkout-summary/cart-checkout-summary.component.d.ts +7 -0
- package/lib/components/cart-icon/cart-icon.component.d.ts +18 -0
- package/lib/components/cart-side/cart-side.component.d.ts +23 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/interfaces/cart.d.ts +4 -0
- package/lib/interfaces/index.d.ts +1 -0
- package/lib/pages/cart-checkout/cart-checkout-course/cart-checkout-course.component.d.ts +5 -0
- package/lib/pages/cart-checkout/cart-checkout-index/cart-checkout-index.component.d.ts +5 -0
- package/lib/pages/cart-checkout/cart-checkout-product/cart-checkout-product.component.d.ts +21 -0
- package/lib/pages/cart-checkout/cart-checkout-variant/cart-checkout-variant.component.d.ts +21 -0
- package/lib/pages/cart-checkout/cart-checkout.routes.d.ts +3 -0
- package/lib/pages/cart-index/cart-index.component.d.ts +23 -0
- package/lib/pages/cart.routes.d.ts +2 -0
- package/package.json +22 -0
- package/state/cart.state.d.ts +8 -0
- package/state/index.d.ts +1 -0
- package/themes/_default.scss +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { cartRoutes } from './lib/pages/cart.routes';
|
|
2
|
+
export * from './lib/interfaces';
|
|
3
|
+
export * from './lib/components';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGNhcnRSb3V0ZXMgfSBmcm9tICcuL2xpYi9wYWdlcy9jYXJ0LnJvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/button";
|
|
6
|
+
export class CartCheckoutActionComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.create = output();
|
|
9
|
+
}
|
|
10
|
+
onCreate() {
|
|
11
|
+
this.create.emit();
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: CartCheckoutActionComponent, isStandalone: true, selector: "rolatech-cart-checkout-action", outputs: { create: "create" }, ngImport: i0, template: "<a mat-flat-button class=\"w-full min-h-11 my-6\" (click)=\"onCreate()\">\u63D0\u4EA4\u8BA2\u5355</a>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }] }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutActionComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: 'rolatech-cart-checkout-action', standalone: true, imports: [CommonModule, MatButtonModule], template: "<a mat-flat-button class=\"w-full min-h-11 my-6\" (click)=\"onCreate()\">\u63D0\u4EA4\u8BA2\u5355</a>\n" }]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC1hY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNhcnQvc3JjL2xpYi9jb21wb25lbnRzL2NhcnQtY2hlY2tvdXQtYWN0aW9uL2NhcnQtY2hlY2tvdXQtYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LWFjdGlvbi9jYXJ0LWNoZWNrb3V0LWFjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFTM0QsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVFFLFdBQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztLQUluQjtJQUhDLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBSlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsd0hDWHhDLHlHQUNBLHlERE1ZLFlBQVksOEJBQUUsZUFBZTs7MkZBSTVCLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSwrQkFBK0IsY0FDN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY2FydC1jaGVja291dC1hY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1jaGVja291dC1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2FydC1jaGVja291dC1hY3Rpb24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0Q2hlY2tvdXRBY3Rpb25Db21wb25lbnQge1xuICBjcmVhdGUgPSBvdXRwdXQoKTtcbiAgb25DcmVhdGUoKSB7XG4gICAgdGhpcy5jcmVhdGUuZW1pdCgpO1xuICB9XG59XG4iLCI8YSBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJ3LWZ1bGwgbWluLWgtMTEgbXktNlwiIChjbGljayk9XCJvbkNyZWF0ZSgpXCI+5o+Q5Lqk6K6i5Y2VPC9hPlxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Component, computed, input, model, output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatIcon } from '@angular/material/icon';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/button";
|
|
7
|
+
export class CartCheckoutItemComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.thumbnail = input();
|
|
10
|
+
this.name = input();
|
|
11
|
+
this.description = input();
|
|
12
|
+
this.quantity = model(1);
|
|
13
|
+
this.price = input.required();
|
|
14
|
+
this.priceDisplay = computed(() => {
|
|
15
|
+
return (this.price() / 100).toFixed(2);
|
|
16
|
+
});
|
|
17
|
+
this.add = output();
|
|
18
|
+
this.remove = output();
|
|
19
|
+
this.delete = output();
|
|
20
|
+
this.max = input();
|
|
21
|
+
}
|
|
22
|
+
onAdd() {
|
|
23
|
+
this.quantity.update((item) => item + 1);
|
|
24
|
+
this.add.emit();
|
|
25
|
+
}
|
|
26
|
+
onRemove() {
|
|
27
|
+
this.quantity.update((item) => item - 1);
|
|
28
|
+
this.remove.emit();
|
|
29
|
+
}
|
|
30
|
+
onDelete() {
|
|
31
|
+
this.delete.emit();
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: CartCheckoutItemComponent, isStandalone: true, selector: "rolatech-cart-checkout-item", inputs: { thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, quantity: { classPropertyName: "quantity", publicName: "quantity", isSignal: true, isRequired: false, transformFunction: null }, price: { classPropertyName: "price", publicName: "price", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { quantity: "quantityChange", add: "add", remove: "remove", delete: "delete" }, ngImport: i0, template: "<div class=\"flex justify-between py-3\">\n <div class=\"flex w-full\">\n <div class=\"w-1/4 aspect-video bg-gray-200 rounded-lg h-fit\">\n <div class=\"object-cover aspect-video\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"thumbnail()\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-gray-200 h-full w-full object-cover aspect-video\"></div>\n }\n </div>\n </div>\n <div class=\"w-3/4 ml-3 flex flex-col justify-between\">\n <!-- info -->\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col\">\n <span class=\"text-lg font-bold\">{{ name() }}</span>\n <span class=\"text-sm text-gray-600 mt-2\">{{ description() }}</span>\n </div>\n <div>\u00A5{{ priceDisplay() }}</div>\n </div>\n <!-- action -->\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex items-center text-sm\">\n <span class=\"mr-3\">\u6570\u91CF</span>\n <button mat-icon-button (click)=\"onRemove()\" [disabled]=\"quantity() === 1\">\n <mat-icon>remove</mat-icon>\n </button>\n <span class=\"w-11 text-center\">{{ quantity() }}</span>\n <button mat-icon-button (click)=\"onAdd()\" [disabled]=\"quantity() === max()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n <button mat-icon-button (click)=\"onDelete()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["mat-icon{scale:.7}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], deferBlockDependencies: [() => [import("@rolatech/angular-components").then(m => m.ThumbnailComponent)]] }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutItemComponent, resolveDeferredDeps: () => [import("@rolatech/angular-components").then(m => m.ThumbnailComponent)], resolveMetadata: ThumbnailComponent => ({ decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'rolatech-cart-checkout-item', standalone: true, imports: [CommonModule, ThumbnailComponent, MatIcon, MatButtonModule], template: "<div class=\"flex justify-between py-3\">\n <div class=\"flex w-full\">\n <div class=\"w-1/4 aspect-video bg-gray-200 rounded-lg h-fit\">\n <div class=\"object-cover aspect-video\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"thumbnail()\" size=\"medium\" mode=\"full\"> </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-gray-200 h-full w-full object-cover aspect-video\"></div>\n }\n </div>\n </div>\n <div class=\"w-3/4 ml-3 flex flex-col justify-between\">\n <!-- info -->\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col\">\n <span class=\"text-lg font-bold\">{{ name() }}</span>\n <span class=\"text-sm text-gray-600 mt-2\">{{ description() }}</span>\n </div>\n <div>\u00A5{{ priceDisplay() }}</div>\n </div>\n <!-- action -->\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex items-center text-sm\">\n <span class=\"mr-3\">\u6570\u91CF</span>\n <button mat-icon-button (click)=\"onRemove()\" [disabled]=\"quantity() === 1\">\n <mat-icon>remove</mat-icon>\n </button>\n <span class=\"w-11 text-center\">{{ quantity() }}</span>\n <button mat-icon-button (click)=\"onAdd()\" [disabled]=\"quantity() === max()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n <button mat-icon-button (click)=\"onDelete()\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["mat-icon{scale:.7}\n"] }]
|
|
39
|
+
}], ctorParameters: null, propDecorators: null }) });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LWl0ZW0vY2FydC1jaGVja291dC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LWl0ZW0vY2FydC1jaGVja291dC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFTM0QsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFFLGNBQVMsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM1QixTQUFJLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM5QixhQUFRLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsUUFBRyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ2YsV0FBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLFdBQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNsQixRQUFHLEdBQUcsS0FBSyxFQUFVLENBQUM7S0FZdkI7SUFYQyxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQXZCVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qix5NkJDZHRDLHdrREF1Q0EsNkVEN0JZLFlBQVksK0JBQXNCLE9BQU8sMElBQUUsZUFBZTs7Z0dBSXpELHlCQUF5QjtzQkFQckMsU0FBUzttQ0FDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgbW9kZWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJvZHVjdCwgUHJvZHVjdE1lZGlhLCBQcm9kdWN0VmFyaWFudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXByb2R1Y3QnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY2FydC1jaGVja291dC1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50LCBNYXRJY29uLCBNYXRCdXR0b25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1jaGVja291dC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhcnQtY2hlY2tvdXQtaXRlbS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIENhcnRDaGVja291dEl0ZW1Db21wb25lbnQge1xuICB0aHVtYm5haWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGRlc2NyaXB0aW9uID0gaW5wdXQ8c3RyaW5nPigpO1xuICBxdWFudGl0eSA9IG1vZGVsPG51bWJlcj4oMSk7XG4gIHByaWNlID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICBwcmljZURpc3BsYXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICh0aGlzLnByaWNlKCkgLyAxMDApLnRvRml4ZWQoMik7XG4gIH0pO1xuICBhZGQgPSBvdXRwdXQoKTtcbiAgcmVtb3ZlID0gb3V0cHV0KCk7XG4gIGRlbGV0ZSA9IG91dHB1dCgpO1xuICBtYXggPSBpbnB1dDxudW1iZXI+KCk7XG4gIG9uQWRkKCkge1xuICAgIHRoaXMucXVhbnRpdHkudXBkYXRlKChpdGVtKSA9PiBpdGVtICsgMSk7XG4gICAgdGhpcy5hZGQuZW1pdCgpO1xuICB9XG4gIG9uUmVtb3ZlKCkge1xuICAgIHRoaXMucXVhbnRpdHkudXBkYXRlKChpdGVtKSA9PiBpdGVtIC0gMSk7XG4gICAgdGhpcy5yZW1vdmUuZW1pdCgpO1xuICB9XG4gIG9uRGVsZXRlKCkge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHB5LTNcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsXCI+XG4gICAgPGRpdiBjbGFzcz1cInctMS80IGFzcGVjdC12aWRlbyBiZy1ncmF5LTIwMCByb3VuZGVkLWxnIGgtZml0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlb1wiPlxuICAgICAgICBAZGVmZXIgKG9uIHZpZXdwb3J0KCkpIHtcbiAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwidGh1bWJuYWlsKClcIiBzaXplPVwibWVkaXVtXCIgbW9kZT1cImZ1bGxcIj4gPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctZ3JheS0yMDAgaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIgYXNwZWN0LXZpZGVvXCI+PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3LTMvNCBtbC0zIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8IS0tIGluZm8gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCI+e3sgbmFtZSgpIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG10LTJcIj57eyBkZXNjcmlwdGlvbigpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj7CpXt7IHByaWNlRGlzcGxheSgpIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gYWN0aW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtc21cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yLTNcIj7mlbDph488L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uUmVtb3ZlKClcIiBbZGlzYWJsZWRdPVwicXVhbnRpdHkoKSA9PT0gMVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnJlbW92ZTwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTExIHRleHQtY2VudGVyXCI+e3sgcXVhbnRpdHkoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25BZGQoKVwiIFtkaXNhYmxlZF09XCJxdWFudGl0eSgpID09PSBtYXgoKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25EZWxldGUoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component, computed, input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CartCheckoutSummaryComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.price = input.required();
|
|
7
|
+
this.priceDisplay = computed(() => {
|
|
8
|
+
return (this.price() / 100).toFixed(2);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.4", type: CartCheckoutSummaryComponent, isStandalone: true, selector: "rolatech-cart-checkout-summary", inputs: { price: { classPropertyName: "price", publicName: "price", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"text-2xl font-medium mb-2\">\u7EDF\u8BA1</div>\n<div class=\"divide-y\">\n <div class=\"flex justify-between py-2 pb-32 md:pb-3\">\n <span> \u8BA2\u5355\u91D1\u989D </span>\n <span> \u00A5{{ priceDisplay() }} </span>\n </div>\n <div class=\"py-3 bottom-0 left-0 right-0 md:static\">\n <div>\n <div class=\"flex justify-between\">\n <span class=\"text-lg font-medium\">\u603B\u8BA1</span>\n <span>\u00A5{{ priceDisplay() }}</span>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutSummaryComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'rolatech-cart-checkout-summary', standalone: true, imports: [CommonModule], template: "<div class=\"text-2xl font-medium mb-2\">\u7EDF\u8BA1</div>\n<div class=\"divide-y\">\n <div class=\"flex justify-between py-2 pb-32 md:pb-3\">\n <span> \u8BA2\u5355\u91D1\u989D </span>\n <span> \u00A5{{ priceDisplay() }} </span>\n </div>\n <div class=\"py-3 bottom-0 left-0 right-0 md:static\">\n <div>\n <div class=\"flex justify-between\">\n <span class=\"text-lg font-medium\">\u603B\u8BA1</span>\n <span>\u00A5{{ priceDisplay() }}</span>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LXN1bW1hcnkvY2FydC1jaGVja291dC1zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LXN1bW1hcnkvY2FydC1jaGVja291dC1zdW1tYXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBUy9DLE1BQU0sT0FBTyw0QkFBNEI7SUFQekM7UUFRRSxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2pDLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztLQUNKOzhHQUxZLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDZOQ1Z6Qyx5Z0JBZUEseUREVFksWUFBWTs7MkZBSVgsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY2FydC1jaGVja291dC1zdW1tYXJ5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LWNoZWNrb3V0LXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2FydC1jaGVja291dC1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydENoZWNrb3V0U3VtbWFyeUNvbXBvbmVudCB7XG4gIHByaWNlID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICBwcmljZURpc3BsYXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICh0aGlzLnByaWNlKCkgLyAxMDApLnRvRml4ZWQoMik7XG4gIH0pO1xufVxuIiwiPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtbWVkaXVtIG1iLTJcIj7nu5/orqE8L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaXZpZGUteVwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gcHktMiBwYi0zMiBtZDpwYi0zXCI+XG4gICAgPHNwYW4+IOiuouWNlemHkeminSA8L3NwYW4+XG4gICAgPHNwYW4+IMKle3sgcHJpY2VEaXNwbGF5KCkgfX0gPC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInB5LTMgYm90dG9tLTAgbGVmdC0wIHJpZ2h0LTAgbWQ6c3RhdGljXCI+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW1cIj7mgLvorqE8L3NwYW4+XG4gICAgICAgIDxzcGFuPsKle3sgcHJpY2VEaXNwbGF5KCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, inject, input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
3
|
+
import { AngularComponentsModule } from '@rolatech/angular-components';
|
|
4
|
+
import { CartService } from '@rolatech/angular-services';
|
|
5
|
+
import { CartState } from 'libs/angular-cart/src/state';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "@angular/material/badge";
|
|
9
|
+
import * as i3 from "@angular/material/button";
|
|
10
|
+
import * as i4 from "@angular/material/icon";
|
|
11
|
+
import * as i5 from "@angular/material/menu";
|
|
12
|
+
export class CartIconComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.router = input('/cart');
|
|
15
|
+
this.carts = [];
|
|
16
|
+
this.cartService = inject(CartService);
|
|
17
|
+
this.cartState = inject(CartState);
|
|
18
|
+
this.count = 0;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.cartState.$count.subscribe((data) => {
|
|
22
|
+
this.count = data;
|
|
23
|
+
});
|
|
24
|
+
this.loadCarts();
|
|
25
|
+
}
|
|
26
|
+
ngOnDestroy() {
|
|
27
|
+
if (this.countSubscription)
|
|
28
|
+
this.countSubscription.unsubscribe();
|
|
29
|
+
}
|
|
30
|
+
loadCarts() {
|
|
31
|
+
const options = {};
|
|
32
|
+
this.cartService.find(options).subscribe({
|
|
33
|
+
next: (res) => {
|
|
34
|
+
this.carts = res.data;
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
deleteAll() {
|
|
39
|
+
this.cartService.deleteAll().subscribe({
|
|
40
|
+
next: (res) => {
|
|
41
|
+
this.carts = [];
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: CartIconComponent, isStandalone: true, selector: "rolatech-cart-icon", inputs: { router: { classPropertyName: "router", publicName: "router", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"px-2\">\n <button mat-icon-button class=\"flex\" onclick=\"this.blur()\" [matMenuTriggerFor]=\"notificationsMenu\">\n <mat-icon aria-hidden=\"false\" [matBadge]=\"count\" [matBadgeHidden]=\"count === 0\">shopping_bag</mat-icon>\n </button>\n</div>\n<mat-menu #notificationsMenu=\"matMenu\" class=\"custom-menu\">\n <div class=\"flex flex-col divide-y min-w-[320px]\">\n <div class=\"h-11 px-3 flex justify-between items-center\">\n <span class=\"font-medium\">\u8D2D\u7269\u8F66</span>\n @if (count) {\n <span class=\"text-sm font-medium cursor-pointer hover:underline\" (click)=\"deleteAll()\">\u5220\u9664\u5168\u90E8</span>\n }\n </div>\n <div>\n @if (carts && carts.length > 0) {\n <div class=\"divide-y\">\n @for (item of carts; track item) {\n <div class=\"p-2 cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"[router(), item.id]\">\n <div>\n {{ item.title }}\n </div>\n <div class=\"text-sm\">\n {{ item.content }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"h-32 flex justify-center items-center\">\u6682\u65E0</div>\n }\n </div>\n <div class=\"h-11 flex justify-center items-center cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"router()\">\n <a class=\"flex justify-center items-center\">\n <span class=\"text-sm text-orange-600\"> \u524D\u5F80\u8D2D\u7269\u8F66 </span>\n </a>\n </div>\n </div>\n</mat-menu>\n", styles: ["rolatech-cart-icon{color:var(--rt-text-primary, #000)}.custom-menu{color:var(--rt-text-primary, #000)}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "directive", type: i2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartIconComponent, decorators: [{
|
|
49
|
+
type: Component,
|
|
50
|
+
args: [{ selector: 'rolatech-cart-icon', standalone: true, imports: [AngularCommonModule, AngularComponentsModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"px-2\">\n <button mat-icon-button class=\"flex\" onclick=\"this.blur()\" [matMenuTriggerFor]=\"notificationsMenu\">\n <mat-icon aria-hidden=\"false\" [matBadge]=\"count\" [matBadgeHidden]=\"count === 0\">shopping_bag</mat-icon>\n </button>\n</div>\n<mat-menu #notificationsMenu=\"matMenu\" class=\"custom-menu\">\n <div class=\"flex flex-col divide-y min-w-[320px]\">\n <div class=\"h-11 px-3 flex justify-between items-center\">\n <span class=\"font-medium\">\u8D2D\u7269\u8F66</span>\n @if (count) {\n <span class=\"text-sm font-medium cursor-pointer hover:underline\" (click)=\"deleteAll()\">\u5220\u9664\u5168\u90E8</span>\n }\n </div>\n <div>\n @if (carts && carts.length > 0) {\n <div class=\"divide-y\">\n @for (item of carts; track item) {\n <div class=\"p-2 cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"[router(), item.id]\">\n <div>\n {{ item.title }}\n </div>\n <div class=\"text-sm\">\n {{ item.content }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"h-32 flex justify-center items-center\">\u6682\u65E0</div>\n }\n </div>\n <div class=\"h-11 flex justify-center items-center cursor-pointer hover:bg-[--rt-raised-background]\" [routerLink]=\"router()\">\n <a class=\"flex justify-center items-center\">\n <span class=\"text-sm text-orange-600\"> \u524D\u5F80\u8D2D\u7269\u8F66 </span>\n </a>\n </div>\n </div>\n</mat-menu>\n", styles: ["rolatech-cart-icon{color:var(--rt-text-primary, #000)}.custom-menu{color:var(--rt-text-primary, #000)}\n"] }]
|
|
51
|
+
}] });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1pY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LWljb24vY2FydC1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LWljb24vY2FydC1pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7OztBQVV4RCxNQUFNLE9BQU8saUJBQWlCO0lBUjlCO1FBU0UsV0FBTSxHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUNoQyxVQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUIsVUFBSyxHQUFHLENBQUMsQ0FBQztLQTJCWDtJQXpCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDeEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDckMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaENVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFOQ2Y5Qix1a0RBc0NBLGlLRDVCWSxtQkFBbUIsK1FBQUUsdUJBQXVCOzsyRkFLM0MsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQyxpQkFHeEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FydFN0YXRlIH0gZnJvbSAnbGlicy9hbmd1bGFyLWNhcnQvc3JjL3N0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY2FydC1pY29uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0FuZ3VsYXJDb21tb25Nb2R1bGUsIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJ0LWljb24uY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0SWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcm91dGVyID0gaW5wdXQ8c3RyaW5nPignL2NhcnQnKTtcbiAgY2FydHM6IGFueSA9IFtdO1xuICBjYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XG4gIGNhcnRTdGF0ZSA9IGluamVjdChDYXJ0U3RhdGUpO1xuXG4gIGNvdW50ID0gMDtcbiAgcHJpdmF0ZSBjb3VudFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJ0U3RhdGUuJGNvdW50LnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5jb3VudCA9IGRhdGE7XG4gICAgfSk7XG4gICAgdGhpcy5sb2FkQ2FydHMoKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jb3VudFN1YnNjcmlwdGlvbikgdGhpcy5jb3VudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbG9hZENhcnRzKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7fTtcbiAgICB0aGlzLmNhcnRTZXJ2aWNlLmZpbmQob3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhcnRzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGRlbGV0ZUFsbCgpIHtcbiAgICB0aGlzLmNhcnRTZXJ2aWNlLmRlbGV0ZUFsbCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY2FydHMgPSBbXTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJweC0yXCI+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiZmxleFwiIG9uY2xpY2s9XCJ0aGlzLmJsdXIoKVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJub3RpZmljYXRpb25zTWVudVwiPlxuICAgIDxtYXQtaWNvbiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgW21hdEJhZGdlXT1cImNvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cImNvdW50ID09PSAwXCI+c2hvcHBpbmdfYmFnPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxtYXQtbWVudSAjbm90aWZpY2F0aW9uc01lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjdXN0b20tbWVudVwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBkaXZpZGUteSBtaW4tdy1bMzIwcHhdXCI+XG4gICAgPGRpdiBjbGFzcz1cImgtMTEgcHgtMyBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj7otK3nianovaY8L3NwYW4+XG4gICAgICBAaWYgKGNvdW50KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmVcIiAoY2xpY2spPVwiZGVsZXRlQWxsKClcIj7liKDpmaTlhajpg6g8L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoY2FydHMgJiYgY2FydHMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlLXlcIj5cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIGNhcnRzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0yIGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXVwiIFtyb3V0ZXJMaW5rXT1cIltyb3V0ZXIoKSwgaXRlbS5pZF1cIj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0uY29udGVudCB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImgtMzIgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj7mmoLml6A8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaC0xMSBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF1cIiBbcm91dGVyTGlua109XCJyb3V0ZXIoKVwiPlxuICAgICAgPGEgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1vcmFuZ2UtNjAwXCI+IOWJjeW+gOi0reeJqei9piA8L3NwYW4+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9tYXQtbWVudT5cbiJdfQ==
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Component, effect, inject, input, model } from '@angular/core';
|
|
2
|
+
import { CommonModule, NgClass } from '@angular/common';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatIcon } from '@angular/material/icon';
|
|
5
|
+
import { MatBadge } from '@angular/material/badge';
|
|
6
|
+
import { SpinnerComponent } from '@rolatech/angular-components';
|
|
7
|
+
import { CartService } from '@rolatech/angular-services';
|
|
8
|
+
import { CartCheckoutItemComponent } from '../cart-checkout-item/cart-checkout-item.component';
|
|
9
|
+
import { RouterLink } from '@angular/router';
|
|
10
|
+
import { sumBy } from 'lodash';
|
|
11
|
+
import { MatDivider } from '@angular/material/divider';
|
|
12
|
+
import { OptionsFormatPipe } from '@rolatech/angular-common';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
import * as i2 from "@angular/material/button";
|
|
16
|
+
export class CartSideComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.router = input('/cart');
|
|
19
|
+
this.cartService = inject(CartService);
|
|
20
|
+
this.info = model(false);
|
|
21
|
+
this.loading = false;
|
|
22
|
+
this.count = 0;
|
|
23
|
+
this.totalPrice = '';
|
|
24
|
+
this.toggle = effect(() => {
|
|
25
|
+
if (this.info()) {
|
|
26
|
+
document.body.style.overflow = 'hidden';
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
document.body.style.overflow = 'auto';
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
if (this.countSubscription)
|
|
35
|
+
this.countSubscription.unsubscribe();
|
|
36
|
+
}
|
|
37
|
+
calcPrice() {
|
|
38
|
+
const price = sumBy(this.carts, (item) => item.variant ? item.quantity * item.variant.price : item.quantity * item.product.price);
|
|
39
|
+
this.totalPrice = (price / 100).toFixed(2);
|
|
40
|
+
}
|
|
41
|
+
show() {
|
|
42
|
+
this.info.set(true);
|
|
43
|
+
this.loading = true;
|
|
44
|
+
this.cartService.findDetails({}).subscribe({
|
|
45
|
+
next: (res) => {
|
|
46
|
+
this.carts = res.data;
|
|
47
|
+
this.loading = false;
|
|
48
|
+
this.calcPrice();
|
|
49
|
+
},
|
|
50
|
+
error: (error) => {
|
|
51
|
+
this.loading = false;
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
dismiss() {
|
|
56
|
+
this.info.set(false);
|
|
57
|
+
}
|
|
58
|
+
onAdd(cart) {
|
|
59
|
+
this.cartService.update(cart.id, { quantity: cart.quantity }).subscribe({
|
|
60
|
+
next: (res) => {
|
|
61
|
+
this.calcPrice();
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
onRemove(cart) {
|
|
66
|
+
this.cartService.update(cart.id, { quantity: cart.quantity }).subscribe({
|
|
67
|
+
next: (res) => {
|
|
68
|
+
this.calcPrice();
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
onDelete(cart) {
|
|
73
|
+
this.cartService.delete(cart.id).subscribe({
|
|
74
|
+
next: (res) => {
|
|
75
|
+
const index = this.carts.findIndex((item) => item.id === cart.id);
|
|
76
|
+
this.carts.splice(index, 1);
|
|
77
|
+
this.calcPrice();
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: CartSideComponent, isStandalone: true, selector: "rolatech-cart-side", inputs: { router: { classPropertyName: "router", publicName: "router", isSignal: true, isRequired: false, transformFunction: null }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { info: "infoChange" }, ngImport: i0, template: "<div class=\"px-2\">\n <button mat-icon-button class=\"flex\" (click)=\"show()\">\n <mat-icon aria-hidden=\"false\" [matBadge]=\"count\" [matBadgeHidden]=\"count === 0\">shopping_bag</mat-icon>\n </button>\n</div>\n<div\n [ngClass]=\"{ 'translate-none': info(), 'translate-y-full md:translate-x-full md:translate-y-0': !info() }\"\n class=\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-full md:w-[600px] shadow-xl\"\n>\n <div class=\"flex justify-between items-center sm:p-4\">\n <div class=\"text-2xl font-bold\">\u8D2D\u7269\u8F66</div>\n <button mat-icon-button (click)=\"dismiss()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n @if (!loading) {\n <div class=\"mt-3 p-1 sm:p-4\">\n @for (item of carts; track item) {\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 <mat-divider></mat-divider>\n <div class=\"h-14 flex justify-between items-center\">\n <div class=\"text-lg font-bold\">\u603B\u8BA1</div>\n <div>\u00A5{{ totalPrice }}</div>\n </div>\n <div class=\"flex flex-row gap-3 w-full items-center justify-center mt-3\">\n <button mat-flat-button [routerLink]=\"router()\" (click)=\"dismiss()\" class=\"w-8/12\">\n <a>\u53BB\u8D2D\u7269\u8F66\u7ED3\u7B97</a>\n </button>\n <button mat-stroked-button (click)=\"dismiss()\" class=\"w-4/12\">\n <a>\u7EE7\u7EED\u8D2D\u7269</a>\n </button>\n </div>\n </div>\n }\n @if (loading) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n }\n</div>\n<div\n (click)=\"dismiss()\"\n [ngClass]=\"info() ? 'visible' : 'invisible'\"\n class=\"bg-[--rt-10-percent-layer] fixed h-screen inset-0 z-[1000]\"\n></div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: SpinnerComponent, selector: "rolatech-spinner", inputs: ["title"] }, { kind: "component", type: CartCheckoutItemComponent, selector: "rolatech-cart-checkout-item", inputs: ["thumbnail", "name", "description", "quantity", "price", "max"], outputs: ["quantityChange", "add", "remove", "delete"] }, { kind: "pipe", type: OptionsFormatPipe, name: "options" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] }); }
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartSideComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'rolatech-cart-side', standalone: true, imports: [
|
|
87
|
+
CommonModule,
|
|
88
|
+
NgClass,
|
|
89
|
+
MatButtonModule,
|
|
90
|
+
MatIcon,
|
|
91
|
+
MatBadge,
|
|
92
|
+
SpinnerComponent,
|
|
93
|
+
CartCheckoutItemComponent,
|
|
94
|
+
OptionsFormatPipe,
|
|
95
|
+
RouterLink,
|
|
96
|
+
MatDivider,
|
|
97
|
+
], template: "<div class=\"px-2\">\n <button mat-icon-button class=\"flex\" (click)=\"show()\">\n <mat-icon aria-hidden=\"false\" [matBadge]=\"count\" [matBadgeHidden]=\"count === 0\">shopping_bag</mat-icon>\n </button>\n</div>\n<div\n [ngClass]=\"{ 'translate-none': info(), 'translate-y-full md:translate-x-full md:translate-y-0': !info() }\"\n class=\"fixed top-0 right-0 z-[1001] h-screen p-4 overflow-y-auto transition-transform bg-[--rt-raised-background] w-full md:w-[600px] shadow-xl\"\n>\n <div class=\"flex justify-between items-center sm:p-4\">\n <div class=\"text-2xl font-bold\">\u8D2D\u7269\u8F66</div>\n <button mat-icon-button (click)=\"dismiss()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n @if (!loading) {\n <div class=\"mt-3 p-1 sm:p-4\">\n @for (item of carts; track item) {\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 <mat-divider></mat-divider>\n <div class=\"h-14 flex justify-between items-center\">\n <div class=\"text-lg font-bold\">\u603B\u8BA1</div>\n <div>\u00A5{{ totalPrice }}</div>\n </div>\n <div class=\"flex flex-row gap-3 w-full items-center justify-center mt-3\">\n <button mat-flat-button [routerLink]=\"router()\" (click)=\"dismiss()\" class=\"w-8/12\">\n <a>\u53BB\u8D2D\u7269\u8F66\u7ED3\u7B97</a>\n </button>\n <button mat-stroked-button (click)=\"dismiss()\" class=\"w-4/12\">\n <a>\u7EE7\u7EED\u8D2D\u7269</a>\n </button>\n </div>\n </div>\n }\n @if (loading) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n }\n</div>\n<div\n (click)=\"dismiss()\"\n [ngClass]=\"info() ? 'visible' : 'invisible'\"\n class=\"bg-[--rt-10-percent-layer] fixed h-screen inset-0 z-[1000]\"\n></div>\n" }]
|
|
98
|
+
}] });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1zaWRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LXNpZGUvY2FydC1zaWRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvY29tcG9uZW50cy9jYXJ0LXNpZGUvY2FydC1zaWRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFvQjdELE1BQU0sT0FBTyxpQkFBaUI7SUFsQjlCO1FBbUJFLFdBQU0sR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEMsU0FBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLFdBQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDMUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDeEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0tBbURKO0lBakRDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUNELFNBQVM7UUFDUCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFLENBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQ3ZGLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0QsS0FBSyxDQUFDLElBQVM7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0RSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBUztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0RSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRLENBQUMsSUFBUztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBakVVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDJXQ2hDOUIsODJGQXNFQSx5RERwREksWUFBWSw0SEFFWixlQUFlLHlVQUNmLE9BQU8sMklBQ1AsUUFBUSxrTkFDUixnQkFBZ0IsZ0ZBQ2hCLHlCQUF5QixxTUFDekIsaUJBQWlCLGdEQUNqQixVQUFVLG9PQUNWLFVBQVU7OzJGQUtELGlCQUFpQjtrQkFsQjdCLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixVQUFVO3FCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBtb2RlbCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QmFkZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NhcnQtY2hlY2tvdXQtaXRlbS9jYXJ0LWNoZWNrb3V0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgc3VtQnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWF0RGl2aWRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgT3B0aW9uc0Zvcm1hdFBpcGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jYXJ0LXNpZGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE5nQ2xhc3MsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb24sXG4gICAgTWF0QmFkZ2UsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBDYXJ0Q2hlY2tvdXRJdGVtQ29tcG9uZW50LFxuICAgIE9wdGlvbnNGb3JtYXRQaXBlLFxuICAgIFJvdXRlckxpbmssXG4gICAgTWF0RGl2aWRlcixcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtc2lkZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJ0LXNpZGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0U2lkZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJvdXRlciA9IGlucHV0PHN0cmluZz4oJy9jYXJ0Jyk7XG4gIGNhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcbiAgY2FydHM6IGFueTtcbiAgaW5mbyA9IG1vZGVsKGZhbHNlKTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBjb3VudCA9IDA7XG4gIHRvdGFsUHJpY2UgPSAnJztcbiAgcHJpdmF0ZSBjb3VudFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgdG9nZ2xlID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5pbmZvKCkpIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICB9XG4gIH0pO1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvdW50U3Vic2NyaXB0aW9uKSB0aGlzLmNvdW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbiAgY2FsY1ByaWNlKCk6IGFueSB7XG4gICAgY29uc3QgcHJpY2UgPSBzdW1CeSh0aGlzLmNhcnRzLCAoaXRlbTogYW55KSA9PlxuICAgICAgaXRlbS52YXJpYW50ID8gaXRlbS5xdWFudGl0eSAqIGl0ZW0udmFyaWFudC5wcmljZSA6IGl0ZW0ucXVhbnRpdHkgKiBpdGVtLnByb2R1Y3QucHJpY2UsXG4gICAgKTtcbiAgICB0aGlzLnRvdGFsUHJpY2UgPSAocHJpY2UgLyAxMDApLnRvRml4ZWQoMik7XG4gIH1cbiAgc2hvdygpIHtcbiAgICB0aGlzLmluZm8uc2V0KHRydWUpO1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jYXJ0U2VydmljZS5maW5kRGV0YWlscyh7fSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNhcnRzID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNhbGNQcmljZSgpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGRpc21pc3MoKSB7XG4gICAgdGhpcy5pbmZvLnNldChmYWxzZSk7XG4gIH1cbiAgb25BZGQoY2FydDogYW55KSB7XG4gICAgdGhpcy5jYXJ0U2VydmljZS51cGRhdGUoY2FydC5pZCwgeyBxdWFudGl0eTogY2FydC5xdWFudGl0eSB9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNhbGNQcmljZSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblJlbW92ZShjYXJ0OiBhbnkpIHtcbiAgICB0aGlzLmNhcnRTZXJ2aWNlLnVwZGF0ZShjYXJ0LmlkLCB7IHF1YW50aXR5OiBjYXJ0LnF1YW50aXR5IH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuY2FsY1ByaWNlKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIG9uRGVsZXRlKGNhcnQ6IGFueSkge1xuICAgIHRoaXMuY2FydFNlcnZpY2UuZGVsZXRlKGNhcnQuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jYXJ0cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGNhcnQuaWQpO1xuICAgICAgICB0aGlzLmNhcnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMuY2FsY1ByaWNlKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHgtMlwiPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cImZsZXhcIiAoY2xpY2spPVwic2hvdygpXCI+XG4gICAgPG1hdC1pY29uIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBbbWF0QmFkZ2VdPVwiY291bnRcIiBbbWF0QmFkZ2VIaWRkZW5dPVwiY291bnQgPT09IDBcIj5zaG9wcGluZ19iYWc8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdlxuICBbbmdDbGFzc109XCJ7ICd0cmFuc2xhdGUtbm9uZSc6IGluZm8oKSwgJ3RyYW5zbGF0ZS15LWZ1bGwgIG1kOnRyYW5zbGF0ZS14LWZ1bGwgbWQ6dHJhbnNsYXRlLXktMCc6ICFpbmZvKCkgfVwiXG4gIGNsYXNzPVwiZml4ZWQgdG9wLTAgcmlnaHQtMCB6LVsxMDAxXSBoLXNjcmVlbiBwLTQgb3ZlcmZsb3cteS1hdXRvIHRyYW5zaXRpb24tdHJhbnNmb3JtIGJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSB3LWZ1bGwgbWQ6dy1bNjAwcHhdIHNoYWRvdy14bFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgc206cC00XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZFwiPui0reeJqei9pjwvZGl2PlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICBAaWYgKCFsb2FkaW5nKSB7XG4gICAgPGRpdiBjbGFzcz1cIm10LTMgcC0xIHNtOnAtNFwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBjYXJ0czsgdHJhY2sgaXRlbSkge1xuICAgICAgICBAaWYgKGl0ZW0udmFyaWFudCkge1xuICAgICAgICAgIDxyb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWl0ZW1cbiAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0udmFyaWFudC50aXRsZSA/IGl0ZW0udmFyaWFudC50aXRsZSA6IGl0ZW0ucHJvZHVjdC5uYW1lXCJcbiAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJpdGVtLnZhcmlhbnQub3B0aW9ucyB8IG9wdGlvbnNcIlxuICAgICAgICAgICAgW3RodW1ibmFpbF09XCJpdGVtLnZhcmlhbnQubWVkaWEgPyBpdGVtLnZhcmlhbnQubWVkaWFbMF0udXJsICsgJyF3NDAwJyA6IGl0ZW0ucHJvZHVjdC5tZWRpYVswXS51cmwgKyAnIXc0MDAnXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJpdGVtLnZhcmlhbnQgPyBpdGVtLnZhcmlhbnQucHJpY2UgKiBpdGVtLnF1YW50aXR5IDogaXRlbS5wcm9kdWN0LnByaWNlXCJcbiAgICAgICAgICAgIFsocXVhbnRpdHkpXT1cIml0ZW0ucXVhbnRpdHlcIlxuICAgICAgICAgICAgW21heF09XCIzXCJcbiAgICAgICAgICAgIChhZGQpPVwib25BZGQoaXRlbSlcIlxuICAgICAgICAgICAgKHJlbW92ZSk9XCJvblJlbW92ZShpdGVtKVwiXG4gICAgICAgICAgICAoZGVsZXRlKT1cIm9uRGVsZXRlKGl0ZW0pXCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWl0ZW0+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxyb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWl0ZW1cbiAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0ucHJvZHVjdC5uYW1lXCJcbiAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJpdGVtLnByb2R1Y3QuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW3RodW1ibmFpbF09XCJpdGVtLnByb2R1Y3QubWVkaWFbMF0udXJsICsgJyF3NDAwJ1wiXG4gICAgICAgICAgICBbcHJpY2VdPVwiaXRlbS5wcm9kdWN0LnByaWNlICogaXRlbS5xdWFudGl0eVwiXG4gICAgICAgICAgICBbKHF1YW50aXR5KV09XCJpdGVtLnF1YW50aXR5XCJcbiAgICAgICAgICAgIFttYXhdPVwiM1wiXG4gICAgICAgICAgICAoYWRkKT1cIm9uQWRkKGl0ZW0pXCJcbiAgICAgICAgICAgIChyZW1vdmUpPVwib25SZW1vdmUoaXRlbSlcIlxuICAgICAgICAgICAgKGRlbGV0ZSk9XCJvbkRlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgPjwvcm9sYXRlY2gtY2FydC1jaGVja291dC1pdGVtPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoLTE0IGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIj7mgLvorqE8L2Rpdj5cbiAgICAgICAgPGRpdj7CpXt7IHRvdGFsUHJpY2UgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTMgdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtdC0zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIFtyb3V0ZXJMaW5rXT1cInJvdXRlcigpXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiIGNsYXNzPVwidy04LzEyXCI+XG4gICAgICAgICAgPGE+5Y676LSt54mp6L2m57uT566XPC9hPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImRpc21pc3MoKVwiIGNsYXNzPVwidy00LzEyXCI+XG4gICAgICAgICAgPGE+57un57ut6LSt54mpPC9hPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIEBpZiAobG9hZGluZykge1xuICAgIDxkaXY+XG4gICAgICA8cm9sYXRlY2gtc3Bpbm5lcj48L3JvbGF0ZWNoLXNwaW5uZXI+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuPGRpdlxuICAoY2xpY2spPVwiZGlzbWlzcygpXCJcbiAgW25nQ2xhc3NdPVwiaW5mbygpID8gJ3Zpc2libGUnIDogJ2ludmlzaWJsZSdcIlxuICBjbGFzcz1cImJnLVstLXJ0LTEwLXBlcmNlbnQtbGF5ZXJdIGZpeGVkIGgtc2NyZWVuIGluc2V0LTAgei1bMTAwMF1cIlxuPjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './cart-side/cart-side.component';
|
|
2
|
+
export * from './cart-icon/cart-icon.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXJ0LXNpZGUvY2FydC1zaWRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NhcnQtaWNvbi9jYXJ0LWljb24uY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvaW50ZXJmYWNlcy9jYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENhcnQge1xuICBpZDogc3RyaW5nO1xuICBwcm9kdWN0SWQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './cart';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvbGliL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhcnQnO1xuIl19
|
package/esm2022/lib/pages/cart-checkout/cart-checkout-course/cart-checkout-course.component.mjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CartCheckoutCourseComponent {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutCourseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
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 }] }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutCourseComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'rolatech-cart-checkout-course', standalone: true, imports: [CommonModule], template: "<p>cart-checkout-course works!</p>\n" }]
|
|
11
|
+
}] });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC1jb3Vyc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWNhcnQvc3JjL2xpYi9wYWdlcy9jYXJ0LWNoZWNrb3V0L2NhcnQtY2hlY2tvdXQtY291cnNlL2NhcnQtY2hlY2tvdXQtY291cnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvcGFnZXMvY2FydC1jaGVja291dC9jYXJ0LWNoZWNrb3V0LWNvdXJzZS9jYXJ0LWNoZWNrb3V0LWNvdXJzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTL0MsTUFBTSxPQUFPLDJCQUEyQjs4R0FBM0IsMkJBQTJCO2tHQUEzQiwyQkFBMkIseUZDVnhDLHNDQUNBLHlEREtZLFlBQVk7OzJGQUlYLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSwrQkFBK0IsY0FDN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWNvdXJzZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1jaGVja291dC1jb3Vyc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2FydC1jaGVja291dC1jb3Vyc2UuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0Q2hlY2tvdXRDb3Vyc2VDb21wb25lbnQge31cbiIsIjxwPmNhcnQtY2hlY2tvdXQtY291cnNlIHdvcmtzITwvcD5cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CartCheckoutIndexComponent {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
+
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 }] }); }
|
|
7
|
+
}
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutIndexComponent, decorators: [{
|
|
9
|
+
type: Component,
|
|
10
|
+
args: [{ selector: 'rolatech-cart-checkout-index', standalone: true, imports: [CommonModule], template: "<p>cart-checkout-index works!</p>\n" }]
|
|
11
|
+
}] });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC1pbmRleC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvbGliL3BhZ2VzL2NhcnQtY2hlY2tvdXQvY2FydC1jaGVja291dC1pbmRleC9jYXJ0LWNoZWNrb3V0LWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvcGFnZXMvY2FydC1jaGVja291dC9jYXJ0LWNoZWNrb3V0LWluZGV4L2NhcnQtY2hlY2tvdXQtaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBUy9DLE1BQU0sT0FBTywwQkFBMEI7OEdBQTFCLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHdGQ1Z2QyxxQ0FDQSx5RERLWSxZQUFZOzsyRkFJWCwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UsOEJBQThCLGNBQzVCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY2FydC1jaGVja291dC1pbmRleCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC1jaGVja291dC1pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJ0LWNoZWNrb3V0LWluZGV4LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydENoZWNrb3V0SW5kZXhDb21wb25lbnQge31cbiIsIjxwPmNhcnQtY2hlY2tvdXQtaW5kZXggd29ya3MhPC9wPlxuIl19
|
package/esm2022/lib/pages/cart-checkout/cart-checkout-product/cart-checkout-product.component.mjs
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Component, inject, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { BaseComponent, ContainerComponent, ThumbnailComponent, ToolbarComponent } from '@rolatech/angular-components';
|
|
3
|
+
import { AuthUserService } from '@rolatech/angular-auth';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { ProductType } from '@rolatech/angular-product';
|
|
6
|
+
import { OrderService } from '@rolatech/angular-services';
|
|
7
|
+
import { CartCheckoutSummaryComponent } from '../../../components/cart-checkout-summary/cart-checkout-summary.component';
|
|
8
|
+
import { CartCheckoutItemComponent } from '../../../components/cart-checkout-item/cart-checkout-item.component';
|
|
9
|
+
import { CartCheckoutActionComponent } from '../../../components/cart-checkout-action/cart-checkout-action.component';
|
|
10
|
+
import { CartService, ProductService } from '@rolatech/angular-services';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class CartCheckoutProductComponent extends BaseComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.productService = inject(ProductService);
|
|
16
|
+
this.cartService = inject(CartService);
|
|
17
|
+
this.orderService = inject(OrderService);
|
|
18
|
+
this.authUserService = inject(AuthUserService);
|
|
19
|
+
this.type = ProductType;
|
|
20
|
+
this.quantity = 1;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.getProduct();
|
|
24
|
+
}
|
|
25
|
+
createOrder() {
|
|
26
|
+
this.orderService.create({ type: 'PRODUCT', productId: this.id }).subscribe({
|
|
27
|
+
next: (res) => {
|
|
28
|
+
this.router.navigateByUrl(`/orders/${res.data.id}`);
|
|
29
|
+
},
|
|
30
|
+
error: (error) => {
|
|
31
|
+
this.snackBarService.open(error.message);
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
getProduct() {
|
|
36
|
+
this.productService.get(this.id).subscribe({
|
|
37
|
+
next: (res) => {
|
|
38
|
+
this.product = res.data;
|
|
39
|
+
this.titleService.setTitle(`订单确认 - ${this.product.name}`);
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutProductComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
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 }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutProductComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'rolatech-cart-checkout-product', standalone: true, imports: [
|
|
49
|
+
ContainerComponent,
|
|
50
|
+
ToolbarComponent,
|
|
51
|
+
ThumbnailComponent,
|
|
52
|
+
MatButtonModule,
|
|
53
|
+
CartCheckoutSummaryComponent,
|
|
54
|
+
CartCheckoutItemComponent,
|
|
55
|
+
CartCheckoutActionComponent,
|
|
56
|
+
], 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" }]
|
|
57
|
+
}] });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC1wcm9kdWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvcGFnZXMvY2FydC1jaGVja291dC9jYXJ0LWNoZWNrb3V0LXByb2R1Y3QvY2FydC1jaGVja291dC1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvcGFnZXMvY2FydC1jaGVja291dC9jYXJ0LWNoZWNrb3V0LXByb2R1Y3QvY2FydC1jaGVja291dC1wcm9kdWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDaEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDdEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFrQnpFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxhQUFhO0lBaEIvRDs7UUFpQkUsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFMUMsU0FBSSxHQUFHLFdBQVcsQ0FBQztRQUNuQixhQUFRLEdBQUcsQ0FBQyxDQUFDO0tBc0JkO0lBckJDLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxRSxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVCVSw0QkFBNEI7a0dBQTVCLDRCQUE0QixpSEMzQnpDLDQ3QkF1QkEsMEREUkksa0JBQWtCLCtEQUNsQixnQkFBZ0IsK0hBRWhCLGVBQWUsK0JBQ2YsNEJBQTRCLDhGQUM1Qix5QkFBeUIsME1BQ3pCLDJCQUEyQjs7MkZBTWxCLDRCQUE0QjtrQkFoQnhDLFNBQVM7K0JBQ0UsZ0NBQWdDLGNBQzlCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLDRCQUE0Qjt3QkFDNUIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCLGlCQUdjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgQ29udGFpbmVyQ29tcG9uZW50LCBUaHVtYm5haWxDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEF1dGhVc2VyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFByb2R1Y3QsIFByb2R1Y3RUeXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItcHJvZHVjdCc7XG5pbXBvcnQgeyBPcmRlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXJ0Q2hlY2tvdXRTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LXN1bW1hcnkvY2FydC1jaGVja291dC1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJ0Q2hlY2tvdXRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LWl0ZW0vY2FydC1jaGVja291dC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJ0Q2hlY2tvdXRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NhcnQtY2hlY2tvdXQtYWN0aW9uL2NhcnQtY2hlY2tvdXQtYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSwgUHJvZHVjdFNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWNhcnQtY2hlY2tvdXQtcHJvZHVjdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb250YWluZXJDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBUaHVtYm5haWxDb21wb25lbnQsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIENhcnRDaGVja291dFN1bW1hcnlDb21wb25lbnQsXG4gICAgQ2FydENoZWNrb3V0SXRlbUNvbXBvbmVudCxcbiAgICBDYXJ0Q2hlY2tvdXRBY3Rpb25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LWNoZWNrb3V0LXByb2R1Y3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2FydC1jaGVja291dC1wcm9kdWN0LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydENoZWNrb3V0UHJvZHVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm9kdWN0U2VydmljZSA9IGluamVjdChQcm9kdWN0U2VydmljZSk7XG4gIGNhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcbiAgb3JkZXJTZXJ2aWNlID0gaW5qZWN0KE9yZGVyU2VydmljZSk7XG4gIGF1dGhVc2VyU2VydmljZSA9IGluamVjdChBdXRoVXNlclNlcnZpY2UpO1xuICBwcm9kdWN0ITogUHJvZHVjdDtcbiAgdHlwZSA9IFByb2R1Y3RUeXBlO1xuICBxdWFudGl0eSA9IDE7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UHJvZHVjdCgpO1xuICB9XG4gIGNyZWF0ZU9yZGVyKCkge1xuICAgIHRoaXMub3JkZXJTZXJ2aWNlLmNyZWF0ZSh7IHR5cGU6ICdQUk9EVUNUJywgcHJvZHVjdElkOiB0aGlzLmlkIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL29yZGVycy8ke3Jlcy5kYXRhLmlkfWApO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZ2V0UHJvZHVjdCgpIHtcbiAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucHJvZHVjdCA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShg6K6i5Y2V56Gu6K6kIC0gJHt0aGlzLnByb2R1Y3QubmFtZX1gKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIkBpZiAocHJvZHVjdCkge1xuICA8cm9sYXRlY2gtY29udGFpbmVyPlxuICAgIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwi6K6i5Y2V56Gu6K6kXCIgbGFyZ2U+PC9yb2xhdGVjaC10b29sYmFyPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC0zIG10LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZDp3LTIvMyBtZDpwci0xNlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsXCI+5ZWG5ZOB5L+h5oGvPC9kaXY+XG4gICAgICAgICAgPHJvbGF0ZWNoLWNhcnQtY2hlY2tvdXQtaXRlbVxuICAgICAgICAgICAgW25hbWVdPVwicHJvZHVjdC5uYW1lXCJcbiAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJwcm9kdWN0LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIFt0aHVtYm5haWxdPVwicHJvZHVjdC5tZWRpYVswXS51cmwgKyAnIXcyMDAnXCJcbiAgICAgICAgICAgIFtwcmljZV09XCJwcm9kdWN0LnByaWNlXCJcbiAgICAgICAgICAgIFsocXVhbnRpdHkpXT1cInF1YW50aXR5XCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWl0ZW0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWQ6dy0xLzNcIj5cbiAgICAgICAgPHJvbGF0ZWNoLWNhcnQtY2hlY2tvdXQtc3VtbWFyeSBbcHJpY2VdPVwicHJvZHVjdC5wcmljZVwiPjwvcm9sYXRlY2gtY2FydC1jaGVja291dC1zdW1tYXJ5PlxuICAgICAgICA8cm9sYXRlY2gtY2FydC1jaGVja291dC1hY3Rpb24gKGNyZWF0ZSk9XCJjcmVhdGVPcmRlcigpXCI+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWFjdGlvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3JvbGF0ZWNoLWNvbnRhaW5lcj5cbn1cbiJdfQ==
|
package/esm2022/lib/pages/cart-checkout/cart-checkout-variant/cart-checkout-variant.component.mjs
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
3
|
+
import { ContainerComponent, ToolbarComponent, ThumbnailComponent, BaseComponent } from '@rolatech/angular-components';
|
|
4
|
+
import { CartCheckoutActionComponent } from '../../../components/cart-checkout-action/cart-checkout-action.component';
|
|
5
|
+
import { CartCheckoutItemComponent } from '../../../components/cart-checkout-item/cart-checkout-item.component';
|
|
6
|
+
import { CartCheckoutSummaryComponent } from '../../../components/cart-checkout-summary/cart-checkout-summary.component';
|
|
7
|
+
import { OptionsFormatPipe } from '@rolatech/angular-common';
|
|
8
|
+
import { OrderService } from '@rolatech/angular-services';
|
|
9
|
+
import { ProductService, CartService } from '@rolatech/angular-services';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class CartCheckoutVariantComponent extends BaseComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
this.productService = inject(ProductService);
|
|
15
|
+
this.orderService = inject(OrderService);
|
|
16
|
+
this.cartService = inject(CartService);
|
|
17
|
+
this.variantId = '';
|
|
18
|
+
this.quantity = 1;
|
|
19
|
+
this.variantId = this.route.snapshot.params['variant-id'];
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.getProduct();
|
|
23
|
+
}
|
|
24
|
+
getProduct() {
|
|
25
|
+
this.productService.get(this.id).subscribe({
|
|
26
|
+
next: (res) => {
|
|
27
|
+
this.product = res.data;
|
|
28
|
+
this.variant = res.data.variants.find((item) => item.id === this.variantId);
|
|
29
|
+
this.titleService.setTitle(`订单确认 - ${this.product.name}`);
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
createOrder() {
|
|
34
|
+
this.orderService.create({ type: 'PRODUCT', variantId: this.variant.id }).subscribe({
|
|
35
|
+
next: (res) => {
|
|
36
|
+
this.router.navigateByUrl(`/orders/${res.data.id}`);
|
|
37
|
+
},
|
|
38
|
+
error: (error) => {
|
|
39
|
+
this.snackBarService.open(error.message);
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutVariantComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
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" }] }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: CartCheckoutVariantComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'rolatech-cart-checkout-variant', standalone: true, imports: [
|
|
49
|
+
ContainerComponent,
|
|
50
|
+
ToolbarComponent,
|
|
51
|
+
ThumbnailComponent,
|
|
52
|
+
MatButtonModule,
|
|
53
|
+
CartCheckoutSummaryComponent,
|
|
54
|
+
CartCheckoutItemComponent,
|
|
55
|
+
CartCheckoutActionComponent,
|
|
56
|
+
OptionsFormatPipe,
|
|
57
|
+
], 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" }]
|
|
58
|
+
}], ctorParameters: () => [] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC12YXJpYW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvcGFnZXMvY2FydC1jaGVja291dC9jYXJ0LWNoZWNrb3V0LXZhcmlhbnQvY2FydC1jaGVja291dC12YXJpYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jYXJ0L3NyYy9saWIvcGFnZXMvY2FydC1jaGVja291dC9jYXJ0LWNoZWNrb3V0LXZhcmlhbnQvY2FydC1jaGVja291dC12YXJpYW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXdCLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3RILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBRXpILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQWtCekUsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGFBQWE7SUFRN0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVJWLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBR2xDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBR1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xGLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWxDVSw0QkFBNEI7a0dBQTVCLDRCQUE0QixpSEMzQnpDLHVqQ0F3QkEsMEREVEksa0JBQWtCLCtEQUNsQixnQkFBZ0IsK0hBRWhCLGVBQWUsK0JBQ2YsNEJBQTRCLDhGQUM1Qix5QkFBeUIsME1BQ3pCLDJCQUEyQiwwRkFDM0IsaUJBQWlCOzsyRkFLUiw0QkFBNEI7a0JBaEJ4QyxTQUFTOytCQUNFLGdDQUFnQyxjQUM5QixJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZiw0QkFBNEI7d0JBQzVCLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3dCQUMzQixpQkFBaUI7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBDb250YWluZXJDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCwgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jYXJ0LWNoZWNrb3V0LWFjdGlvbi9jYXJ0LWNoZWNrb3V0LWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY2FydC1jaGVja291dC1pdGVtL2NhcnQtY2hlY2tvdXQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0U3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY2FydC1jaGVja291dC1zdW1tYXJ5L2NhcnQtY2hlY2tvdXQtc3VtbWFyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdCwgUHJvZHVjdFZhcmlhbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1wcm9kdWN0JztcbmltcG9ydCB7IE9wdGlvbnNGb3JtYXRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IE9yZGVyU2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb2R1Y3RTZXJ2aWNlLCBDYXJ0U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtY2FydC1jaGVja291dC12YXJpYW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFRodW1ibmFpbENvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgQ2FydENoZWNrb3V0U3VtbWFyeUNvbXBvbmVudCxcbiAgICBDYXJ0Q2hlY2tvdXRJdGVtQ29tcG9uZW50LFxuICAgIENhcnRDaGVja291dEFjdGlvbkNvbXBvbmVudCxcbiAgICBPcHRpb25zRm9ybWF0UGlwZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcnQtY2hlY2tvdXQtdmFyaWFudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJ0LWNoZWNrb3V0LXZhcmlhbnQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0Q2hlY2tvdXRWYXJpYW50Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb2R1Y3RTZXJ2aWNlID0gaW5qZWN0KFByb2R1Y3RTZXJ2aWNlKTtcbiAgb3JkZXJTZXJ2aWNlID0gaW5qZWN0KE9yZGVyU2VydmljZSk7XG4gIGNhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcbiAgcHJvZHVjdCE6IFByb2R1Y3Q7XG4gIHZhcmlhbnQhOiBQcm9kdWN0VmFyaWFudDtcbiAgdmFyaWFudElkID0gJyc7XG4gIHF1YW50aXR5ID0gMTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnZhcmlhbnRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWyd2YXJpYW50LWlkJ107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFByb2R1Y3QoKTtcbiAgfVxuICBnZXRQcm9kdWN0KCkge1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5wcm9kdWN0ID0gcmVzLmRhdGE7XG4gICAgICAgIHRoaXMudmFyaWFudCA9IHJlcy5kYXRhLnZhcmlhbnRzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IHRoaXMudmFyaWFudElkKTtcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoYOiuouWNleehruiupCAtICR7dGhpcy5wcm9kdWN0Lm5hbWV9YCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGNyZWF0ZU9yZGVyKCkge1xuICAgIHRoaXMub3JkZXJTZXJ2aWNlLmNyZWF0ZSh7IHR5cGU6ICdQUk9EVUNUJywgdmFyaWFudElkOiB0aGlzLnZhcmlhbnQuaWQgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvb3JkZXJzLyR7cmVzLmRhdGEuaWR9YCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmICh2YXJpYW50KSB7XG4gIDxyb2xhdGVjaC1jb250YWluZXI+XG4gICAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCLorqLljZXnoa7orqRcIiBsYXJnZT48L3JvbGF0ZWNoLXRvb2xiYXI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgZ2FwLTMgbXQtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1kOnctMi8zIG1kOnByLTE2XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteGxcIj7llYblk4Hkv6Hmga88L2Rpdj5cbiAgICAgICAgICA8cm9sYXRlY2gtY2FydC1jaGVja291dC1pdGVtXG4gICAgICAgICAgICBbbmFtZV09XCJ2YXJpYW50LnRpdGxlID8gdmFyaWFudC50aXRsZSA6IHByb2R1Y3QubmFtZVwiXG4gICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwidmFyaWFudC5vcHRpb25zIHwgb3B0aW9uc1wiXG4gICAgICAgICAgICBbdGh1bWJuYWlsXT1cInZhcmlhbnQubWVkaWEgPyB2YXJpYW50Lm1lZGlhWzBdLnVybCArICchdzIwMCcgOiBwcm9kdWN0Lm1lZGlhWzBdLnVybCArICchdzIwMCdcIlxuICAgICAgICAgICAgW3ByaWNlXT1cInZhcmlhbnQucHJpY2VcIlxuICAgICAgICAgICAgWyhxdWFudGl0eSldPVwicXVhbnRpdHlcIlxuICAgICAgICAgICAgW21heF09XCIzXCJcbiAgICAgICAgICA+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWl0ZW0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWQ6dy0xLzNcIj5cbiAgICAgICAgPHJvbGF0ZWNoLWNhcnQtY2hlY2tvdXQtc3VtbWFyeSBbcHJpY2VdPVwidmFyaWFudC5wcmljZSAqIHF1YW50aXR5XCI+PC9yb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LXN1bW1hcnk+XG4gICAgICAgIDxyb2xhdGVjaC1jYXJ0LWNoZWNrb3V0LWFjdGlvbiAoY3JlYXRlKT1cImNyZWF0ZU9yZGVyKClcIj48L3JvbGF0ZWNoLWNhcnQtY2hlY2tvdXQtYWN0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvcm9sYXRlY2gtY29udGFpbmVyPlxufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CartCheckoutIndexComponent } from './cart-checkout-index/cart-checkout-index.component';
|
|
2
|
+
import { CartCheckoutCourseComponent } from './cart-checkout-course/cart-checkout-course.component';
|
|
3
|
+
import { CartCheckoutProductComponent } from './cart-checkout-product/cart-checkout-product.component';
|
|
4
|
+
import { CartCheckoutVariantComponent } from './cart-checkout-variant/cart-checkout-variant.component';
|
|
5
|
+
const cartCheckoutRoutes = [
|
|
6
|
+
{
|
|
7
|
+
path: '',
|
|
8
|
+
component: CartCheckoutIndexComponent,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
path: 'courses/:id',
|
|
12
|
+
component: CartCheckoutCourseComponent,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
path: 'products/:id',
|
|
16
|
+
component: CartCheckoutProductComponent,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
path: 'products/:id/variants/:variant-id',
|
|
20
|
+
component: CartCheckoutVariantComponent,
|
|
21
|
+
},
|
|
22
|
+
];
|
|
23
|
+
export default cartCheckoutRoutes;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1jaGVja291dC5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY2FydC9zcmMvbGliL3BhZ2VzL2NhcnQtY2hlY2tvdXQvY2FydC1jaGVja291dC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFFdkcsTUFBTSxrQkFBa0IsR0FBVztJQUNqQztRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLDBCQUEwQjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGFBQWE7UUFDbkIsU0FBUyxFQUFFLDJCQUEyQjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsU0FBUyxFQUFFLDRCQUE0QjtLQUN4QztJQUNEO1FBQ0UsSUFBSSxFQUFFLG1DQUFtQztRQUN6QyxTQUFTLEVBQUUsNEJBQTRCO0tBQ3hDO0NBQ0YsQ0FBQztBQUNGLGVBQWUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0SW5kZXhDb21wb25lbnQgfSBmcm9tICcuL2NhcnQtY2hlY2tvdXQtaW5kZXgvY2FydC1jaGVja291dC1pbmRleC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0Q291cnNlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJ0LWNoZWNrb3V0LWNvdXJzZS9jYXJ0LWNoZWNrb3V0LWNvdXJzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0UHJvZHVjdENvbXBvbmVudCB9IGZyb20gJy4vY2FydC1jaGVja291dC1wcm9kdWN0L2NhcnQtY2hlY2tvdXQtcHJvZHVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FydENoZWNrb3V0VmFyaWFudENvbXBvbmVudCB9IGZyb20gJy4vY2FydC1jaGVja291dC12YXJpYW50L2NhcnQtY2hlY2tvdXQtdmFyaWFudC5jb21wb25lbnQnO1xuXG5jb25zdCBjYXJ0Q2hlY2tvdXRSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGNvbXBvbmVudDogQ2FydENoZWNrb3V0SW5kZXhDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY291cnNlcy86aWQnLFxuICAgIGNvbXBvbmVudDogQ2FydENoZWNrb3V0Q291cnNlQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb2R1Y3RzLzppZCcsXG4gICAgY29tcG9uZW50OiBDYXJ0Q2hlY2tvdXRQcm9kdWN0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb2R1Y3RzLzppZC92YXJpYW50cy86dmFyaWFudC1pZCcsXG4gICAgY29tcG9uZW50OiBDYXJ0Q2hlY2tvdXRWYXJpYW50Q29tcG9uZW50LFxuICB9LFxuXTtcbmV4cG9ydCBkZWZhdWx0IGNhcnRDaGVja291dFJvdXRlcztcbiJdfQ==
|