@vendasta/store
Version:
Components and data for Store
49 lines • 7.37 kB
JavaScript
import { Component, Input } from '@angular/core';
import DOMPurify from 'dompurify';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/icon";
import * as i2 from "@angular/common";
import * as i3 from "@vendasta/uikit";
export class VaSellingInfoComponent {
get filterDescription() {
const desc = this.description.replace(/max-width:\d*[^\"]/i, 'max-width:100%');
if (desc.indexOf('"max-width:100%"') === -1 && desc.indexOf('<iframe ') !== -1) {
const index = desc.indexOf('<iframe ') + 7;
return desc.substr(0, index) + ' style="max-width:100%"' + desc.substr(index);
}
DOMPurify.addHook('afterSanitizeAttributes', function (node) {
if (node.nodeName === 'A') {
node.setAttribute('target', '_blank');
node.setAttribute('rel', 'noopener');
}
});
return String(DOMPurify.sanitize(desc));
}
}
VaSellingInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: VaSellingInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
VaSellingInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: VaSellingInfoComponent, selector: "app-selling-info", inputs: { description: "description", keySellingPoints: "keySellingPoints" }, ngImport: i0, template: `
<section *ngIf="description" class="resize" [innerHtml]="filterDescription | vaSafeHtml"></section>
<section *ngIf="keySellingPoints && keySellingPoints.length > 0" class="key-selling-points">
<div *ngFor="let ksp of keySellingPoints" class="key-selling-point">
<mat-icon>check_circle</mat-icon>
{{ ksp }}
</div>
</section>
`, isInline: true, styles: ["section{padding:24px}section ::ng-deep>*:first-child{margin-top:0;padding-top:0}@media screen and (max-width: 600px){section{padding:0}}.resize{font-size:16px}#description *{max-width:100%!important}.key-selling-point{display:flex;align-items:center;padding-bottom:24px;font-size:16px}@media screen and (max-width: 600px){.key-selling-point{align-items:flex-start}}.key-selling-point:last-of-type{padding-bottom:0}.key-selling-point mat-icon{color:#4caf50;font-size:32px;width:32px;height:32px;margin-right:20px}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "vaSafeHtml": i3.VaSafeHtmlPipe } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: VaSellingInfoComponent, decorators: [{
type: Component,
args: [{ selector: 'app-selling-info', template: `
<section *ngIf="description" class="resize" [innerHtml]="filterDescription | vaSafeHtml"></section>
<section *ngIf="keySellingPoints && keySellingPoints.length > 0" class="key-selling-points">
<div *ngFor="let ksp of keySellingPoints" class="key-selling-point">
<mat-icon>check_circle</mat-icon>
{{ ksp }}
</div>
</section>
`, styles: ["section{padding:24px}section ::ng-deep>*:first-child{margin-top:0;padding-top:0}@media screen and (max-width: 600px){section{padding:0}}.resize{font-size:16px}#description *{max-width:100%!important}.key-selling-point{display:flex;align-items:center;padding-bottom:24px;font-size:16px}@media screen and (max-width: 600px){.key-selling-point{align-items:flex-start}}.key-selling-point:last-of-type{padding-bottom:0}.key-selling-point mat-icon{color:#4caf50;font-size:32px;width:32px;height:32px;margin-right:20px}\n"] }]
}], propDecorators: { description: [{
type: Input
}], keySellingPoints: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsbGluZy1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3RvcmUvc3JjL2xpYi9zZWxsaW5nLWluZm8vc2VsbGluZy1pbmZvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7Ozs7O0FBZWxDLE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsSUFBSSxpQkFBaUI7UUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzlFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcseUJBQXlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvRTtRQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsVUFBVSxJQUFhO1lBQ2xFLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQzthQUN0QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O21IQWpCVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixzSUFYdkI7Ozs7Ozs7O0dBUVQ7MkZBR1Usc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQjs7Ozs7Ozs7R0FRVDs4QkFJUSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBET01QdXJpZnkgZnJvbSAnZG9tcHVyaWZ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXNlbGxpbmctaW5mbycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwicmVzaXplXCIgW2lubmVySHRtbF09XCJmaWx0ZXJEZXNjcmlwdGlvbiB8IHZhU2FmZUh0bWxcIj48L3NlY3Rpb24+XG4gICAgPHNlY3Rpb24gKm5nSWY9XCJrZXlTZWxsaW5nUG9pbnRzICYmIGtleVNlbGxpbmdQb2ludHMubGVuZ3RoID4gMFwiIGNsYXNzPVwia2V5LXNlbGxpbmctcG9pbnRzXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBrc3Agb2Yga2V5U2VsbGluZ1BvaW50c1wiIGNsYXNzPVwia2V5LXNlbGxpbmctcG9pbnRcIj5cbiAgICAgICAgPG1hdC1pY29uPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+XG4gICAgICAgIHt7IGtzcCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zZWxsaW5nLWluZm8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVmFTZWxsaW5nSW5mb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBTdHJpbmc7XG4gIEBJbnB1dCgpIGtleVNlbGxpbmdQb2ludHM6IFN0cmluZ1tdO1xuXG4gIGdldCBmaWx0ZXJEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlc2MgPSB0aGlzLmRlc2NyaXB0aW9uLnJlcGxhY2UoL21heC13aWR0aDpcXGQqW15cXFwiXS9pLCAnbWF4LXdpZHRoOjEwMCUnKTtcbiAgICBpZiAoZGVzYy5pbmRleE9mKCdcIm1heC13aWR0aDoxMDAlXCInKSA9PT0gLTEgJiYgZGVzYy5pbmRleE9mKCc8aWZyYW1lICcpICE9PSAtMSkge1xuICAgICAgY29uc3QgaW5kZXggPSBkZXNjLmluZGV4T2YoJzxpZnJhbWUgJykgKyA3O1xuICAgICAgcmV0dXJuIGRlc2Muc3Vic3RyKDAsIGluZGV4KSArICcgc3R5bGU9XCJtYXgtd2lkdGg6MTAwJVwiJyArIGRlc2Muc3Vic3RyKGluZGV4KTtcbiAgICB9XG4gICAgRE9NUHVyaWZ5LmFkZEhvb2soJ2FmdGVyU2FuaXRpemVBdHRyaWJ1dGVzJywgZnVuY3Rpb24gKG5vZGU6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgIGlmIChub2RlLm5vZGVOYW1lID09PSAnQScpIHtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub29wZW5lcicpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBTdHJpbmcoRE9NUHVyaWZ5LnNhbml0aXplKGRlc2MpKTtcbiAgfVxufVxuIl19