@rolatech/angular-product 17.1.0 → 17.1.2

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.
@@ -8,7 +8,7 @@ export class ProductItemComponent {
8
8
  this.product = input.required();
9
9
  }
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.4", type: ProductItemComponent, isStandalone: true, selector: "rolatech-product-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<rolatech-rich-item\n [routerLink]=\"['./', product().id]\"\n [thumbnail]=\"product().media[0].url + '!w400'\"\n [title]=\"product().name\"\n [subtitle]=\"product().description\"\n [price]=\"product().price / 100\"\n></rolatech-rich-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichItemComponent, selector: "rolatech-rich-item", inputs: ["list", "thumbnail", "avatar", "title", "subtitle", "price"] }], encapsulation: i0.ViewEncapsulation.None }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.4", type: ProductItemComponent, isStandalone: true, selector: "rolatech-product-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<rolatech-rich-item\n [routerLink]=\"['./', product().id]\"\n [thumbnail]=\"product().media[0].url + '!w400'\"\n [title]=\"product().name\"\n [subtitle]=\"product().description\"\n [price]=\"product().price / 100\"\n></rolatech-rich-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichItemComponent, selector: "rolatech-rich-item", inputs: ["list", "thumbnail", "avatar", "title", "subtitle", "price", "thumbnailRatio"] }], encapsulation: i0.ViewEncapsulation.None }); }
12
12
  }
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductItemComponent, decorators: [{
14
14
  type: Component,
@@ -17,10 +17,10 @@ export class ProductSectionComponent {
17
17
  this.viewportScroller.scrollToAnchor(id);
18
18
  }
19
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductSectionComponent, isStandalone: true, selector: "rolatech-product-section", inputs: { section: { classPropertyName: "section", publicName: "section", isSignal: true, isRequired: true, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"flex w-full p-3 flex-col-reverse md:flex-row\" [ngClass]=\"reverse() ? 'md:flex-row-reverse' : 'md:flex-row'\">\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n <!-- @if (section.media) {} -->\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }], encapsulation: i0.ViewEncapsulation.None }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductSectionComponent, isStandalone: true, selector: "rolatech-product-section", inputs: { section: { classPropertyName: "section", publicName: "section", isSignal: true, isRequired: true, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full p-3\"\n [ngClass]=\"reverse() ? 'flex-col-reverse md:flex-row-reverse' : 'flex-col-reverse md:flex-row'\"\n >\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }], encapsulation: i0.ViewEncapsulation.None }); }
21
21
  }
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductSectionComponent, decorators: [{
23
23
  type: Component,
24
- args: [{ selector: 'rolatech-product-section', standalone: true, imports: [CommonModule, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"flex w-full p-3 flex-col-reverse md:flex-row\" [ngClass]=\"reverse() ? 'md:flex-row-reverse' : 'md:flex-row'\">\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n <!-- @if (section.media) {} -->\n </div>\n }\n}\n" }]
24
+ args: [{ selector: 'rolatech-product-section', standalone: true, imports: [CommonModule, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full p-3\"\n [ngClass]=\"reverse() ? 'flex-col-reverse md:flex-row-reverse' : 'flex-col-reverse md:flex-row'\"\n >\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n </div>\n }\n}\n" }]
25
25
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVVsRSxNQUFNLE9BQU8sdUJBQXVCO0lBUnBDO1FBU0UsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFDM0MsU0FBSSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxRQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0tBT3pEO0lBTEMsUUFBUSxLQUFVLENBQUM7SUFFbkIsZUFBZSxDQUFDLEVBQVU7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQVpVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG1zQkNicEMsdXpEQTBEQSx5RERsRFksWUFBWSw2SEFBRSxrQkFBa0I7OzJGQUsvQix1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxpQkFHNUIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBWaWV3cG9ydFNjcm9sbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3RTZWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1zZWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3Qtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9kdWN0U2VjdGlvbj4oKTtcbiAgdXNlciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlcm5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHZpZXdwb3J0U2Nyb2xsZXIgPSBpbmplY3QoVmlld3BvcnRTY3JvbGxlcik7XG4gIHJvdyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgcmV2ZXJzZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgb25DbGlja1Njcm9sbGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9BbmNob3IoaWQpO1xuICB9XG59XG4iLCJAaWYgKHNlY3Rpb24oKTsgYXMgc2VjdGlvbikge1xuICBAaWYgKHJvdygpKSB7XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoc2VjdGlvbi50aXRsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaC00IHctMSBiZy1vcmFuZ2UtNTAwIGlubGluZS1ibG9ja1wiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW0gcHktMVwiPiB7eyBzZWN0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VjdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHt7IHNlY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAaWYgKHNlY3Rpb24ubWVkaWEpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInctODAlXCI+XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBzZWN0aW9uLm1lZGlhOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsXG4gICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBtb2RlPVwiZnVsbFwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIml0ZW0ud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiaXRlbS5oZWlnaHRcIlxuICAgICAgICAgICAgICA+PC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgcC0zIGZsZXgtY29sLXJldmVyc2UgbWQ6ZmxleC1yb3dcIiBbbmdDbGFzc109XCJyZXZlcnNlKCkgPyAnbWQ6ZmxleC1yb3ctcmV2ZXJzZScgOiAnbWQ6ZmxleC1yb3cnXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctMS8yIHB5LTMgZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgZ2FwLTNcIlxuICAgICAgICBbbmdDbGFzc109XCJyZXZlcnNlKCkgPyAnIG1kOm1sLTE2JyA6ICdtZDptci0xNidcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtM3hsIGZvbnQtYm9sZCBweS0xXCI+IHt7IHNlY3Rpb24udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7IHNlY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctMS8yIHB5LTExXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygc2VjdGlvbi5tZWRpYTsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsXG4gICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICBtb2RlPVwiZnVsbFwiXG4gICAgICAgICAgICAgIFt3aWR0aF09XCJpdGVtLndpZHRoXCJcbiAgICAgICAgICAgICAgW2hlaWdodF09XCJpdGVtLmhlaWdodFwiXG4gICAgICAgICAgICA+PC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBAaWYgKHNlY3Rpb24ubWVkaWEpIHt9IC0tPlxuICAgIDwvZGl2PlxuICB9XG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvY29tcG9uZW50cy9wcm9kdWN0LXNlY3Rpb24vcHJvZHVjdC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVVsRSxNQUFNLE9BQU8sdUJBQXVCO0lBUnBDO1FBU0UsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFDM0MsU0FBSSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxRQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0tBT3pEO0lBTEMsUUFBUSxLQUFVLENBQUM7SUFFbkIsZUFBZSxDQUFDLEVBQVU7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQVpVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG1zQkNicEMseXlEQTREQSx5RERwRFksWUFBWSw2SEFBRSxrQkFBa0I7OzJGQUsvQix1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxpQkFHNUIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBWaWV3cG9ydFNjcm9sbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFByb2R1Y3RTZWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1zZWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGh1bWJuYWlsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3Qtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcm9kdWN0LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0U2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNlY3Rpb24gPSBpbnB1dC5yZXF1aXJlZDxQcm9kdWN0U2VjdGlvbj4oKTtcbiAgdXNlciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlcm5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHZpZXdwb3J0U2Nyb2xsZXIgPSBpbmplY3QoVmlld3BvcnRTY3JvbGxlcik7XG4gIHJvdyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgcmV2ZXJzZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgb25DbGlja1Njcm9sbGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9BbmNob3IoaWQpO1xuICB9XG59XG4iLCJAaWYgKHNlY3Rpb24oKTsgYXMgc2VjdGlvbikge1xuICBAaWYgKHJvdygpKSB7XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoc2VjdGlvbi50aXRsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicHktMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaC00IHctMSBiZy1vcmFuZ2UtNTAwIGlubGluZS1ibG9ja1wiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGcgZm9udC1tZWRpdW0gcHktMVwiPiB7eyBzZWN0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VjdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHt7IHNlY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAaWYgKHNlY3Rpb24ubWVkaWEpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInctODAlXCI+XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBzZWN0aW9uLm1lZGlhOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgICAgICA8cm9sYXRlY2gtdGh1bWJuYWlsXG4gICAgICAgICAgICAgICAgW3NyY109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBtb2RlPVwiZnVsbFwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIml0ZW0ud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiaXRlbS5oZWlnaHRcIlxuICAgICAgICAgICAgICA+PC9yb2xhdGVjaC10aHVtYm5haWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZsZXggdy1mdWxsIHAtM1wiXG4gICAgICBbbmdDbGFzc109XCJyZXZlcnNlKCkgPyAnZmxleC1jb2wtcmV2ZXJzZSBtZDpmbGV4LXJvdy1yZXZlcnNlJyA6ICdmbGV4LWNvbC1yZXZlcnNlIG1kOmZsZXgtcm93J1wiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInctZnVsbCBtZDp3LTEvMiBweS0zIGZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGdhcC0zXCJcbiAgICAgICAgW25nQ2xhc3NdPVwicmV2ZXJzZSgpID8gJyBtZDptbC0xNicgOiAnbWQ6bXItMTYnXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTN4bCBmb250LWJvbGQgcHktMVwiPiB7eyBzZWN0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyBzZWN0aW9uLmRlc2NyaXB0aW9uIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBtZDp3LTEvMiBweS0xMVwiPlxuICAgICAgICBAZm9yIChpdGVtIG9mIHNlY3Rpb24ubWVkaWE7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgICAgICAgICAgPHJvbGF0ZWNoLXRodW1ibmFpbFxuICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0udXJsXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgbW9kZT1cImZ1bGxcIlxuICAgICAgICAgICAgICBbd2lkdGhdPVwiaXRlbS53aWR0aFwiXG4gICAgICAgICAgICAgIFtoZWlnaHRdPVwiaXRlbS5oZWlnaHRcIlxuICAgICAgICAgICAgPjwvcm9sYXRlY2gtdGh1bWJuYWlsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxufVxuIl19
@@ -34,10 +34,10 @@ export class ProductIndexComponent {
34
34
  });
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductIndexComponent, isStandalone: true, selector: "rolatech-product-index", ngImport: i0, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductIndexComponent, isStandalone: true, selector: "rolatech-product-index", ngImport: i0, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n thumbnailRatio=\"square\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductIndexComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'rolatech-product-index', standalone: true, imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, ProductItemComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n" }]
41
+ args: [{ selector: 'rolatech-product-index', standalone: true, imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, ProductItemComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n thumbnailRatio=\"square\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n" }]
42
42
  }], ctorParameters: () => [] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pbmRleC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC1pbmRleC9wcm9kdWN0LWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvcGFnZXMvcHJvZHVjdC9wcm9kdWN0LWluZGV4L3Byb2R1Y3QtaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVUzRCxNQUFNLE9BQU8scUJBQXFCO0lBT2hDO1FBTkEsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsNEJBQTRCO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQVksRUFBRSxDQUFDLENBQUM7UUFHakMsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUNELENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLGdCQUFnQjtZQUN0Qiw0QkFBNEI7U0FDN0IsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsNEJBQTRCO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTdCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixrRkNmbEMsZzVDQWtDQSx5RER6QlksbUJBQW1CLDhCQUFFLHVCQUF1QiwrQkFBRSxpQkFBaUIsd0pBQUUsaUJBQWlCOzsyRkFNakYscUJBQXFCO2tCQVRqQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxpQkFHcEcsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3Byb2R1Y3QnO1xuaW1wb3J0IHsgUmljaFZpZXdDb21wb25lbnQsIFJpY2hJdGVtQ29tcG9uZW50LCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1pbmRleCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgUmljaFZpZXdDb21wb25lbnQsIFJpY2hJdGVtQ29tcG9uZW50LCBQcm9kdWN0SXRlbUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtaW5kZXguY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdEluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvZHVjdFNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdFNlcnZpY2UpO1xuICAvLyBwcm9kdWN0czogUHJvZHVjdFtdID0gW107XG4gIHByb2R1Y3RzID0gc2lnbmFsPFByb2R1Y3RbXT4oW10pO1xuXG4gIG1ldGE6IGFueTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kUHJvZHVjdHMoKTtcbiAgfVxuICBmaW5kUHJvZHVjdHMoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc29ydDogJ3VwZGF0ZWRBdCBkZXNjJyxcbiAgICAgIC8vIGZpbHRlcjogJ3B1Ymxpc2hlZDp0cnVlJyxcbiAgICB9O1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UuZmluZChvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIC8vIHRoaXMucHJvZHVjdHMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5wcm9kdWN0cy5zZXQocmVzLmRhdGEpO1xuICAgICAgICB0aGlzLm1ldGEgPSByZXMubWV0YTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaW4tdy1bMzIwcHhdIG1heC13LVsxMTIwcHhdIG0tYXV0b1wiPlxuICA8ZGl2IGNsYXNzPVwicC0zIGhpZGRlbiBtZDpibG9jayB0ZXh0LTJ4bCBmb250LW1lZGl1bVwiPuWFqOmDqOWVhuWTgTwvZGl2PlxuICBAaWYgKGxvYWRpbmcpIHtcbiAgICBAZm9yIChudW1iZXIgb2YgWzAsIDEsIDIsIDMsIDQsIDVdOyB0cmFjayBudW1iZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFuaW1hdGUtcHVsc2UgbXQtMyBtci00IGN1cnNvci1wb2ludGVyIHctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC1maXQgdy0yLzUgbWQ6dy0xLzQgYXNwZWN0LXZpZGVvIGhvdmVyOmJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0zLzUgbWQ6dy0zLzQgbWwtMyBweS0xIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNCBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMSBweS0xXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTIgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTIgcHktMVwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPHJvbGF0ZWNoLXJpY2gtdmlldyB3cmFwPlxuICAgICAgQGZvciAoaXRlbSBvZiBwcm9kdWN0cygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtaXRlbVxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLycsIGl0ZW0uaWRdXCJcbiAgICAgICAgICAgIFt0aHVtYm5haWxdPVwiaXRlbS5tZWRpYVswXS51cmwgKyAnIXc0MDAnXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLm5hbWVcIlxuICAgICAgICAgICAgW3N1YnRpdGxlXT1cIml0ZW0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW3ByaWNlXT1cIml0ZW0ucHJpY2UgLyAxMDBcIlxuICAgICAgICAgID48L3JvbGF0ZWNoLXJpY2gtaXRlbT5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvcm9sYXRlY2gtcmljaC12aWV3PlxuICB9XG48L2Rpdj5cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pbmRleC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItcHJvZHVjdC9zcmMvbGliL3BhZ2VzL3Byb2R1Y3QvcHJvZHVjdC1pbmRleC9wcm9kdWN0LWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1wcm9kdWN0L3NyYy9saWIvcGFnZXMvcHJvZHVjdC9wcm9kdWN0LWluZGV4L3Byb2R1Y3QtaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVUzRCxNQUFNLE9BQU8scUJBQXFCO0lBT2hDO1FBTkEsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsNEJBQTRCO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQVksRUFBRSxDQUFDLENBQUM7UUFHakMsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUNELENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxFQUFFLGdCQUFnQjtZQUN0Qiw0QkFBNEI7U0FDN0IsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxQyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsNEJBQTRCO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTdCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixrRkNmbEMsdTdDQW1DQSx5REQxQlksbUJBQW1CLDhCQUFFLHVCQUF1QiwrQkFBRSxpQkFBaUIsd0pBQUUsaUJBQWlCOzsyRkFNakYscUJBQXFCO2tCQVRqQyxTQUFTOytCQUNFLHdCQUF3QixjQUN0QixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxpQkFHcEcsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9kdWN0U2VydmljZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLXNlcnZpY2VzJztcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3Byb2R1Y3QnO1xuaW1wb3J0IHsgUmljaFZpZXdDb21wb25lbnQsIFJpY2hJdGVtQ29tcG9uZW50LCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBQcm9kdWN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtcHJvZHVjdC1pbmRleCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgUmljaFZpZXdDb21wb25lbnQsIFJpY2hJdGVtQ29tcG9uZW50LCBQcm9kdWN0SXRlbUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWluZGV4LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtaW5kZXguY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdEluZGV4Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvZHVjdFNlcnZpY2UgPSBpbmplY3QoUHJvZHVjdFNlcnZpY2UpO1xuICAvLyBwcm9kdWN0czogUHJvZHVjdFtdID0gW107XG4gIHByb2R1Y3RzID0gc2lnbmFsPFByb2R1Y3RbXT4oW10pO1xuXG4gIG1ldGE6IGFueTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kUHJvZHVjdHMoKTtcbiAgfVxuICBmaW5kUHJvZHVjdHMoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgc29ydDogJ3VwZGF0ZWRBdCBkZXNjJyxcbiAgICAgIC8vIGZpbHRlcjogJ3B1Ymxpc2hlZDp0cnVlJyxcbiAgICB9O1xuICAgIHRoaXMucHJvZHVjdFNlcnZpY2UuZmluZChvcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIC8vIHRoaXMucHJvZHVjdHMgPSByZXMuZGF0YTtcbiAgICAgICAgdGhpcy5wcm9kdWN0cy5zZXQocmVzLmRhdGEpO1xuICAgICAgICB0aGlzLm1ldGEgPSByZXMubWV0YTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaW4tdy1bMzIwcHhdIG1heC13LVsxMTIwcHhdIG0tYXV0b1wiPlxuICA8ZGl2IGNsYXNzPVwicC0zIGhpZGRlbiBtZDpibG9jayB0ZXh0LTJ4bCBmb250LW1lZGl1bVwiPuWFqOmDqOWVhuWTgTwvZGl2PlxuICBAaWYgKGxvYWRpbmcpIHtcbiAgICBAZm9yIChudW1iZXIgb2YgWzAsIDEsIDIsIDMsIDQsIDVdOyB0cmFjayBudW1iZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFuaW1hdGUtcHVsc2UgbXQtMyBtci00IGN1cnNvci1wb2ludGVyIHctZnVsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC1maXQgdy0yLzUgbWQ6dy0xLzQgYXNwZWN0LXZpZGVvIGhvdmVyOmJnLVstLXJ0LWJhc2UtYmFja2dyb3VuZF0gcm91bmRlZC1sZ1wiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0zLzUgbWQ6dy0zLzQgbWwtMyBweS0xIGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtNCBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMiBiZy1bLS1ydC1iYXNlLWJhY2tncm91bmRdIHJvdW5kZWQgY29sLXNwYW4tMSBweS0xXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTIgYmctWy0tcnQtYmFzZS1iYWNrZ3JvdW5kXSByb3VuZGVkIGNvbC1zcGFuLTIgcHktMVwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPHJvbGF0ZWNoLXJpY2gtdmlldyB3cmFwPlxuICAgICAgQGZvciAoaXRlbSBvZiBwcm9kdWN0cygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBkZWZlciB7XG4gICAgICAgICAgPHJvbGF0ZWNoLXJpY2gtaXRlbVxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLycsIGl0ZW0uaWRdXCJcbiAgICAgICAgICAgIFt0aHVtYm5haWxdPVwiaXRlbS5tZWRpYVswXS51cmwgKyAnIXc0MDAnXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLm5hbWVcIlxuICAgICAgICAgICAgW3N1YnRpdGxlXT1cIml0ZW0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW3ByaWNlXT1cIml0ZW0ucHJpY2UgLyAxMDBcIlxuICAgICAgICAgICAgdGh1bWJuYWlsUmF0aW89XCJzcXVhcmVcIlxuICAgICAgICAgID48L3JvbGF0ZWNoLXJpY2gtaXRlbT5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvcm9sYXRlY2gtcmljaC12aWV3PlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -59,12 +59,12 @@ class ProductIndexComponent {
59
59
  });
60
60
  }
61
61
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
62
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductIndexComponent, isStandalone: true, selector: "rolatech-product-index", ngImport: i0, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductIndexComponent, isStandalone: true, selector: "rolatech-product-index", ngImport: i0, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n thumbnailRatio=\"square\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichViewComponent, selector: "rolatech-rich-view", inputs: ["list", "wrap"] }], encapsulation: i0.ViewEncapsulation.None, deferBlockDependencies: [() => [i1.RouterLink, RichItemComponent]] }); }
63
63
  }
64
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductIndexComponent, decorators: [{
65
65
  type: Component,
66
- args: [{ selector: 'rolatech-product-index', standalone: true, imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, ProductItemComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n" }]
66
+ args: [{ selector: 'rolatech-product-index', standalone: true, imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, ProductItemComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">\u5168\u90E8\u5546\u54C1</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n thumbnailRatio=\"square\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n" }]
67
67
  }], ctorParameters: () => [] });
68
68
 
69
69
  export { ProductIndexComponent };
70
- //# sourceMappingURL=rolatech-angular-product-product-index.component-C_cbg95R.mjs.map
70
+ //# sourceMappingURL=rolatech-angular-product-product-index.component-D-issq94.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-product-product-index.component-C_cbg95R.mjs","sources":["../../../../libs/angular-product/src/lib/pages/product/product-index/product-index.component.ts","../../../../libs/angular-product/src/lib/pages/product/product-index/product-index.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { ProductService } from '@rolatech/angular-services';\nimport { Product } from '../../../interfaces/product';\nimport { RichViewComponent, RichItemComponent, AngularComponentsModule } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { ProductItemComponent } from '../../../components';\n@Component({\n selector: 'rolatech-product-index',\n standalone: true,\n imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, ProductItemComponent],\n templateUrl: './product-index.component.html',\n styleUrl: './product-index.component.scss',\n encapsulation: ViewEncapsulation.None,\n // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductIndexComponent implements OnInit {\n productService = inject(ProductService);\n // products: Product[] = [];\n products = signal<Product[]>([]);\n\n meta: any;\n loading = false;\n constructor() {}\n\n ngOnInit(): void {\n this.findProducts();\n }\n findProducts() {\n this.loading = true;\n const options = {\n sort: 'updatedAt desc',\n // filter: 'published:true',\n };\n this.productService.find(options).subscribe({\n next: (res: any) => {\n // this.products = res.data;\n this.products.set(res.data);\n this.meta = res.meta;\n this.loading = false;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">全部商品</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAea,qBAAqB,CAAA;AAOhC,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;;AAExC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAY,EAAE,CAAC,CAAC;QAGjC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KACA;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IACD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,gBAAgB;;SAEvB,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC1C,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;;gBAEjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;AACF,SAAA,CAAC,CAAC;KACJ;8GA7BU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECflC,g5CAkCA,EDzBY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8BAAE,uBAAuB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,UAAA,EAAE,iBAAiB,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMjF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cACtB,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,EAGpG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,g5CAAA,EAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"rolatech-angular-product-product-index.component-D-issq94.mjs","sources":["../../../../libs/angular-product/src/lib/pages/product/product-index/product-index.component.ts","../../../../libs/angular-product/src/lib/pages/product/product-index/product-index.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { ProductService } from '@rolatech/angular-services';\nimport { Product } from '../../../interfaces/product';\nimport { RichViewComponent, RichItemComponent, AngularComponentsModule } from '@rolatech/angular-components';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { ProductItemComponent } from '../../../components';\n@Component({\n selector: 'rolatech-product-index',\n standalone: true,\n imports: [AngularCommonModule, AngularComponentsModule, RichViewComponent, RichItemComponent, ProductItemComponent],\n templateUrl: './product-index.component.html',\n styleUrl: './product-index.component.scss',\n encapsulation: ViewEncapsulation.None,\n // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductIndexComponent implements OnInit {\n productService = inject(ProductService);\n // products: Product[] = [];\n products = signal<Product[]>([]);\n\n meta: any;\n loading = false;\n constructor() {}\n\n ngOnInit(): void {\n this.findProducts();\n }\n findProducts() {\n this.loading = true;\n const options = {\n sort: 'updatedAt desc',\n // filter: 'published:true',\n };\n this.productService.find(options).subscribe({\n next: (res: any) => {\n // this.products = res.data;\n this.products.set(res.data);\n this.meta = res.meta;\n this.loading = false;\n },\n error: (error) => {\n this.loading = false;\n },\n });\n }\n}\n","<div class=\"min-w-[320px] max-w-[1120px] m-auto\">\n <div class=\"p-3 hidden md:block text-2xl font-medium\">全部商品</div>\n @if (loading) {\n @for (number of [0, 1, 2, 3, 4, 5]; track number) {\n <div class=\"flex flex-row animate-pulse mt-3 mr-4 cursor-pointer w-full\">\n <div class=\"h-fit w-2/5 md:w-1/4 aspect-video hover:bg-[--rt-base-background] rounded-lg\"></div>\n <div class=\"w-3/5 md:w-3/4 ml-3 py-1 flex flex-col justify-between\">\n <div class=\"space-y-3\">\n <div class=\"h-4 bg-[--rt-base-background] rounded col-span-2\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1\"></div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-1 py-1\"></div>\n </div>\n <div>\n <div class=\"h-2 bg-[--rt-base-background] rounded col-span-2 py-1\"></div>\n </div>\n </div>\n </div>\n }\n } @else {\n <rolatech-rich-view wrap>\n @for (item of products(); track item) {\n @defer {\n <rolatech-rich-item\n [routerLink]=\"['./', item.id]\"\n [thumbnail]=\"item.media[0].url + '!w400'\"\n [title]=\"item.name\"\n [subtitle]=\"item.description\"\n [price]=\"item.price / 100\"\n thumbnailRatio=\"square\"\n ></rolatech-rich-item>\n }\n }\n </rolatech-rich-view>\n }\n</div>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAea,qBAAqB,CAAA;AAOhC,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;;AAExC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAY,EAAE,CAAC,CAAC;QAGjC,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KACA;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IACD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,gBAAgB;;SAEvB,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;AAC1C,YAAA,IAAI,EAAE,CAAC,GAAQ,KAAI;;gBAEjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;AACF,SAAA,CAAC,CAAC;KACJ;8GA7BU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECflC,u7CAmCA,ED1BY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8BAAE,uBAAuB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,UAAA,EAAE,iBAAiB,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMjF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,cACtB,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,EAGpG,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,u7CAAA,EAAA,CAAA;;;;;"}
@@ -247,11 +247,11 @@ class ProductSectionComponent {
247
247
  this.viewportScroller.scrollToAnchor(id);
248
248
  }
249
249
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
250
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductSectionComponent, isStandalone: true, selector: "rolatech-product-section", inputs: { section: { classPropertyName: "section", publicName: "section", isSignal: true, isRequired: true, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"flex w-full p-3 flex-col-reverse md:flex-row\" [ngClass]=\"reverse() ? 'md:flex-row-reverse' : 'md:flex-row'\">\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n <!-- @if (section.media) {} -->\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }], encapsulation: i0.ViewEncapsulation.None }); }
250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ProductSectionComponent, isStandalone: true, selector: "rolatech-product-section", inputs: { section: { classPropertyName: "section", publicName: "section", isSignal: true, isRequired: true, transformFunction: null }, user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: false, transformFunction: null }, reverse: { classPropertyName: "reverse", publicName: "reverse", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full p-3\"\n [ngClass]=\"reverse() ? 'flex-col-reverse md:flex-row-reverse' : 'flex-col-reverse md:flex-row'\"\n >\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThumbnailComponent, selector: "rolatech-thumbnail", inputs: ["src", "size", "mode", "ratio", "width", "height"] }], encapsulation: i0.ViewEncapsulation.None }); }
251
251
  }
252
252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductSectionComponent, decorators: [{
253
253
  type: Component,
254
- args: [{ selector: 'rolatech-product-section', standalone: true, imports: [CommonModule, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"flex w-full p-3 flex-col-reverse md:flex-row\" [ngClass]=\"reverse() ? 'md:flex-row-reverse' : 'md:flex-row'\">\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n <!-- @if (section.media) {} -->\n </div>\n }\n}\n" }]
254
+ args: [{ selector: 'rolatech-product-section', standalone: true, imports: [CommonModule, ThumbnailComponent], encapsulation: ViewEncapsulation.None, template: "@if (section(); as section) {\n @if (row()) {\n <div>\n @if (section.title) {\n <div class=\"py-3 flex items-center gap-3\">\n <span class=\"h-4 w-1 bg-orange-500 inline-block\"></span>\n <span class=\"text-lg font-medium py-1\"> {{ section.title }}</span>\n </div>\n }\n @if (section.description) {\n <div>\n {{ section.description }}\n </div>\n }\n @if (section.media) {\n <div class=\"w-80%\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full p-3\"\n [ngClass]=\"reverse() ? 'flex-col-reverse md:flex-row-reverse' : 'flex-col-reverse md:flex-row'\"\n >\n <div\n class=\"w-full md:w-1/2 py-3 flex flex-col justify-center items-center gap-3\"\n [ngClass]=\"reverse() ? ' md:ml-16' : 'md:mr-16'\"\n >\n <span class=\"text-3xl font-bold py-1\"> {{ section.title }}</span>\n <span>\n {{ section.description }}\n </span>\n </div>\n <div class=\"w-full md:w-1/2 py-11\">\n @for (item of section.media; track item) {\n <div class=\"py-3\">\n <rolatech-thumbnail\n [src]=\"item.url\"\n size=\"small\"\n mode=\"full\"\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></rolatech-thumbnail>\n </div>\n }\n </div>\n </div>\n }\n}\n" }]
255
255
  }] });
256
256
 
257
257
  class ProductItemComponent {
@@ -259,7 +259,7 @@ class ProductItemComponent {
259
259
  this.product = input.required();
260
260
  }
261
261
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
262
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.4", type: ProductItemComponent, isStandalone: true, selector: "rolatech-product-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<rolatech-rich-item\n [routerLink]=\"['./', product().id]\"\n [thumbnail]=\"product().media[0].url + '!w400'\"\n [title]=\"product().name\"\n [subtitle]=\"product().description\"\n [price]=\"product().price / 100\"\n></rolatech-rich-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichItemComponent, selector: "rolatech-rich-item", inputs: ["list", "thumbnail", "avatar", "title", "subtitle", "price"] }], encapsulation: i0.ViewEncapsulation.None }); }
262
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.4", type: ProductItemComponent, isStandalone: true, selector: "rolatech-product-item", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<rolatech-rich-item\n [routerLink]=\"['./', product().id]\"\n [thumbnail]=\"product().media[0].url + '!w400'\"\n [title]=\"product().name\"\n [subtitle]=\"product().description\"\n [price]=\"product().price / 100\"\n></rolatech-rich-item>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: RichItemComponent, selector: "rolatech-rich-item", inputs: ["list", "thumbnail", "avatar", "title", "subtitle", "price", "thumbnailRatio"] }], encapsulation: i0.ViewEncapsulation.None }); }
263
263
  }
264
264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ProductItemComponent, decorators: [{
265
265
  type: Component,
@@ -718,7 +718,7 @@ const productRoutes = [
718
718
  children: [
719
719
  {
720
720
  path: '',
721
- loadComponent: () => import('./rolatech-angular-product-product-index.component-C_cbg95R.mjs').then((x) => x.ProductIndexComponent),
721
+ loadComponent: () => import('./rolatech-angular-product-product-index.component-D-issq94.mjs').then((x) => x.ProductIndexComponent),
722
722
  },
723
723
  {
724
724
  path: 'categories/:id',