UNPKG

@vendasta/store

Version:

Components and data for Store

97 lines 11.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { Product } from '../shared/product'; import { Addon } from '@vendasta/core/shared'; export class AddonDetailsComponent { constructor() { this.hasVerifiedContract = false; this.loaded = true; this.showPricing = true; this.showEnableAddon = false; this.actionEnabled = false; this.prerequisiteSelected = new EventEmitter(); this.actionSelected = new EventEmitter(); } /** * @return {?} */ onPrerequisiteSelected() { this.prerequisiteSelected.emit(); } /** * @return {?} */ onActionSelected() { this.actionSelected.emit(); } /** * @param {?} product * @param {?} addon * @return {?} */ getPricing(product, addon) { return { currency: product.currency, prices: [ { price: addon.price, frequency: addon.billingFrequency ? addon.billingFrequency : 'Monthly' } ] }; } /** * @return {?} */ get pricingLabel() { return this.reseller ? 'Wholesale Pricing' : 'Pricing'; } } AddonDetailsComponent.decorators = [ { type: Component, args: [{ selector: 'addon-details', template: "<div class=\"addon-page\">\n <va-header-container [iconUrl]=\"addon.icon\"\n [title]=\"addon.title\"\n [tagline]=\"addon.tagline\"\n [chipLabels]=\"product.getLmiCategoryNames()\"\n [pricing]=\"getPricing(product, addon)\"\n [pricingLabel]=\"pricingLabel\"\n [prerequisiteLabel]=\"product.name\"\n [billedProduct]=\"billedProduct\"\n [hasVerifiedContract]=\"hasVerifiedContract\"\n [loaded]=\"loaded\"\n [showPricing]=\"showPricing\"\n [actionLabel]=\"'Enable Add-on'\"\n [showEnableAddon]=\"showEnableAddon\"\n (actionSelected)=\"onActionSelected()\"\n (prerequisiteSelected)=\"onPrerequisiteSelected()\">\n </va-header-container>\n\n <div class=\"addon-details addon-content\">\n <ng-container *ngIf=\"reseller\">\n <div class=\"left-column\">\n <div *ngIf=\"addon.resellerMarketing?.description || addon.resellerMarketing?.keySellingPoints\">\n <va-selling-info [description]=\"addon.resellerMarketing?.description\"\n [keySellingPoints]=\"addon.resellerMarketing?.keySellingPoints\"></va-selling-info>\n </div>\n <section *ngIf=\"addon.resellerMarketing?.faqs?.length > 0 && addon.resellerMarketing?.faqs[0].question\">\n <h2 class=\"va-addon-title\">FAQs</h2>\n <va-faqs [faqs]=\"addon.resellerMarketing?.faqs\"></va-faqs>\n </section>\n </div>\n <div class=\"right-column\">\n <section *ngIf=\"addon.restrictions?.country?.whitelist\">\n <supported-countries [countryCodes]=\"addon.restrictions.country.whitelist\"></supported-countries>\n </section>\n <section *ngIf=\"addon.screenshots?.length > 0\">\n <h2 class=\"va-addon-title\">Gallery</h2>\n <va-image-gallery [imageUrls]=\"addon.screenshots\"></va-image-gallery>\n </section>\n <section *ngIf=\"addon.resellerMarketing?.files?.length > 0\">\n <h2 class=\"va-addon-title\">Files</h2>\n <va-files [files]=\"addon.resellerMarketingFiles\"></va-files>\n </section>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!reseller\">\n <div class=\"left-column\">\n <div *ngIf=\"addon.endUserMarketing?.description || addon.endUserMarketing?.keySellingPoints\">\n <va-selling-info [description]=\"addon.endUserMarketing?.description\"\n [keySellingPoints]=\"addon.endUserMarketing?.keySellingPoints\"></va-selling-info>\n </div>\n <section *ngIf=\"addon.endUserMarketing?.faqs?.length > 0 && addon.endUserMarketing?.faqs[0].question\">\n <h2 class=\"va-addon-title\">FAQs</h2>\n <va-faqs [faqs]=\"addon.endUserMarketing?.faqs\"></va-faqs>\n </section>\n </div>\n\n <div class=\"right-column\">\n <section *ngIf=\"addon.restrictions?.country?.whitelist?.length > 0\">\n <supported-countries [countryCodes]=\"addon.restrictions.country.whitelist\"></supported-countries>\n </section>\n <section *ngIf=\"addon.screenshots?.length > 0\">\n <h2 class=\"va-addon-title\">Gallery</h2>\n <va-image-gallery [imageUrls]=\"addon.screenshots\"></va-image-gallery>\n </section>\n <section *ngIf=\"addon.endUserMarketing?.files?.length > 0\">\n <h2 class=\"va-addon-title\">Files</h2>\n <va-files [files]=\"addon.endUserMarketingFiles\"></va-files>\n </section>\n </div>\n </ng-container>\n </div>\n\n</div>\n", styles: [":host{display:block;font-size:14px;line-height:1.4}:host *{box-sizing:border-box}.va-addon-title{font-size:32px;font-weight:300;margin-top:0;color:#212121}@media screen and (min-width:600px){.va-addon-title{font-size:32px}}img{max-width:100%}va-icon{display:inline-block}.addon-page{position:relative;margin:0 auto 20px;background:#fff;box-shadow:0 3px 10px rgba(33,33,33,.3);overflow:hidden;font-size:16px;color:#212121}.addon-page .item-amount{color:#999;font-size:14px;text-align:right;margin:0 24px 8px}section{padding:24px}.left-column{width:66%}@media screen and (max-width:600px){.left-column{width:100%}}.right-column{width:34%}.addon-content{display:flex}@media screen and (max-width:600px){.right-column{width:100%}.addon-content{flex-direction:column}}"] }] } ]; AddonDetailsComponent.propDecorators = { product: [{ type: Input }], addon: [{ type: Input }], reseller: [{ type: Input }], billedProduct: [{ type: Input }], hasVerifiedContract: [{ type: Input }], loaded: [{ type: Input }], showPricing: [{ type: Input }], showEnableAddon: [{ type: Input }], actionEnabled: [{ type: Input }], prerequisiteSelected: [{ type: Output }], actionSelected: [{ type: Output }] }; if (false) { /** @type {?} */ AddonDetailsComponent.prototype.product; /** @type {?} */ AddonDetailsComponent.prototype.addon; /** @type {?} */ AddonDetailsComponent.prototype.reseller; /** @type {?} */ AddonDetailsComponent.prototype.billedProduct; /** @type {?} */ AddonDetailsComponent.prototype.hasVerifiedContract; /** @type {?} */ AddonDetailsComponent.prototype.loaded; /** @type {?} */ AddonDetailsComponent.prototype.showPricing; /** @type {?} */ AddonDetailsComponent.prototype.showEnableAddon; /** @type {?} */ AddonDetailsComponent.prototype.actionEnabled; /** @type {?} */ AddonDetailsComponent.prototype.prerequisiteSelected; /** @type {?} */ AddonDetailsComponent.prototype.actionSelected; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdmVuZGFzdGEvc3RvcmUvIiwic291cmNlcyI6WyJsaWIvYWRkb24tZGV0YWlscy9hZGRvbi1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBUzlDLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFVVyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBd0JoRCxDQUFDOzs7O0lBdEJDLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztJQUNELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7Ozs7O0lBRUQsVUFBVSxDQUFDLE9BQWdCLEVBQUUsS0FBWTtRQUN2QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQzFCLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQ2xCLFNBQVMsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUztpQkFDdkU7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs7O0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pELENBQUM7OztZQXZDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLDRxSEFBMkM7O2FBRTVDOzs7c0JBRUUsS0FBSztvQkFDTCxLQUFLO3VCQUNMLEtBQUs7NEJBQ0wsS0FBSztrQ0FDTCxLQUFLO3FCQUNMLEtBQUs7MEJBQ0wsS0FBSzs4QkFDTCxLQUFLOzRCQUNMLEtBQUs7bUNBQ0wsTUFBTTs2QkFDTixNQUFNOzs7O0lBVlAsd0NBQTBCOztJQUMxQixzQ0FBc0I7O0lBQ3RCLHlDQUF3Qjs7SUFDeEIsOENBQXNDOztJQUN0QyxvREFBcUM7O0lBQ3JDLHVDQUF1Qjs7SUFDdkIsNENBQTRCOztJQUM1QixnREFBaUM7O0lBQ2pDLDhDQUErQjs7SUFDL0IscURBQW9EOztJQUNwRCwrQ0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL3NoYXJlZC9wcm9kdWN0JztcbmltcG9ydCB7IEFkZG9uIH0gZnJvbSAnQHZlbmRhc3RhL2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IFByaWNpbmcgfSBmcm9tICcuLi9wcmljaW5nL3ByaWNpbmcnO1xuaW1wb3J0IHsgQmlsbGVkUHJvZHVjdCB9IGZyb20gJ0B2ZW5kYXN0YS9jb3JlL2JpbGxpbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZGRvbi1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICdhZGRvbi1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkb24tZGV0YWlscy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZG9uRGV0YWlsc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByb2R1Y3Q6IFByb2R1Y3Q7XG4gIEBJbnB1dCgpIGFkZG9uOiBBZGRvbjtcbiAgQElucHV0KCkgcmVzZWxsZXI6IHRydWU7XG4gIEBJbnB1dCgpIGJpbGxlZFByb2R1Y3Q6IEJpbGxlZFByb2R1Y3Q7XG4gIEBJbnB1dCgpIGhhc1ZlcmlmaWVkQ29udHJhY3QgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGVkID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1ByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RW5hYmxlQWRkb24gPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcHJlcmVxdWlzaXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBvblByZXJlcXVpc2l0ZVNlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMucHJlcmVxdWlzaXRlU2VsZWN0ZWQuZW1pdCgpO1xuICB9XG4gIG9uQWN0aW9uU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb25TZWxlY3RlZC5lbWl0KCk7XG4gIH1cblxuICBnZXRQcmljaW5nKHByb2R1Y3Q6IFByb2R1Y3QsIGFkZG9uOiBBZGRvbik6IFByaWNpbmcge1xuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW5jeTogcHJvZHVjdC5jdXJyZW5jeSxcbiAgICAgIHByaWNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJpY2U6IGFkZG9uLnByaWNlLFxuICAgICAgICAgIGZyZXF1ZW5jeTogYWRkb24uYmlsbGluZ0ZyZXF1ZW5jeSA/IGFkZG9uLmJpbGxpbmdGcmVxdWVuY3kgOiAnTW9udGhseSdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICBnZXQgcHJpY2luZ0xhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzZWxsZXIgPyAnV2hvbGVzYWxlIFByaWNpbmcnIDogJ1ByaWNpbmcnO1xuICB9XG59XG4iXX0=