@rolatech/angular-offering 20.1.6-beta.5 → 20.1.6-beta.7
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.
|
@@ -73,16 +73,16 @@ class OfferingManageItemComponent {
|
|
|
73
73
|
publish() { }
|
|
74
74
|
archived() { }
|
|
75
75
|
delete() { }
|
|
76
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
77
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: OfferingManageItemComponent, isStandalone: true, selector: "rolatech-offering-manage-item", inputs: { offering: { classPropertyName: "offering", publicName: "offering", isSignal: true, isRequired: true, transformFunction: null }, thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null }, list: { classPropertyName: "list", publicName: "list", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.rolatech-offering-manage-item": "this.hasClass" } }, ngImport: i0, template: "<div\n class=\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\"\n [ngClass]=\"list() ? 'w-full flex-row' : 'flex-col h-full'\"\n>\n <div>\n @if (offering().media) {\n <div class=\"object-cover aspect-video rounded-lg\" [ngClass]=\"list() ? 'w-32 mr-3' : ''\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"offering().media ? offering().media[0].url : ''\" size=\"medium\" mode=\"full\">\n </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"object-cover aspect-video rounded-lg\" [ngClass]=\"list() ? 'w-32 mr-3' : ''\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n </div>\n\n <div class=\"py-2\">\n <div class=\"text-lg font-bold\">\n {{ offering().title }}\n </div>\n </div>\n <div class=\"flex-1\"></div>\n <div class=\"\">\u00A5{{ offering().price | fixed }}</div>\n</div>\n", styles: ["rolatech-offering-manage-item{--rt-offering-view-item-margin: 16px;width:calc(100% / var(--rt-offering-view-items-per-row) - var(--rt-offering-view-item-margin) - .01px)}rolatech-offering-manage-item[list]{--rt-offering-view-items-per-row: 1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ImagePlaceholderComponent, selector: "rolatech-image-placeholder", inputs: ["ratio"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "pipe", type: FixedPipe, name: "fixed" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] });
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageItemComponent, decorators: [{
|
|
80
80
|
type: Component,
|
|
81
81
|
args: [{ selector: 'rolatech-offering-manage-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule, FixedPipe], encapsulation: ViewEncapsulation.None, template: "<div\n class=\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\"\n [ngClass]=\"list() ? 'w-full flex-row' : 'flex-col h-full'\"\n>\n <div>\n @if (offering().media) {\n <div class=\"object-cover aspect-video rounded-lg\" [ngClass]=\"list() ? 'w-32 mr-3' : ''\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"offering().media ? offering().media[0].url : ''\" size=\"medium\" mode=\"full\">\n </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"object-cover aspect-video rounded-lg\" [ngClass]=\"list() ? 'w-32 mr-3' : ''\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n </div>\n\n <div class=\"py-2\">\n <div class=\"text-lg font-bold\">\n {{ offering().title }}\n </div>\n </div>\n <div class=\"flex-1\"></div>\n <div class=\"\">\u00A5{{ offering().price | fixed }}</div>\n</div>\n", styles: ["rolatech-offering-manage-item{--rt-offering-view-item-margin: 16px;width:calc(100% / var(--rt-offering-view-items-per-row) - var(--rt-offering-view-item-margin) - .01px)}rolatech-offering-manage-item[list]{--rt-offering-view-items-per-row: 1}\n"] }]
|
|
82
82
|
}], ctorParameters: () => [], propDecorators: { hasClass: [{
|
|
83
83
|
type: HostBinding,
|
|
84
84
|
args: ['class.rolatech-offering-manage-item']
|
|
85
|
-
}] } });
|
|
85
|
+
}], offering: [{ type: i0.Input, args: [{ isSignal: true, alias: "offering", required: true }] }], thumbnail: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbnail", required: false }] }], list: [{ type: i0.Input, args: [{ isSignal: true, alias: "list", required: false }] }] } });
|
|
86
86
|
|
|
87
87
|
class OfferingManageIndexComponent {
|
|
88
88
|
hasClass = true;
|
|
@@ -103,10 +103,10 @@ class OfferingManageIndexComponent {
|
|
|
103
103
|
},
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
107
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
106
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: OfferingManageIndexComponent, isStandalone: true, selector: "rolatech-offering-manage-index", host: { properties: { "class.rolatech-offering-manage-index": "this.hasClass" } }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: "<rolatech-toolbar title=\"Services\">\n <div class=\"flex items-center gap-2\">\n <button mat-flat-button routerLink=\"./create\">\n <mat-icon>add</mat-icon>\n <span i18n>Add service</span>\n </button>\n </div>\n</rolatech-toolbar>\n@if (isLoading) {\n <div class=\"flex justify-center items-center\">\n <rolatech-spinner></rolatech-spinner>\n </div>\n} @else {\n <div class=\"bg-[--rt-rasised-background] h-full\">\n <!-- <rolatech-offering-manage-filter></rolatech-offering-manage-filter> -->\n <div class=\"flex flex-wrap p-3 gap-3\">\n @for (item of offerings; track $index) {\n <rolatech-offering-manage-item\n list\n [offering]=\"item\"\n routerLink=\"./{{ item.id }}/manage/info\"\n ></rolatech-offering-manage-item>\n }\n </div>\n </div>\n\n <!-- <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator> -->\n}\n", styles: ["mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}rolatech-offering-manage-index{--rt-offering-view-items-per-row: 1}@media (min-width: 600px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 2}}@media (min-width: 768px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 5}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: 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"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: SpinnerComponent, selector: "rolatech-spinner", inputs: ["title"] }, { kind: "component", type: OfferingManageItemComponent, selector: "rolatech-offering-manage-item", inputs: ["offering", "thumbnail", "list"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
108
108
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageIndexComponent, decorators: [{
|
|
110
110
|
type: Component,
|
|
111
111
|
args: [{ selector: 'rolatech-offering-manage-index', imports: [
|
|
112
112
|
MatButtonModule,
|
|
@@ -122,7 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
122
122
|
}], propDecorators: { hasClass: [{
|
|
123
123
|
type: HostBinding,
|
|
124
124
|
args: ['class.rolatech-offering-manage-index']
|
|
125
|
-
}] } });
|
|
125
|
+
}], paginator: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatPaginator), { isSignal: true }] }] } });
|
|
126
126
|
|
|
127
127
|
class OfferingManageCreateComponent {
|
|
128
128
|
offeringService = inject(OfferingService);
|
|
@@ -145,10 +145,10 @@ class OfferingManageCreateComponent {
|
|
|
145
145
|
},
|
|
146
146
|
});
|
|
147
147
|
}
|
|
148
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
149
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
148
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.12", type: OfferingManageCreateComponent, isStandalone: true, selector: "rolatech-offering-manage-create", ngImport: i0, template: "<rolatech-toolbar title=\"Add offering\" link=\"../\"> </rolatech-toolbar>\n<div class=\"p-3\">\n <section>\n <form #productForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Title </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"offering.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Description </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"offering.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n </div>\n </form>\n </section>\n <div i18n>* items are required</div>\n <div class=\"mt-3\">\n <button mat-flat-button class=\"w-28\" (click)=\"create()\" i18n>Create</button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] });
|
|
150
150
|
}
|
|
151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageCreateComponent, decorators: [{
|
|
152
152
|
type: Component,
|
|
153
153
|
args: [{ selector: 'rolatech-offering-manage-create', imports: [
|
|
154
154
|
ToolbarComponent,
|
|
@@ -207,19 +207,19 @@ class OfferingManageLayoutComponent extends BaseComponent {
|
|
|
207
207
|
},
|
|
208
208
|
});
|
|
209
209
|
}
|
|
210
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
211
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
210
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
211
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: OfferingManageLayoutComponent, isStandalone: true, selector: "rolatech-offering-manage-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-1\" i18n>Offering</div>\n <a routerLink=\"./info\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Basic info</a>\n <a routerLink=\"./media\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Media</a>\n <a routerLink=\"./sections\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Details</a>\n </div>\n @if (offering) {\n @if (offering.status.toString() === 'DRAFT') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button (click)=\"submit()\" i18n>Submit for review</button>\n </div>\n }\n @if (offering.status.toString() === 'PENDING') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button disabled i18n>Pending</button>\n </div>\n }\n @if (offering.status.toString() === 'APPROVED') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button (click)=\"publish()\" i18n>Publish</button>\n </div>\n }\n }\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
212
212
|
}
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageLayoutComponent, decorators: [{
|
|
214
214
|
type: Component,
|
|
215
215
|
args: [{ selector: 'rolatech-offering-manage-layout', imports: [RouterLink, RouterLinkActive, MatButtonModule, RouterOutlet], template: "<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-1\" i18n>Offering</div>\n <a routerLink=\"./info\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Basic info</a>\n <a routerLink=\"./media\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Media</a>\n <a routerLink=\"./sections\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Details</a>\n </div>\n @if (offering) {\n @if (offering.status.toString() === 'DRAFT') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button (click)=\"submit()\" i18n>Submit for review</button>\n </div>\n }\n @if (offering.status.toString() === 'PENDING') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button disabled i18n>Pending</button>\n </div>\n }\n @if (offering.status.toString() === 'APPROVED') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button (click)=\"publish()\" i18n>Publish</button>\n </div>\n }\n }\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n", styles: [".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\n"] }]
|
|
216
216
|
}] });
|
|
217
217
|
|
|
218
218
|
class OfferingManageContentComponent {
|
|
219
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
220
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
219
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
220
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.12", type: OfferingManageContentComponent, isStandalone: true, selector: "rolatech-offering-manage-content", ngImport: i0, template: "<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
221
221
|
}
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageContentComponent, decorators: [{
|
|
223
223
|
type: Component,
|
|
224
224
|
args: [{ selector: 'rolatech-offering-manage-content', imports: [CommonModule], template: "<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
225
225
|
}] });
|
|
@@ -329,8 +329,8 @@ class OfferingManageInfoComponent extends BaseComponent {
|
|
|
329
329
|
},
|
|
330
330
|
});
|
|
331
331
|
}
|
|
332
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
333
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
332
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
333
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: OfferingManageInfoComponent, isStandalone: true, selector: "rolatech-offering-manage-info", inputs: { price: { classPropertyName: "price", publicName: "price", isSignal: true, isRequired: false, transformFunction: null }, originalPrice: { classPropertyName: "originalPrice", publicName: "originalPrice", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { price: "priceChange", originalPrice: "originalPriceChange" }, providers: [
|
|
334
334
|
{
|
|
335
335
|
provide: DateAdapter,
|
|
336
336
|
useClass: MomentDateAdapter,
|
|
@@ -339,7 +339,7 @@ class OfferingManageInfoComponent extends BaseComponent {
|
|
|
339
339
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
340
340
|
], usesInheritance: true, ngImport: i0, template: "<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Basic info\" class=\"hidden md:block\" divider></rolatech-toolbar>\n @if (offering) {\n <div class=\"flex flex-col\">\n <form #offeringForm=\"ngForm\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Title </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"offering.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Description </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"offering.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <div class=\"flex gap-2\">\n <mat-form-field>\n <mat-label i18n>Level 1</mat-label>\n <mat-select\n name=\"id\"\n [compareWith]=\"compareParentFn\"\n [(ngModel)]=\"parentCategory\"\n (selectionChange)=\"onParentCategoryChange($event)\"\n >\n @for (category of categories; track category) {\n <mat-option [value]=\"category\">{{ category.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" ngModelGroup=\"categories\" required>\n <mat-label i18n>Level 2</mat-label>\n <mat-select\n multiple\n name=\"id\"\n [compareWith]=\"compareChildrenFn\"\n [(ngModel)]=\"selectedChildrenCategories\"\n #select=\"matSelect\"\n (selectionChange)=\"onChildCategoryChange($event)\"\n >\n @for (item of childrenCategories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Price </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"price\" name=\"price\" required rolatechDecimal />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Original price </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"originalPrice\" name=\"originalPrice\" required rolatechDecimal />\n </mat-form-field>\n </form>\n </div>\n <div>\n <button mat-flat-button (click)=\"update()\" i18n>Save</button>\n </div>\n }\n</rolatech-offering-manage-content>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "directive", type: i1$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5$1.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", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: OfferingManageContentComponent, selector: "rolatech-offering-manage-content" }, { kind: "directive", type: DecimalDirective, selector: "[rolatechDecimal]" }, { kind: "ngmodule", type: MatDatepickerModule }] });
|
|
341
341
|
}
|
|
342
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageInfoComponent, decorators: [{
|
|
343
343
|
type: Component,
|
|
344
344
|
args: [{ selector: 'rolatech-offering-manage-info', imports: [
|
|
345
345
|
FormsModule,
|
|
@@ -362,7 +362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
362
362
|
},
|
|
363
363
|
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
|
|
364
364
|
], template: "<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Basic info\" class=\"hidden md:block\" divider></rolatech-toolbar>\n @if (offering) {\n <div class=\"flex flex-col\">\n <form #offeringForm=\"ngForm\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Title </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"offering.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Description </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"offering.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <div class=\"flex gap-2\">\n <mat-form-field>\n <mat-label i18n>Level 1</mat-label>\n <mat-select\n name=\"id\"\n [compareWith]=\"compareParentFn\"\n [(ngModel)]=\"parentCategory\"\n (selectionChange)=\"onParentCategoryChange($event)\"\n >\n @for (category of categories; track category) {\n <mat-option [value]=\"category\">{{ category.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" ngModelGroup=\"categories\" required>\n <mat-label i18n>Level 2</mat-label>\n <mat-select\n multiple\n name=\"id\"\n [compareWith]=\"compareChildrenFn\"\n [(ngModel)]=\"selectedChildrenCategories\"\n #select=\"matSelect\"\n (selectionChange)=\"onChildCategoryChange($event)\"\n >\n @for (item of childrenCategories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Price </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"price\" name=\"price\" required rolatechDecimal />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Original price </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"originalPrice\" name=\"originalPrice\" required rolatechDecimal />\n </mat-form-field>\n </form>\n </div>\n <div>\n <button mat-flat-button (click)=\"update()\" i18n>Save</button>\n </div>\n }\n</rolatech-offering-manage-content>\n", styles: ["mat-form-field{width:100%}\n"] }]
|
|
365
|
-
}] });
|
|
365
|
+
}], propDecorators: { price: [{ type: i0.Input, args: [{ isSignal: true, alias: "price", required: false }] }, { type: i0.Output, args: ["priceChange"] }], originalPrice: [{ type: i0.Input, args: [{ isSignal: true, alias: "originalPrice", required: false }] }, { type: i0.Output, args: ["originalPriceChange"] }] } });
|
|
366
366
|
|
|
367
367
|
const SIZE = 10 * 1024 * 1024; // file slice size 10MB
|
|
368
368
|
class OfferingManageMediaComponent {
|
|
@@ -529,10 +529,10 @@ class OfferingManageMediaComponent {
|
|
|
529
529
|
}
|
|
530
530
|
});
|
|
531
531
|
}
|
|
532
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
533
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
532
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
533
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: OfferingManageMediaComponent, isStandalone: true, selector: "rolatech-offering-manage-media", ngImport: i0, template: "<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Media info\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div>\n <p i18n>*Limit 5MB per image*</p>\n <rolatech-media-list (upload)=\"onMultipleFilesUpload($event)\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete(item)\"\n [uploading]=\"item.uploading\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n</rolatech-offering-manage-content>\n", styles: [""], dependencies: [{ kind: "component", type: MediaListComponent, selector: "rolatech-media-list", inputs: ["isUploading", "media", "showAdd"], outputs: ["mediaItemClick", "upload"] }, { kind: "component", type: MediaListItemComponent, selector: "rolatech-media-list-item", inputs: ["media", "uploadProgress", "uploading"], outputs: ["mediaItemClick", "deleteMedia"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: OfferingManageContentComponent, selector: "rolatech-offering-manage-content" }] });
|
|
534
534
|
}
|
|
535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
535
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageMediaComponent, decorators: [{
|
|
536
536
|
type: Component,
|
|
537
537
|
args: [{ selector: 'rolatech-offering-manage-media', imports: [MediaListComponent, MediaListItemComponent, ToolbarComponent, OfferingManageContentComponent], template: "<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Media info\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div>\n <p i18n>*Limit 5MB per image*</p>\n <rolatech-media-list (upload)=\"onMultipleFilesUpload($event)\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete(item)\"\n [uploading]=\"item.uploading\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n</rolatech-offering-manage-content>\n" }]
|
|
538
538
|
}], ctorParameters: () => [] });
|
|
@@ -572,10 +572,10 @@ class OfferingManageSectionItemComponent {
|
|
|
572
572
|
this.deleteMedia.emit({ section: this.section(), media });
|
|
573
573
|
this.selectedImg = this.section().media ? first(this.section().media) : null;
|
|
574
574
|
}
|
|
575
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
576
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
575
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageSectionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
576
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: OfferingManageSectionItemComponent, isStandalone: true, selector: "rolatech-offering-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 collapsed\" [class.expanded]=\"expanded\">\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 i18n>Title</mat-label>\n <input matInput placeholder=\"Title\" i18n-placeholder [(ngModel)]=\"section().title\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label i18n>Description</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"Description\"\n [(ngModel)]=\"section().description\"\n i18n-placeholder\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 i18n>Delete</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())\" i18n>Delete</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(section())\" i18n>Save</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}.collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:1000px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.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[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.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"] }] });
|
|
577
577
|
}
|
|
578
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageSectionItemComponent, decorators: [{
|
|
579
579
|
type: Component,
|
|
580
580
|
args: [{ selector: 'rolatech-offering-manage-section-item', imports: [
|
|
581
581
|
MatFormFieldModule,
|
|
@@ -588,7 +588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
588
588
|
MatProgressBarModule,
|
|
589
589
|
MatDividerModule,
|
|
590
590
|
], 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 collapsed\" [class.expanded]=\"expanded\">\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 i18n>Title</mat-label>\n <input matInput placeholder=\"Title\" i18n-placeholder [(ngModel)]=\"section().title\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label i18n>Description</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"Description\"\n [(ngModel)]=\"section().description\"\n i18n-placeholder\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 i18n>Delete</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())\" i18n>Delete</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(section())\" i18n>Save</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}.collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:1000px}\n"] }]
|
|
591
|
-
}], ctorParameters: () => [] });
|
|
591
|
+
}], ctorParameters: () => [], propDecorators: { isUploading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isUploading", required: false }] }], section: [{ type: i0.Input, args: [{ isSignal: true, alias: "section", required: true }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], selectMedia: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectMedia", required: false }] }], upload: [{ type: i0.Output, args: ["upload"] }], delete: [{ type: i0.Output, args: ["delete"] }], save: [{ type: i0.Output, args: ["save"] }], deleteMedia: [{ type: i0.Output, args: ["deleteMedia"] }] } });
|
|
592
592
|
|
|
593
593
|
class OfferingManageSectionsComponent {
|
|
594
594
|
route = inject(ActivatedRoute);
|
|
@@ -740,10 +740,10 @@ class OfferingManageSectionsComponent {
|
|
|
740
740
|
}
|
|
741
741
|
});
|
|
742
742
|
}
|
|
743
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
744
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
743
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
744
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: OfferingManageSectionsComponent, isStandalone: true, selector: "rolatech-offering-manage-sections", ngImport: i0, template: "<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Details\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (section of sections; track section) {\n <rolatech-offering-manage-section-item\n [section]=\"section\"\n (upload)=\"onUploadSectionMedia($event)\"\n (deleteMedia)=\"onDeleteSectionMedia($event)\"\n (save)=\"onSectionSave($event)\"\n (delete)=\"onSectionDelete($event)\"\n [actions]=\"true\"\n ></rolatech-offering-manage-section-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSection()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span i18n>Add</span>\n </button>\n </div>\n</rolatech-offering-manage-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarComponent, selector: "rolatech-toolbar", inputs: ["title", "subtitle", "back", "link", "large", "divider"] }, { kind: "component", type: OfferingManageContentComponent, selector: "rolatech-offering-manage-content" }, { kind: "component", type: OfferingManageSectionItemComponent, selector: "rolatech-offering-manage-section-item", inputs: ["isUploading", "section", "actions", "selectMedia"], outputs: ["upload", "delete", "save", "deleteMedia"] }] });
|
|
745
745
|
}
|
|
746
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
746
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: OfferingManageSectionsComponent, decorators: [{
|
|
747
747
|
type: Component,
|
|
748
748
|
args: [{ selector: 'rolatech-offering-manage-sections', imports: [
|
|
749
749
|
MatButtonModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rolatech-angular-offering.mjs","sources":["../tmp-esm2022/lib/interfaces/offering.js","../tmp-esm2022/lib/components/offering-manage-item/offering-manage-item.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-manage-index/offering-manage-index.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-manage-create/offering-manage-create.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-manage-layout/offering-manage-layout.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-manage-content/offering-manage-content.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-manage-info/offering-manage-info.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-manage-media/offering-manage-media.component.js","../tmp-esm2022/lib/components/offering-manage-section-item/offering-manage-section-item.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-manage-sections/offering-manage-sections.component.js","../tmp-esm2022/lib/pages/offering-manage/offering-mange.routes.js","../tmp-esm2022/rolatech-angular-offering.js"],"sourcesContent":["export var OfferingStatus;\n(function (OfferingStatus) {\n OfferingStatus[OfferingStatus[\"DRAFT\"] = 'Draft'] = \"DRAFT\";\n OfferingStatus[OfferingStatus[\"PENDING\"] = 'Pending'] = \"PENDING\";\n OfferingStatus[OfferingStatus[\"APPROVED\"] = 'Approved'] = \"APPROVED\";\n OfferingStatus[OfferingStatus[\"REJECTED\"] = 'Rejected'] = \"REJECTED\";\n OfferingStatus[OfferingStatus[\"AVAILABLE\"] = 'Available'] = \"AVAILABLE\";\n OfferingStatus[OfferingStatus[\"SOLD\"] = 'Sold'] = \"SOLD\";\n OfferingStatus[OfferingStatus[\"RENTED\"] = 'Rented'] = \"RENTED\";\n OfferingStatus[OfferingStatus[\"DELETED\"] = 'Deleted'] = \"DELETED\";\n OfferingStatus[OfferingStatus[\"ARCHIVED\"] = 'Archived'] = \"ARCHIVED\";\n})(OfferingStatus || (OfferingStatus = {}));\nexport var OfferingType;\n(function (OfferingType) {\n OfferingType[\"VISIA\"] = \"Visa\";\n OfferingType[\"PROPERTY\"] = \"Property\";\n})(OfferingType || (OfferingType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvaW50ZXJmYWNlcy9vZmZlcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQ0EsTUFBTSxDQUFOLElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4Qix5Q0FBYSxPQUFPLFdBQUEsQ0FBQTtJQUNwQiwyQ0FBZSxTQUFTLGFBQUEsQ0FBQTtJQUN4Qiw0Q0FBZ0IsVUFBVSxjQUFBLENBQUE7SUFDMUIsNENBQWdCLFVBQVUsY0FBQSxDQUFBO0lBQzFCLDZDQUFpQixXQUFXLGVBQUEsQ0FBQTtJQUM1Qix3Q0FBWSxNQUFNLFVBQUEsQ0FBQTtJQUNsQiwwQ0FBYyxRQUFRLFlBQUEsQ0FBQTtJQUN0QiwyQ0FBZSxTQUFTLGFBQUEsQ0FBQTtJQUN4Qiw0Q0FBZ0IsVUFBVSxjQUFBLENBQUE7QUFDNUIsQ0FBQyxFQVZXLGNBQWMsS0FBZCxjQUFjLFFBVXpCO0FBQ0QsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0Qiw4QkFBYyxDQUFBO0lBQ2QscUNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2ZmZXJpbmdDYXRlZ29yeSB9IGZyb20gJy4vY2F0ZWdvcnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9mZmVyaW5nIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY2F0ZWdvcmllczogT2ZmZXJpbmdDYXRlZ29yeVtdO1xuICBtZWRpYTogT2ZmZXJpbmdNZWRpYVtdO1xuICBzdGF0dXM6IE9mZmVyaW5nU3RhdHVzO1xuICB0eXBlOiBPZmZlcmluZ1R5cGUgfCBzdHJpbmc7XG4gIHNlY3Rpb25zOiBPZmZlcmluZ1NlY3Rpb25bXTtcbiAgcHJpY2U6IG51bWJlcjtcbiAgb3JpZ2luYWxQcmljZTogbnVtYmVyO1xuICB1c2VySWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBPZmZlcmluZ01lZGlhIHtcbiAgaWQ6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgdXVpZDogc3RyaW5nO1xuICBzZWxlY3RlZDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT2ZmZXJpbmdTZWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nO1xuICBtZWRpYTogT2ZmZXJpbmdNZWRpYVtdO1xuICBpc1VwbG9hZGluZz86IGJvb2xlYW47XG59XG5leHBvcnQgZW51bSBPZmZlcmluZ1N0YXR1cyB7XG4gIERSQUZUID0gPGFueT4nRHJhZnQnLFxuICBQRU5ESU5HID0gPGFueT4nUGVuZGluZycsXG4gIEFQUFJPVkVEID0gPGFueT4nQXBwcm92ZWQnLFxuICBSRUpFQ1RFRCA9IDxhbnk+J1JlamVjdGVkJyxcbiAgQVZBSUxBQkxFID0gPGFueT4nQXZhaWxhYmxlJyxcbiAgU09MRCA9IDxhbnk+J1NvbGQnLFxuICBSRU5URUQgPSA8YW55PidSZW50ZWQnLFxuICBERUxFVEVEID0gPGFueT4nRGVsZXRlZCcsXG4gIEFSQ0hJVkVEID0gPGFueT4nQXJjaGl2ZWQnLFxufVxuZXhwb3J0IGVudW0gT2ZmZXJpbmdUeXBlIHtcbiAgVklTSUEgPSAnVmlzYScsXG4gIFBST1BFUlRZID0gJ1Byb3BlcnR5Jyxcbn1cbiJdfQ==","import { booleanAttribute, Component, effect, ElementRef, HostBinding, inject, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { ThumbnailComponent, ImagePlaceholderComponent } from '@rolatech/angular-components';\nimport { OfferingStatus } from '../../interfaces/offering';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class OfferingManageItemComponent {\n hasClass = true;\n el = inject(ElementRef);\n offering = input.required(...(ngDevMode ? [{ debugName: \"offering\" }] : []));\n thumbnail = input(...(ngDevMode ? [undefined, { debugName: \"thumbnail\" }] : []));\n status = OfferingStatus;\n list = input(false, ...(ngDevMode ? [{ debugName: \"list\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n constructor() {\n effect(() => {\n if (this.list()) {\n this.el.nativeElement.setAttribute('list', '');\n }\n else {\n this.el.nativeElement.removeAttribute('list', '');\n }\n });\n }\n publish() { }\n archived() { }\n delete() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: OfferingManageItemComponent, isStandalone: true, selector: \"rolatech-offering-manage-item\", inputs: { offering: { classPropertyName: \"offering\", publicName: \"offering\", isSignal: true, isRequired: true, transformFunction: null }, thumbnail: { classPropertyName: \"thumbnail\", publicName: \"thumbnail\", isSignal: true, isRequired: false, transformFunction: null }, list: { classPropertyName: \"list\", publicName: \"list\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.rolatech-offering-manage-item\": \"this.hasClass\" } }, ngImport: i0, template: \"<div\\n class=\\\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\\\"\\n [ngClass]=\\\"list() ? 'w-full flex-row' : 'flex-col h-full'\\\"\\n>\\n <div>\\n @if (offering().media) {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n @defer (on viewport()) {\\n <rolatech-thumbnail [src]=\\\"offering().media ? offering().media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"full\\\">\\n </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n </div>\\n\\n <div class=\\\"py-2\\\">\\n <div class=\\\"text-lg font-bold\\\">\\n {{ offering().title }}\\n </div>\\n </div>\\n <div class=\\\"flex-1\\\"></div>\\n <div class=\\\"\\\">\\u00A5{{ offering().price | fixed }}</div>\\n</div>\\n\", styles: [\"rolatech-offering-manage-item{--rt-offering-view-item-margin: 16px;width:calc(100% / var(--rt-offering-view-items-per-row) - var(--rt-offering-view-item-margin) - .01px)}rolatech-offering-manage-item[list]{--rt-offering-view-items-per-row: 1}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: ImagePlaceholderComponent, selector: \"rolatech-image-placeholder\", inputs: [\"ratio\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"pipe\", type: FixedPipe, name: \"fixed\" }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [ThumbnailComponent]] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-item', imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule, FixedPipe], encapsulation: ViewEncapsulation.None, template: \"<div\\n class=\\\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\\\"\\n [ngClass]=\\\"list() ? 'w-full flex-row' : 'flex-col h-full'\\\"\\n>\\n <div>\\n @if (offering().media) {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n @defer (on viewport()) {\\n <rolatech-thumbnail [src]=\\\"offering().media ? offering().media[0].url : ''\\\" size=\\\"medium\\\" mode=\\\"full\\\">\\n </rolatech-thumbnail>\\n } @placeholder {\\n <div class=\\\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\\\"></div>\\n }\\n </div>\\n } @else {\\n <div class=\\\"object-cover aspect-video rounded-lg\\\" [ngClass]=\\\"list() ? 'w-32 mr-3' : ''\\\">\\n <rolatech-image-placeholder></rolatech-image-placeholder>\\n </div>\\n }\\n </div>\\n\\n <div class=\\\"py-2\\\">\\n <div class=\\\"text-lg font-bold\\\">\\n {{ offering().title }}\\n </div>\\n </div>\\n <div class=\\\"flex-1\\\"></div>\\n <div class=\\\"\\\">\\u00A5{{ offering().price | fixed }}</div>\\n</div>\\n\", styles: [\"rolatech-offering-manage-item{--rt-offering-view-item-margin: 16px;width:calc(100% / var(--rt-offering-view-items-per-row) - var(--rt-offering-view-item-margin) - .01px)}rolatech-offering-manage-item[list]{--rt-offering-view-items-per-row: 1}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { hasClass: [{\n type: HostBinding,\n args: ['class.rolatech-offering-manage-item']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1vZmZlcmluZy9zcmMvbGliL2NvbXBvbmVudHMvb2ZmZXJpbmctbWFuYWdlLWl0ZW0vb2ZmZXJpbmctbWFuYWdlLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1vZmZlcmluZy9zcmMvbGliL2NvbXBvbmVudHMvb2ZmZXJpbmctbWFuYWdlLWl0ZW0vb2ZmZXJpbmctbWFuYWdlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RixPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVNyRSxNQUFNLE9BQU8sMkJBQTJCO0lBQ2MsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNwRSxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxtREFBWSxDQUFDO0lBQ3RDLFNBQVMsR0FBRyxLQUFLLCtEQUFFLENBQUM7SUFDcEIsTUFBTSxHQUFHLGNBQWMsQ0FBQztJQUN4QixJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssd0NBQUksU0FBUyxFQUFFLGdCQUFnQixPQUE3QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7SUFDckQ7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFJLENBQUM7SUFDWixRQUFRLEtBQUksQ0FBQztJQUNiLE1BQU0sS0FBSSxDQUFDO3VHQWxCQSwyQkFBMkI7MkZBQTNCLDJCQUEyQixnakJDZnhDLGtsQ0E2QkEsNlNEbkJZLFlBQVksNkhBQXNCLHlCQUF5Qix5RkFBRSxlQUFlLDhCQUFFLGFBQWEsMEJBQUUsU0FBUyw4RkFBeEYsa0JBQWtCOzsyRkFLL0IsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLCtCQUErQixXQUNoQyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxpQkFHbEcsaUJBQWlCLENBQUMsSUFBSTt3REFHZSxRQUFRO3NCQUEzRCxXQUFXO3VCQUFDLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgZWZmZWN0LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgRml4ZWRQaXBlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCwgSW1hZ2VQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgT2ZmZXJpbmcsIE9mZmVyaW5nU3RhdHVzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vZmZlcmluZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1pdGVtJyxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50LCBJbWFnZVBsYWNlaG9sZGVyQ29tcG9uZW50LCBNYXRCdXR0b25Nb2R1bGUsIE1hdE1lbnVNb2R1bGUsIEZpeGVkUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2UtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2UtaXRlbS5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE9mZmVyaW5nTWFuYWdlSXRlbUNvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mucm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWl0ZW0nKSBoYXNDbGFzcyA9IHRydWU7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBvZmZlcmluZyA9IGlucHV0LnJlcXVpcmVkPE9mZmVyaW5nPigpO1xuICB0aHVtYm5haWwgPSBpbnB1dCgpO1xuICBzdGF0dXMgPSBPZmZlcmluZ1N0YXR1cztcbiAgbGlzdCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmxpc3QoKSkge1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdsaXN0JywgJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnbGlzdCcsICcnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBwdWJsaXNoKCkge31cbiAgYXJjaGl2ZWQoKSB7fVxuICBkZWxldGUoKSB7fVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImZsZXggcC0zIGJnLVstLXJ0LXJhaXNlZC1iYWNrZ3JvdW5kXSBob3ZlcjpiZy1bLS1ydC1yYWlzZWQtYmFja2dyb3VuZF0gY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1tZFwiXG4gIFtuZ0NsYXNzXT1cImxpc3QoKSA/ICd3LWZ1bGwgZmxleC1yb3cnIDogJ2ZsZXgtY29sIGgtZnVsbCdcIlxuPlxuICA8ZGl2PlxuICAgIEBpZiAob2ZmZXJpbmcoKS5tZWRpYSkge1xuICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiIFtuZ0NsYXNzXT1cImxpc3QoKSA/ICd3LTMyIG1yLTMnIDogJydcIj5cbiAgICAgICAgQGRlZmVyIChvbiB2aWV3cG9ydCgpKSB7XG4gICAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbCBbc3JjXT1cIm9mZmVyaW5nKCkubWVkaWEgPyBvZmZlcmluZygpLm1lZGlhWzBdLnVybCA6ICcnXCIgc2l6ZT1cIm1lZGl1bVwiIG1vZGU9XCJmdWxsXCI+XG4gICAgICAgICAgPC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgIH0gQHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctWy0tcnQtcmFpc2VkLWJhY2tncm91bmRdIGgtZnVsbCB3LWZ1bGwgb2JqZWN0LWNvdmVyIGFzcGVjdC12aWRlbyByb3VuZGVkLWxnXCI+PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1jb3ZlciBhc3BlY3QtdmlkZW8gcm91bmRlZC1sZ1wiIFtuZ0NsYXNzXT1cImxpc3QoKSA/ICd3LTMyIG1yLTMnIDogJydcIj5cbiAgICAgICAgPHJvbGF0ZWNoLWltYWdlLXBsYWNlaG9sZGVyPjwvcm9sYXRlY2gtaW1hZ2UtcGxhY2Vob2xkZXI+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJweS0yXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1ib2xkXCI+XG4gICAgICB7eyBvZmZlcmluZygpLnRpdGxlIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJcIj7CpXt7IG9mZmVyaW5nKCkucHJpY2UgfCBmaXhlZCB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, HostBinding, inject, viewChild, ViewEncapsulation } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatDialog } from '@angular/material/dialog';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { OfferingManageItemComponent } from '../../../components/offering-manage-item/offering-manage-item.component';\nimport { SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTableModule } from '@angular/material/table';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class OfferingManageIndexComponent {\n hasClass = true;\n paginator = viewChild(MatPaginator, ...(ngDevMode ? [{ debugName: \"paginator\" }] : []));\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n offeringService = inject(OfferingService);\n isLoading = false;\n isSearch = false;\n offerings = [];\n ngOnInit() {\n this.findProperties();\n }\n findProperties() {\n this.offeringService.find({}).subscribe({\n next: (res) => {\n this.offerings = res.data;\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: OfferingManageIndexComponent, isStandalone: true, selector: \"rolatech-offering-manage-index\", host: { properties: { \"class.rolatech-offering-manage-index\": \"this.hasClass\" } }, viewQueries: [{ propertyName: \"paginator\", first: true, predicate: MatPaginator, descendants: true, isSignal: true }], ngImport: i0, template: \"<rolatech-toolbar title=\\\"Services\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add service</span>\\n </button>\\n </div>\\n</rolatech-toolbar>\\n@if (isLoading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <!-- <rolatech-offering-manage-filter></rolatech-offering-manage-filter> -->\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of offerings; track $index) {\\n <rolatech-offering-manage-item\\n list\\n [offering]=\\\"item\\\"\\n routerLink=\\\"./{{ item.id }}/manage/info\\\"\\n ></rolatech-offering-manage-item>\\n }\\n </div>\\n </div>\\n\\n <!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}rolatech-offering-manage-index{--rt-offering-view-items-per-row: 1}@media (min-width: 600px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 2}}@media (min-width: 768px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 5}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: 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\"] }, { kind: \"ngmodule\", type: MatTableModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"ngmodule\", type: MatPaginatorModule }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }, { kind: \"component\", type: OfferingManageItemComponent, selector: \"rolatech-offering-manage-item\", inputs: [\"offering\", \"thumbnail\", \"list\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageIndexComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-index', imports: [\n MatButtonModule,\n RouterLink,\n MatIconModule,\n MatTableModule,\n MatMenuModule,\n MatPaginatorModule,\n ToolbarComponent,\n SpinnerComponent,\n OfferingManageItemComponent,\n ], encapsulation: ViewEncapsulation.None, template: \"<rolatech-toolbar title=\\\"Services\\\">\\n <div class=\\\"flex items-center gap-2\\\">\\n <button mat-flat-button routerLink=\\\"./create\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add service</span>\\n </button>\\n </div>\\n</rolatech-toolbar>\\n@if (isLoading) {\\n <div class=\\\"flex justify-center items-center\\\">\\n <rolatech-spinner></rolatech-spinner>\\n </div>\\n} @else {\\n <div class=\\\"bg-[--rt-rasised-background] h-full\\\">\\n <!-- <rolatech-offering-manage-filter></rolatech-offering-manage-filter> -->\\n <div class=\\\"flex flex-wrap p-3 gap-3\\\">\\n @for (item of offerings; track $index) {\\n <rolatech-offering-manage-item\\n list\\n [offering]=\\\"item\\\"\\n routerLink=\\\"./{{ item.id }}/manage/info\\\"\\n ></rolatech-offering-manage-item>\\n }\\n </div>\\n </div>\\n\\n <!-- <mat-paginator\\n #paginator\\n [length]=\\\"length\\\"\\n [pageSize]=\\\"pageSize\\\"\\n [pageSizeOptions]=\\\"pageSizeOptions\\\"\\n (page)=\\\"pageEvent = find($event)\\\"\\n hidePageSize\\n showFirstLastButtons\\n >\\n </mat-paginator> -->\\n}\\n\", styles: [\"mat-form-field{width:100%}table{width:100%}td.mat-column-actions{text-align:right;max-width:64px;font-size:.8rem;padding:0 8px}.mat-mdc-header-cell.actions{text-align:right;max-width:64px;width:64px}.mat-mdc-cell:nth-last-child(2),.mat-mdc-header-cell:nth-last-child(2),.mat-mdc-footer-cell:nth-last-child(2){text-align:right;max-width:180px;width:180px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{text-align:right;padding-right:8px!important}rolatech-offering-manage-index{--rt-offering-view-items-per-row: 1}@media (min-width: 600px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 2}}@media (min-width: 768px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 3}}@media (min-width: 1280px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 3}}@media (min-width: 1536px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 4}}@media (min-width: 1920px){rolatech-offering-manage-index{--rt-offering-view-items-per-row: 5}}\\n\"] }]\n }], propDecorators: { hasClass: [{\n type: HostBinding,\n args: ['class.rolatech-offering-manage-index']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLWluZGV4LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItb2ZmZXJpbmcvc3JjL2xpYi9wYWdlcy9vZmZlcmluZy1tYW5hZ2Uvb2ZmZXJpbmctbWFuYWdlLWluZGV4L29mZmVyaW5nLW1hbmFnZS1pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1pbmRleC9vZmZlcmluZy1tYW5hZ2UtaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQW1CekQsTUFBTSxPQUFPLDRCQUE0QjtJQUNjLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDckUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLHFEQUFDLENBQUM7SUFDcEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFFM0IsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQzVCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQW5CVSw0QkFBNEI7MkZBQTVCLDRCQUE0Qix3TkFFakIsWUFBWSxnRUNqQ3BDLGlrQ0FxQ0Esc2pDRHBCSSxlQUFlLG9YQUNmLFVBQVUsbU9BQ1YsYUFBYSxtTEFDYixjQUFjLDhCQUNkLGFBQWEsOEJBQ2Isa0JBQWtCLCtCQUNsQixnQkFBZ0IsZ0lBQ2hCLGdCQUFnQixnRkFDaEIsMkJBQTJCOzsyRkFNbEIsNEJBQTRCO2tCQWpCeEMsU0FBUzsrQkFDRSxnQ0FBZ0MsV0FDakM7d0JBQ1AsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLDJCQUEyQjtxQkFDNUIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs4QkFHZ0IsUUFBUTtzQkFBNUQsV0FBVzt1QkFBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIE9uSW5pdCwgdmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPZmZlcmluZyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvb2ZmZXJpbmcnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBPZmZlcmluZ1NlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPZmZlcmluZ01hbmFnZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL29mZmVyaW5nLW1hbmFnZS1pdGVtL29mZmVyaW5nLW1hbmFnZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWluZGV4JyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIE9mZmVyaW5nTWFuYWdlSXRlbUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29mZmVyaW5nLW1hbmFnZS1pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2UtaW5kZXguY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBPZmZlcmluZ01hbmFnZUluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yb2xhdGVjaC1vZmZlcmluZy1tYW5hZ2UtaW5kZXgnKSBoYXNDbGFzcyA9IHRydWU7XG4gIHBhZ2luYXRvciA9IHZpZXdDaGlsZChNYXRQYWdpbmF0b3IpO1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgc25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBvZmZlcmluZ1NlcnZpY2UgPSBpbmplY3QoT2ZmZXJpbmdTZXJ2aWNlKTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIGlzU2VhcmNoID0gZmFsc2U7XG4gIG9mZmVyaW5nczogT2ZmZXJpbmdbXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZFByb3BlcnRpZXMoKTtcbiAgfVxuICBmaW5kUHJvcGVydGllcygpIHtcbiAgICB0aGlzLm9mZmVyaW5nU2VydmljZS5maW5kKHt9KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMub2ZmZXJpbmdzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIlNlcnZpY2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIHJvdXRlckxpbms9XCIuL2NyZWF0ZVwiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkFkZCBzZXJ2aWNlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtdG9vbGJhcj5cbkBpZiAoaXNMb2FkaW5nKSB7XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxyb2xhdGVjaC1zcGlubmVyPjwvcm9sYXRlY2gtc3Bpbm5lcj5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cImJnLVstLXJ0LXJhc2lzZWQtYmFja2dyb3VuZF0gaC1mdWxsXCI+XG4gICAgPCEtLSA8cm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWZpbHRlcj48L3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1maWx0ZXI+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBwLTMgZ2FwLTNcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2Ygb2ZmZXJpbmdzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPHJvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1pdGVtXG4gICAgICAgICAgbGlzdFxuICAgICAgICAgIFtvZmZlcmluZ109XCJpdGVtXCJcbiAgICAgICAgICByb3V0ZXJMaW5rPVwiLi97eyBpdGVtLmlkIH19L21hbmFnZS9pbmZvXCJcbiAgICAgICAgPjwvcm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWl0ZW0+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gPG1hdC1wYWdpbmF0b3JcbiAgICAjcGFnaW5hdG9yXG4gICAgW2xlbmd0aF09XCJsZW5ndGhcIlxuICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxuICAgIChwYWdlKT1cInBhZ2VFdmVudCA9IGZpbmQoJGV2ZW50KVwiXG4gICAgaGlkZVBhZ2VTaXplXG4gICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbiAgPlxuICA8L21hdC1wYWdpbmF0b3I+IC0tPlxufVxuIl19","import { Component, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ToolbarComponent } from '@rolatech/angular-components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/button\";\nexport class OfferingManageCreateComponent {\n offeringService = inject(OfferingService);\n router = inject(Router);\n route = inject(ActivatedRoute);\n snackBar = inject(MatSnackBar);\n offering = {};\n create() {\n const data = {\n ...this.offering,\n };\n this.offeringService.create(data).subscribe({\n next: (res) => {\n this.router.navigate([`../${res.data.id}/manage/info`], {\n relativeTo: this.route,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", type: OfferingManageCreateComponent, isStandalone: true, selector: \"rolatech-offering-manage-create\", ngImport: i0, template: \"<rolatech-toolbar title=\\\"Add offering\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <section>\\n <form #productForm=\\\"ngForm\\\">\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offering.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"offering.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </form>\\n </section>\\n <div i18n>* items are required</div>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Create</button>\\n </div>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { 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.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i5.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageCreateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-create', imports: [\n ToolbarComponent,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ], template: \"<rolatech-toolbar title=\\\"Add offering\\\" link=\\\"../\\\"> </rolatech-toolbar>\\n<div class=\\\"p-3\\\">\\n <section>\\n <form #productForm=\\\"ngForm\\\">\\n <div class=\\\"flex flex-col\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offering.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"offering.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n </div>\\n </form>\\n </section>\\n <div i18n>* items are required</div>\\n <div class=\\\"mt-3\\\">\\n <button mat-flat-button class=\\\"w-28\\\" (click)=\\\"create()\\\" i18n>Create</button>\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1jcmVhdGUvb2ZmZXJpbmctbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1jcmVhdGUvb2ZmZXJpbmctbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFpQmhFLE1BQU0sT0FBTyw2QkFBNkI7SUFDaEMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0IsUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLE1BQU07UUFDSixNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLFFBQVE7U0FDakIsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsQ0FBQyxFQUFFO29CQUN0RCxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ3ZCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBcEJVLDZCQUE2QjsyRkFBN0IsNkJBQTZCLDJGQzVCMUMsay9CQTZCQSwwRERiSSxnQkFBZ0IsK0hBQ2hCLFdBQVcsb3dDQUNYLGtCQUFrQiwwU0FDbEIsY0FBYyxnbUJBQ2QsZUFBZSw4QkFDZixlQUFlLDhCQUNmLGVBQWUsOEJBQ2YsZUFBZTs7MkZBS04sNkJBQTZCO2tCQWZ6QyxTQUFTOytCQUNFLGlDQUFpQyxXQUNsQzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2ZmZXJpbmdTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWNyZWF0ZScsXG4gIGltcG9ydHM6IFtcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2UtY3JlYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29mZmVyaW5nLW1hbmFnZS1jcmVhdGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPZmZlcmluZ01hbmFnZUNyZWF0ZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgb2ZmZXJpbmdTZXJ2aWNlID0gaW5qZWN0KE9mZmVyaW5nU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgb2ZmZXJpbmc6IGFueSA9IHt9O1xuICBjcmVhdGUoKSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIC4uLnRoaXMub2ZmZXJpbmcsXG4gICAgfTtcbiAgICB0aGlzLm9mZmVyaW5nU2VydmljZS5jcmVhdGUoZGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AuLi8ke3Jlcy5kYXRhLmlkfS9tYW5hZ2UvaW5mb2BdLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJBZGQgb2ZmZXJpbmdcIiBsaW5rPVwiLi4vXCI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbjxkaXYgY2xhc3M9XCJwLTNcIj5cbiAgPHNlY3Rpb24+XG4gICAgPGZvcm0gI3Byb2R1Y3RGb3JtPVwibmdGb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IFRpdGxlIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwib2ZmZXJpbmcudGl0bGVcIiBuYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IERlc2NyaXB0aW9uIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwib2ZmZXJpbmcuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplXG4gICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIzXCJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9zZWN0aW9uPlxuICA8ZGl2IGkxOG4+KiBpdGVtcyBhcmUgcmVxdWlyZWQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm10LTNcIj5cbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjbGFzcz1cInctMjhcIiAoY2xpY2spPVwiY3JlYXRlKClcIiBpMThuPkNyZWF0ZTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component, inject } from '@angular/core';\nimport { BaseComponent } from '@rolatech/angular-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { OfferingStatus } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class OfferingManageLayoutComponent extends BaseComponent {\n offering;\n submitted = false;\n accepted = false;\n isDraft = false;\n offeringService = inject(OfferingService);\n ngOnInit() {\n this.id = this.route.snapshot.paramMap.get('id');\n this.get();\n }\n get() {\n this.offeringService.get(this.id).subscribe({\n next: (res) => {\n this.offering = res.data;\n },\n });\n }\n submit() {\n this.offeringService.submitForReview(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('Submit successfully');\n this.offering.status = OfferingStatus['Pending'];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n updateStatus() {\n this.isDraft = this.offering.status.toString() === 'DRAFT' || this.offering.status.toString() === 'PENDING';\n this.accepted = this.offering.status.toString() === 'ACCEPTED';\n }\n publish() {\n this.offeringService.publish(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('Publish successfully');\n this.offering.status = OfferingStatus['Available'];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: OfferingManageLayoutComponent, isStandalone: true, selector: \"rolatech-offering-manage-layout\", usesInheritance: true, ngImport: i0, template: \"<div class=\\\"flex flex-col md:flex-row m-auto\\\">\\n <div\\n class=\\\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-1\\\" i18n>Offering</div>\\n <a routerLink=\\\"./info\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Basic info</a>\\n <a routerLink=\\\"./media\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Media</a>\\n <a routerLink=\\\"./sections\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Details</a>\\n </div>\\n @if (offering) {\\n @if (offering.status.toString() === 'DRAFT') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"submit()\\\" i18n>Submit for review</button>\\n </div>\\n }\\n @if (offering.status.toString() === 'PENDING') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button disabled i18n>Pending</button>\\n </div>\\n }\\n @if (offering.status.toString() === 'APPROVED') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"publish()\\\" i18n>Publish</button>\\n </div>\\n }\\n }\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n</div>\\n\", styles: [\".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"], dependencies: [{ kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-layout', imports: [RouterLink, RouterLinkActive, MatButtonModule, RouterOutlet], template: \"<div class=\\\"flex flex-col md:flex-row m-auto\\\">\\n <div\\n class=\\\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\\\"\\n >\\n <div class=\\\"flex flex-row md:flex-col md:w-full\\\">\\n <div class=\\\"hidden md:flex text-xl font-bold h-14 items-center px-1\\\" i18n>Offering</div>\\n <a routerLink=\\\"./info\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Basic info</a>\\n <a routerLink=\\\"./media\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Media</a>\\n <a routerLink=\\\"./sections\\\" routerLinkActive=\\\"manage-active\\\" class=\\\"p-2\\\" i18n>Details</a>\\n </div>\\n @if (offering) {\\n @if (offering.status.toString() === 'DRAFT') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"submit()\\\" i18n>Submit for review</button>\\n </div>\\n }\\n @if (offering.status.toString() === 'PENDING') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button disabled i18n>Pending</button>\\n </div>\\n }\\n @if (offering.status.toString() === 'APPROVED') {\\n <div class=\\\"md:mt-6 md:ml-2 flex items-center\\\">\\n <button mat-flat-button (click)=\\\"publish()\\\" i18n>Publish</button>\\n </div>\\n }\\n }\\n </div>\\n <div class=\\\"w-full\\\">\\n <router-outlet></router-outlet>\\n </div>\\n</div>\\n\", styles: [\".manage-active{background-color:var(--rt-10-percent-layer, rgba(0, 0, 0, .05));box-shadow:4px 0 var(--rt-base-background-inverse, #000) inset;font-weight:600}@media (max-width: 768px){.manage-active{box-shadow:inset 0 -4px 0 0 var(--rt-base-background-inverse, #000)}}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1sYXlvdXQvb2ZmZXJpbmctbWFuYWdlLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1sYXlvdXQvb2ZmZXJpbmctbWFuYWdlLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBWSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBUS9ELE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxhQUFhO0lBQzlELFFBQVEsQ0FBWTtJQUNwQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLFFBQVE7UUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFXLENBQUM7UUFDM0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2IsQ0FBQztJQUNELEdBQUc7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN0RCxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUVqRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBd0MsQ0FBQyxDQUFDO2dCQUNoRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxTQUFTLENBQUM7UUFDNUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxVQUFVLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlDLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxXQUEwQyxDQUFDLENBQUM7Z0JBQ2xGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTdDVSw2QkFBNkI7MkZBQTdCLDZCQUE2QixrSENkMUMseThDQWdDQSxxYkR0QlksVUFBVSxvT0FBRSxnQkFBZ0IsNk1BQUUsZUFBZSxvWEFBRSxZQUFZOzsyRkFJMUQsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNFLGlDQUFpQyxXQUNsQyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2ZmZXJpbmdTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgT2ZmZXJpbmcsIE9mZmVyaW5nU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1sYXlvdXQnLFxuICBpbXBvcnRzOiBbUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSwgTWF0QnV0dG9uTW9kdWxlLCBSb3V0ZXJPdXRsZXRdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2ZmZXJpbmctbWFuYWdlLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2UtbGF5b3V0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgT2ZmZXJpbmdNYW5hZ2VMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgb2ZmZXJpbmchOiBPZmZlcmluZztcbiAgc3VibWl0dGVkID0gZmFsc2U7XG4gIGFjY2VwdGVkID0gZmFsc2U7XG4gIGlzRHJhZnQgPSBmYWxzZTtcbiAgb2ZmZXJpbmdTZXJ2aWNlID0gaW5qZWN0KE9mZmVyaW5nU2VydmljZSk7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuICBnZXQoKSB7XG4gICAgdGhpcy5vZmZlcmluZ1NlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlcmluZyA9IHJlcy5kYXRhO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5vZmZlcmluZ1NlcnZpY2Uuc3VibWl0Rm9yUmV2aWV3KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1N1Ym1pdCBzdWNjZXNzZnVsbHknKTtcblxuICAgICAgICB0aGlzLm9mZmVyaW5nLnN0YXR1cyA9IE9mZmVyaW5nU3RhdHVzWydQZW5kaW5nJyBhcyBrZXlvZiB0eXBlb2YgT2ZmZXJpbmdTdGF0dXNdO1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgdXBkYXRlU3RhdHVzKCkge1xuICAgIHRoaXMuaXNEcmFmdCA9IHRoaXMub2ZmZXJpbmcuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdEUkFGVCcgfHwgdGhpcy5vZmZlcmluZy5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ1BFTkRJTkcnO1xuICAgIHRoaXMuYWNjZXB0ZWQgPSB0aGlzLm9mZmVyaW5nLnN0YXR1cy50b1N0cmluZygpID09PSAnQUNDRVBURUQnO1xuICB9XG4gIHB1Ymxpc2goKSB7XG4gICAgdGhpcy5vZmZlcmluZ1NlcnZpY2UucHVibGlzaCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdQdWJsaXNoIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICB0aGlzLm9mZmVyaW5nLnN0YXR1cyA9IE9mZmVyaW5nU3RhdHVzWydBdmFpbGFibGUnIGFzIGtleW9mIHR5cGVvZiBPZmZlcmluZ1N0YXR1c107XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgbS1hdXRvXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1pbi13LVsyNTZweF0gcHgtMyBtZDpweC0wIGZsZXggZmxleC1yb3cgbWQ6ZmxleC1jb2wgbWQ6aC1mdWxsIGl0ZW1zLWNlbnRlciBtZDppdGVtcy1zdGFydCBoLTE2IG92ZXJmbG93LXgtc2Nyb2xsIG92ZXJmbG93LXktaGlkZGVuIHNjcm9sbGJhci1oaWRlIHdoaXRlc3BhY2UtcHJlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG1kOmZsZXgtY29sIG1kOnctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpmbGV4IHRleHQteGwgZm9udC1ib2xkIGgtMTQgaXRlbXMtY2VudGVyIHB4LTFcIiBpMThuPk9mZmVyaW5nPC9kaXY+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi9pbmZvXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+QmFzaWMgaW5mbzwvYT5cbiAgICAgIDxhIHJvdXRlckxpbms9XCIuL21lZGlhXCIgcm91dGVyTGlua0FjdGl2ZT1cIm1hbmFnZS1hY3RpdmVcIiBjbGFzcz1cInAtMlwiIGkxOG4+TWVkaWE8L2E+XG4gICAgICA8YSByb3V0ZXJMaW5rPVwiLi9zZWN0aW9uc1wiIHJvdXRlckxpbmtBY3RpdmU9XCJtYW5hZ2UtYWN0aXZlXCIgY2xhc3M9XCJwLTJcIiBpMThuPkRldGFpbHM8L2E+XG4gICAgPC9kaXY+XG4gICAgQGlmIChvZmZlcmluZykge1xuICAgICAgQGlmIChvZmZlcmluZy5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0RSQUZUJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWQ6bXQtNiBtZDptbC0yIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInN1Ym1pdCgpXCIgaTE4bj5TdWJtaXQgZm9yIHJldmlldzwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAob2ZmZXJpbmcuc3RhdHVzLnRvU3RyaW5nKCkgPT09ICdQRU5ESU5HJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWQ6bXQtNiBtZDptbC0yIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gZGlzYWJsZWQgaTE4bj5QZW5kaW5nPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChvZmZlcmluZy5zdGF0dXMudG9TdHJpbmcoKSA9PT0gJ0FQUFJPVkVEJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWQ6bXQtNiBtZDptbC0yIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInB1Ymxpc2goKVwiIGkxOG4+UHVibGlzaDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class OfferingManageContentComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.4\", type: OfferingManageContentComponent, isStandalone: true, selector: \"rolatech-offering-manage-content\", ngImport: i0, template: \"<ng-content select=\\\"rolatech-toolbar\\\"></ng-content>\\n<div class=\\\"p-3\\\">\\n <ng-content></ng-content>\\n</div>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-content', imports: [CommonModule], template: \"<ng-content select=\\\"rolatech-toolbar\\\"></ng-content>\\n<div class=\\\"p-3\\\">\\n <ng-content></ng-content>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1vZmZlcmluZy9zcmMvbGliL3BhZ2VzL29mZmVyaW5nLW1hbmFnZS9vZmZlcmluZy1tYW5hZ2UtY29udGVudC9vZmZlcmluZy1tYW5hZ2UtY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1jb250ZW50L29mZmVyaW5nLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8sOEJBQThCO3VHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4Qiw0RkNUM0MsbUhBSUEseUREQ1ksWUFBWTs7MkZBSVgsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLGtDQUFrQyxXQUNuQyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWNvbnRlbnQnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29mZmVyaW5nLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29mZmVyaW5nLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgT2ZmZXJpbmdNYW5hZ2VDb250ZW50Q29tcG9uZW50IHt9XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJyb2xhdGVjaC10b29sYmFyXCI+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cInAtM1wiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==","import { Component, inject, model } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatOptionModule } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { DecimalDirective } from '@rolatech/angular-common';\nimport { ToolbarComponent, BaseComponent } from '@rolatech/angular-components';\nimport { CategoryService, OfferingService } from '@rolatech/angular-services';\nimport { OfferingManageContentComponent } from '../offering-manage-content/offering-manage-content.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { OfferingStatus, OfferingType } from '../../../interfaces';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/material/form-field\";\nimport * as i3 from \"@angular/material/input\";\nimport * as i4 from \"@angular/cdk/text-field\";\nimport * as i5 from \"@angular/material/select\";\nimport * as i6 from \"@angular/material/button\";\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\nexport class OfferingManageInfoComponent extends BaseComponent {\n offeringService = inject(OfferingService);\n categoryService = inject(CategoryService);\n offering;\n status = OfferingStatus;\n selectedCategoyIds;\n categories;\n parentCategory;\n childrenCategories;\n selectedChildrenCategories;\n offeringType = OfferingType;\n price = model('0.00', ...(ngDevMode ? [{ debugName: \"price\" }] : []));\n originalPrice = model('0.00', ...(ngDevMode ? [{ debugName: \"originalPrice\" }] : []));\n minDate = new Date();\n ngOnInit() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n this.find();\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res) => {\n this.categories = res.data;\n },\n });\n }\n find() {\n this.offeringService.get(this.id).subscribe({\n next: (res) => {\n this.offering = res.data;\n this.parentCategory = this.offering.categories?.filter((item) => item.level === 1)[0];\n this.selectedChildrenCategories = this.offering.categories?.filter((item) => item.level === 2);\n this.findChildrenCategoryByParentId(this.parentCategory.id);\n const price = this.offering.price ? (this.offering.price / 100).toFixed(2) : '0.00';\n const originalPrice = this.offering.originalPrice ? (this.offering.originalPrice / 100).toFixed(2) : '0.00';\n this.price.set(price);\n this.originalPrice.set(originalPrice);\n },\n });\n }\n formatPrice(value) {\n // Convert to number first in case it's a string\n this.offering.price = Number(Number(value).toFixed(2));\n }\n onParentCategoryChange(event) {\n this.parentCategory.id = event.value;\n this.childrenCategories = event.value.children;\n }\n onChildCategoryChange(event) {\n this.selectedChildrenCategories = event.value;\n }\n findChildrenCategoryByParentId(parentId) {\n this.categoryService.find({ limit: 100, filter: `parent:${parentId}` }).subscribe({\n next: (res) => {\n this.childrenCategories = res.data;\n },\n });\n }\n compareParentFn(o1, o2) {\n return o1.id === o2?.id;\n }\n compareChildrenFn(o1, o2) {\n return o1.id === o2?.id;\n }\n typeCompareFn(t1, t2) {\n return t1 === t2;\n }\n priceTypeCompareFn(t1, t2) {\n return t1 === t2;\n }\n onTypeChange(event) {\n // this.offering.type = Object.keys(this.offeringType).find((key) => {\n // return this.offeringType[key] === event.value;\n // })!;\n this.offering.type = event.value;\n }\n onCategoryChange(event) {\n this.selectedCategoyIds = event.value;\n }\n update() {\n const { title, description } = this.offering;\n const data = {\n title,\n description,\n categories: this.selectedChildrenCategories,\n price: Number(this.price()) * 100,\n originalPrice: Number(this.originalPrice()) * 100,\n };\n this.offeringService.update(this.id, data).subscribe({\n next: (res) => {\n this.snackBarService.open('Update successfully');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: OfferingManageInfoComponent, isStandalone: true, selector: \"rolatech-offering-manage-info\", inputs: { price: { classPropertyName: \"price\", publicName: \"price\", isSignal: true, isRequired: false, transformFunction: null }, originalPrice: { classPropertyName: \"originalPrice\", publicName: \"originalPrice\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { price: \"priceChange\", originalPrice: \"originalPriceChange\" }, providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], usesInheritance: true, ngImport: i0, template: \"<rolatech-offering-manage-content>\\n <rolatech-toolbar title=\\\"Basic info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n @if (offering) {\\n <div class=\\\"flex flex-col\\\">\\n <form #offeringForm=\\\"ngForm\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offering.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"offering.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex gap-2\\\">\\n <mat-form-field>\\n <mat-label i18n>Level 1</mat-label>\\n <mat-select\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareParentFn\\\"\\n [(ngModel)]=\\\"parentCategory\\\"\\n (selectionChange)=\\\"onParentCategoryChange($event)\\\"\\n >\\n @for (category of categories; track category) {\\n <mat-option [value]=\\\"category\\\">{{ category.name }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"categories\\\" required>\\n <mat-label i18n>Level 2</mat-label>\\n <mat-select\\n multiple\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareChildrenFn\\\"\\n [(ngModel)]=\\\"selectedChildrenCategories\\\"\\n #select=\\\"matSelect\\\"\\n (selectionChange)=\\\"onChildCategoryChange($event)\\\"\\n >\\n @for (item of childrenCategories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Price </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"price\\\" name=\\\"price\\\" required rolatechDecimal />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Original price </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"originalPrice\\\" name=\\\"originalPrice\\\" required rolatechDecimal />\\n </mat-form-field>\\n </form>\\n </div>\\n <div>\\n <button mat-flat-button (click)=\\\"update()\\\" i18n>Save</button>\\n </div>\\n }\\n</rolatech-offering-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { 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.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1.NgModelGroup, selector: \"[ngModelGroup]\", inputs: [\"ngModelGroup\"], exportAs: [\"ngModelGroup\"] }, { kind: \"directive\", type: i1.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i2.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i2.MatLabel, selector: \"mat-label\" }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i3.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i4.CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: MatSelectModule }, { kind: \"component\", type: i5.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\", \"canSelectNullableOptions\"], outputs: [\"openedChange\", \"opened\", \"closed\", \"selectionChange\", \"valueChange\"], exportAs: [\"matSelect\"] }, { kind: \"component\", type: i5.MatOption, selector: \"mat-option\", inputs: [\"value\", \"id\", \"disabled\"], outputs: [\"onSelectionChange\"], exportAs: [\"matOption\"] }, { kind: \"ngmodule\", type: MatOptionModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i6.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: OfferingManageContentComponent, selector: \"rolatech-offering-manage-content\" }, { kind: \"directive\", type: DecimalDirective, selector: \"[rolatechDecimal]\" }, { kind: \"ngmodule\", type: MatDatepickerModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageInfoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-info', imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ToolbarComponent,\n OfferingManageContentComponent,\n DecimalDirective,\n MatSelectModule,\n MatDatepickerModule,\n ], providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ], template: \"<rolatech-offering-manage-content>\\n <rolatech-toolbar title=\\\"Basic info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n @if (offering) {\\n <div class=\\\"flex flex-col\\\">\\n <form #offeringForm=\\\"ngForm\\\">\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Title </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"offering.title\\\" name=\\\"title\\\" required />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Description </mat-label>\\n <textarea\\n matInput\\n type=\\\"text\\\"\\n [(ngModel)]=\\\"offering.description\\\"\\n name=\\\"description\\\"\\n required\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n ></textarea>\\n </mat-form-field>\\n <div class=\\\"flex gap-2\\\">\\n <mat-form-field>\\n <mat-label i18n>Level 1</mat-label>\\n <mat-select\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareParentFn\\\"\\n [(ngModel)]=\\\"parentCategory\\\"\\n (selectionChange)=\\\"onParentCategoryChange($event)\\\"\\n >\\n @for (category of categories; track category) {\\n <mat-option [value]=\\\"category\\\">{{ category.name }}</mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" ngModelGroup=\\\"categories\\\" required>\\n <mat-label i18n>Level 2</mat-label>\\n <mat-select\\n multiple\\n name=\\\"id\\\"\\n [compareWith]=\\\"compareChildrenFn\\\"\\n [(ngModel)]=\\\"selectedChildrenCategories\\\"\\n #select=\\\"matSelect\\\"\\n (selectionChange)=\\\"onChildCategoryChange($event)\\\"\\n >\\n @for (item of childrenCategories; track item) {\\n <mat-option [value]=\\\"item\\\">\\n {{ item.name }}\\n </mat-option>\\n }\\n </mat-select>\\n </mat-form-field>\\n </div>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Price </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"price\\\" name=\\\"price\\\" required rolatechDecimal />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\">\\n <mat-label i18n> Original price </mat-label>\\n <input matInput type=\\\"text\\\" [(ngModel)]=\\\"originalPrice\\\" name=\\\"originalPrice\\\" required rolatechDecimal />\\n </mat-form-field>\\n </form>\\n </div>\\n <div>\\n <button mat-flat-button (click)=\\\"update()\\\" i18n>Save</button>\\n </div>\\n }\\n</rolatech-offering-manage-content>\\n\", styles: [\"mat-form-field{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1vZmZlcmluZy9zcmMvbGliL3BhZ2VzL29mZmVyaW5nLW1hbmFnZS9vZmZlcmluZy1tYW5hZ2UtaW5mby9vZmZlcmluZy1tYW5hZ2UtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1pbmZvL29mZmVyaW5nLW1hbmFnZS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFB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O3lCQUN4Qjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO3FCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBtb2RlbCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfTE9DQUxFLCBNQVRfREFURV9GT1JNQVRTLCBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSwgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IERlY2ltYWxEaXJlY3RpdmUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgVG9vbGJhckNvbXBvbmVudCwgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlLCBPZmZlcmluZ1NlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBPZmZlcmluZ01hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9vZmZlcmluZy1tYW5hZ2UtY29udGVudC9vZmZlcmluZy1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgT2ZmZXJpbmcsIE9mZmVyaW5nU3RhdHVzLCBPZmZlcmluZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9mZmVyaW5nQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NhdGVnb3J5JztcblxuZXhwb3J0IGNvbnN0IE1ZX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnWVlZWS1NTS1ERCcsXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdZWVlZLU1NLUREJyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcbiAgICBkYXRlQTExeUxhYmVsOiAnWVlZWS1NTS1ERCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1pbmZvJyxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBUZXh0RmllbGRNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBPZmZlcmluZ01hbmFnZUNvbnRlbnRDb21wb25lbnQsXG4gICAgRGVjaW1hbERpcmVjdGl2ZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1ZX0ZPUk1BVFMgfSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29mZmVyaW5nLW1hbmFnZS1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29mZmVyaW5nLW1hbmFnZS1pbmZvLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgT2ZmZXJpbmdNYW5hZ2VJbmZvQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG9mZmVyaW5nU2VydmljZSA9IGluamVjdChPZmZlcmluZ1NlcnZpY2UpO1xuICBjYXRlZ29yeVNlcnZpY2UgPSBpbmplY3QoQ2F0ZWdvcnlTZXJ2aWNlKTtcbiAgb2ZmZXJpbmchOiBPZmZlcmluZztcbiAgc3RhdHVzID0gT2ZmZXJpbmdTdGF0dXM7XG4gIHNlbGVjdGVkQ2F0ZWdveUlkcyE6IHN0cmluZ1tdO1xuICBjYXRlZ29yaWVzITogT2ZmZXJpbmdDYXRlZ29yeVtdO1xuICBwYXJlbnRDYXRlZ29yeSE6IE9mZmVyaW5nQ2F0ZWdvcnk7XG4gIGNoaWxkcmVuQ2F0ZWdvcmllcyE6IE9mZmVyaW5nQ2F0ZWdvcnlbXTtcbiAgc2VsZWN0ZWRDaGlsZHJlbkNhdGVnb3JpZXMhOiBPZmZlcmluZ0NhdGVnb3J5W107XG4gIG9mZmVyaW5nVHlwZSA9IE9mZmVyaW5nVHlwZTtcbiAgcHJpY2UgPSBtb2RlbDxzdHJpbmc+KCcwLjAwJyk7XG4gIG9yaWdpbmFsUHJpY2UgPSBtb2RlbDxzdHJpbmc+KCcwLjAwJyk7XG4gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlkID0gdGhpcy5yb3V0ZS5wYXJlbnQ/LnNuYXBzaG90LnBhcmFtTWFwLmdldCgnaWQnKSBhcyBzdHJpbmc7XG4gICAgdGhpcy5maW5kKCk7XG4gICAgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZmluZCh7IGxpbWl0OiAxMDAsIGZpbHRlcjogJ2xldmVsOjEnIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzLmRhdGE7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGZpbmQoKSB7XG4gICAgdGhpcy5vZmZlcmluZ1NlcnZpY2UuZ2V0KHRoaXMuaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vZmZlcmluZyA9IHJlcy5kYXRhO1xuICAgICAgICB0aGlzLnBhcmVudENhdGVnb3J5ID0gdGhpcy5vZmZlcmluZy5jYXRlZ29yaWVzPy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubGV2ZWwgPT09IDEpWzBdIGFzIGFueTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoaWxkcmVuQ2F0ZWdvcmllcyA9IHRoaXMub2ZmZXJpbmcuY2F0ZWdvcmllcz8uZmlsdGVyKChpdGVtKSA9PiBpdGVtLmxldmVsID09PSAyKSBhcyBhbnk7XG4gICAgICAgIHRoaXMuZmluZENoaWxkcmVuQ2F0ZWdvcnlCeVBhcmVudElkKHRoaXMucGFyZW50Q2F0ZWdvcnkuaWQpO1xuICAgICAgICBjb25zdCBwcmljZSA9IHRoaXMub2ZmZXJpbmcucHJpY2UgPyAodGhpcy5vZmZlcmluZy5wcmljZSAvIDEwMCkudG9GaXhlZCgyKSA6ICcwLjAwJztcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxQcmljZSA9IHRoaXMub2ZmZXJpbmcub3JpZ2luYWxQcmljZSA/ICh0aGlzLm9mZmVyaW5nLm9yaWdpbmFsUHJpY2UgLyAxMDApLnRvRml4ZWQoMikgOiAnMC4wMCc7XG4gICAgICAgIHRoaXMucHJpY2Uuc2V0KHByaWNlKTtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFByaWNlLnNldChvcmlnaW5hbFByaWNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZm9ybWF0UHJpY2UodmFsdWU6IG51bWJlcikge1xuICAgIC8vIENvbnZlcnQgdG8gbnVtYmVyIGZpcnN0IGluIGNhc2UgaXQncyBhIHN0cmluZ1xuICAgIHRoaXMub2ZmZXJpbmcucHJpY2UgPSBOdW1iZXIoTnVtYmVyKHZhbHVlKS50b0ZpeGVkKDIpKTtcbiAgfVxuICBvblBhcmVudENhdGVnb3J5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnBhcmVudENhdGVnb3J5LmlkID0gZXZlbnQudmFsdWU7XG4gICAgdGhpcy5jaGlsZHJlbkNhdGVnb3JpZXMgPSBldmVudC52YWx1ZS5jaGlsZHJlbjtcbiAgfVxuICBvbkNoaWxkQ2F0ZWdvcnlDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRDaGlsZHJlbkNhdGVnb3JpZXMgPSBldmVudC52YWx1ZTtcbiAgfVxuICBmaW5kQ2hpbGRyZW5DYXRlZ29yeUJ5UGFyZW50SWQocGFyZW50SWQ6IHN0cmluZykge1xuICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmZpbmQoeyBsaW1pdDogMTAwLCBmaWx0ZXI6IGBwYXJlbnQ6JHtwYXJlbnRJZH1gIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbkNhdGVnb3JpZXMgPSByZXMuZGF0YTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY29tcGFyZVBhcmVudEZuKG8xOiBPZmZlcmluZ0NhdGVnb3J5LCBvMjogT2ZmZXJpbmdDYXRlZ29yeSkge1xuICAgIHJldHVybiBvMS5pZCA9PT0gbzI/LmlkO1xuICB9XG4gIGNvbXBhcmVDaGlsZHJlbkZuKG8xOiBPZmZlcmluZ0NhdGVnb3J5LCBvMjogT2ZmZXJpbmdDYXRlZ29yeSkge1xuICAgIHJldHVybiBvMS5pZCA9PT0gbzI/LmlkO1xuICB9XG4gIHR5cGVDb21wYXJlRm4odDE6IGFueSwgdDI6IGFueSkge1xuICAgIHJldHVybiB0MSA9PT0gdDI7XG4gIH1cbiAgcHJpY2VUeXBlQ29tcGFyZUZuKHQxOiBhbnksIHQyOiBhbnkpIHtcbiAgICByZXR1cm4gdDEgPT09IHQyO1xuICB9XG4gIG9uVHlwZUNoYW5nZShldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgLy8gdGhpcy5vZmZlcmluZy50eXBlID0gT2JqZWN0LmtleXModGhpcy5vZmZlcmluZ1R5cGUpLmZpbmQoKGtleSkgPT4ge1xuICAgIC8vICAgcmV0dXJuIHRoaXMub2ZmZXJpbmdUeXBlW2tleV0gPT09IGV2ZW50LnZhbHVlO1xuICAgIC8vIH0pITtcbiAgICB0aGlzLm9mZmVyaW5nLnR5cGUgPSBldmVudC52YWx1ZTtcbiAgfVxuICBvbkNhdGVnb3J5Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdveUlkcyA9IGV2ZW50LnZhbHVlO1xuICB9XG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCB7IHRpdGxlLCBkZXNjcmlwdGlvbiB9ID0gdGhpcy5vZmZlcmluZztcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgdGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGNhdGVnb3JpZXM6IHRoaXMuc2VsZWN0ZWRDaGlsZHJlbkNhdGVnb3JpZXMsXG4gICAgICBwcmljZTogTnVtYmVyKHRoaXMucHJpY2UoKSkgKiAxMDAsXG4gICAgICBvcmlnaW5hbFByaWNlOiBOdW1iZXIodGhpcy5vcmlnaW5hbFByaWNlKCkpICogMTAwLFxuICAgIH07XG4gICAgdGhpcy5vZmZlcmluZ1NlcnZpY2UudXBkYXRlKHRoaXMuaWQsIGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ1VwZGF0ZSBzdWNjZXNzZnVsbHknKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1jb250ZW50PlxuICA8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIkJhc2ljIGluZm9cIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICBAaWYgKG9mZmVyaW5nKSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxmb3JtICNvZmZlcmluZ0Zvcm09XCJuZ0Zvcm1cIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBUaXRsZSA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cIm9mZmVyaW5nLnRpdGxlXCIgbmFtZT1cInRpdGxlXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBEZXNjcmlwdGlvbiA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9mZmVyaW5nLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiM1wiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBpMThuPkxldmVsIDE8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgIG5hbWU9XCJpZFwiXG4gICAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlUGFyZW50Rm5cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhcmVudENhdGVnb3J5XCJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblBhcmVudENhdGVnb3J5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayBjYXRlZ29yeSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJjYXRlZ29yeVwiPnt7IGNhdGVnb3J5Lm5hbWUgfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIG5nTW9kZWxHcm91cD1cImNhdGVnb3JpZXNcIiByZXF1aXJlZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5MZXZlbCAyPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgICAgICBuYW1lPVwiaWRcIlxuICAgICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUNoaWxkcmVuRm5cIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ2hpbGRyZW5DYXRlZ29yaWVzXCJcbiAgICAgICAgICAgICAgI3NlbGVjdD1cIm1hdFNlbGVjdFwiXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25DaGlsZENhdGVnb3J5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGNoaWxkcmVuQ2F0ZWdvcmllczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbCBpMThuPiBQcmljZSA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInByaWNlXCIgbmFtZT1cInByaWNlXCIgcmVxdWlyZWQgcm9sYXRlY2hEZWNpbWFsIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gT3JpZ2luYWwgcHJpY2UgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJvcmlnaW5hbFByaWNlXCIgbmFtZT1cIm9yaWdpbmFsUHJpY2VcIiByZXF1aXJlZCByb2xhdGVjaERlY2ltYWwgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cInVwZGF0ZSgpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvcm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWNvbnRlbnQ+XG4iXX0=","import { Component, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { MediaListComponent, MediaListItemComponent, ToolbarComponent, ImagePreviewDialogComponent, ConfirmationDialogComponent, } from '@rolatech/angular-components';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { findLastIndex } from 'lodash';\nimport { OfferingStatus } from '../../../interfaces';\nimport { OfferingManageContentComponent } from '../offering-manage-content/offering-manage-content.component';\nimport * as i0 from \"@angular/core\";\nconst SIZE = 10 * 1024 * 1024; // file slice size 10MB\nexport class OfferingManageMediaComponent {\n route = inject(ActivatedRoute);\n offeringService = inject(OfferingService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n id;\n isLoading = false;\n media = [];\n status = OfferingStatus;\n // offeringType: any = OfferingType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n }\n ngOnInit() {\n this.find();\n }\n find() {\n this.offeringService.get(this.id).subscribe({\n next: (res) => {\n this.media = res.data.media || [];\n },\n });\n }\n onImageClick(i) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => { });\n }\n createFileChunk(file, size = SIZE) {\n const fileChunkList = [];\n let cur = 0;\n while (cur < file.size) {\n fileChunkList.push({ file: file.slice(cur, cur + size) });\n cur += size;\n }\n return fileChunkList;\n }\n onUploadMedia2(event) {\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.onload = (e) => { };\n const fileChunkList = this.createFileChunk(file);\n fileChunkList.forEach((item) => { });\n }\n onMultipleFilesUpload(event) {\n // const files = event.target.files;\n // if (files) {\n // Object.values(files).forEach((file, index) => {\n // this.uploadFile(file, index);\n // });\n // }\n const input = event.target;\n if (input.files && input.files.length > 0) {\n const startIndex = this.media.length; // Offset to preserve existing items\n Array.from(input.files).forEach((file, i) => {\n this.uploadFile(file, startIndex + i);\n });\n }\n }\n uploadFile(file, index) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n this.media.splice(index, 0, {\n url: '',\n alt: 'Uploading...',\n width: 0,\n height: 0,\n uploading: true,\n });\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n Object.assign(this.media[index], {\n url: img.src,\n width: img.width,\n height: img.height,\n });\n };\n img.src = reader.result;\n };\n this.offeringService.uploadMedia(this.id, formData).subscribe({\n next: (res) => {\n // Replace item at index using native splice\n // this.media.splice(index, 1, res.data);\n this.media.splice(index, 1, {\n ...res.data,\n uploading: false,\n });\n },\n error: (e) => {\n this.snackBar.open('Upload failed: ' + e.message);\n this.media.splice(index, 1); // remove failed placeholder\n },\n });\n reader.onerror = (error) => { };\n }\n onUploadMedia(event) {\n const file = event.target.files[0];\n // 5MB * 1024 * 1024 = 5242880\n // if (file?.size > 5242880) {\n // this.snackBar.open('尺寸过大, 请修改后上传');\n // return;\n // }\n if (file) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img = new Image();\n img.onload = () => {\n this.media.push({\n url: img.src,\n alt: 'upload image',\n width: img.width,\n height: img.height,\n });\n };\n img.src = reader.result; // This is the data URL\n };\n this.offeringService.uploadMedia(this.id, formData).subscribe({\n next: (res) => {\n const index = findLastIndex(this.media);\n // Replace item at index using native splice\n this.media.splice(index, 1, res.data);\n },\n error: (e) => { },\n });\n reader.onerror = (error) => { };\n }\n }\n onMediaDelete(item) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: '确定删除这张商品图片吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.offeringService.deleteMedia(this.id, item.id).subscribe({\n next: (res) => {\n this.media = this.media.filter((m) => m.id !== item.id);\n this.snackBar.open('Delete successfully');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: OfferingManageMediaComponent, isStandalone: true, selector: \"rolatech-offering-manage-media\", ngImport: i0, template: \"<rolatech-offering-manage-content>\\n <rolatech-toolbar title=\\\"Media info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n <p i18n>*Limit 5MB per image*</p>\\n <rolatech-media-list (upload)=\\\"onMultipleFilesUpload($event)\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete(item)\\\"\\n [uploading]=\\\"item.uploading\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n</rolatech-offering-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: MediaListComponent, selector: \"rolatech-media-list\", inputs: [\"isUploading\", \"media\", \"showAdd\"], outputs: [\"mediaItemClick\", \"upload\"] }, { kind: \"component\", type: MediaListItemComponent, selector: \"rolatech-media-list-item\", inputs: [\"media\", \"uploadProgress\", \"uploading\"], outputs: [\"mediaItemClick\", \"deleteMedia\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: OfferingManageContentComponent, selector: \"rolatech-offering-manage-content\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageMediaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-media', imports: [MediaListComponent, MediaListItemComponent, ToolbarComponent, OfferingManageContentComponent], template: \"<rolatech-offering-manage-content>\\n <rolatech-toolbar title=\\\"Media info\\\" class=\\\"hidden md:block\\\" divider></rolatech-toolbar>\\n <div>\\n <p i18n>*Limit 5MB per image*</p>\\n <rolatech-media-list (upload)=\\\"onMultipleFilesUpload($event)\\\">\\n @for (item of media; track item; let i = $index) {\\n <rolatech-media-list-item\\n [media]=\\\"item\\\"\\n (mediaItemClick)=\\\"onImageClick(i)\\\"\\n (deleteMedia)=\\\"onMediaDelete(item)\\\"\\n [uploading]=\\\"item.uploading\\\"\\n ></rolatech-media-list-item>\\n }\\n </rolatech-media-list>\\n </div>\\n</rolatech-offering-manage-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLW1lZGlhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItb2ZmZXJpbmcvc3JjL2xpYi9wYWdlcy9vZmZlcmluZy1tYW5hZ2Uvb2ZmZXJpbmctbWFuYWdlLW1lZGlhL29mZmVyaW5nLW1hbmFnZS1tZWRpYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1tZWRpYS9vZmZlcmluZy1tYW5hZ2UtbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLDJCQUEyQixFQUMzQiwyQkFBMkIsR0FDNUIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7O0FBQzlHLE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsdUJBQXVC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QkFBa0Isb0pBQUUsc0JBQXNCLG1LQUFFLGdCQUFnQixnSUFBRSw4QkFBOEI7OzJGQUkzRiw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsZ0NBQWdDLFdBQ2pDLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWVkaWEgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHtcbiAgTWVkaWFMaXN0Q29tcG9uZW50LFxuICBNZWRpYUxpc3RJdGVtQ29tcG9uZW50LFxuICBUb29sYmFyQ29tcG9uZW50LFxuICBJbWFnZVByZXZpZXdEaWFsb2dDb21wb25lbnQsXG4gIENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCxcbn0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBPZmZlcmluZ1NlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9mZmVyaW5nU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPZmZlcmluZ01hbmFnZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9vZmZlcmluZy1tYW5hZ2UtY29udGVudC9vZmZlcmluZy1tYW5hZ2UtY29udGVudC5jb21wb25lbnQnO1xuY29uc3QgU0laRSA9IDEwICogMTAyNCAqIDEwMjQ7IC8vIGZpbGUgc2xpY2Ugc2l6ZSAxME1CXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1tZWRpYScsXG4gIGltcG9ydHM6IFtNZWRpYUxpc3RDb21wb25lbnQsIE1lZGlhTGlzdEl0ZW1Db21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQsIE9mZmVyaW5nTWFuYWdlQ29udGVudENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2UtbWVkaWEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2ZmZXJpbmctbWFuYWdlLW1lZGlhLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgT2ZmZXJpbmdNYW5hZ2VNZWRpYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgb2ZmZXJpbmdTZXJ2aWNlID0gaW5qZWN0KE9mZmVyaW5nU2VydmljZSk7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG4gIGlkOiBzdHJpbmc7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBtZWRpYTogTWVkaWFbXSA9IFtdO1xuICBzdGF0dXMgPSBPZmZlcmluZ1N0YXR1cztcbiAgLy8gb2ZmZXJpbmdUeXBlOiBhbnkgPSBPZmZlcmluZ1R5cGU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmQoKTtcbiAgfVxuICBmaW5kKCkge1xuICAgIHRoaXMub2ZmZXJpbmdTZXJ2aWNlLmdldCh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubWVkaWEgPSByZXMuZGF0YS5tZWRpYSB8fCBbXTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25JbWFnZUNsaWNrKGk6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oSW1hZ2VQcmV2aWV3RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBtYXhXaWR0aDogJzgwdncnLFxuICAgICAgbWF4SGVpZ2h0OiAnODB2aCcsXG4gICAgICBoZWlnaHQ6ICc4MCUnLFxuICAgICAgd2lkdGg6ICc4MCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2Z1bGwtc2NyZWVuLW1vZGFsJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgbWVkaWE6IHRoaXMubWVkaWEsXG4gICAgICAgIHNlbGVjdGVkOiBpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge30pO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlRmlsZUNodW5rKGZpbGU6IGFueSwgc2l6ZSA9IFNJWkUpIHtcbiAgICBjb25zdCBmaWxlQ2h1bmtMaXN0OiBhbnkgPSBbXTtcbiAgICBsZXQgY3VyID0gMDtcbiAgICB3aGlsZSAoY3VyIDwgZmlsZS5zaXplKSB7XG4gICAgICBmaWxlQ2h1bmtMaXN0LnB1c2goeyBmaWxlOiBmaWxlLnNsaWNlKGN1ciwgY3VyICsgc2l6ZSkgfSk7XG4gICAgICBjdXIgKz0gc2l6ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVDaHVua0xpc3Q7XG4gIH1cblxuICBvblVwbG9hZE1lZGlhMihldmVudDogYW55KSB7XG4gICAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge307XG5cbiAgICBjb25zdCBmaWxlQ2h1bmtMaXN0ID0gdGhpcy5jcmVhdGVGaWxlQ2h1bmsoZmlsZSk7XG4gICAgZmlsZUNodW5rTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7fSk7XG4gIH1cbiAgb25NdWx0aXBsZUZpbGVzVXBsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICAvLyBjb25zdCBmaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcbiAgICAvLyBpZiAoZmlsZXMpIHtcbiAgICAvLyAgIE9iamVjdC52YWx1ZXMoZmlsZXMpLmZvckVhY2goKGZpbGUsIGluZGV4KSA9PiB7XG4gICAgLy8gICAgIHRoaXMudXBsb2FkRmlsZShmaWxlLCBpbmRleCk7XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoaW5wdXQuZmlsZXMgJiYgaW5wdXQuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMubWVkaWEubGVuZ3RoOyAvLyBPZmZzZXQgdG8gcHJlc2VydmUgZXhpc3RpbmcgaXRlbXNcbiAgICAgIEFycmF5LmZyb20oaW5wdXQuZmlsZXMpLmZvckVhY2goKGZpbGUsIGkpID0+IHtcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUsIHN0YXJ0SW5kZXggKyBpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIHVwbG9hZEZpbGUoZmlsZTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXG4gICAgdGhpcy5tZWRpYS5zcGxpY2UoaW5kZXgsIDAsIHtcbiAgICAgIHVybDogJycsXG4gICAgICBhbHQ6ICdVcGxvYWRpbmcuLi4nLFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICB1cGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG5cbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgaW1nOiBhbnkgPSBuZXcgSW1hZ2UoKTtcbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZWRpYVtpbmRleF0sIHtcbiAgICAgICAgICB1cmw6IGltZy5zcmMsXG4gICAgICAgICAgd2lkdGg6IGltZy53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGltZy5oZWlnaHQsXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGltZy5zcmMgPSByZWFkZXIucmVzdWx0IGFzIHN0cmluZztcbiAgICB9O1xuICAgIHRoaXMub2ZmZXJpbmdTZXJ2aWNlLnVwbG9hZE1lZGlhKHRoaXMuaWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIC8vIFJlcGxhY2UgaXRlbSBhdCBpbmRleCB1c2luZyBuYXRpdmUgc3BsaWNlXG4gICAgICAgIC8vIHRoaXMubWVkaWEuc3BsaWNlKGluZGV4LCAxLCByZXMuZGF0YSk7XG4gICAgICAgIHRoaXMubWVkaWEuc3BsaWNlKGluZGV4LCAxLCB7XG4gICAgICAgICAgLi4ucmVzLmRhdGEsXG4gICAgICAgICAgdXBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdVcGxvYWQgZmFpbGVkOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5tZWRpYS5zcGxpY2UoaW5kZXgsIDEpOyAvLyByZW1vdmUgZmFpbGVkIHBsYWNlaG9sZGVyXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7fTtcbiAgfVxuICBvblVwbG9hZE1lZGlhKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xuICAgIC8vIDVNQiAqIDEwMjQgKiAxMDI0ID0gNTI0Mjg4MFxuICAgIC8vIGlmIChmaWxlPy5zaXplID4gNTI0Mjg4MCkge1xuICAgIC8vICAgdGhpcy5zbmFja0Jhci5vcGVuKCflsLrlr7jov4flpKcsIOivt+S/ruaUueWQjuS4iuS8oCcpO1xuICAgIC8vICAgcmV0dXJuO1xuICAgIC8vIH1cblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGltZzogYW55ID0gbmV3IEltYWdlKCk7XG4gICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZWRpYS5wdXNoKHtcbiAgICAgICAgICAgIHVybDogaW1nLnNyYyxcbiAgICAgICAgICAgIGFsdDogJ3VwbG9hZCBpbWFnZScsXG4gICAgICAgICAgICB3aWR0aDogaW1nLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBpbWcuaGVpZ2h0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBpbWcuc3JjID0gcmVhZGVyLnJlc3VsdDsgLy8gVGhpcyBpcyB0aGUgZGF0YSBVUkxcbiAgICAgIH07XG4gICAgICB0aGlzLm9mZmVyaW5nU2VydmljZS51cGxvYWRNZWRpYSh0aGlzLmlkLCBmb3JtRGF0YSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBmaW5kTGFzdEluZGV4KHRoaXMubWVkaWEpO1xuICAgICAgICAgIC8vIFJlcGxhY2UgaXRlbSBhdCBpbmRleCB1c2luZyBuYXRpdmUgc3BsaWNlXG4gICAgICAgICAgdGhpcy5tZWRpYS5zcGxpY2UoaW5kZXgsIDEsIHJlcy5kYXRhKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlOiBhbnkpID0+IHt9LFxuICAgICAgfSk7XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge307XG4gICAgfVxuICB9XG4gIG9uTWVkaWFEZWxldGUoaXRlbTogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+WIoOmZpOWbvueJhycsXG4gICAgICAgIG1lc3NhZ2U6ICfnoa7lrprliKDpmaTov5nlvKDllYblk4Hlm77niYflkJc/JyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5vZmZlcmluZ1NlcnZpY2UuZGVsZXRlTWVkaWEodGhpcy5pZCwgaXRlbS5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhID0gdGhpcy5tZWRpYS5maWx0ZXIoKG0pID0+IG0uaWQgIT09IGl0ZW0uaWQpO1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdEZWxldGUgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8cm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLWNvbnRlbnQ+XG4gIDxyb2xhdGVjaC10b29sYmFyIHRpdGxlPVwiTWVkaWEgaW5mb1wiIGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCIgZGl2aWRlcj48L3JvbGF0ZWNoLXRvb2xiYXI+XG4gIDxkaXY+XG4gICAgPHAgaTE4bj4qTGltaXQgNU1CIHBlciBpbWFnZSo8L3A+XG4gICAgPHJvbGF0ZWNoLW1lZGlhLWxpc3QgKHVwbG9hZCk9XCJvbk11bHRpcGxlRmlsZXNVcGxvYWQoJGV2ZW50KVwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBtZWRpYTsgdHJhY2sgaXRlbTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPHJvbGF0ZWNoLW1lZGlhLWxpc3QtaXRlbVxuICAgICAgICAgIFttZWRpYV09XCJpdGVtXCJcbiAgICAgICAgICAobWVkaWFJdGVtQ2xpY2spPVwib25JbWFnZUNsaWNrKGkpXCJcbiAgICAgICAgICAoZGVsZXRlTWVkaWEpPVwib25NZWRpYURlbGV0ZShpdGVtKVwiXG4gICAgICAgICAgW3VwbG9hZGluZ109XCJpdGVtLnVwbG9hZGluZ1wiXG4gICAgICAgID48L3JvbGF0ZWNoLW1lZGlhLWxpc3QtaXRlbT5cbiAgICAgIH1cbiAgICA8L3JvbGF0ZWNoLW1lZGlhLWxpc3Q+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1vZmZlcmluZy1tYW5hZ2UtY29udGVudD5cbiJdfQ==","import { Component, input, output } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { first } from 'lodash';\nimport { MatMenuModule } from '@angular/material/menu';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/form-field\";\nimport * as i2 from \"@angular/material/input\";\nimport * as i3 from \"@angular/cdk/text-field\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"@angular/material/button\";\nimport * as i6 from \"@angular/material/icon\";\nimport * as i7 from \"@angular/material/menu\";\nimport * as i8 from \"@angular/material/progress-bar\";\nimport * as i9 from \"@angular/material/divider\";\nexport class OfferingManageSectionItemComponent {\n isUploading = input(...(ngDevMode ? [undefined, { debugName: \"isUploading\" }] : []));\n section = input.required(...(ngDevMode ? [{ debugName: \"section\" }] : []));\n actions = input(false, ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n selectMedia = input(...(ngDevMode ? [undefined, { debugName: \"selectMedia\" }] : []));\n upload = output();\n delete = output();\n save = output();\n deleteMedia = output();\n selectedImg;\n expanded = false;\n constructor() { }\n ngOnInit() {\n this.selectedImg = this.section().media ? this.section().media[0] : null;\n }\n onUpload(data) {\n this.upload.emit({ section: this.section(), data });\n }\n onMediaItemClick(image) {\n this.selectedImg = image;\n }\n select(item) {\n this.selectedImg = item;\n }\n deleteImage() { }\n onSave(section) {\n this.save.emit(section);\n }\n onDelete(section) {\n this.delete.emit(section);\n }\n onDeleteMedia(media) {\n this.deleteMedia.emit({ section: this.section(), media });\n this.selectedImg = this.section().media ? first(this.section().media) : null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageSectionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: OfferingManageSectionItemComponent, isStandalone: true, selector: \"rolatech-offering-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 collapsed\\\" [class.expanded]=\\\"expanded\\\">\\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 i18n>Title</mat-label>\\n <input matInput placeholder=\\\"Title\\\" i18n-placeholder [(ngModel)]=\\\"section().title\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Description</mat-label>\\n <textarea\\n matInput\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n placeholder=\\\"Description\\\"\\n [(ngModel)]=\\\"section().description\\\"\\n i18n-placeholder\\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 i18n>Delete</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())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(section())\\\" i18n>Save</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}.collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:1000px}\\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\", \"disabledInteractive\"], 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[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i5.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { 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\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageSectionItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-section-item', imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n MatProgressBarModule,\n MatDividerModule,\n ], 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 collapsed\\\" [class.expanded]=\\\"expanded\\\">\\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 i18n>Title</mat-label>\\n <input matInput placeholder=\\\"Title\\\" i18n-placeholder [(ngModel)]=\\\"section().title\\\" />\\n </mat-form-field>\\n <mat-form-field appearance=\\\"fill\\\" [hideRequiredMarker]=\\\"true\\\">\\n <mat-label i18n>Description</mat-label>\\n <textarea\\n matInput\\n cdkTextareaAutosize\\n cdkAutosizeMinRows=\\\"3\\\"\\n placeholder=\\\"Description\\\"\\n [(ngModel)]=\\\"section().description\\\"\\n i18n-placeholder\\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 i18n>Delete</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())\\\" i18n>Delete</button>\\n <button mat-flat-button class=\\\"max-h-8\\\" (click)=\\\"onSave(section())\\\" i18n>Save</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}.collapsed{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1)}.expanded{max-height:1000px}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLXNlY3Rpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvY29tcG9uZW50cy9vZmZlcmluZy1tYW5hZ2Utc2VjdGlvbi1pdGVtL29mZmVyaW5nLW1hbmFnZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1vZmZlcmluZy9zcmMvbGliL2NvbXBvbmVudHMvb2ZmZXJpbmctbWFuYWdlLXNlY3Rpb24taXRlbS9vZmZlcmluZy1tYW5hZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3RFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFXLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7OztBQWtCaEUsTUFBTSxPQUFPLGtDQUFrQztJQUM3QyxXQUFXLEdBQUcsS0FBSyxpRUFBVyxDQUFDO0lBQy9CLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxrREFBbUIsQ0FBQztJQUM1QyxPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssbURBQUMsQ0FBQztJQUNoQyxXQUFXLEdBQUcsS0FBSyxpRUFBTyxDQUFDO0lBQzNCLE1BQU0sR0FBRyxNQUFNLEVBQXVELENBQUM7SUFDdkUsTUFBTSxHQUFHLE1BQU0sRUFBbUIsQ0FBQztJQUNuQyxJQUFJLEdBQUcsTUFBTSxFQUFtQixDQUFDO0lBQ2pDLFdBQVcsR0FBRyxNQUFNLEVBQThDLENBQUM7SUFDbkUsV0FBVyxDQUFlO0lBQzFCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0UsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFTO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBUztRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFDRCxXQUFXLEtBQUksQ0FBQztJQUNoQixNQUFNLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQVk7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0UsQ0FBQzt1R0FwQ1Usa0NBQWtDOzJGQUFsQyxrQ0FBa0MsdXRCQzlCL0MsODZIQStGQSxnbEJEOUVJLGtCQUFrQiwwU0FDbEIsY0FBYyxnbUJBQ2QsV0FBVyw4bUJBQ1gsZUFBZSw4QkFDZixlQUFlLDBpQkFDZixhQUFhLG1MQUNiLGFBQWEsNnZCQUNiLG9CQUFvQix3TkFDcEIsZ0JBQWdCOzsyRkFLUCxrQ0FBa0M7a0JBaEI5QyxTQUFTOytCQUNFLHVDQUF1QyxXQUN4Qzt3QkFDUCxrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0RmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWVkaWEgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgT2ZmZXJpbmdTZWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1zZWN0aW9uLWl0ZW0nLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRleHRGaWVsZE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2Utc2VjdGlvbi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29mZmVyaW5nLW1hbmFnZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPZmZlcmluZ01hbmFnZVNlY3Rpb25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNVcGxvYWRpbmcgPSBpbnB1dDxib29sZWFuPigpO1xuICBzZWN0aW9uID0gaW5wdXQucmVxdWlyZWQ8T2ZmZXJpbmdTZWN0aW9uPigpO1xuICBhY3Rpb25zID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzZWxlY3RNZWRpYSA9IGlucHV0PGFueT4oKTtcbiAgdXBsb2FkID0gb3V0cHV0PHsgc2VjdGlvbjogT2ZmZXJpbmdTZWN0aW9uOyBkYXRhOiBGb3JtRGF0YSB8IG51bGwgfT4oKTtcbiAgZGVsZXRlID0gb3V0cHV0PE9mZmVyaW5nU2VjdGlvbj4oKTtcbiAgc2F2ZSA9IG91dHB1dDxPZmZlcmluZ1NlY3Rpb24+KCk7XG4gIGRlbGV0ZU1lZGlhID0gb3V0cHV0PHsgc2VjdGlvbjogT2ZmZXJpbmdTZWN0aW9uOyBtZWRpYTogTWVkaWEgfT4oKTtcbiAgc2VsZWN0ZWRJbWchOiBNZWRpYSB8IGFueTtcbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbWcgPSB0aGlzLnNlY3Rpb24oKS5tZWRpYSA/IHRoaXMuc2VjdGlvbigpLm1lZGlhWzBdIDogbnVsbDtcbiAgfVxuICBvblVwbG9hZChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnVwbG9hZC5lbWl0KHsgc2VjdGlvbjogdGhpcy5zZWN0aW9uKCksIGRhdGEgfSk7XG4gIH1cbiAgb25NZWRpYUl0ZW1DbGljayhpbWFnZTogTWVkaWEpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW1nID0gaW1hZ2U7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEltZyA9IGl0ZW07XG4gIH1cbiAgZGVsZXRlSW1hZ2UoKSB7fVxuICBvblNhdmUoc2VjdGlvbjogT2ZmZXJpbmdTZWN0aW9uKSB7XG4gICAgdGhpcy5zYXZlLmVtaXQoc2VjdGlvbik7XG4gIH1cbiAgb25EZWxldGUoc2VjdGlvbjogT2ZmZXJpbmdTZWN0aW9uKSB7XG4gICAgdGhpcy5kZWxldGUuZW1pdChzZWN0aW9uKTtcbiAgfVxuICBvbkRlbGV0ZU1lZGlhKG1lZGlhOiBNZWRpYSkge1xuICAgIHRoaXMuZGVsZXRlTWVkaWEuZW1pdCh7IHNlY3Rpb246IHRoaXMuc2VjdGlvbigpLCBtZWRpYSB9KTtcbiAgICB0aGlzLnNlbGVjdGVkSW1nID0gdGhpcy5zZWN0aW9uKCkubWVkaWEgPyBmaXJzdCh0aGlzLnNlY3Rpb24oKS5tZWRpYSkgOiBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHgtM1wiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJoLTE0IHB5LTMgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGN1cnNvci1wb2ludGVyXCJcbiAgICAoY2xpY2spPVwiZXhwYW5kZWQgPSAhZXhwYW5kZWQ7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInctMzIgbGluZS1jbGFtcC0xXCI+e3sgc2VjdGlvbigpLnRpdGxlIH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGluZS1jbGFtcC0xXCI+e3sgc2VjdGlvbigpLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJleHBhbmQgcm93XCIgKGNsaWNrKT1cImV4cGFuZGVkID0gIWV4cGFuZGVkOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgQGlmIChleHBhbmRlZCkge1xuICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd191cDwvbWF0LWljb24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgfVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMyB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIGNvbGxhcHNlZFwiIFtjbGFzcy5leHBhbmRlZF09XCJleHBhbmRlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGxnOmZsZXgtcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBncm93XCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5UaXRsZTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlRpdGxlXCIgaTE4bi1wbGFjZWhvbGRlciBbKG5nTW9kZWwpXT1cInNlY3Rpb24oKS50aXRsZVwiIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj5EZXNjcmlwdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlY3Rpb24oKS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBpMThuLXBsYWNlaG9sZGVyXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gbWVkaWEgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibGc6YmFzaXMtMS8yIHB4LTAgbGc6cHgtM1wiPlxuICAgICAgICBAaWYgKHNlbGVjdGVkSW1nKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jZW50ZXIgcmVsYXRpdmUgYXNwZWN0LXZpZGVvXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwib2JqZWN0LWNvbnRhaW4gdy1mdWxsXCIgW3NyY109XCJzZWxlY3RlZEltZy51cmxcIiBbYWx0XT1cInNlbGVjdGVkSW1nLmFsdFwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgei0zMCByaWdodC0wXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYmVmb3JlTWVudVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvIGZvY3VzOm91dGxpbmUtbm9uZSBob3ZlcjpiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHAtMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxtYXQtbWVudSAjYmVmb3JlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRGVsZXRlTWVkaWEoc2VsZWN0ZWRJbWcpXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBpMThuPkRlbGV0ZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBtZWRpYSAtLT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgY3Vyc29yLXBvaW50ZXIgcmVsYXRpdmUgYm94LWJvcmRlclwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCI+XG4gICAgICAgICAgICAgIEBpZiAoc2VjdGlvbigpLmlzVXBsb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGZvciAobWVkaWEgb2Ygc2VjdGlvbigpLm1lZGlhOyB0cmFjayBtZWRpYSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInRpbGUtbWVkaWFcIiAoY2xpY2spPVwib25NZWRpYUl0ZW1DbGljayhtZWRpYSlcIiBbc3JjXT1cIm1lZGlhLnVybFwiIFthbHRdPVwibWVkaWEuYWx0XCIgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgKGNoYW5nZSk9XCJvblVwbG9hZCgkZXZlbnQpXCIgI2ZpbGVJbnB1dCAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZC1idXR0b25cIj5cbiAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBjbGFzcz1cInRpbGUtbWVkaWEgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCI0OHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCI0OHB4XCIgZmlsbD1cIiM1ZjYzNjhcIj5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNDQ0LTQ0NEgyNDB2LTcyaDIwNHYtMjA0aDcydjIwNGgyMDR2NzJINTE2djIwNGgtNzJ2LTIwNFpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIEBpZiAoYWN0aW9ucygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBwLTMgZ2FwLTNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwibWF4LWgtOFwiIChjbGljayk9XCJvbkRlbGV0ZShzZWN0aW9uKCkpXCIgaTE4bj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY2xhc3M9XCJtYXgtaC04XCIgKGNsaWNrKT1cIm9uU2F2ZShzZWN0aW9uKCkpXCIgaTE4bj5TYXZlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuIl19","import { Component, inject } from '@angular/core';\nimport { OfferingStatus, OfferingType } from '../../../interfaces/offering';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { ConfirmationDialogComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { remove } from 'lodash';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { OfferingManageContentComponent } from '../offering-manage-content/offering-manage-content.component';\nimport { OfferingManageSectionItemComponent } from '../../../components/offering-manage-section-item/offering-manage-section-item.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/icon\";\nexport class OfferingManageSectionsComponent {\n route = inject(ActivatedRoute);\n offeringService = inject(OfferingService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n id;\n isLoading = false;\n isUploading = false;\n sections = [];\n status = OfferingStatus;\n offeringType = OfferingType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id');\n }\n ngOnInit() {\n this.find();\n }\n find() {\n this.offeringService.findSections(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.sections = res.data;\n }\n },\n });\n }\n addSection() {\n if (!this.sections) {\n this.sections = [];\n }\n this.offeringService\n .addSection(this.id, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res) => {\n const section = res.data;\n this.sections.push({\n id: section.id,\n title: 'Untitled',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onUploadSectionMedia(event) {\n const section = event.section;\n const sectionId = section.id;\n const file = event.data.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (!section.media) {\n section.media = [];\n }\n section.media.push({\n url: reader.result,\n alt: 'upload image',\n });\n section.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n this.offeringService.uploadSectionMedia(sectionId, formData).subscribe({\n next: (res) => {\n this.isUploading = false;\n section.isUploading = false;\n delete res.data.offeringSection;\n section.media[section.media.length - 1].id = res.data.id;\n section.media[section.media.length - 1].url = res.data.url;\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBar.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n onDeleteSectionMedia(event) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: `确定删除吗?`,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const section = event.section;\n const mediaId = event.media.id;\n remove(section.media, {\n id: mediaId,\n });\n this.offeringService.deleteSectionMedia(section.id, mediaId).subscribe({\n next: (res) => {\n // remove(section.media, {\n // id: mediaId,\n // });\n },\n });\n }\n });\n }\n onSectionSave(section) {\n delete section.isUploading;\n this.offeringService.updateSection(section.id, section).subscribe({\n next: (res) => {\n this.snackBar.open('Success');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onSectionDelete(section) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除详情',\n message: '确定删除此详情吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.offeringService.deleteSection(section.id).subscribe({\n next: (res) => {\n this.snackBar.open(res.data);\n remove(this.sections, {\n id: section.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: OfferingManageSectionsComponent, isStandalone: true, selector: \"rolatech-offering-manage-sections\", ngImport: i0, template: \"<rolatech-offering-manage-content>\\n <rolatech-toolbar title=\\\"Details\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (section of sections; track section) {\\n <rolatech-offering-manage-section-item\\n [section]=\\\"section\\\"\\n (upload)=\\\"onUploadSectionMedia($event)\\\"\\n (deleteMedia)=\\\"onDeleteSectionMedia($event)\\\"\\n (save)=\\\"onSectionSave($event)\\\"\\n (delete)=\\\"onSectionDelete($event)\\\"\\n [actions]=\\\"true\\\"\\n ></rolatech-offering-manage-section-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addSection()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add</span>\\n </button>\\n </div>\\n</rolatech-offering-manage-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"component\", type: OfferingManageContentComponent, selector: \"rolatech-offering-manage-content\" }, { kind: \"component\", type: OfferingManageSectionItemComponent, selector: \"rolatech-offering-manage-section-item\", inputs: [\"isUploading\", \"section\", \"actions\", \"selectMedia\"], outputs: [\"upload\", \"delete\", \"save\", \"deleteMedia\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: OfferingManageSectionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'rolatech-offering-manage-sections', imports: [\n MatButtonModule,\n MatIconModule,\n ToolbarComponent,\n OfferingManageContentComponent,\n OfferingManageSectionItemComponent,\n ], template: \"<rolatech-offering-manage-content>\\n <rolatech-toolbar title=\\\"Details\\\" class=\\\"hidden md:block\\\" divider> </rolatech-toolbar>\\n <div>\\n <div>\\n @for (section of sections; track section) {\\n <rolatech-offering-manage-section-item\\n [section]=\\\"section\\\"\\n (upload)=\\\"onUploadSectionMedia($event)\\\"\\n (deleteMedia)=\\\"onDeleteSectionMedia($event)\\\"\\n (save)=\\\"onSectionSave($event)\\\"\\n (delete)=\\\"onSectionDelete($event)\\\"\\n [actions]=\\\"true\\\"\\n ></rolatech-offering-manage-section-item>\\n }\\n </div>\\n <button mat-stroked-button (click)=\\\"addSection()\\\" class=\\\"mt-3\\\">\\n <mat-icon>add</mat-icon>\\n <span i18n>Add</span>\\n </button>\\n </div>\\n</rolatech-offering-manage-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuYWdlLXNlY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItb2ZmZXJpbmcvc3JjL2xpYi9wYWdlcy9vZmZlcmluZy1tYW5hZ2Uvb2ZmZXJpbmctbWFuYWdlLXNlY3Rpb25zL29mZmVyaW5nLW1hbmFnZS1zZWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLW9mZmVyaW5nL3NyYy9saWIvcGFnZXMvb2ZmZXJpbmctbWFuYWdlL29mZmVyaW5nLW1hbmFnZS1zZWN0aW9ucy9vZmZlcmluZy1tYW5hZ2Utc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFtQixjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFB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LENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNoQyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBdkpVLCtCQUErQjsyRkFBL0IsK0JBQStCLDZGQ3pCNUMsaXhCQXFCQSx5RERMSSxlQUFlLG1YQUNmLGFBQWEsb0xBQ2IsZ0JBQWdCLGdJQUNoQiw4QkFBOEIsNkVBQzlCLGtDQUFrQzs7MkZBS3pCLCtCQUErQjtrQkFaM0MsU0FBUzsrQkFDRSxtQ0FBbUMsV0FDcEM7d0JBQ1AsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsOEJBQThCO3dCQUM5QixrQ0FBa0M7cUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2ZmZXJpbmdTZWN0aW9uLCBPZmZlcmluZ1N0YXR1cywgT2ZmZXJpbmdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9vZmZlcmluZyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyByZW1vdmUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgT2ZmZXJpbmdTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE9mZmVyaW5nTWFuYWdlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL29mZmVyaW5nLW1hbmFnZS1jb250ZW50L29mZmVyaW5nLW1hbmFnZS1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPZmZlcmluZ01hbmFnZVNlY3Rpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9vZmZlcmluZy1tYW5hZ2Utc2VjdGlvbi1pdGVtL29mZmVyaW5nLW1hbmFnZS1zZWN0aW9uLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLXNlY3Rpb25zJyxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgT2ZmZXJpbmdNYW5hZ2VDb250ZW50Q29tcG9uZW50LFxuICAgIE9mZmVyaW5nTWFuYWdlU2VjdGlvbkl0ZW1Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vZmZlcmluZy1tYW5hZ2Utc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2ZmZXJpbmctbWFuYWdlLXNlY3Rpb25zLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgT2ZmZXJpbmdNYW5hZ2VTZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgb2ZmZXJpbmdTZXJ2aWNlID0gaW5qZWN0KE9mZmVyaW5nU2VydmljZSk7XG4gIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG5cbiAgaWQ6IHN0cmluZztcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIGlzVXBsb2FkaW5nID0gZmFsc2U7XG4gIHNlY3Rpb25zOiBPZmZlcmluZ1NlY3Rpb25bXSA9IFtdO1xuICBzdGF0dXMgPSBPZmZlcmluZ1N0YXR1cztcbiAgb2ZmZXJpbmdUeXBlOiBhbnkgPSBPZmZlcmluZ1R5cGU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB0aGlzLnJvdXRlLnBhcmVudD8uc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmQoKTtcbiAgfVxuICBmaW5kKCkge1xuICAgIHRoaXMub2ZmZXJpbmdTZXJ2aWNlLmZpbmRTZWN0aW9ucyh0aGlzLmlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzLmRhdGEpIHtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25zID0gcmVzLmRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgYWRkU2VjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuc2VjdGlvbnMpIHtcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5vZmZlcmluZ1NlcnZpY2VcbiAgICAgIC5hZGRTZWN0aW9uKHRoaXMuaWQsIHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICBtZWRpYTogW10sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSByZXMuZGF0YTtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgaWQ6IHNlY3Rpb24uaWQsXG4gICAgICAgICAgICB0aXRsZTogJ1VudGl0bGVkJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICAgICAgbWVkaWE6IFtdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG4gIG9uVXBsb2FkU2VjdGlvbk1lZGlhKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWN0aW9uID0gZXZlbnQuc2VjdGlvbjtcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBzZWN0aW9uLmlkO1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhLnRhcmdldC5maWxlc1swXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgaWYgKCFzZWN0aW9uLm1lZGlhKSB7XG4gICAgICAgICAgc2VjdGlvbi5tZWRpYSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIChzZWN0aW9uLm1lZGlhIGFzIGFueSkucHVzaCh7XG4gICAgICAgICAgdXJsOiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgIGFsdDogJ3VwbG9hZCBpbWFnZScsXG4gICAgICAgIH0pO1xuICAgICAgICBzZWN0aW9uLmlzVXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgICAgIHRoaXMub2ZmZXJpbmdTZXJ2aWNlLnVwbG9hZFNlY3Rpb25NZWRpYShzZWN0aW9uSWQsIGZvcm1EYXRhKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgc2VjdGlvbi5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgZGVsZXRlIHJlcy5kYXRhLm9mZmVyaW5nU2VjdGlvbjtcbiAgICAgICAgICAgIHNlY3Rpb24ubWVkaWFbc2VjdGlvbi5tZWRpYS5sZW5ndGggLSAxXS5pZCA9IHJlcy5kYXRhLmlkO1xuICAgICAgICAgICAgc2VjdGlvbi5tZWRpYVtzZWN0aW9uLm1lZGlhLmxlbmd0aCAtIDFdLnVybCA9IHJlcy5kYXRhLnVybDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdVcGxvYWQgZmFpbGVkOiAnICsgZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBvbkRlbGV0ZVNlY3Rpb25NZWRpYShldmVudDogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogJ+WIoOmZpOWbvueJhycsXG4gICAgICAgIG1lc3NhZ2U6IGDnoa7lrprliKDpmaTlkJc/YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjb25zdCBzZWN0aW9uID0gZXZlbnQuc2VjdGlvbjtcbiAgICAgICAgY29uc3QgbWVkaWFJZCA9IGV2ZW50Lm1lZGlhLmlkO1xuICAgICAgICByZW1vdmUoc2VjdGlvbi5tZWRpYSwge1xuICAgICAgICAgIGlkOiBtZWRpYUlkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vZmZlcmluZ1NlcnZpY2UuZGVsZXRlU2VjdGlvbk1lZGlhKHNlY3Rpb24uaWQsIG1lZGlhSWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAvLyByZW1vdmUoc2VjdGlvbi5tZWRpYSwge1xuICAgICAgICAgICAgLy8gICBpZDogbWVkaWFJZCxcbiAgICAgICAgICAgIC8vIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG9uU2VjdGlvblNhdmUoc2VjdGlvbjogT2ZmZXJpbmdTZWN0aW9uKSB7XG4gICAgZGVsZXRlIHNlY3Rpb24uaXNVcGxvYWRpbmc7XG4gICAgdGhpcy5vZmZlcmluZ1NlcnZpY2UudXBkYXRlU2VjdGlvbihzZWN0aW9uLmlkLCBzZWN0aW9uKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignU3VjY2VzcycpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgb25TZWN0aW9uRGVsZXRlKHNlY3Rpb246IE9mZmVyaW5nU2VjdGlvbikge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICfliKDpmaTor6bmg4UnLFxuICAgICAgICBtZXNzYWdlOiAn56Gu5a6a5Yig6Zmk5q2k6K+m5oOF5ZCXPycsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMub2ZmZXJpbmdTZXJ2aWNlLmRlbGV0ZVNlY3Rpb24oc2VjdGlvbi5pZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihyZXMuZGF0YSk7XG4gICAgICAgICAgICByZW1vdmUodGhpcy5zZWN0aW9ucywge1xuICAgICAgICAgICAgICBpZDogc2VjdGlvbi5pZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oZS5tZXNzYWdlKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1jb250ZW50PlxuICA8cm9sYXRlY2gtdG9vbGJhciB0aXRsZT1cIkRldGFpbHNcIiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiIGRpdmlkZXI+IDwvcm9sYXRlY2gtdG9vbGJhcj5cbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgQGZvciAoc2VjdGlvbiBvZiBzZWN0aW9uczsgdHJhY2sgc2VjdGlvbikge1xuICAgICAgICA8cm9sYXRlY2gtb2ZmZXJpbmctbWFuYWdlLXNlY3Rpb24taXRlbVxuICAgICAgICAgIFtzZWN0aW9uXT1cInNlY3Rpb25cIlxuICAgICAgICAgICh1cGxvYWQpPVwib25VcGxvYWRTZWN0aW9uTWVkaWEoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZU1lZGlhKT1cIm9uRGVsZXRlU2VjdGlvbk1lZGlhKCRldmVudClcIlxuICAgICAgICAgIChzYXZlKT1cIm9uU2VjdGlvblNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgKGRlbGV0ZSk9XCJvblNlY3Rpb25EZWxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgW2FjdGlvbnNdPVwidHJ1ZVwiXG4gICAgICAgID48L3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1zZWN0aW9uLWl0ZW0+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImFkZFNlY3Rpb24oKVwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICA8c3BhbiBpMThuPkFkZDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3JvbGF0ZWNoLW9mZmVyaW5nLW1hbmFnZS1jb250ZW50PlxuIl19","import { OfferingManageIndexComponent } from './offering-manage-index/offering-manage-index.component';\nimport { OfferingManageCreateComponent } from './offering-manage-create/offering-manage-create.component';\nimport { OfferingManageLayoutComponent } from './offering-manage-layout/offering-manage-layout.component';\nimport { OfferingManageInfoComponent } from './offering-manage-info/offering-manage-info.component';\nimport { OfferingManageMediaComponent } from './offering-manage-media/offering-manage-media.component';\nimport { OfferingManageSectionsComponent } from './offering-manage-sections/offering-manage-sections.component';\nexport const offeringManageRoutes = [\n {\n path: '',\n component: OfferingManageIndexComponent,\n },\n {\n path: 'create',\n component: OfferingManageCreateComponent,\n },\n {\n path: ':id/manage',\n component: OfferingManageLayoutComponent,\n children: [\n {\n path: 'info',\n component: OfferingManageInfoComponent,\n },\n {\n path: 'media',\n component: OfferingManageMediaComponent,\n },\n {\n path: 'sections',\n component: OfferingManageSectionsComponent,\n },\n ],\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmZXJpbmctbWFuZ2Uucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1vZmZlcmluZy9zcmMvbGliL3BhZ2VzL29mZmVyaW5nLW1hbmFnZS9vZmZlcmluZy1tYW5nZS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDaEgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQVc7SUFDMUM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSw0QkFBNEI7S0FDeEM7SUFDRDtRQUNFLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLDZCQUE2QjtLQUN6QztJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsU0FBUyxFQUFFLDZCQUE2QjtRQUN4QyxRQUFRLEVBQUU7WUFDUjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixTQUFTLEVBQUUsMkJBQTJCO2FBQ3ZDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsU0FBUyxFQUFFLDRCQUE0QjthQUN4QztZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsK0JBQStCO2FBQzNDO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2ZmZXJpbmdNYW5hZ2VJbmRleENvbXBvbmVudCB9IGZyb20gJy4vb2ZmZXJpbmctbWFuYWdlLWluZGV4L29mZmVyaW5nLW1hbmFnZS1pbmRleC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2ZmZXJpbmdNYW5hZ2VDcmVhdGVDb21wb25lbnQgfSBmcm9tICcuL29mZmVyaW5nLW1hbmFnZS1jcmVhdGUvb2ZmZXJpbmctbWFuYWdlLWNyZWF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2ZmZXJpbmdNYW5hZ2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL29mZmVyaW5nLW1hbmFnZS1sYXlvdXQvb2ZmZXJpbmctbWFuYWdlLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2ZmZXJpbmdNYW5hZ2VJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9vZmZlcmluZy1tYW5hZ2UtaW5mby9vZmZlcmluZy1tYW5hZ2UtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2ZmZXJpbmdNYW5hZ2VNZWRpYUNvbXBvbmVudCB9IGZyb20gJy4vb2ZmZXJpbmctbWFuYWdlLW1lZGlhL29mZmVyaW5nLW1hbmFnZS1tZWRpYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2ZmZXJpbmdNYW5hZ2VTZWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vb2ZmZXJpbmctbWFuYWdlLXNlY3Rpb25zL29mZmVyaW5nLW1hbmFnZS1zZWN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0IGNvbnN0IG9mZmVyaW5nTWFuYWdlUm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IE9mZmVyaW5nTWFuYWdlSW5kZXhDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnY3JlYXRlJyxcbiAgICBjb21wb25lbnQ6IE9mZmVyaW5nTWFuYWdlQ3JlYXRlQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJzppZC9tYW5hZ2UnLFxuICAgIGNvbXBvbmVudDogT2ZmZXJpbmdNYW5hZ2VMYXlvdXRDb21wb25lbnQsXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2luZm8nLFxuICAgICAgICBjb21wb25lbnQ6IE9mZmVyaW5nTWFuYWdlSW5mb0NvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdtZWRpYScsXG4gICAgICAgIGNvbXBvbmVudDogT2ZmZXJpbmdNYW5hZ2VNZWRpYUNvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdzZWN0aW9ucycsXG4gICAgICAgIGNvbXBvbmVudDogT2ZmZXJpbmdNYW5hZ2VTZWN0aW9uc0NvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbl07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sYXRlY2gtYW5ndWxhci1vZmZlcmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItb2ZmZXJpbmcvc3JjL3JvbGF0ZWNoLWFuZ3VsYXItb2ZmZXJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","i2","i5","i6","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rolatech-angular-offering.mjs","sources":["../../../../packages/angular-offering/src/lib/interfaces/offering.ts","../../../../packages/angular-offering/src/lib/components/offering-manage-item/offering-manage-item.component.ts","../../../../packages/angular-offering/src/lib/components/offering-manage-item/offering-manage-item.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-index/offering-manage-index.component.ts","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-index/offering-manage-index.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-create/offering-manage-create.component.ts","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-create/offering-manage-create.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-layout/offering-manage-layout.component.ts","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-layout/offering-manage-layout.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-content/offering-manage-content.component.ts","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-content/offering-manage-content.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-info/offering-manage-info.component.ts","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-info/offering-manage-info.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-media/offering-manage-media.component.ts","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-media/offering-manage-media.component.html","../../../../packages/angular-offering/src/lib/components/offering-manage-section-item/offering-manage-section-item.component.ts","../../../../packages/angular-offering/src/lib/components/offering-manage-section-item/offering-manage-section-item.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-sections/offering-manage-sections.component.ts","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-manage-sections/offering-manage-sections.component.html","../../../../packages/angular-offering/src/lib/pages/offering-manage/offering-mange.routes.ts","../../../../packages/angular-offering/src/rolatech-angular-offering.ts"],"sourcesContent":["import { OfferingCategory } from './category';\n\nexport interface Offering {\n id: string;\n title: string;\n description: string;\n categories: OfferingCategory[];\n media: OfferingMedia[];\n status: OfferingStatus;\n type: OfferingType | string;\n sections: OfferingSection[];\n price: number;\n originalPrice: number;\n userId: string;\n createdAt: string;\n updatedAt: string;\n}\nexport interface OfferingMedia {\n id: string;\n url: string;\n alt: string;\n width: number;\n height: number;\n uuid: string;\n selected: boolean;\n}\nexport interface OfferingSection {\n id: string;\n title: string;\n description: string;\n content: string;\n media: OfferingMedia[];\n isUploading?: boolean;\n}\nexport enum OfferingStatus {\n DRAFT = <any>'Draft',\n PENDING = <any>'Pending',\n APPROVED = <any>'Approved',\n REJECTED = <any>'Rejected',\n AVAILABLE = <any>'Available',\n SOLD = <any>'Sold',\n RENTED = <any>'Rented',\n DELETED = <any>'Deleted',\n ARCHIVED = <any>'Archived',\n}\nexport enum OfferingType {\n VISIA = 'Visa',\n PROPERTY = 'Property',\n}\n","import { booleanAttribute, Component, effect, ElementRef, HostBinding, inject, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { FixedPipe } from '@rolatech/angular-common';\nimport { ThumbnailComponent, ImagePlaceholderComponent } from '@rolatech/angular-components';\nimport { Offering, OfferingStatus } from '../../interfaces/offering';\n\n@Component({\n selector: 'rolatech-offering-manage-item',\n imports: [CommonModule, ThumbnailComponent, ImagePlaceholderComponent, MatButtonModule, MatMenuModule, FixedPipe],\n templateUrl: './offering-manage-item.component.html',\n styleUrl: './offering-manage-item.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class OfferingManageItemComponent {\n @HostBinding('class.rolatech-offering-manage-item') hasClass = true;\n el = inject(ElementRef);\n offering = input.required<Offering>();\n thumbnail = input();\n status = OfferingStatus;\n list = input(false, { transform: booleanAttribute });\n constructor() {\n effect(() => {\n if (this.list()) {\n this.el.nativeElement.setAttribute('list', '');\n } else {\n this.el.nativeElement.removeAttribute('list', '');\n }\n });\n }\n publish() {}\n archived() {}\n delete() {}\n}\n","<div\n class=\"flex p-3 bg-[--rt-raised-background] hover:bg-[--rt-raised-background] cursor-pointer rounded-md\"\n [ngClass]=\"list() ? 'w-full flex-row' : 'flex-col h-full'\"\n>\n <div>\n @if (offering().media) {\n <div class=\"object-cover aspect-video rounded-lg\" [ngClass]=\"list() ? 'w-32 mr-3' : ''\">\n @defer (on viewport()) {\n <rolatech-thumbnail [src]=\"offering().media ? offering().media[0].url : ''\" size=\"medium\" mode=\"full\">\n </rolatech-thumbnail>\n } @placeholder {\n <div class=\"bg-[--rt-raised-background] h-full w-full object-cover aspect-video rounded-lg\"></div>\n }\n </div>\n } @else {\n <div class=\"object-cover aspect-video rounded-lg\" [ngClass]=\"list() ? 'w-32 mr-3' : ''\">\n <rolatech-image-placeholder></rolatech-image-placeholder>\n </div>\n }\n </div>\n\n <div class=\"py-2\">\n <div class=\"text-lg font-bold\">\n {{ offering().title }}\n </div>\n </div>\n <div class=\"flex-1\"></div>\n <div class=\"\">¥{{ offering().price | fixed }}</div>\n</div>\n","import { Component, HostBinding, inject, OnInit, viewChild, ViewEncapsulation } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { Offering } from '../../../interfaces/offering';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatDialog } from '@angular/material/dialog';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { OfferingManageItemComponent } from '../../../components/offering-manage-item/offering-manage-item.component';\nimport { SpinnerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTableModule } from '@angular/material/table';\n\n@Component({\n selector: 'rolatech-offering-manage-index',\n imports: [\n MatButtonModule,\n RouterLink,\n MatIconModule,\n MatTableModule,\n MatMenuModule,\n MatPaginatorModule,\n ToolbarComponent,\n SpinnerComponent,\n OfferingManageItemComponent,\n ],\n templateUrl: './offering-manage-index.component.html',\n styleUrl: './offering-manage-index.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class OfferingManageIndexComponent implements OnInit {\n @HostBinding('class.rolatech-offering-manage-index') hasClass = true;\n paginator = viewChild(MatPaginator);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n offeringService = inject(OfferingService);\n isLoading = false;\n isSearch = false;\n offerings: Offering[] = [];\n\n ngOnInit(): void {\n this.findProperties();\n }\n findProperties() {\n this.offeringService.find({}).subscribe({\n next: (res: any) => {\n this.offerings = res.data;\n },\n });\n }\n}\n","<rolatech-toolbar title=\"Services\">\n <div class=\"flex items-center gap-2\">\n <button mat-flat-button routerLink=\"./create\">\n <mat-icon>add</mat-icon>\n <span i18n>Add service</span>\n </button>\n </div>\n</rolatech-toolbar>\n@if (isLoading) {\n <div class=\"flex justify-center items-center\">\n <rolatech-spinner></rolatech-spinner>\n </div>\n} @else {\n <div class=\"bg-[--rt-rasised-background] h-full\">\n <!-- <rolatech-offering-manage-filter></rolatech-offering-manage-filter> -->\n <div class=\"flex flex-wrap p-3 gap-3\">\n @for (item of offerings; track $index) {\n <rolatech-offering-manage-item\n list\n [offering]=\"item\"\n routerLink=\"./{{ item.id }}/manage/info\"\n ></rolatech-offering-manage-item>\n }\n </div>\n </div>\n\n <!-- <mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"pageEvent = find($event)\"\n hidePageSize\n showFirstLastButtons\n >\n </mat-paginator> -->\n}\n","import { Component, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ToolbarComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-offering-manage-create',\n imports: [\n ToolbarComponent,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ],\n templateUrl: './offering-manage-create.component.html',\n styleUrl: './offering-manage-create.component.scss',\n})\nexport class OfferingManageCreateComponent {\n private offeringService = inject(OfferingService);\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private snackBar = inject(MatSnackBar);\n offering: any = {};\n create() {\n const data = {\n ...this.offering,\n };\n this.offeringService.create(data).subscribe({\n next: (res) => {\n this.router.navigate([`../${res.data.id}/manage/info`], {\n relativeTo: this.route,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n}\n","<rolatech-toolbar title=\"Add offering\" link=\"../\"> </rolatech-toolbar>\n<div class=\"p-3\">\n <section>\n <form #productForm=\"ngForm\">\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Title </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"offering.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Description </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"offering.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n </div>\n </form>\n </section>\n <div i18n>* items are required</div>\n <div class=\"mt-3\">\n <button mat-flat-button class=\"w-28\" (click)=\"create()\" i18n>Create</button>\n </div>\n</div>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BaseComponent } from '@rolatech/angular-components';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { Offering, OfferingStatus } from '../../../interfaces';\n\n@Component({\n selector: 'rolatech-offering-manage-layout',\n imports: [RouterLink, RouterLinkActive, MatButtonModule, RouterOutlet],\n templateUrl: './offering-manage-layout.component.html',\n styleUrl: './offering-manage-layout.component.scss',\n})\nexport class OfferingManageLayoutComponent extends BaseComponent implements OnInit {\n offering!: Offering;\n submitted = false;\n accepted = false;\n isDraft = false;\n offeringService = inject(OfferingService);\n ngOnInit(): void {\n this.id = this.route.snapshot.paramMap.get('id') as string;\n this.get();\n }\n get() {\n this.offeringService.get(this.id).subscribe({\n next: (res: any) => {\n this.offering = res.data;\n },\n });\n }\n submit() {\n this.offeringService.submitForReview(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('Submit successfully');\n\n this.offering.status = OfferingStatus['Pending' as keyof typeof OfferingStatus];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n updateStatus() {\n this.isDraft = this.offering.status.toString() === 'DRAFT' || this.offering.status.toString() === 'PENDING';\n this.accepted = this.offering.status.toString() === 'ACCEPTED';\n }\n publish() {\n this.offeringService.publish(this.id).subscribe({\n next: (res) => {\n this.snackBarService.open('Publish successfully');\n this.offering.status = OfferingStatus['Available' as keyof typeof OfferingStatus];\n this.updateStatus();\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n}\n","<div class=\"flex flex-col md:flex-row m-auto\">\n <div\n class=\"min-w-[256px] px-3 md:px-0 flex flex-row md:flex-col md:h-full items-center md:items-start h-16 overflow-x-scroll overflow-y-hidden scrollbar-hide whitespace-pre\"\n >\n <div class=\"flex flex-row md:flex-col md:w-full\">\n <div class=\"hidden md:flex text-xl font-bold h-14 items-center px-1\" i18n>Offering</div>\n <a routerLink=\"./info\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Basic info</a>\n <a routerLink=\"./media\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Media</a>\n <a routerLink=\"./sections\" routerLinkActive=\"manage-active\" class=\"p-2\" i18n>Details</a>\n </div>\n @if (offering) {\n @if (offering.status.toString() === 'DRAFT') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button (click)=\"submit()\" i18n>Submit for review</button>\n </div>\n }\n @if (offering.status.toString() === 'PENDING') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button disabled i18n>Pending</button>\n </div>\n }\n @if (offering.status.toString() === 'APPROVED') {\n <div class=\"md:mt-6 md:ml-2 flex items-center\">\n <button mat-flat-button (click)=\"publish()\" i18n>Publish</button>\n </div>\n }\n }\n </div>\n <div class=\"w-full\">\n <router-outlet></router-outlet>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-offering-manage-content',\n imports: [CommonModule],\n templateUrl: './offering-manage-content.component.html',\n styleUrl: './offering-manage-content.component.scss',\n})\nexport class OfferingManageContentComponent {}\n","<ng-content select=\"rolatech-toolbar\"></ng-content>\n<div class=\"p-3\">\n <ng-content></ng-content>\n</div>\n","import { Component, inject, model, OnInit } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, MatOptionModule } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule, MatSelectChange } from '@angular/material/select';\nimport { DecimalDirective } from '@rolatech/angular-common';\nimport { ToolbarComponent, BaseComponent } from '@rolatech/angular-components';\nimport { CategoryService, OfferingService } from '@rolatech/angular-services';\nimport { OfferingManageContentComponent } from '../offering-manage-content/offering-manage-content.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { Offering, OfferingStatus, OfferingType } from '../../../interfaces';\nimport { OfferingCategory } from '../../../interfaces/category';\n\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'YYYY-MM-DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'YYYY-MM-DD',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n selector: 'rolatech-offering-manage-info',\n imports: [\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n TextFieldModule,\n MatSelectModule,\n MatOptionModule,\n MatButtonModule,\n ToolbarComponent,\n OfferingManageContentComponent,\n DecimalDirective,\n MatSelectModule,\n MatDatepickerModule,\n ],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ],\n templateUrl: './offering-manage-info.component.html',\n styleUrl: './offering-manage-info.component.scss',\n})\nexport class OfferingManageInfoComponent extends BaseComponent implements OnInit {\n offeringService = inject(OfferingService);\n categoryService = inject(CategoryService);\n offering!: Offering;\n status = OfferingStatus;\n selectedCategoyIds!: string[];\n categories!: OfferingCategory[];\n parentCategory!: OfferingCategory;\n childrenCategories!: OfferingCategory[];\n selectedChildrenCategories!: OfferingCategory[];\n offeringType = OfferingType;\n price = model<string>('0.00');\n originalPrice = model<string>('0.00');\n minDate = new Date();\n ngOnInit(): void {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n this.find();\n this.categoryService.find({ limit: 100, filter: 'level:1' }).subscribe({\n next: (res: any) => {\n this.categories = res.data;\n },\n });\n }\n find() {\n this.offeringService.get(this.id).subscribe({\n next: (res: any) => {\n this.offering = res.data;\n this.parentCategory = this.offering.categories?.filter((item) => item.level === 1)[0] as any;\n this.selectedChildrenCategories = this.offering.categories?.filter((item) => item.level === 2) as any;\n this.findChildrenCategoryByParentId(this.parentCategory.id);\n const price = this.offering.price ? (this.offering.price / 100).toFixed(2) : '0.00';\n const originalPrice = this.offering.originalPrice ? (this.offering.originalPrice / 100).toFixed(2) : '0.00';\n this.price.set(price);\n this.originalPrice.set(originalPrice);\n },\n });\n }\n formatPrice(value: number) {\n // Convert to number first in case it's a string\n this.offering.price = Number(Number(value).toFixed(2));\n }\n onParentCategoryChange(event: any) {\n this.parentCategory.id = event.value;\n this.childrenCategories = event.value.children;\n }\n onChildCategoryChange(event: any) {\n this.selectedChildrenCategories = event.value;\n }\n findChildrenCategoryByParentId(parentId: string) {\n this.categoryService.find({ limit: 100, filter: `parent:${parentId}` }).subscribe({\n next: (res: any) => {\n this.childrenCategories = res.data;\n },\n });\n }\n compareParentFn(o1: OfferingCategory, o2: OfferingCategory) {\n return o1.id === o2?.id;\n }\n compareChildrenFn(o1: OfferingCategory, o2: OfferingCategory) {\n return o1.id === o2?.id;\n }\n typeCompareFn(t1: any, t2: any) {\n return t1 === t2;\n }\n priceTypeCompareFn(t1: any, t2: any) {\n return t1 === t2;\n }\n onTypeChange(event: MatSelectChange) {\n // this.offering.type = Object.keys(this.offeringType).find((key) => {\n // return this.offeringType[key] === event.value;\n // })!;\n this.offering.type = event.value;\n }\n onCategoryChange(event: any) {\n this.selectedCategoyIds = event.value;\n }\n update() {\n const { title, description } = this.offering;\n const data = {\n title,\n description,\n categories: this.selectedChildrenCategories,\n price: Number(this.price()) * 100,\n originalPrice: Number(this.originalPrice()) * 100,\n };\n this.offeringService.update(this.id, data).subscribe({\n next: (res) => {\n this.snackBarService.open('Update successfully');\n },\n error: (e) => {\n this.snackBarService.open(e.message);\n },\n });\n }\n}\n","<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Basic info\" class=\"hidden md:block\" divider></rolatech-toolbar>\n @if (offering) {\n <div class=\"flex flex-col\">\n <form #offeringForm=\"ngForm\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Title </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"offering.title\" name=\"title\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Description </mat-label>\n <textarea\n matInput\n type=\"text\"\n [(ngModel)]=\"offering.description\"\n name=\"description\"\n required\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n ></textarea>\n </mat-form-field>\n <div class=\"flex gap-2\">\n <mat-form-field>\n <mat-label i18n>Level 1</mat-label>\n <mat-select\n name=\"id\"\n [compareWith]=\"compareParentFn\"\n [(ngModel)]=\"parentCategory\"\n (selectionChange)=\"onParentCategoryChange($event)\"\n >\n @for (category of categories; track category) {\n <mat-option [value]=\"category\">{{ category.name }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" ngModelGroup=\"categories\" required>\n <mat-label i18n>Level 2</mat-label>\n <mat-select\n multiple\n name=\"id\"\n [compareWith]=\"compareChildrenFn\"\n [(ngModel)]=\"selectedChildrenCategories\"\n #select=\"matSelect\"\n (selectionChange)=\"onChildCategoryChange($event)\"\n >\n @for (item of childrenCategories; track item) {\n <mat-option [value]=\"item\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Price </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"price\" name=\"price\" required rolatechDecimal />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Original price </mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"originalPrice\" name=\"originalPrice\" required rolatechDecimal />\n </mat-form-field>\n </form>\n </div>\n <div>\n <button mat-flat-button (click)=\"update()\" i18n>Save</button>\n </div>\n }\n</rolatech-offering-manage-content>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { Media } from '@rolatech/angular-common';\nimport {\n MediaListComponent,\n MediaListItemComponent,\n ToolbarComponent,\n ImagePreviewDialogComponent,\n ConfirmationDialogComponent,\n} from '@rolatech/angular-components';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { findLastIndex } from 'lodash';\nimport { OfferingStatus } from '../../../interfaces';\nimport { OfferingManageContentComponent } from '../offering-manage-content/offering-manage-content.component';\nconst SIZE = 10 * 1024 * 1024; // file slice size 10MB\n\n@Component({\n selector: 'rolatech-offering-manage-media',\n imports: [MediaListComponent, MediaListItemComponent, ToolbarComponent, OfferingManageContentComponent],\n templateUrl: './offering-manage-media.component.html',\n styleUrl: './offering-manage-media.component.scss',\n})\nexport class OfferingManageMediaComponent implements OnInit {\n route = inject(ActivatedRoute);\n offeringService = inject(OfferingService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n id: string;\n isLoading = false;\n media: Media[] = [];\n status = OfferingStatus;\n // offeringType: any = OfferingType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n }\n ngOnInit(): void {\n this.find();\n }\n find() {\n this.offeringService.get(this.id).subscribe({\n next: (res: any) => {\n this.media = res.data.media || [];\n },\n });\n }\n onImageClick(i: any) {\n const dialogRef = this.dialog.open(ImagePreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {});\n }\n private createFileChunk(file: any, size = SIZE) {\n const fileChunkList: any = [];\n let cur = 0;\n while (cur < file.size) {\n fileChunkList.push({ file: file.slice(cur, cur + size) });\n cur += size;\n }\n return fileChunkList;\n }\n\n onUploadMedia2(event: any) {\n const file = event.target.files[0];\n const reader = new FileReader();\n reader.onload = (e) => {};\n\n const fileChunkList = this.createFileChunk(file);\n fileChunkList.forEach((item) => {});\n }\n onMultipleFilesUpload(event: any) {\n // const files = event.target.files;\n // if (files) {\n // Object.values(files).forEach((file, index) => {\n // this.uploadFile(file, index);\n // });\n // }\n const input = event.target as HTMLInputElement;\n if (input.files && input.files.length > 0) {\n const startIndex = this.media.length; // Offset to preserve existing items\n Array.from(input.files).forEach((file, i) => {\n this.uploadFile(file, startIndex + i);\n });\n }\n }\n private uploadFile(file: any, index: number) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n\n this.media.splice(index, 0, {\n url: '',\n alt: 'Uploading...',\n width: 0,\n height: 0,\n uploading: true,\n });\n\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img: any = new Image();\n img.onload = () => {\n Object.assign(this.media[index], {\n url: img.src,\n width: img.width,\n height: img.height,\n });\n };\n img.src = reader.result as string;\n };\n this.offeringService.uploadMedia(this.id, formData).subscribe({\n next: (res: any) => {\n // Replace item at index using native splice\n // this.media.splice(index, 1, res.data);\n this.media.splice(index, 1, {\n ...res.data,\n uploading: false,\n });\n },\n error: (e: any) => {\n this.snackBar.open('Upload failed: ' + e.message);\n this.media.splice(index, 1); // remove failed placeholder\n },\n });\n reader.onerror = (error) => {};\n }\n onUploadMedia(event: any) {\n const file = event.target.files[0];\n // 5MB * 1024 * 1024 = 5242880\n // if (file?.size > 5242880) {\n // this.snackBar.open('尺寸过大, 请修改后上传');\n // return;\n // }\n\n if (file) {\n const reader = new FileReader();\n const formData = new FormData();\n formData.append('file', file);\n\n reader.readAsDataURL(file);\n reader.onload = () => {\n const img: any = new Image();\n img.onload = () => {\n this.media.push({\n url: img.src,\n alt: 'upload image',\n width: img.width,\n height: img.height,\n });\n };\n img.src = reader.result; // This is the data URL\n };\n this.offeringService.uploadMedia(this.id, formData).subscribe({\n next: (res: any) => {\n const index = findLastIndex(this.media);\n // Replace item at index using native splice\n this.media.splice(index, 1, res.data);\n },\n error: (e: any) => {},\n });\n reader.onerror = (error) => {};\n }\n }\n onMediaDelete(item: any) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: '确定删除这张商品图片吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.offeringService.deleteMedia(this.id, item.id).subscribe({\n next: (res) => {\n this.media = this.media.filter((m) => m.id !== item.id);\n this.snackBar.open('Delete successfully');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n}\n","<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Media info\" class=\"hidden md:block\" divider></rolatech-toolbar>\n <div>\n <p i18n>*Limit 5MB per image*</p>\n <rolatech-media-list (upload)=\"onMultipleFilesUpload($event)\">\n @for (item of media; track item; let i = $index) {\n <rolatech-media-list-item\n [media]=\"item\"\n (mediaItemClick)=\"onImageClick(i)\"\n (deleteMedia)=\"onMediaDelete(item)\"\n [uploading]=\"item.uploading\"\n ></rolatech-media-list-item>\n }\n </rolatech-media-list>\n </div>\n</rolatech-offering-manage-content>\n","import { Component, input, OnInit, output } from '@angular/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { Media } from '@rolatech/angular-common';\nimport { OfferingSection } from '../../interfaces';\nimport { first } from 'lodash';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\n\n@Component({\n selector: 'rolatech-offering-manage-section-item',\n imports: [\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n TextFieldModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n MatProgressBarModule,\n MatDividerModule,\n ],\n templateUrl: './offering-manage-section-item.component.html',\n styleUrl: './offering-manage-section-item.component.scss',\n})\nexport class OfferingManageSectionItemComponent implements OnInit {\n isUploading = input<boolean>();\n section = input.required<OfferingSection>();\n actions = input<boolean>(false);\n selectMedia = input<any>();\n upload = output<{ section: OfferingSection; data: FormData | null }>();\n delete = output<OfferingSection>();\n save = output<OfferingSection>();\n deleteMedia = output<{ section: OfferingSection; media: Media }>();\n selectedImg!: Media | any;\n expanded = false;\n constructor() {}\n\n ngOnInit(): void {\n this.selectedImg = this.section().media ? this.section().media[0] : null;\n }\n onUpload(data: any) {\n this.upload.emit({ section: this.section(), data });\n }\n onMediaItemClick(image: Media) {\n this.selectedImg = image;\n }\n\n select(item: any) {\n this.selectedImg = item;\n }\n deleteImage() {}\n onSave(section: OfferingSection) {\n this.save.emit(section);\n }\n onDelete(section: OfferingSection) {\n this.delete.emit(section);\n }\n onDeleteMedia(media: Media) {\n this.deleteMedia.emit({ section: this.section(), media });\n this.selectedImg = this.section().media ? first(this.section().media) : null;\n }\n}\n","<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 collapsed\" [class.expanded]=\"expanded\">\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 i18n>Title</mat-label>\n <input matInput placeholder=\"Title\" i18n-placeholder [(ngModel)]=\"section().title\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\" [hideRequiredMarker]=\"true\">\n <mat-label i18n>Description</mat-label>\n <textarea\n matInput\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"3\"\n placeholder=\"Description\"\n [(ngModel)]=\"section().description\"\n i18n-placeholder\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 i18n>Delete</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())\" i18n>Delete</button>\n <button mat-flat-button class=\"max-h-8\" (click)=\"onSave(section())\" i18n>Save</button>\n </div>\n }\n </div>\n</div>\n\n<mat-divider></mat-divider>\n","import { Component, inject, OnInit } from '@angular/core';\nimport { OfferingSection, OfferingStatus, OfferingType } from '../../../interfaces/offering';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute } from '@angular/router';\nimport { ConfirmationDialogComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { remove } from 'lodash';\nimport { OfferingService } from '@rolatech/angular-services';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { OfferingManageContentComponent } from '../offering-manage-content/offering-manage-content.component';\nimport { OfferingManageSectionItemComponent } from '../../../components/offering-manage-section-item/offering-manage-section-item.component';\n\n@Component({\n selector: 'rolatech-offering-manage-sections',\n imports: [\n MatButtonModule,\n MatIconModule,\n ToolbarComponent,\n OfferingManageContentComponent,\n OfferingManageSectionItemComponent,\n ],\n templateUrl: './offering-manage-sections.component.html',\n styleUrl: './offering-manage-sections.component.scss',\n})\nexport class OfferingManageSectionsComponent implements OnInit {\n route = inject(ActivatedRoute);\n offeringService = inject(OfferingService);\n dialog = inject(MatDialog);\n snackBar = inject(MatSnackBar);\n\n id: string;\n isLoading = false;\n isUploading = false;\n sections: OfferingSection[] = [];\n status = OfferingStatus;\n offeringType: any = OfferingType;\n constructor() {\n this.id = this.route.parent?.snapshot.paramMap.get('id') as string;\n }\n ngOnInit(): void {\n this.find();\n }\n find() {\n this.offeringService.findSections(this.id).subscribe({\n next: (res) => {\n if (res.data) {\n this.sections = res.data;\n }\n },\n });\n }\n addSection() {\n if (!this.sections) {\n this.sections = [];\n }\n this.offeringService\n .addSection(this.id, {\n title: '',\n description: '',\n content: '',\n media: [],\n })\n .subscribe({\n next: (res: any) => {\n const section = res.data;\n this.sections.push({\n id: section.id,\n title: 'Untitled',\n description: '',\n content: '',\n media: [],\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onUploadSectionMedia(event: any) {\n const section = event.section;\n const sectionId = section.id;\n const file = event.data.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n if (!section.media) {\n section.media = [];\n }\n (section.media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n section.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n this.offeringService.uploadSectionMedia(sectionId, formData).subscribe({\n next: (res: any) => {\n this.isUploading = false;\n section.isUploading = false;\n delete res.data.offeringSection;\n section.media[section.media.length - 1].id = res.data.id;\n section.media[section.media.length - 1].url = res.data.url;\n },\n error: (e) => {\n this.isUploading = false;\n this.snackBar.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n this.isUploading = false;\n };\n }\n }\n onDeleteSectionMedia(event: any) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除图片',\n message: `确定删除吗?`,\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n const section = event.section;\n const mediaId = event.media.id;\n remove(section.media, {\n id: mediaId,\n });\n this.offeringService.deleteSectionMedia(section.id, mediaId).subscribe({\n next: (res: any) => {\n // remove(section.media, {\n // id: mediaId,\n // });\n },\n });\n }\n });\n }\n onSectionSave(section: OfferingSection) {\n delete section.isUploading;\n this.offeringService.updateSection(section.id, section).subscribe({\n next: (res: any) => {\n this.snackBar.open('Success');\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n onSectionDelete(section: OfferingSection) {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '400px',\n data: {\n title: '删除详情',\n message: '确定删除此详情吗?',\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.offeringService.deleteSection(section.id).subscribe({\n next: (res: any) => {\n this.snackBar.open(res.data);\n remove(this.sections, {\n id: section.id,\n });\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n });\n }\n}\n","<rolatech-offering-manage-content>\n <rolatech-toolbar title=\"Details\" class=\"hidden md:block\" divider> </rolatech-toolbar>\n <div>\n <div>\n @for (section of sections; track section) {\n <rolatech-offering-manage-section-item\n [section]=\"section\"\n (upload)=\"onUploadSectionMedia($event)\"\n (deleteMedia)=\"onDeleteSectionMedia($event)\"\n (save)=\"onSectionSave($event)\"\n (delete)=\"onSectionDelete($event)\"\n [actions]=\"true\"\n ></rolatech-offering-manage-section-item>\n }\n </div>\n <button mat-stroked-button (click)=\"addSection()\" class=\"mt-3\">\n <mat-icon>add</mat-icon>\n <span i18n>Add</span>\n </button>\n </div>\n</rolatech-offering-manage-content>\n","import { Routes } from '@angular/router';\nimport { OfferingManageIndexComponent } from './offering-manage-index/offering-manage-index.component';\nimport { OfferingManageCreateComponent } from './offering-manage-create/offering-manage-create.component';\nimport { OfferingManageLayoutComponent } from './offering-manage-layout/offering-manage-layout.component';\nimport { OfferingManageInfoComponent } from './offering-manage-info/offering-manage-info.component';\nimport { OfferingManageMediaComponent } from './offering-manage-media/offering-manage-media.component';\nimport { OfferingManageSectionsComponent } from './offering-manage-sections/offering-manage-sections.component';\nexport const offeringManageRoutes: Routes = [\n {\n path: '',\n component: OfferingManageIndexComponent,\n },\n {\n path: 'create',\n component: OfferingManageCreateComponent,\n },\n {\n path: ':id/manage',\n component: OfferingManageLayoutComponent,\n children: [\n {\n path: 'info',\n component: OfferingManageInfoComponent,\n },\n {\n path: 'media',\n component: OfferingManageMediaComponent,\n },\n {\n path: 'sections',\n component: OfferingManageSectionsComponent,\n },\n ],\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i6","i4"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rolatech/angular-offering",
|
|
3
|
-
"version": "20.1.6-beta.
|
|
3
|
+
"version": "20.1.6-beta.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"peerDependencies": {},
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@rolatech/angular-common": "20.1.6-beta.
|
|
8
|
-
"@rolatech/angular-components": "20.1.6-beta.
|
|
9
|
-
"@rolatech/angular-services": "20.1.6-beta.
|
|
7
|
+
"@rolatech/angular-common": "20.1.6-beta.7",
|
|
8
|
+
"@rolatech/angular-components": "20.1.6-beta.7",
|
|
9
|
+
"@rolatech/angular-services": "20.1.6-beta.7",
|
|
10
10
|
"tslib": "^2.3.0"
|
|
11
11
|
},
|
|
12
12
|
"sideEffects": false,
|