@rolatech/angular-product 17.1.10 → 19.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{rolatech-angular-product-product-index.component-sLpwxg6g.mjs → rolatech-angular-product-product-index.component-Dy6tCxJf.mjs} +6 -7
- package/fesm2022/rolatech-angular-product-product-index.component-Dy6tCxJf.mjs.map +1 -0
- package/fesm2022/rolatech-angular-product.mjs +271 -224
- package/fesm2022/rolatech-angular-product.mjs.map +1 -1
- package/lib/pages/product/product-category/product-category.component.d.ts +1 -2
- package/lib/pages/product/product-layout/product-layout.component.d.ts +1 -2
- package/lib/pages/product-manage/product-manage-info/product-manage-info.component.d.ts +1 -2
- package/lib/pages/product-manage/product-manage-inventory/product-manage-inventory.component.d.ts +26 -2
- package/lib/services/index.d.ts +0 -2
- package/package.json +8 -6
- package/themes/_default.scss +1 -1
- package/esm2022/index.mjs +0 -7
- package/esm2022/lib/components/index.mjs +0 -12
- package/esm2022/lib/components/product-action/product-action.component.mjs +0 -32
- package/esm2022/lib/components/product-info/product-info.component.mjs +0 -19
- package/esm2022/lib/components/product-item/product-item.component.mjs +0 -17
- package/esm2022/lib/components/product-manage-option-add/product-manage-option-add.component.mjs +0 -68
- package/esm2022/lib/components/product-manage-option-item/product-manage-option-item.component.mjs +0 -49
- package/esm2022/lib/components/product-manage-variant/product-manage-variant.component.mjs +0 -127
- package/esm2022/lib/components/product-mange-option-action/product-manage-option-action.component.mjs +0 -22
- package/esm2022/lib/components/product-mange-section-item/product-mange-section-item.component.mjs +0 -89
- package/esm2022/lib/components/product-media/product-media.component.mjs +0 -34
- package/esm2022/lib/components/product-option/product-option.component.mjs +0 -23
- package/esm2022/lib/components/product-owner-renderer/product-owner-renderer.component.mjs +0 -20
- package/esm2022/lib/components/product-pricing/product-pricing.component.mjs +0 -31
- package/esm2022/lib/components/product-section/product-section.component.mjs +0 -26
- package/esm2022/lib/interfaces/category.mjs +0 -2
- package/esm2022/lib/interfaces/index.mjs +0 -2
- package/esm2022/lib/interfaces/product.mjs +0 -36
- package/esm2022/lib/pages/product/product-category/product-category.component.mjs +0 -74
- package/esm2022/lib/pages/product/product-details/product-details.component.mjs +0 -185
- package/esm2022/lib/pages/product/product-details/selected.pipe.mjs +0 -18
- package/esm2022/lib/pages/product/product-index/product-index.component.mjs +0 -43
- package/esm2022/lib/pages/product/product-layout/product-layout.component.mjs +0 -50
- package/esm2022/lib/pages/product/product.routes.mjs +0 -24
- package/esm2022/lib/pages/product-manage/product-manage-content/product-manage-content.component.mjs +0 -12
- package/esm2022/lib/pages/product-manage/product-manage-create/product-manage-create.component.mjs +0 -61
- package/esm2022/lib/pages/product-manage/product-manage-index/product-manage-index.component.mjs +0 -155
- package/esm2022/lib/pages/product-manage/product-manage-info/product-manage-info.component.mjs +0 -112
- package/esm2022/lib/pages/product-manage/product-manage-inventory/product-manage-inventory.component.mjs +0 -14
- package/esm2022/lib/pages/product-manage/product-manage-item/product-manage-item.component.mjs +0 -28
- package/esm2022/lib/pages/product-manage/product-manage-item-header/product-manage-item-header.component.mjs +0 -12
- package/esm2022/lib/pages/product-manage/product-manage-layout/product-manage-layout.component.mjs +0 -55
- package/esm2022/lib/pages/product-manage/product-manage-media/product-manage-media.component.mjs +0 -137
- package/esm2022/lib/pages/product-manage/product-manage-options/product-manage-options.component.mjs +0 -102
- package/esm2022/lib/pages/product-manage/product-manage-pricing/product-manage-pricing.component.mjs +0 -12
- package/esm2022/lib/pages/product-manage/product-manage-schedule/product-manage-schedule.component.mjs +0 -14
- package/esm2022/lib/pages/product-manage/product-manage-sections/product-manage-sections.component.mjs +0 -171
- package/esm2022/lib/pages/product-manage/product-manage-variants/product-manage-variants.component.mjs +0 -133
- package/esm2022/lib/pages/product-manage/product-manage.routes.mjs +0 -60
- package/esm2022/lib/services/index.mjs +0 -4
- package/esm2022/lib/services/product-category.service.mjs +0 -38
- package/esm2022/provider.mjs +0 -13
- package/esm2022/rolatech-angular-product.mjs +0 -5
- package/fesm2022/rolatech-angular-product-product-index.component-sLpwxg6g.mjs.map +0 -1
- package/lib/components/product-mange-option-action/product-manage-option-action.component.d.ts +0 -10
- package/lib/services/product-category.service.d.ts +0 -12
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { Component, computed, inject, model, output } from '@angular/core';
|
|
2
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
3
|
-
import { MatIcon } from '@angular/material/icon';
|
|
4
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
5
|
-
import { MatTableModule } from '@angular/material/table';
|
|
6
|
-
import { AngularCommonModule, DecimalDirective } from '@rolatech/angular-common';
|
|
7
|
-
import { AngularComponentsModule, ToolbarComponent, ThumbnailComponent, ImageComponent, ImagePreviewDialogComponent, } from '@rolatech/angular-components';
|
|
8
|
-
import { OptionsFormatPipe } from '@rolatech/angular-common';
|
|
9
|
-
import { ProductManageContentComponent } from '../../pages/product-manage/product-manage-content/product-manage-content.component';
|
|
10
|
-
import { ProductInventoryStatus } from '../../interfaces';
|
|
11
|
-
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
12
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
13
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
14
|
-
import { DecimalPipe } from '@angular/common';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/forms";
|
|
17
|
-
import * as i2 from "@angular/material/core";
|
|
18
|
-
import * as i3 from "@angular/material/button";
|
|
19
|
-
import * as i4 from "@angular/material/divider";
|
|
20
|
-
import * as i5 from "@angular/material/icon";
|
|
21
|
-
import * as i6 from "@angular/material/form-field";
|
|
22
|
-
import * as i7 from "@angular/material/input";
|
|
23
|
-
import * as i8 from "@angular/material/progress-spinner";
|
|
24
|
-
import * as i9 from "@angular/material/select";
|
|
25
|
-
export class ProductManageVariantComponent {
|
|
26
|
-
constructor() {
|
|
27
|
-
this.dialog = inject(MatDialog);
|
|
28
|
-
this.variant = model.required();
|
|
29
|
-
this.price = computed(() => {
|
|
30
|
-
return (this.variant().price / 100).toFixed(2);
|
|
31
|
-
});
|
|
32
|
-
this.expanded = false;
|
|
33
|
-
this.upload = output();
|
|
34
|
-
this.variantStatus = ProductInventoryStatus;
|
|
35
|
-
this.enumKeys = Object.keys(this.variantStatus).filter((key) => isNaN(Number(key)));
|
|
36
|
-
}
|
|
37
|
-
onUpload(event) {
|
|
38
|
-
const file = event.target.files[0];
|
|
39
|
-
if (file) {
|
|
40
|
-
const reader = new FileReader();
|
|
41
|
-
const formData = new FormData();
|
|
42
|
-
formData.append('file', file);
|
|
43
|
-
reader.readAsDataURL(file);
|
|
44
|
-
reader.onload = () => {
|
|
45
|
-
const img = new Image();
|
|
46
|
-
img.onload = () => {
|
|
47
|
-
this.variant.update((item) => {
|
|
48
|
-
item.media = item.media ? item.media : [];
|
|
49
|
-
item.media.push({
|
|
50
|
-
url: img.src,
|
|
51
|
-
alt: 'upload image',
|
|
52
|
-
uploading: true,
|
|
53
|
-
});
|
|
54
|
-
return item;
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
|
-
img.src = reader.result;
|
|
58
|
-
this.upload.emit(formData);
|
|
59
|
-
};
|
|
60
|
-
reader.onerror = (error) => { };
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
onMediaClick(i) {
|
|
64
|
-
const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {
|
|
65
|
-
maxWidth: '80vw',
|
|
66
|
-
maxHeight: '80vh',
|
|
67
|
-
height: '80%',
|
|
68
|
-
width: '80%',
|
|
69
|
-
panelClass: 'full-screen-modal',
|
|
70
|
-
data: {
|
|
71
|
-
media: this.variant().media,
|
|
72
|
-
selected: i,
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
dialogRef.afterClosed().subscribe((result) => { });
|
|
76
|
-
}
|
|
77
|
-
statusCompareFn(t1, t2) {
|
|
78
|
-
return t1 === ProductInventoryStatus[t2];
|
|
79
|
-
}
|
|
80
|
-
onStatusChange(event) {
|
|
81
|
-
this.variant.update((item) => {
|
|
82
|
-
item.status = Object.keys(this.variantStatus).find((key) => this.variantStatus[key] === event.value);
|
|
83
|
-
return item;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
onPriceChange(event) {
|
|
87
|
-
const value = event.target.value;
|
|
88
|
-
this.variant.update((currentVariant) => {
|
|
89
|
-
currentVariant.price = value * 100;
|
|
90
|
-
return { ...currentVariant };
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductManageVariantComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProductManageVariantComponent, isStandalone: true, selector: "rolatech-product-manage-variant", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { variant: "variantChange", upload: "upload" }, ngImport: i0, template: "<div class=\"flex items-center h-[72px] cursor-pointer px-2\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n <div>{{ variant().options | options }}</div>\n <div class=\"flex-1\"></div>\n <div class=\"px-3 dense-2\" (click)=\"$event.stopPropagation()\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 </span>\n <input matInput type=\"text\" [value]=\"price()\" (change)=\"onPriceChange($event)\" rolatechDecimal />\n </mat-form-field>\n </div>\n <div class=\"px-3\">\n <mat-form-field class=\"dense-2\" (click)=\"$event.stopPropagation()\" subscriptSizing=\"dynamic\">\n <mat-select\n name=\"type\"\n [compareWith]=\"statusCompareFn\"\n (selectionChange)=\"onStatusChange($event)\"\n [(ngModel)]=\"variant().status\"\n >\n @for (key of enumKeys; track key) {\n <mat-option [value]=\"variantStatus[key]\">\n {{ variantStatus[key] }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"block w-20 text-right\">\n <button mat-icon-button aria-label=\"expand row\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n @if (expanded) {\n <mat-icon>keyboard_arrow_up</mat-icon>\n } @else {\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </div>\n</div>\n<div>\n <div class=\"flex flex-col gap-3 w-full overflow-hidden\" [@detailExpand]=\"expanded ? 'expanded' : 'collapsed'\">\n <div class=\"flex flex-col my-3 md:w-1/2\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 </span>\n <input matInput type=\"number\" [value]=\"price()\" rolatechDecimal />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>\u5E93\u5B58</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"variant().price\" />\n </mat-form-field>\n </div>\n <div class=\"flex flex-col items-start my-3 md:w-1/2\">\n <div class=\"flex flex-wrap\">\n @for (media of variant().media; track $index) {\n <div class=\"media-list-item\">\n <div class=\"inner-media\">\n @defer (on viewport()) {\n <img (click)=\"onMediaClick($index)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n @if (media.uploading) {\n <div class=\"absolute flex items-center justify-center p-4 w-full h-full bg-[--rt-20-percent-layer]\">\n <mat-spinner></mat-spinner>\n <!--\n <svg\n viewBox=\"0 0 24 24\"\n preserveAspectRatio=\"xMidYMid meet\"\n focusable=\"false\"\n class=\"style-scope tp-yt-iron-icon\"\n style=\"pointer-events: none; display: block; width: 100%; height: 100%\"\n >\n <g class=\"style-scope tp-yt-iron-icon\">\n <path\n d=\"M17,18v1H6V18ZM6.49,9l.71.71L11,5.91V16h1V5.91l3.8,3.81L16.51,9l-5-5Z\"\n class=\"style-scope tp-yt-iron-icon\"\n ></path>\n </g>\n </svg>\n <span>Uploading\u2026</span> -->\n </div>\n }\n </div>\n </div>\n }\n <div class=\"media-list-item\">\n <div class=\"inner-media\" (click)=\"fileInput.click()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload($event)\" #fileInput />\n </div>\n </div>\n </div>\n</div>\n<mat-divider></mat-divider>\n", styles: [".media-list-item{cursor:pointer;position:relative;padding:2px}.inner-media{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:4px;border:1px solid grey;position:relative;cursor:pointer;overflow:hidden}mat-form-field{width:160px}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "pipe", type: OptionsFormatPipe, name: "options" }, { kind: "ngmodule", type: MatTableModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: DecimalDirective, selector: "[rolatechDecimal]" }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "ngmodule", type: MatSelectModule }], animations: [
|
|
95
|
-
trigger('detailExpand', [
|
|
96
|
-
state('collapsed', style({ height: '0px' })),
|
|
97
|
-
state('expanded', style({ height: '*' })),
|
|
98
|
-
transition('expanded <=> collapsed', animate('220ms cubic-bezier(0.25, 0.1, 0.25, 1)')),
|
|
99
|
-
]),
|
|
100
|
-
] }); }
|
|
101
|
-
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductManageVariantComponent, decorators: [{
|
|
103
|
-
type: Component,
|
|
104
|
-
args: [{ selector: 'rolatech-product-manage-variant', standalone: true, imports: [
|
|
105
|
-
AngularCommonModule,
|
|
106
|
-
AngularComponentsModule,
|
|
107
|
-
OptionsFormatPipe,
|
|
108
|
-
ProductManageContentComponent,
|
|
109
|
-
ToolbarComponent,
|
|
110
|
-
MatTableModule,
|
|
111
|
-
MatIcon,
|
|
112
|
-
MatFormFieldModule,
|
|
113
|
-
ThumbnailComponent,
|
|
114
|
-
ImageComponent,
|
|
115
|
-
DecimalDirective,
|
|
116
|
-
MatProgressBarModule,
|
|
117
|
-
MatSelectModule,
|
|
118
|
-
DecimalPipe,
|
|
119
|
-
], animations: [
|
|
120
|
-
trigger('detailExpand', [
|
|
121
|
-
state('collapsed', style({ height: '0px' })),
|
|
122
|
-
state('expanded', style({ height: '*' })),
|
|
123
|
-
transition('expanded <=> collapsed', animate('220ms cubic-bezier(0.25, 0.1, 0.25, 1)')),
|
|
124
|
-
]),
|
|
125
|
-
], template: "<div class=\"flex items-center h-[72px] cursor-pointer px-2\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n <div>{{ variant().options | options }}</div>\n <div class=\"flex-1\"></div>\n <div class=\"px-3 dense-2\" (click)=\"$event.stopPropagation()\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 </span>\n <input matInput type=\"text\" [value]=\"price()\" (change)=\"onPriceChange($event)\" rolatechDecimal />\n </mat-form-field>\n </div>\n <div class=\"px-3\">\n <mat-form-field class=\"dense-2\" (click)=\"$event.stopPropagation()\" subscriptSizing=\"dynamic\">\n <mat-select\n name=\"type\"\n [compareWith]=\"statusCompareFn\"\n (selectionChange)=\"onStatusChange($event)\"\n [(ngModel)]=\"variant().status\"\n >\n @for (key of enumKeys; track key) {\n <mat-option [value]=\"variantStatus[key]\">\n {{ variantStatus[key] }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"block w-20 text-right\">\n <button mat-icon-button aria-label=\"expand row\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n @if (expanded) {\n <mat-icon>keyboard_arrow_up</mat-icon>\n } @else {\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </div>\n</div>\n<div>\n <div class=\"flex flex-col gap-3 w-full overflow-hidden\" [@detailExpand]=\"expanded ? 'expanded' : 'collapsed'\">\n <div class=\"flex flex-col my-3 md:w-1/2\">\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\" class=\"h-12\">\n <span matTextPrefix> \u00A5 </span>\n <input matInput type=\"number\" [value]=\"price()\" rolatechDecimal />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>\u5E93\u5B58</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"variant().price\" />\n </mat-form-field>\n </div>\n <div class=\"flex flex-col items-start my-3 md:w-1/2\">\n <div class=\"flex flex-wrap\">\n @for (media of variant().media; track $index) {\n <div class=\"media-list-item\">\n <div class=\"inner-media\">\n @defer (on viewport()) {\n <img (click)=\"onMediaClick($index)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n @if (media.uploading) {\n <div class=\"absolute flex items-center justify-center p-4 w-full h-full bg-[--rt-20-percent-layer]\">\n <mat-spinner></mat-spinner>\n <!--\n <svg\n viewBox=\"0 0 24 24\"\n preserveAspectRatio=\"xMidYMid meet\"\n focusable=\"false\"\n class=\"style-scope tp-yt-iron-icon\"\n style=\"pointer-events: none; display: block; width: 100%; height: 100%\"\n >\n <g class=\"style-scope tp-yt-iron-icon\">\n <path\n d=\"M17,18v1H6V18ZM6.49,9l.71.71L11,5.91V16h1V5.91l3.8,3.81L16.51,9l-5-5Z\"\n class=\"style-scope tp-yt-iron-icon\"\n ></path>\n </g>\n </svg>\n <span>Uploading\u2026</span> -->\n </div>\n }\n </div>\n </div>\n }\n <div class=\"media-list-item\">\n <div class=\"inner-media\" (click)=\"fileInput.click()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload($event)\" #fileInput />\n </div>\n </div>\n </div>\n</div>\n<mat-divider></mat-divider>\n", styles: [".media-list-item{cursor:pointer;position:relative;padding:2px}.inner-media{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:4px;border:1px solid grey;position:relative;cursor:pointer;overflow:hidden}mat-form-field{width:160px}\n"] }]
|
|
126
|
-
}] });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2UtdmFyaWFudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1tYW5hZ2UtdmFyaWFudC9wcm9kdWN0LW1hbmFnZS12YXJpYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW1hbmFnZS12YXJpYW50L3Byb2R1Y3QtbWFuYWdlLXZhcmlhbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxFQUFTLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLDJCQUEyQixHQUM1QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ25JLE9BQU8sRUFBRSxzQkFBc0IsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUErQjlDLE1BQU0sT0FBTyw2QkFBNkI7SUE3QjFDO1FBOEJFLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFDM0MsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsTUFBTSxFQUFZLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxzQkFBc0IsQ0FBQztRQUN2QyxhQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQTBEaEY7SUF4REMsUUFBUSxDQUFDLEtBQVU7UUFDakIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNuQixNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUM3QixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzRCQUNkLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRzs0QkFDWixHQUFHLEVBQUUsY0FBYzs0QkFDbkIsU0FBUyxFQUFFLElBQUk7eUJBQ2hCLENBQUMsQ0FBQzt3QkFDSCxPQUFPLElBQUksQ0FBQztvQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUM7Z0JBQ0YsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFDRCxZQUFZLENBQUMsQ0FBUztRQUNwQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUM5RCxRQUFRLEVBQUUsTUFBTTtZQUNoQixTQUFTLEVBQUUsTUFBTTtZQUNqQixNQUFNLEVBQUUsS0FBSztZQUNiLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixJQUFJLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixRQUFRLEVBQUUsQ0FBQzthQUNaO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELGVBQWUsQ0FBQyxFQUFPLEVBQUUsRUFBTztRQUM5QixPQUFPLEVBQUUsS0FBSyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQXNCO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBRSxDQUFDO1lBQ3RHLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUNyQyxjQUFjLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDbkMsT0FBTyxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQW5FVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2UkNsRDFDLHlvSUE4RkEsd1VEckVJLG1CQUFtQiw4bUJBQ25CLHVCQUF1QixrN0RBQ3ZCLGlCQUFpQiwrQ0FHakIsY0FBYyw4QkFFZCxrQkFBa0IsK0JBR2xCLGdCQUFnQiw2REFDaEIsb0JBQW9CLDhCQUNwQixlQUFlLGlCQUtMO1lBQ1YsT0FBTyxDQUFDLGNBQWMsRUFBRTtnQkFDdEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDNUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO2FBQ3hGLENBQUM7U0FDSDs7MkZBRVUsNkJBQTZCO2tCQTdCekMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FDL0IsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLDZCQUE2Qjt3QkFDN0IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsV0FBVztxQkFDWixjQUdXO3dCQUNWLE9BQU8sQ0FBQyxjQUFjLEVBQUU7NEJBQ3RCLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQzVDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQzt5QkFDeEYsQ0FBQztxQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUsIERlY2ltYWxEaXJlY3RpdmUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHtcbiAgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsXG4gIFRvb2xiYXJDb21wb25lbnQsXG4gIFRodW1ibmFpbENvbXBvbmVudCxcbiAgSW1hZ2VDb21wb25lbnQsXG4gIEltYWdlUHJldmlld0RpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPcHRpb25zRm9ybWF0UGlwZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0TWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BhZ2VzL3Byb2R1Y3QtbWFuYWdlL3Byb2R1Y3QtbWFuYWdlLWNvbnRlbnQvcHJvZHVjdC1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdEludmVudG9yeVN0YXR1cywgUHJvZHVjdFZhcmlhbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgYW5pbWF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSwgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1tYW5hZ2UtdmFyaWFudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBbmd1bGFyQ29tbW9uTW9kdWxlLFxuICAgIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLFxuICAgIE9wdGlvbnNGb3JtYXRQaXBlLFxuICAgIFByb2R1Y3RNYW5hZ2VDb250ZW50Q29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0SWNvbixcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgVGh1bWJuYWlsQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIERlY2ltYWxEaXJlY3RpdmUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIERlY2ltYWxQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2UtdmFyaWFudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LW1hbmFnZS12YXJpYW50LmNvbXBvbmVudC5zY3NzJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcbiAgICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA8PT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMjIwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSknKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNYW5hZ2VWYXJpYW50Q29tcG9uZW50IHtcbiAgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHZhcmlhbnQgPSBtb2RlbC5yZXF1aXJlZDxQcm9kdWN0VmFyaWFudD4oKTtcbiAgcHJpY2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICh0aGlzLnZhcmlhbnQoKS5wcmljZSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgfSk7XG5cbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgdXBsb2FkID0gb3V0cHV0PEZvcm1EYXRhPigpO1xuICB2YXJpYW50U3RhdHVzID0gUHJvZHVjdEludmVudG9yeVN0YXR1cztcbiAgZW51bUtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnZhcmlhbnRTdGF0dXMpLmZpbHRlcigoa2V5KSA9PiBpc05hTihOdW1iZXIoa2V5KSkpO1xuXG4gIG9uVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBpbWc6IGFueSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmFyaWFudC51cGRhdGUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0ubWVkaWEgPSBpdGVtLm1lZGlhID8gaXRlbS5tZWRpYSA6IFtdO1xuICAgICAgICAgICAgaXRlbS5tZWRpYS5wdXNoKHtcbiAgICAgICAgICAgICAgdXJsOiBpbWcuc3JjLFxuICAgICAgICAgICAgICBhbHQ6ICd1cGxvYWQgaW1hZ2UnLFxuICAgICAgICAgICAgICB1cGxvYWRpbmc6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpbWcuc3JjID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgdGhpcy51cGxvYWQuZW1pdChmb3JtRGF0YSk7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHt9O1xuICAgIH1cbiAgfVxuICBvbk1lZGlhQ2xpY2soaTogbnVtYmVyKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIG1heFdpZHRoOiAnODB2dycsXG4gICAgICBtYXhIZWlnaHQ6ICc4MHZoJyxcbiAgICAgIGhlaWdodDogJzgwJScsXG4gICAgICB3aWR0aDogJzgwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZnVsbC1zY3JlZW4tbW9kYWwnLFxuICAgICAgZGF0YToge1xuICAgICAgICBtZWRpYTogdGhpcy52YXJpYW50KCkubWVkaWEsXG4gICAgICAgIHNlbGVjdGVkOiBpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge30pO1xuICB9XG4gIHN0YXR1c0NvbXBhcmVGbih0MTogYW55LCB0MjogYW55KSB7XG4gICAgcmV0dXJuIHQxID09PSBQcm9kdWN0SW52ZW50b3J5U3RhdHVzW3QyXTtcbiAgfVxuICBvblN0YXR1c0NoYW5nZShldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgdGhpcy52YXJpYW50LnVwZGF0ZSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5zdGF0dXMgPSBPYmplY3Qua2V5cyh0aGlzLnZhcmlhbnRTdGF0dXMpLmZpbmQoKGtleSkgPT4gdGhpcy52YXJpYW50U3RhdHVzW2tleV0gPT09IGV2ZW50LnZhbHVlKSE7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgfVxuICBvblByaWNlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnZhcmlhbnQudXBkYXRlKChjdXJyZW50VmFyaWFudCkgPT4ge1xuICAgICAgY3VycmVudFZhcmlhbnQucHJpY2UgPSB2YWx1ZSAqIDEwMDtcbiAgICAgIHJldHVybiB7IC4uLmN1cnJlbnRWYXJpYW50IH07XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBoLVs3MnB4XSBjdXJzb3ItcG9pbnRlciBweC0yXCIgKGNsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgPGRpdj57eyB2YXJpYW50KCkub3B0aW9ucyB8IG9wdGlvbnMgfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHgtMyBkZW5zZS0yXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgY2xhc3M9XCJoLTEyXCI+XG4gICAgICA8c3BhbiBtYXRUZXh0UHJlZml4PiDCpSAmbmJzcDs8L3NwYW4+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwicHJpY2UoKVwiIChjaGFuZ2UpPVwib25QcmljZUNoYW5nZSgkZXZlbnQpXCIgcm9sYXRlY2hEZWNpbWFsIC8+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJweC0zXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZGVuc2UtMlwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICBuYW1lPVwidHlwZVwiXG4gICAgICAgIFtjb21wYXJlV2l0aF09XCJzdGF0dXNDb21wYXJlRm5cIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhcmlhbnQoKS5zdGF0dXNcIlxuICAgICAgPlxuICAgICAgICBAZm9yIChrZXkgb2YgZW51bUtleXM7IHRyYWNrIGtleSkge1xuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ2YXJpYW50U3RhdHVzW2tleV1cIj5cbiAgICAgICAgICAgIHt7IHZhcmlhbnRTdGF0dXNba2V5XSB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYmxvY2sgdy0yMCB0ZXh0LXJpZ2h0XCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cImV4cGFuZCByb3dcIiAoY2xpY2spPVwiZXhwYW5kZWQgPSAhZXhwYW5kZWQ7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgQGlmIChleHBhbmRlZCkge1xuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfdXA8L21hdC1pY29uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHctZnVsbCBvdmVyZmxvdy1oaWRkZW5cIiBbQGRldGFpbEV4cGFuZF09XCJleHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTMgbWQ6dy0xLzJcIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIiBjbGFzcz1cImgtMTJcIj5cbiAgICAgICAgPHNwYW4gbWF0VGV4dFByZWZpeD4gwqUgJm5ic3A7PC9zcGFuPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIFt2YWx1ZV09XCJwcmljZSgpXCIgcm9sYXRlY2hEZWNpbWFsIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWxhYmVsPuW6k+WtmDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInZhcmlhbnQoKS5wcmljZVwiIC8+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0IG15LTMgbWQ6dy0xLzJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcFwiPlxuICAgICAgICBAZm9yIChtZWRpYSBvZiB2YXJpYW50KCkubWVkaWE7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZWRpYS1saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lci1tZWRpYVwiPlxuICAgICAgICAgICAgICBAZGVmZXIgKG9uIHZpZXdwb3J0KCkpIHtcbiAgICAgICAgICAgICAgICA8aW1nIChjbGljayk9XCJvbk1lZGlhQ2xpY2soJGluZGV4KVwiIFtzcmNdPVwibWVkaWEudXJsXCIgW2FsdF09XCJtZWRpYS5hbHRcIiAvPlxuICAgICAgICAgICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAobWVkaWEudXBsb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNCB3LWZ1bGwgaC1mdWxsIGJnLVstLXJ0LTIwLXBlcmNlbnQtbGF5ZXJdXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgIDwhLS1cbiAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0eWxlLXNjb3BlIHRwLXl0LWlyb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9pbnRlci1ldmVudHM6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGcgY2xhc3M9XCJzdHlsZS1zY29wZSB0cC15dC1pcm9uLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNywxOHYxSDZWMThaTTYuNDksOWwuNzEuNzFMMTEsNS45MVYxNmgxVjUuOTFsMy44LDMuODFMMTYuNTEsOWwtNS01WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0eWxlLXNjb3BlIHRwLXl0LWlyb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5VcGxvYWRpbmfigKY8L3NwYW4+IC0tPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyLW1lZGlhXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCI0OHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCI0OHB4XCIgZmlsbD1cIiM1ZjYzNjhcIj5cbiAgICAgICAgICAgICAgPHBhdGggZD1cIk00NDQtNDQ0SDI0MHYtNzJoMjA0di0yMDRoNzJ2MjA0aDIwNHY3Mkg1MTZ2MjA0aC03MnYtMjA0WlwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dCBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIiAjZmlsZUlucHV0IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuIl19
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Component, output } from '@angular/core';
|
|
2
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ProductManageOptionActionComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.delete = output();
|
|
7
|
-
this.save = output();
|
|
8
|
-
}
|
|
9
|
-
onDelete(option) {
|
|
10
|
-
this.delete.emit(option);
|
|
11
|
-
}
|
|
12
|
-
onSave(option) {
|
|
13
|
-
this.save.emit(option);
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductManageOptionActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ProductManageOptionActionComponent, isStandalone: true, selector: "rolatech-product-manage-option-action", outputs: { delete: "delete", save: "save" }, ngImport: i0, template: "<div>\n <!-- <button mat-button color=\"primary\" (click)=\"onDelete(item)\">\u5220\u9664</button>\n <button mat-button color=\"primary\" (click)=\"onSave(item)\">\u4FDD\u5B58</button> -->\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }] }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductManageOptionActionComponent, decorators: [{
|
|
19
|
-
type: Component,
|
|
20
|
-
args: [{ selector: 'rolatech-product-manage-option-action', standalone: true, imports: [MatButtonModule], template: "<div>\n <!-- <button mat-button color=\"primary\" (click)=\"onDelete(item)\">\u5220\u9664</button>\n <button mat-button color=\"primary\" (click)=\"onSave(item)\">\u4FDD\u5B58</button> -->\n</div>\n" }]
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1tYW5nZS1vcHRpb24tYWN0aW9uL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9jb21wb25lbnRzL3Byb2R1Y3QtbWFuZ2Utb3B0aW9uLWFjdGlvbi9wcm9kdWN0LW1hbmFnZS1vcHRpb24tYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFVM0QsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQVFFLFdBQU0sR0FBRyxNQUFNLEVBQWlCLENBQUM7UUFDakMsU0FBSSxHQUFHLE1BQU0sRUFBaUIsQ0FBQztLQVFoQztJQU5DLFFBQVEsQ0FBQyxNQUFxQjtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQXFCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBVFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsOElDWC9DLDBNQUlBLHlEREdZLGVBQWU7OzJGQUlkLGtDQUFrQztrQkFQOUMsU0FBUzsrQkFDRSx1Q0FBdUMsY0FDckMsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBQcm9kdWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLW9wdGlvbi1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1tYW5hZ2Utb3B0aW9uLWFjdGlvbi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNYW5hZ2VPcHRpb25BY3Rpb25Db21wb25lbnQge1xuICBkZWxldGUgPSBvdXRwdXQ8UHJvZHVjdE9wdGlvbj4oKTtcbiAgc2F2ZSA9IG91dHB1dDxQcm9kdWN0T3B0aW9uPigpO1xuXG4gIG9uRGVsZXRlKG9wdGlvbjogUHJvZHVjdE9wdGlvbikge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQob3B0aW9uKTtcbiAgfVxuICBvblNhdmUob3B0aW9uOiBQcm9kdWN0T3B0aW9uKSB7XG4gICAgdGhpcy5zYXZlLmVtaXQob3B0aW9uKTtcbiAgfVxufVxuIiwiPGRpdj5cbiAgPCEtLSA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9uRGVsZXRlKGl0ZW0pXCI+5Yig6ZmkPC9idXR0b24+XG4gIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib25TYXZlKGl0ZW0pXCI+5L+d5a2YPC9idXR0b24+IC0tPlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/components/product-mange-section-item/product-mange-section-item.component.mjs
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Component, input, output } from '@angular/core';
|
|
2
|
-
import { NgClass } from '@angular/common';
|
|
3
|
-
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
-
import { MatDividerModule } from '@angular/material/divider';
|
|
7
|
-
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
8
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
9
|
-
import { MatInputModule } from '@angular/material/input';
|
|
10
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
11
|
-
import { first } from 'lodash';
|
|
12
|
-
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
13
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "@angular/material/form-field";
|
|
16
|
-
import * as i2 from "@angular/material/input";
|
|
17
|
-
import * as i3 from "@angular/cdk/text-field";
|
|
18
|
-
import * as i4 from "@angular/forms";
|
|
19
|
-
import * as i5 from "@angular/material/button";
|
|
20
|
-
import * as i6 from "@angular/material/icon";
|
|
21
|
-
import * as i7 from "@angular/material/menu";
|
|
22
|
-
import * as i8 from "@angular/material/progress-bar";
|
|
23
|
-
import * as i9 from "@angular/material/divider";
|
|
24
|
-
export class ProductManageSectionItemComponent {
|
|
25
|
-
constructor() {
|
|
26
|
-
this.isUploading = input();
|
|
27
|
-
this.section = input.required();
|
|
28
|
-
this.actions = input(false);
|
|
29
|
-
this.selectMedia = input();
|
|
30
|
-
this.upload = output();
|
|
31
|
-
this.delete = output();
|
|
32
|
-
this.save = output();
|
|
33
|
-
this.deleteMedia = output();
|
|
34
|
-
this.expanded = false;
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
this.selectedImg = this.section().media ? this.section().media[0] : null;
|
|
38
|
-
}
|
|
39
|
-
onUpload(data) {
|
|
40
|
-
this.upload.emit({ section: this.section(), data });
|
|
41
|
-
}
|
|
42
|
-
onMediaItemClick(image) {
|
|
43
|
-
this.selectedImg = image;
|
|
44
|
-
}
|
|
45
|
-
select(item) {
|
|
46
|
-
this.selectedImg = item;
|
|
47
|
-
}
|
|
48
|
-
deleteImage() { }
|
|
49
|
-
onSave(section) {
|
|
50
|
-
this.save.emit(section);
|
|
51
|
-
}
|
|
52
|
-
onDelete(section) {
|
|
53
|
-
this.delete.emit(section);
|
|
54
|
-
}
|
|
55
|
-
onDeleteMedia(media) {
|
|
56
|
-
this.deleteMedia.emit({ section: this.section(), media });
|
|
57
|
-
this.selectedImg = this.section().media ? first(this.section().media) : null;
|
|
58
|
-
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductManageSectionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProductManageSectionItemComponent, isStandalone: true, selector: "rolatech-product-manage-section-item", inputs: { isUploading: { classPropertyName: "isUploading", publicName: "isUploading", isSignal: true, isRequired: false, transformFunction: null }, section: { classPropertyName: "section", publicName: "section", isSignal: true, isRequired: true, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, selectMedia: { classPropertyName: "selectMedia", publicName: "selectMedia", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { upload: "upload", delete: "delete", save: "save", deleteMedia: "deleteMedia" }, ngImport: i0, template: "<div class=\"px-3\">\n <div\n class=\"h-14 py-3 flex items-center justify-between cursor-pointer\"\n (click)=\"expanded = !expanded; $event.stopPropagation()\"\n >\n <div class=\"flex\">\n <div class=\"w-32 line-clamp-1\">{{ section().title }}</div>\n <div class=\"line-clamp-1\">{{ section().description }}</div>\n </div>\n <div>\n <button mat-icon-button aria-label=\"expand row\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n @if (expanded) {\n <mat-icon>keyboard_arrow_up</mat-icon>\n } @else {\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 w-full overflow-hidden\" [@detailExpand]=\"expanded ? 'expanded' : 'collapsed'\">\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"flex flex-col grow\">\n <mat-form-field appearance=\"fill\">\n <mat-label>\u6807\u9898</mat-label>\n <input matInput placeholder=\"\u6807\u9898\" [(ngModel)]=\"section().title\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>\u63CF\u8FF0</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"\u63CF\u8FF0\"\n [(ngModel)]=\"section().description\"\n ></textarea>\n </mat-form-field>\n </div>\n <!-- media -->\n <div class=\"lg:basis-1/2 px-0 lg:px-3\">\n @if (selectedImg) {\n <div class=\"flex flex-row justify-center relative aspect-video\">\n <img class=\"object-contain w-full\" [src]=\"selectedImg.url\" [alt]=\"selectedImg.alt\" />\n <div class=\"absolute z-30 right-0\">\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"beforeMenu\"\n class=\"ml-auto focus:outline-none hover:bg-[--rt-base-background] p-1\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"onDeleteMedia(selectedImg)\">\n <span>\u5220\u9664</span>\n </button>\n </mat-menu>\n </div>\n </div>\n }\n\n <!-- media -->\n <div>\n <div class=\"flex flex-row flex-wrap cursor-pointer relative box-border\" fxLayout=\"row\">\n <div class=\"progress-bar\">\n @if (section().isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n @for (media of section().media; track media) {\n <div class=\"media-list-item\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n }\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload($event)\" #fileInput />\n <div class=\"add-button\">\n <div (click)=\"fileInput.click()\" class=\"tile-media flex justify-center items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button class=\"max-h-8\" (click)=\"onDelete(section())\">\u5220\u9664</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(section())\">\u4FDD\u5B58</button>\n </div>\n }\n </div>\n</div>\n\n<mat-divider></mat-divider>\n", styles: [".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:64px;width:64px;object-fit:contain;cursor:pointer;border:1px solid grey;position:relative;box-sizing:border-box;border-radius:8px}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], animations: [
|
|
61
|
-
trigger('detailExpand', [
|
|
62
|
-
state('collapsed', style({ height: '0px' })),
|
|
63
|
-
state('expanded', style({ height: '*' })),
|
|
64
|
-
transition('expanded <=> collapsed', animate('400ms cubic-bezier(0.25, 0.1, 0.25, 1)')),
|
|
65
|
-
]),
|
|
66
|
-
] }); }
|
|
67
|
-
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductManageSectionItemComponent, decorators: [{
|
|
69
|
-
type: Component,
|
|
70
|
-
args: [{ selector: 'rolatech-product-manage-section-item', standalone: true, imports: [
|
|
71
|
-
NgClass,
|
|
72
|
-
MatFormFieldModule,
|
|
73
|
-
MatInputModule,
|
|
74
|
-
FormsModule,
|
|
75
|
-
TextFieldModule,
|
|
76
|
-
MatButtonModule,
|
|
77
|
-
MatIconModule,
|
|
78
|
-
MatMenuModule,
|
|
79
|
-
MatProgressBarModule,
|
|
80
|
-
MatDividerModule,
|
|
81
|
-
], animations: [
|
|
82
|
-
trigger('detailExpand', [
|
|
83
|
-
state('collapsed', style({ height: '0px' })),
|
|
84
|
-
state('expanded', style({ height: '*' })),
|
|
85
|
-
transition('expanded <=> collapsed', animate('400ms cubic-bezier(0.25, 0.1, 0.25, 1)')),
|
|
86
|
-
]),
|
|
87
|
-
], template: "<div class=\"px-3\">\n <div\n class=\"h-14 py-3 flex items-center justify-between cursor-pointer\"\n (click)=\"expanded = !expanded; $event.stopPropagation()\"\n >\n <div class=\"flex\">\n <div class=\"w-32 line-clamp-1\">{{ section().title }}</div>\n <div class=\"line-clamp-1\">{{ section().description }}</div>\n </div>\n <div>\n <button mat-icon-button aria-label=\"expand row\" (click)=\"expanded = !expanded; $event.stopPropagation()\">\n @if (expanded) {\n <mat-icon>keyboard_arrow_up</mat-icon>\n } @else {\n <mat-icon>keyboard_arrow_down</mat-icon>\n }\n </button>\n </div>\n </div>\n <div class=\"flex flex-col gap-3 w-full overflow-hidden\" [@detailExpand]=\"expanded ? 'expanded' : 'collapsed'\">\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"flex flex-col grow\">\n <mat-form-field appearance=\"fill\">\n <mat-label>\u6807\u9898</mat-label>\n <input matInput placeholder=\"\u6807\u9898\" [(ngModel)]=\"section().title\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label>\u63CF\u8FF0</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"\u63CF\u8FF0\"\n [(ngModel)]=\"section().description\"\n ></textarea>\n </mat-form-field>\n </div>\n <!-- media -->\n <div class=\"lg:basis-1/2 px-0 lg:px-3\">\n @if (selectedImg) {\n <div class=\"flex flex-row justify-center relative aspect-video\">\n <img class=\"object-contain w-full\" [src]=\"selectedImg.url\" [alt]=\"selectedImg.alt\" />\n <div class=\"absolute z-30 right-0\">\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"beforeMenu\"\n class=\"ml-auto focus:outline-none hover:bg-[--rt-base-background] p-1\"\n >\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"onDeleteMedia(selectedImg)\">\n <span>\u5220\u9664</span>\n </button>\n </mat-menu>\n </div>\n </div>\n }\n\n <!-- media -->\n <div>\n <div class=\"flex flex-row flex-wrap cursor-pointer relative box-border\" fxLayout=\"row\">\n <div class=\"progress-bar\">\n @if (section().isUploading) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n @for (media of section().media; track media) {\n <div class=\"media-list-item\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media.url\" [alt]=\"media.alt\" />\n </div>\n }\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload($event)\" #fileInput />\n <div class=\"add-button\">\n <div (click)=\"fileInput.click()\" class=\"tile-media flex justify-center items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"48px\" viewBox=\"0 -960 960 960\" width=\"48px\" fill=\"#5f6368\">\n <path d=\"M444-444H240v-72h204v-204h72v204h204v72H516v204h-72v-204Z\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n @if (actions()) {\n <div class=\"flex flex-row justify-end p-3 gap-3\">\n <button mat-button class=\"max-h-8\" (click)=\"onDelete(section())\">\u5220\u9664</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(section())\">\u4FDD\u5B58</button>\n </div>\n }\n </div>\n</div>\n\n<mat-divider></mat-divider>\n", styles: [".media-list{flex-wrap:wrap;box-sizing:border-box}.progress-bar{display:block;min-height:6px;width:100%}.media-list-item{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}.tile-media{height:64px;width:64px;object-fit:contain;cursor:pointer;border:1px solid grey;position:relative;box-sizing:border-box;border-radius:8px}.add-button{cursor:pointer;position:relative;box-sizing:border-box;padding:2px}\n"] }]
|
|
88
|
-
}], ctorParameters: () => [] });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tYW5nZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9jb21wb25lbnRzL3Byb2R1Y3QtbWFuZ2Utc2VjdGlvbi1pdGVtL3Byb2R1Y3QtbWFuZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW1hbmdlLXNlY3Rpb24taXRlbS9wcm9kdWN0LW1hbmFnZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFL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UCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3FCQUNqQixjQUdXO3dCQUNWLE9BQU8sQ0FBQyxjQUFjLEVBQUU7NEJBQ3RCLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQzVDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsd0NBQXdDLENBQUMsQ0FBQzt5QkFDeEYsQ0FBQztxQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0U2VjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdHJpZ2dlciwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCBhbmltYXRlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3QtbWFuYWdlLXNlY3Rpb24taXRlbScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1tYW5hZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtbWFuYWdlLXNlY3Rpb24taXRlbS5jb21wb25lbnQuc2NzcycsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkZXRhaWxFeHBhbmQnLCBbXG4gICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnIH0pKSxcbiAgICAgIHN0YXRlKCdleHBhbmRlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicgfSkpLFxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpJykpLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TWFuYWdlU2VjdGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc1VwbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHNlY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9kdWN0U2VjdGlvbj4oKTtcbiAgYWN0aW9ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2VsZWN0TWVkaWEgPSBpbnB1dDxhbnk+KCk7XG4gIHVwbG9hZCA9IG91dHB1dDx7IHNlY3Rpb246IFByb2R1Y3RTZWN0aW9uOyBkYXRhOiBGb3JtRGF0YSB8IG51bGwgfT4oKTtcbiAgZGVsZXRlID0gb3V0cHV0PFByb2R1Y3RTZWN0aW9uPigpO1xuICBzYXZlID0gb3V0cHV0PFByb2R1Y3RTZWN0aW9uPigpO1xuICBkZWxldGVNZWRpYSA9IG91dHB1dDx7IHNlY3Rpb246IFByb2R1Y3RTZWN0aW9uOyBtZWRpYTogTWVkaWEgfT4oKTtcbiAgc2VsZWN0ZWRJbWchOiBNZWRpYSB8IGFueTtcbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSB0aGlzLnNlY3Rpb24oKS5tZWRpYSA/IHRoaXMuc2VjdGlvbigpLm1lZGlhWzBdIDogbnVsbDtcbiAgfVxuICBvblVwbG9hZChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnVwbG9hZC5lbWl0KHsgc2VjdGlvbjogdGhpcy5zZWN0aW9uKCksIGRhdGEgfSk7XG4gIH1cbiAgb25NZWRpYUl0ZW1DbGljayhpbWFnZTogTWVkaWEpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW1nID0gaW1hZ2U7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEltZyA9IGl0ZW07XG4gIH1cbiAgZGVsZXRlSW1hZ2UoKSB7fVxuICBvblNhdmUoc2VjdGlvbjogUHJvZHVjdFNlY3Rpb24pIHtcbiAgICB0aGlzLnNhdmUuZW1pdChzZWN0aW9uKTtcbiAgfVxuICBvbkRlbGV0ZShzZWN0aW9uOiBQcm9kdWN0U2VjdGlvbikge1xuICAgIHRoaXMuZGVsZXRlLmVtaXQoc2VjdGlvbik7XG4gIH1cbiAgb25EZWxldGVNZWRpYShtZWRpYTogTWVkaWEpIHtcbiAgICB0aGlzLmRlbGV0ZU1lZGlhLmVtaXQoeyBzZWN0aW9uOiB0aGlzLnNlY3Rpb24oKSwgbWVkaWEgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEltZyA9IHRoaXMuc2VjdGlvbigpLm1lZGlhID8gZmlyc3QodGhpcy5zZWN0aW9uKCkubWVkaWEpIDogbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB4LTNcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaC0xNCBweS0zIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBjdXJzb3ItcG9pbnRlclwiXG4gICAgKGNsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTMyIGxpbmUtY2xhbXAtMVwiPnt7IHNlY3Rpb24oKS50aXRsZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpbmUtY2xhbXAtMVwiPnt7IHNlY3Rpb24oKS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiZXhwYW5kIHJvd1wiIChjbGljayk9XCJleHBhbmRlZCA9ICFleHBhbmRlZDsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIEBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfdXA8L21hdC1pY29uPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICAgIH1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTMgdy1mdWxsIG92ZXJmbG93LWhpZGRlblwiIFtAZGV0YWlsRXhwYW5kXT1cImV4cGFuZGVkID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbGc6ZmxleC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdyb3dcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD7moIfpopg8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCLmoIfpophcIiBbKG5nTW9kZWwpXT1cInNlY3Rpb24oKS50aXRsZVwiIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+5o+P6L+wPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuaPj+i/sFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlY3Rpb24oKS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gbWVkaWEgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibGc6YmFzaXMtMS8yIHB4LTAgbGc6cHgtM1wiPlxuICAgICAgICBAaWYgKHNlbGVjdGVkSW1nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jZW50ZXIgcmVsYXRpdmUgYXNwZWN0LXZpZGVvXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwib2JqZWN0LWNvbnRhaW4gdy1mdWxsXCIgW3NyY109XCJzZWxlY3RlZEltZy51cmxcIiBbYWx0XT1cInNlbGVjdGVkSW1nLmFsdFwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgei0zMCByaWdodC0wXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvIGZvY3VzOm91dGxpbmUtbm9uZSBob3ZlcjpiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHAtMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxtYXQtbWVudSAjYmVmb3JlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRGVsZXRlTWVkaWEoc2VsZWN0ZWRJbWcpXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj7liKDpmaQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gbWVkaWEgLS0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC13cmFwIGN1cnNvci1wb2ludGVyIHJlbGF0aXZlIGJveC1ib3JkZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhclwiPlxuICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24oKS5pc1VwbG9hZGluZykge1xuICAgICAgICAgICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBmb3IgKG1lZGlhIG9mIHNlY3Rpb24oKS5tZWRpYTsgdHJhY2sgbWVkaWEpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLWxpc3QtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ0aWxlLW1lZGlhXCIgKGNsaWNrKT1cIm9uTWVkaWFJdGVtQ2xpY2sobWVkaWEpXCIgW3NyY109XCJtZWRpYS51cmxcIiBbYWx0XT1cIm1lZGlhLmFsdFwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGlucHV0IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIChjaGFuZ2UpPVwib25VcGxvYWQoJGV2ZW50KVwiICNmaWxlSW5wdXQgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgY2xhc3M9XCJ0aWxlLW1lZGlhIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiNDhweFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiNDhweFwiIGZpbGw9XCIjNWY2MzY4XCI+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQ0NC00NDRIMjQwdi03MmgyMDR2LTIwNGg3MnYyMDRoMjA0djcySDUxNnYyMDRoLTcydi0yMDRaXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKGFjdGlvbnMoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1lbmQgcC0zIGdhcC0zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwib25EZWxldGUoc2VjdGlvbigpKVwiPuWIoOmZpDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cIm1heC1oLThcIiAoY2xpY2spPVwib25TYXZlKHNlY3Rpb24oKSlcIj7kv53lrZg8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Component, inject, input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { NgClass } from '@angular/common';
|
|
3
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
4
|
-
import { ImagePreviewDialogComponent, ThumbnailComponent } from '@rolatech/angular-components';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ProductMediaComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.dialog = inject(MatDialog);
|
|
9
|
-
this.media = input([]);
|
|
10
|
-
this.min = input(false);
|
|
11
|
-
this.mediaIndex = 0;
|
|
12
|
-
}
|
|
13
|
-
onImageClick(i) {
|
|
14
|
-
const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {
|
|
15
|
-
maxWidth: '80vw',
|
|
16
|
-
maxHeight: '80vh',
|
|
17
|
-
height: '80%',
|
|
18
|
-
width: '80%',
|
|
19
|
-
panelClass: 'full-screen-modal',
|
|
20
|
-
data: {
|
|
21
|
-
media: this.media,
|
|
22
|
-
selected: i,
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
dialogRef.afterClosed().subscribe((result) => { });
|
|
26
|
-
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProductMediaComponent, isStandalone: true, selector: "rolatech-product-media", inputs: { media: { classPropertyName: "media", publicName: "media", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (media()) {\n <div>\n <div class=\"object-cover aspect-video bg-[--rt-raised-background]\">\n <rolatech-thumbnail [src]=\"media()[mediaIndex].url\" size=\"small\" mode=\"full\"></rolatech-thumbnail>\n </div>\n @for (media of media(); track media; let index = $index) {\n <div\n class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer w-28 p-2 bg-[--rt-10-percent-layer]\"\n (click)=\"mediaIndex = index\"\n [ngClass]=\"mediaIndex === index ? 'border border-black' : 'opacity-70'\"\n >\n <rolatech-thumbnail [src]=\"media.url\" mode=\"full\"></rolatech-thumbnail>\n </div>\n }\n </div>\n}\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductMediaComponent, decorators: [{
|
|
31
|
-
type: Component,
|
|
32
|
-
args: [{ selector: 'rolatech-product-media', standalone: true, imports: [NgClass, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: "@if (media()) {\n <div>\n <div class=\"object-cover aspect-video bg-[--rt-raised-background]\">\n <rolatech-thumbnail [src]=\"media()[mediaIndex].url\" size=\"small\" mode=\"full\"></rolatech-thumbnail>\n </div>\n @for (media of media(); track media; let index = $index) {\n <div\n class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer w-28 p-2 bg-[--rt-10-percent-layer]\"\n (click)=\"mediaIndex = index\"\n [ngClass]=\"mediaIndex === index ? 'border border-black' : 'opacity-70'\"\n >\n <rolatech-thumbnail [src]=\"media.url\" mode=\"full\"></rolatech-thumbnail>\n </div>\n }\n </div>\n}\n" }]
|
|
33
|
-
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tZWRpYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1tZWRpYS9wcm9kdWN0LW1lZGlhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW1lZGlhL3Byb2R1Y3QtbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBVS9GLE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTRSxXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLFVBQUssR0FBRyxLQUFLLENBQVUsRUFBRSxDQUFDLENBQUM7UUFDM0IsUUFBRyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsQ0FBQyxDQUFDO0tBZWhCO0lBZEMsWUFBWSxDQUFDLENBQU07UUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDOUQsUUFBUSxFQUFFLE1BQU07WUFDaEIsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTSxFQUFFLEtBQUs7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLENBQUM7YUFDWjtTQUNGLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBbEJVLHFCQUFxQjtrR0FBckIscUJBQXFCLHdVQ2RsQywrb0JBZ0JBLDBERFBZLE9BQU8sb0ZBQUUsa0JBQWtCOzsyRkFLMUIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsaUJBR3ZCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsIFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1wcm9kdWN0LW1lZGlhJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIFRodW1ibmFpbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LW1lZGlhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtbWVkaWEuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TWVkaWFDb21wb25lbnQge1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgbWVkaWEgPSBpbnB1dDxNZWRpYVtdPihbXSk7XG4gIG1pbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgbWVkaWFJbmRleCA9IDA7XG4gIG9uSW1hZ2VDbGljayhpOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEltYWdlUHJldmlld0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgbWF4V2lkdGg6ICc4MHZ3JyxcbiAgICAgIG1heEhlaWdodDogJzgwdmgnLFxuICAgICAgaGVpZ2h0OiAnODAlJyxcbiAgICAgIHdpZHRoOiAnODAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdmdWxsLXNjcmVlbi1tb2RhbCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG1lZGlhOiB0aGlzLm1lZGlhLFxuICAgICAgICBzZWxlY3RlZDogaSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHt9KTtcbiAgfVxufVxuIiwiQGlmIChtZWRpYSgpKSB7XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cIm9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdXCI+XG4gICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwibWVkaWEoKVttZWRpYUluZGV4XS51cmxcIiBzaXplPVwic21hbGxcIiBtb2RlPVwiZnVsbFwiPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgIDwvZGl2PlxuICAgIEBmb3IgKG1lZGlhIG9mIG1lZGlhKCk7IHRyYWNrIG1lZGlhOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBmbGV4LXJvdyBtdC0zIG1yLTMgY3Vyc29yLXBvaW50ZXIgdy0yOCBwLTIgYmctWy0tcnQtMTAtcGVyY2VudC1sYXllcl1cIlxuICAgICAgICAoY2xpY2spPVwibWVkaWFJbmRleCA9IGluZGV4XCJcbiAgICAgICAgW25nQ2xhc3NdPVwibWVkaWFJbmRleCA9PT0gaW5kZXggPyAnYm9yZGVyIGJvcmRlci1ibGFjaycgOiAnb3BhY2l0eS03MCdcIlxuICAgICAgPlxuICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsIFtzcmNdPVwibWVkaWEudXJsXCIgbW9kZT1cImZ1bGxcIj48L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Component, input, model, output } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class ProductOptionComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.option = input.required();
|
|
8
|
-
this.change = output();
|
|
9
|
-
this.selected = model();
|
|
10
|
-
this.value = model();
|
|
11
|
-
}
|
|
12
|
-
onChange(value) {
|
|
13
|
-
this.value.set(value);
|
|
14
|
-
this.change.emit({ option: this.option(), value: value });
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProductOptionComponent, isStandalone: true, selector: "rolatech-product-option", inputs: { option: { classPropertyName: "option", publicName: "option", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", selected: "selectedChange", value: "valueChange" }, ngImport: i0, template: "<div class=\"mb-3\">\n <div class=\"text-xl font-bold py-3\">{{ option().name }}</div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of option().values; track $index) {\n <div\n class=\"w-24 h-12 border border-[--rt-border-color] rounded flex justify-center items-center hover:text-[--rt-text-primary-inverse] hover:bg-[--rt-base-background-inverse] cursor-pointer\"\n (click)=\"onChange(item)\"\n [ngClass]=\"value()?.id === item.id ? 'bg-[--rt-base-background-inverse] text-[--rt-text-primary-inverse]' : ''\"\n >\n {{ item.name }}\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductOptionComponent, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{ selector: 'rolatech-product-option', standalone: true, imports: [CommonModule], template: "<div class=\"mb-3\">\n <div class=\"text-xl font-bold py-3\">{{ option().name }}</div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of option().values; track $index) {\n <div\n class=\"w-24 h-12 border border-[--rt-border-color] rounded flex justify-center items-center hover:text-[--rt-text-primary-inverse] hover:bg-[--rt-base-background-inverse] cursor-pointer\"\n (click)=\"onChange(item)\"\n [ngClass]=\"value()?.id === item.id ? 'bg-[--rt-base-background-inverse] text-[--rt-text-primary-inverse]' : ''\"\n >\n {{ item.name }}\n </div>\n }\n </div>\n</div>\n" }]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXByb2R1Y3Qvc3JjL2xpYi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9uL3Byb2R1Y3Qtb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW9wdGlvbi9wcm9kdWN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBVS9DLE1BQU0sT0FBTyxzQkFBc0I7SUFQbkM7UUFRRSxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBaUIsQ0FBQztRQUN6QyxXQUFNLEdBQUcsTUFBTSxFQUF3RCxDQUFDO1FBQ3hFLGFBQVEsR0FBRyxLQUFLLEVBQWlCLENBQUM7UUFDbEMsVUFBSyxHQUFHLEtBQUssRUFBc0IsQ0FBQztLQU1yQztJQUpDLFFBQVEsQ0FBQyxLQUF5QjtRQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs4R0FUVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixtaUJDWG5DLGluQkFjQSx5RERQWSxZQUFZOzsyRkFJWCxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0T3B0aW9uLCBQcm9kdWN0T3B0aW9uVmFsdWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1vcHRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3Qtb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3Qtb3B0aW9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdE9wdGlvbkNvbXBvbmVudCB7XG4gIG9wdGlvbiA9IGlucHV0LnJlcXVpcmVkPFByb2R1Y3RPcHRpb24+KCk7XG4gIGNoYW5nZSA9IG91dHB1dDx7IG9wdGlvbjogUHJvZHVjdE9wdGlvbjsgdmFsdWU6IFByb2R1Y3RPcHRpb25WYWx1ZSB9PigpO1xuICBzZWxlY3RlZCA9IG1vZGVsPFByb2R1Y3RPcHRpb24+KCk7XG4gIHZhbHVlID0gbW9kZWw8UHJvZHVjdE9wdGlvblZhbHVlPigpO1xuXG4gIG9uQ2hhbmdlKHZhbHVlOiBQcm9kdWN0T3B0aW9uVmFsdWUpIHtcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh7IG9wdGlvbjogdGhpcy5vcHRpb24oKSwgdmFsdWU6IHZhbHVlIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWItM1wiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC14bCBmb250LWJvbGQgcHktM1wiPnt7IG9wdGlvbigpLm5hbWUgfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0zXCI+XG4gICAgQGZvciAoaXRlbSBvZiBvcHRpb24oKS52YWx1ZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInctMjQgaC0xMiBib3JkZXIgYm9yZGVyLVstLXJ0LWJvcmRlci1jb2xvcl0gcm91bmRlZCBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBob3Zlcjp0ZXh0LVstLXJ0LXRleHQtcHJpbWFyeS1pbnZlcnNlXSBob3ZlcjpiZy1bLS1ydC1iYXNlLWJhY2tncm91bmQtaW52ZXJzZV0gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAoY2xpY2spPVwib25DaGFuZ2UoaXRlbSlcIlxuICAgICAgICBbbmdDbGFzc109XCJ2YWx1ZSgpPy5pZCA9PT0gaXRlbS5pZCA/ICdiZy1bLS1ydC1iYXNlLWJhY2tncm91bmQtaW52ZXJzZV0gdGV4dC1bLS1ydC10ZXh0LXByaW1hcnktaW52ZXJzZV0nIDogJydcIlxuICAgICAgPlxuICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Component, input } from '@angular/core';
|
|
2
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
3
|
-
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
import * as i2 from "@angular/material/icon";
|
|
7
|
-
export class ProductOwnerRendererComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.name = input();
|
|
10
|
-
this.avatar = input();
|
|
11
|
-
this.username = input();
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductOwnerRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProductOwnerRendererComponent, isStandalone: true, selector: "rolatech-product-owner-renderer", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: "avatar", publicName: "avatar", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-row items-center py-3\">\n <div class=\"flex mr-3 gap-2 items-center\">\n @if (avatar()) {\n <div class=\"cursor-pointer\" [routerLink]=\"['/', '@' + username()]\">\n <img [src]=\"avatar()\" class=\"w-11 h-11 rounded-full\" />\n </div>\n } @else {\n <div class=\"w-11 h-11 rounded-full bg-[--rt-brand-color]\"></div>\n }\n <div class=\"flex items-center text-lg font-bold cursor-pointer\">\n <a [routerLink]=\"['/', '@' + username()]\">\n <span>{{ name() }}</span>\n </a>\n <mat-icon color=\"primary\">verified</mat-icon>\n </div>\n </div>\n</div>\n", styles: ["mat-icon{transform:scale(.8)}\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: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductOwnerRendererComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'rolatech-product-owner-renderer', standalone: true, imports: [AngularCommonModule, MatIconModule], template: "<div class=\"flex flex-row items-center py-3\">\n <div class=\"flex mr-3 gap-2 items-center\">\n @if (avatar()) {\n <div class=\"cursor-pointer\" [routerLink]=\"['/', '@' + username()]\">\n <img [src]=\"avatar()\" class=\"w-11 h-11 rounded-full\" />\n </div>\n } @else {\n <div class=\"w-11 h-11 rounded-full bg-[--rt-brand-color]\"></div>\n }\n <div class=\"flex items-center text-lg font-bold cursor-pointer\">\n <a [routerLink]=\"['/', '@' + username()]\">\n <span>{{ name() }}</span>\n </a>\n <mat-icon color=\"primary\">verified</mat-icon>\n </div>\n </div>\n</div>\n", styles: ["mat-icon{transform:scale(.8)}\n"] }]
|
|
19
|
-
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1vd25lci1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2NvbXBvbmVudHMvcHJvZHVjdC1vd25lci1yZW5kZXJlci9wcm9kdWN0LW93bmVyLXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LW93bmVyLXJlbmRlcmVyL3Byb2R1Y3Qtb3duZXItcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBUy9ELE1BQU0sT0FBTyw2QkFBNkI7SUFQMUM7UUFRRSxTQUFJLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdkIsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztLQUM1Qjs4R0FKWSw2QkFBNkI7a0dBQTdCLDZCQUE2Qix3ZENYMUMsMm5CQWlCQSx3RkRWWSxtQkFBbUIsK1FBQUUsYUFBYTs7MkZBSWpDLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FDL0IsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLXByb2R1Y3Qtb3duZXItcmVuZGVyZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LW93bmVyLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3Qtb3duZXItcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0T3duZXJSZW5kZXJlckNvbXBvbmVudCB7XG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGF2YXRhciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlcm5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgcHktM1wiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBtci0zIGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgIEBpZiAoYXZhdGFyKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtyb3V0ZXJMaW5rXT1cIlsnLycsICdAJyArIHVzZXJuYW1lKCldXCI+XG4gICAgICAgIDxpbWcgW3NyY109XCJhdmF0YXIoKVwiIGNsYXNzPVwidy0xMSBoLTExIHJvdW5kZWQtZnVsbFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTExIGgtMTEgcm91bmRlZC1mdWxsIGJnLVstLXJ0LWJyYW5kLWNvbG9yXVwiPjwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1sZyBmb250LWJvbGQgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLycsICdAJyArIHVzZXJuYW1lKCldXCI+XG4gICAgICAgIDxzcGFuPnt7IG5hbWUoKSB9fTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj52ZXJpZmllZDwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Component, computed, input, output, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
-
import { MatIcon } from '@angular/material/icon';
|
|
5
|
-
import { MatDivider } from '@angular/material/divider';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/button";
|
|
8
|
-
export class ProductPricingComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.product = input.required();
|
|
11
|
-
// price = computed(() => {
|
|
12
|
-
// return (this.product().price / 100).toFixed(2);
|
|
13
|
-
// });
|
|
14
|
-
this.price = input.required();
|
|
15
|
-
this.displayPrice = computed(() => {
|
|
16
|
-
return (this.price() / 100).toFixed(2);
|
|
17
|
-
});
|
|
18
|
-
this.wish = output();
|
|
19
|
-
this.inWishList = input(false);
|
|
20
|
-
}
|
|
21
|
-
onWish(product) {
|
|
22
|
-
this.wish.emit(product);
|
|
23
|
-
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductPricingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProductPricingComponent, isStandalone: true, selector: "rolatech-product-pricing", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null }, price: { classPropertyName: "price", publicName: "price", isSignal: true, isRequired: true, transformFunction: null }, inWishList: { classPropertyName: "inWishList", publicName: "inWishList", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { wish: "wish" }, ngImport: i0, template: "<div class=\"py-3\">\n <div class=\"flex justify-between items-center\">\n <div class=\"text-xl font-bold py-3\">\u00A5 {{ displayPrice() }}</div>\n <button mat-icon-button (click)=\"onWish(product())\">\n @if (inWishList()) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#5f6368\">\n <path\n d=\"m293-203.08 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08Z\"\n />\n </svg>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#5f6368\">\n <path\n d=\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143Zm-61 83.92 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08ZM480-470Z\"\n />\n </svg>\n }\n </button>\n </div>\n <mat-divider></mat-divider>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductPricingComponent, decorators: [{
|
|
28
|
-
type: Component,
|
|
29
|
-
args: [{ selector: 'rolatech-product-pricing', standalone: true, imports: [CommonModule, MatButtonModule, MatIcon, MatDivider], encapsulation: ViewEncapsulation.None, template: "<div class=\"py-3\">\n <div class=\"flex justify-between items-center\">\n <div class=\"text-xl font-bold py-3\">\u00A5 {{ displayPrice() }}</div>\n <button mat-icon-button (click)=\"onWish(product())\">\n @if (inWishList()) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#5f6368\">\n <path\n d=\"m293-203.08 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08Z\"\n />\n </svg>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#5f6368\">\n <path\n d=\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143Zm-61 83.92 49.62-212.54-164.93-142.84 217.23-18.85L480-777.69l85.08 200.38 217.23 18.85-164.93 142.84L667-203.08 480-315.92 293-203.08ZM480-470Z\"\n />\n </svg>\n }\n </button>\n </div>\n <mat-divider></mat-divider>\n</div>\n" }]
|
|
30
|
-
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wcmljaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXByaWNpbmcvcHJvZHVjdC1wcmljaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXByaWNpbmcvcHJvZHVjdC1wcmljaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFXdkQsTUFBTSxPQUFPLHVCQUF1QjtJQVJwQztRQVNFLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFDcEMsMkJBQTJCO1FBQzNCLG9EQUFvRDtRQUNwRCxNQUFNO1FBQ04sVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSCxTQUFJLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFDekIsZUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztLQUlwQztJQUhDLE1BQU0sQ0FBQyxPQUFnQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDOzhHQWJVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHNmQ2ZwQyx1akNBcUJBLHlERFhZLFlBQVksOEJBQUUsZUFBZSw0SUFBVyxVQUFVOzsyRkFLakQsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsaUJBRzlDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0LCBvdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdERpdmlkZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1wcmljaW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uLCBNYXREaXZpZGVyXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtcHJpY2luZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LXByaWNpbmcuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0UHJpY2luZ0NvbXBvbmVudCB7XG4gIHByb2R1Y3QgPSBpbnB1dC5yZXF1aXJlZDxQcm9kdWN0PigpO1xuICAvLyBwcmljZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgLy8gICByZXR1cm4gKHRoaXMucHJvZHVjdCgpLnByaWNlIC8gMTAwKS50b0ZpeGVkKDIpO1xuICAvLyB9KTtcbiAgcHJpY2UgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gIGRpc3BsYXlQcmljZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKHRoaXMucHJpY2UoKSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgfSk7XG4gIHdpc2ggPSBvdXRwdXQ8UHJvZHVjdD4oKTtcbiAgaW5XaXNoTGlzdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgb25XaXNoKHByb2R1Y3Q6IFByb2R1Y3QpIHtcbiAgICB0aGlzLndpc2guZW1pdChwcm9kdWN0KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBweS0zXCI+wqUge3sgZGlzcGxheVByaWNlKCkgfX08L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25XaXNoKHByb2R1Y3QoKSlcIj5cbiAgICAgIEBpZiAoaW5XaXNoTGlzdCgpKSB7XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIiBmaWxsPVwiIzVmNjM2OFwiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwibTI5My0yMDMuMDggNDkuNjItMjEyLjU0LTE2NC45My0xNDIuODQgMjE3LjIzLTE4Ljg1TDQ4MC03NzcuNjlsODUuMDggMjAwLjM4IDIxNy4yMyAxOC44NS0xNjQuOTMgMTQyLjg0TDY2Ny0yMDMuMDggNDgwLTMxNS45MiAyOTMtMjAzLjA4WlwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjRweFwiIGZpbGw9XCIjNWY2MzY4XCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGQ9XCJtMzU0LTI4NyAxMjYtNzYgMTI2IDc3LTMzLTE0NCAxMTEtOTYtMTQ2LTEzLTU4LTEzNi01OCAxMzUtMTQ2IDEzIDExMSA5Ny0zMyAxNDNabS02MSA4My45MiA0OS42Mi0yMTIuNTQtMTY0LjkzLTE0Mi44NCAyMTcuMjMtMTguODVMNDgwLTc3Ny42OWw4NS4wOCAyMDAuMzggMjE3LjIzIDE4Ljg1LTE2NC45MyAxNDIuODRMNjY3LTIwMy4wOCA0ODAtMzE1LjkyIDI5My0yMDMuMDhaTTQ4MC00NzBaXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, Component, inject, input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { CommonModule, ViewportScroller } from '@angular/common';
|
|
3
|
-
import { ThumbnailComponent } from '@rolatech/angular-components';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class ProductSectionComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.section = input.required();
|
|
9
|
-
this.user = input();
|
|
10
|
-
this.username = input();
|
|
11
|
-
this.viewportScroller = inject(ViewportScroller);
|
|
12
|
-
this.row = input(false, { transform: booleanAttribute });
|
|
13
|
-
this.reverse = input(false, { transform: booleanAttribute });
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() { }
|
|
16
|
-
onClickScroller(id) {
|
|
17
|
-
this.viewportScroller.scrollToAnchor(id);
|
|
18
|
-
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ProductSectionComponent, isStandalone: true, selector: "rolatech-product-section", inputs: { section: { classPropertyName: "section", publicName: "section", isSignal: true, isRequired: true, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-[--rt-brand-color] inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full p-3\"\n [ngClass]=\"reverse() ? 'flex-col-reverse md:flex-row-reverse' : 'flex-col-reverse md:flex-row'\"\n >\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProductSectionComponent, decorators: [{
|
|
23
|
-
type: Component,
|
|
24
|
-
args: [{ selector: 'rolatech-product-section', standalone: true, imports: [CommonModule, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-[--rt-brand-color] inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full p-3\"\n [ngClass]=\"reverse() ? 'flex-col-reverse md:flex-row-reverse' : 'flex-col-reverse md:flex-row'\"\n >\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n </div>\n }\n}\n" }]
|
|
25
|
-
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVVsRSxNQUFNLE9BQU8sdUJBQXVCO0lBUnBDO1FBU0UsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFDM0MsU0FBSSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxRQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0tBT3pEO0lBTEMsUUFBUSxLQUFVLENBQUM7SUFFbkIsZUFBZSxDQUFDLEVBQVU7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQVpVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG1zQkNicEMsaXpEQTREQSx5RERwRFksWUFBWSw2SEFBRSxrQkFBa0I7OzJGQUsvQix1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxpQkFHNUIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBWaWV3cG9ydFNjcm9sbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3RTZWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1zZWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3Qtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9kdWN0U2VjdGlvbj4oKTtcbiAgdXNlciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlcm5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHZpZXdwb3J0U2Nyb2xsZXIgPSBpbmplY3QoVmlld3BvcnRTY3JvbGxlcik7XG4gIHJvdyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgcmV2ZXJzZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgb25DbGlja1Njcm9sbGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9BbmNob3IoaWQpO1xuICB9XG59XG4iLCJAaWYgKHNlY3Rpb24oKTsgYXMgc2VjdGlvbikge1xuICBAaWYgKHJvdygpKSB7XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoc2VjdGlvbi50aXRsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaC00IHctMSBiZy1bLS1ydC1icmFuZC1jb2xvcl0gaW5saW5lLWJsb2NrXCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1sZyBmb250LW1lZGl1bSBweS0xXCI+IHt7IHNlY3Rpb24udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChzZWN0aW9uLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge3sgc2VjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VjdGlvbi5tZWRpYSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidy04MCVcIj5cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIHNlY3Rpb24ubWVkaWE7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgICAgICAgIDxyb2xhdGVjaC10aHVtYm5haWxcbiAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0udXJsXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIG1vZGU9XCJmdWxsXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiaXRlbS53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJpdGVtLmhlaWdodFwiXG4gICAgICAgICAgICAgID48L3JvbGF0ZWNoLXRodW1ibmFpbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZmxleCB3LWZ1bGwgcC0zXCJcbiAgICAgIFtuZ0NsYXNzXT1cInJldmVyc2UoKSA/ICdmbGV4LWNvbC1yZXZlcnNlIG1kOmZsZXgtcm93LXJldmVyc2UnIDogJ2ZsZXgtY29sLXJldmVyc2UgbWQ6ZmxleC1yb3cnXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctMS8yIHB5LTMgZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgZ2FwLTNcIlxuICAgICAgICBbbmdDbGFzc109XCJyZXZlcnNlKCkgPyAnIG1kOm1sLTE2JyA6ICdtZDptci0xNidcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtM3hsIGZvbnQtYm9sZCBweS0xXCI+IHt7IHNlY3Rpb24udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7IHNlY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMS8yIHB5LTExXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VjdGlvbi5tZWRpYTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsXG4gICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBtb2RlPVwiZnVsbFwiXG4gICAgICAgICAgICAgIFt3aWR0aF09XCJpdGVtLndpZHRoXCJcbiAgICAgICAgICAgICAgW2hlaWdodF09XCJpdGVtLmhlaWdodFwiXG4gICAgICAgICAgICA+PC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2ludGVyZmFjZXMvY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuL3Byb2R1Y3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RDYXRlZ29yeSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbWVkaWE6IFByb2R1Y3RDYXRlZ29yeU1lZGlhW107XG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBvcmlnaW5JZDogc3RyaW5nO1xuICBjaGlsZHJlbjogUHJvZHVjdENhdGVnb3J5O1xuICBwYXJlbnQ6IFByb2R1Y3RDYXRlZ29yeTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdENhdGVnb3J5TWVkaWEge1xuICBpZDogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgYWx0OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './product';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QnO1xuZXhwb3J0IHsgUHJvZHVjdENhdGVnb3J5LCBQcm9kdWN0Q2F0ZWdvcnlNZWRpYSB9IGZyb20gJy4vY2F0ZWdvcnknO1xuIl19
|