@vendasta/store
Version:
Components and data for Store
97 lines • 11.2 kB
JavaScript
/**
* @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=