@vendasta/store
Version:
Components and data for Store
154 lines • 14.3 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 { CONTACT_SALES } from '../pricing/pricing';
import { Addon } from '@vendasta/core/shared';
var VaProductDetailsComponent = /** @class */ (function () {
function VaProductDetailsComponent() {
this.hasVerifiedContract = false;
this.canAccessContractPricing = false;
this.showActionButton = false;
this.showPricing = false;
this.showPricingAction = false;
this.loaded = true;
this.enableClicked = new EventEmitter();
this.addonSelected = new EventEmitter();
this.pricingActionSelected = new EventEmitter();
}
/**
* @return {?}
*/
VaProductDetailsComponent.prototype.emitEnableButtonClicked = /**
* @return {?}
*/
function () {
this.enableClicked.emit();
};
/**
* @return {?}
*/
VaProductDetailsComponent.prototype.getAddons = /**
* @return {?}
*/
function () {
if (!this._addons) {
this._addons = this.product.addons.map(function (addon) { return Addon.fromApi(addon); });
}
return this._addons;
};
/**
* @return {?}
*/
VaProductDetailsComponent.prototype.getActionLabel = /**
* @return {?}
*/
function () {
if (this.product.isArchived) {
return 'Enable';
}
return 'Enabled';
};
Object.defineProperty(VaProductDetailsComponent.prototype, "price", {
get: /**
* @return {?}
*/
function () {
// NOTE: wholesalePrice = 0 means free, wholesalePrice = null || -1 means "contact sales"
/** @type {?} */
var prices = [];
if (this.product.wholesalePrice !== CONTACT_SALES && this.product.wholesalePrice != null) {
prices = [{
price: this.product.wholesalePrice,
frequency: this.product.billingFrequency
}];
}
return {
currency: this.product.currency,
prices: prices
};
},
enumerable: true,
configurable: true
});
/**
* @param {?} addonId
* @return {?}
*/
VaProductDetailsComponent.prototype.onAddonSelected = /**
* @param {?} addonId
* @return {?}
*/
function (addonId) {
this.addonSelected.emit(addonId);
};
/**
* @return {?}
*/
VaProductDetailsComponent.prototype.emitPricingActionSelected = /**
* @return {?}
*/
function () {
this.pricingActionSelected.emit();
};
VaProductDetailsComponent.decorators = [
{ type: Component, args: [{
selector: 'va-product-details',
template: "<div class=\"page\">\n <va-header-container [iconUrl]=\"product.iconUrl\"\n [title]=\"product.name\"\n [tagline]=\"product.tagline\"\n [chipLabels]=\"product.getLmiCategoryNames()\"\n [pricing]=\"price\"\n [pricingLabel]=\"'Wholesale Price'\"\n [pricingActionLabel]=\"pricingActionLabel\"\n [pricingActionEnabled]=\"showPricingAction\"\n [actionLabel]=\"getActionLabel()\"\n [actionEnabled]=\"product.isArchived\"\n [showAction]=\"showActionButton\"\n [showPricing]=\"showPricing\"\n [billedProduct]=\"billedProduct\"\n [hasVerifiedContract]=\"hasVerifiedContract\"\n [loaded]=\"loaded\"\n (pricingActionSelected)=\"emitPricingActionSelected()\"\n (actionSelected)=\"emitEnableButtonClicked()\">\n </va-header-container>\n <div class=\"product-details product-content\">\n <div class=\"left-column\">\n <ng-container *ngIf=\"product.description || product.keySellingPoints\">\n <va-selling-info [description]=\"product.description\"\n [keySellingPoints]=\"product.keySellingPoints\"></va-selling-info>\n </ng-container>\n <section *ngIf=\"product.addons?.length > 0\">\n <h2 class=\"va-component-title\">Add-Ons</h2>\n <va-addon-list (addonSelected)=\"onAddonSelected($event)\"\n [addons]=\"getAddons()\"\n [showPricing]=\"showPricing\"\n [hasVerifiedContract]=\"hasVerifiedContract\"\n [canAccessContractPricing]=\"canAccessContractPricing\"\n [partnerID]=\"partnerID\">\n </va-addon-list>\n </section>\n\n <section *ngIf=\"product.faqs?.length > 0\">\n <h2 class=\"va-component-title\">FAQs</h2>\n <va-faqs [faqs]=\"product.faqs\"></va-faqs>\n </section>\n </div>\n\n <div class=\"right-column\">\n <section *ngIf=\"product.restrictions?.country?.whitelist?.length > 0\">\n <supported-countries [countryCodes]=\"product.restrictions.country.whitelist\"></supported-countries>\n </section>\n\n <section *ngIf=\"product.screenshotUrls?.length > 0\">\n <h2 class=\"va-component-title\">Gallery</h2>\n <va-image-gallery [imageUrls]=\"product.screenshotUrls\"></va-image-gallery>\n </section>\n\n <section *ngIf=\"product.files?.length > 0\">\n <h2 class=\"va-component-title\">Files</h2>\n <va-files [files]=\"product.files\"></va-files>\n </section>\n </div>\n </div>\n</div>\n",
styles: [":host{display:block;font-size:14px;line-height:1.4}:host *{box-sizing:border-box}.va-component-title{font-size:24px;font-weight:300;margin-top:0}@media screen and (min-width:600px){.va-component-title{font-size:32px}}img{max-width:100%}va-icon{display:inline-block}.sales-person-details{max-height:430px;overflow:hidden}.page{position:relative;margin:0 auto 20px;background:#fff;color:#212121;box-shadow:0 3px 10px rgba(33,33,33,.3);overflow:hidden;font-size:16px}.page .item-amount{color:#9e9e9e;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%}.product-content{display:flex}@media screen and (max-width:600px){.right-column{width:100%}.product-content{flex-direction:column}}"]
}] }
];
VaProductDetailsComponent.propDecorators = {
product: [{ type: Input }],
billedProduct: [{ type: Input }],
hasVerifiedContract: [{ type: Input }],
canAccessContractPricing: [{ type: Input }],
showActionButton: [{ type: Input }],
showPricing: [{ type: Input }],
pricingActionLabel: [{ type: Input }],
showPricingAction: [{ type: Input }],
loaded: [{ type: Input }],
partnerID: [{ type: Input }],
enableClicked: [{ type: Output }],
addonSelected: [{ type: Output }],
pricingActionSelected: [{ type: Output }]
};
return VaProductDetailsComponent;
}());
export { VaProductDetailsComponent };
if (false) {
/** @type {?} */
VaProductDetailsComponent.prototype.product;
/** @type {?} */
VaProductDetailsComponent.prototype.billedProduct;
/** @type {?} */
VaProductDetailsComponent.prototype.hasVerifiedContract;
/** @type {?} */
VaProductDetailsComponent.prototype.canAccessContractPricing;
/** @type {?} */
VaProductDetailsComponent.prototype.showActionButton;
/** @type {?} */
VaProductDetailsComponent.prototype.showPricing;
/** @type {?} */
VaProductDetailsComponent.prototype.pricingActionLabel;
/** @type {?} */
VaProductDetailsComponent.prototype.showPricingAction;
/** @type {?} */
VaProductDetailsComponent.prototype.loaded;
/** @type {?} */
VaProductDetailsComponent.prototype.partnerID;
/** @type {?} */
VaProductDetailsComponent.prototype.enableClicked;
/** @type {?} */
VaProductDetailsComponent.prototype.addonSelected;
/** @type {?} */
VaProductDetailsComponent.prototype.pricingActionSelected;
/**
* @type {?}
* @private
*/
VaProductDetailsComponent.prototype._addons;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B2ZW5kYXN0YS9zdG9yZS8iLCJzb3VyY2VzIjpbImxpYi9wcm9kdWN0LWRldGFpbHMvcHJvZHVjdC1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFRLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUc1QztJQUFBO1FBU1csd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUNqQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHYixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUEyQ3ZELENBQUM7Ozs7SUF4Q0MsMkRBQXVCOzs7SUFBdkI7UUFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCw2Q0FBUzs7O0lBQVQ7UUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFBO1NBQzFFO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7Ozs7SUFFRCxrREFBYzs7O0lBQWQ7UUFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQzNCLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELHNCQUFJLDRDQUFLOzs7O1FBQVQ7OztnQkFFTSxNQUFNLEdBQVksRUFBRTtZQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3hGLE1BQU0sR0FBRyxDQUFDO3dCQUNSLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWM7d0JBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtxQkFDekMsQ0FBQyxDQUFBO2FBQ0g7WUFDRCxPQUFPO2dCQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7Z0JBQy9CLE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQTtRQUNILENBQUM7OztPQUFBOzs7OztJQUVELG1EQUFlOzs7O0lBQWYsVUFBZ0IsT0FBZTtRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7O0lBRUQsNkRBQXlCOzs7SUFBekI7UUFDRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7Z0JBOURGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixvM0ZBQTZDOztpQkFFOUM7OzswQkFHRSxLQUFLO2dDQUNMLEtBQUs7c0NBQ0wsS0FBSzsyQ0FDTCxLQUFLO21DQUNMLEtBQUs7OEJBQ0wsS0FBSztxQ0FDTCxLQUFLO29DQUNMLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO2dDQUVMLE1BQU07Z0NBQ04sTUFBTTt3Q0FDTixNQUFNOztJQTJDVCxnQ0FBQztDQUFBLEFBL0RELElBK0RDO1NBekRZLHlCQUF5Qjs7O0lBQ3BDLDRDQUEwQjs7SUFDMUIsa0RBQXNDOztJQUN0Qyx3REFBcUM7O0lBQ3JDLDZEQUEwQzs7SUFDMUMscURBQWtDOztJQUNsQyxnREFBNkI7O0lBQzdCLHVEQUFvQzs7SUFDcEMsc0RBQW1DOztJQUNuQywyQ0FBdUI7O0lBQ3ZCLDhDQUEyQjs7SUFFM0Isa0RBQTZDOztJQUM3QyxrREFBcUQ7O0lBQ3JELDBEQUFxRDs7Ozs7SUFDckQsNENBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1Byb2R1Y3R9IGZyb20gJy4uL3NoYXJlZC9wcm9kdWN0JztcbmltcG9ydCB7UHJpY2UsIENPTlRBQ1RfU0FMRVN9IGZyb20gJy4uL3ByaWNpbmcvcHJpY2luZyc7XG5pbXBvcnQge0FkZG9ufSBmcm9tICdAdmVuZGFzdGEvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHtCaWxsZWRQcm9kdWN0fSBmcm9tICdAdmVuZGFzdGEvY29yZS9iaWxsaW5nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmEtcHJvZHVjdC1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICdwcm9kdWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIFZhUHJvZHVjdERldGFpbHNDb21wb25lbnQge1xuICBASW5wdXQoKSBwcm9kdWN0OiBQcm9kdWN0O1xuICBASW5wdXQoKSBiaWxsZWRQcm9kdWN0OiBCaWxsZWRQcm9kdWN0O1xuICBASW5wdXQoKSBoYXNWZXJpZmllZENvbnRyYWN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbkFjY2Vzc0NvbnRyYWN0UHJpY2luZyA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93QWN0aW9uQnV0dG9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dQcmljaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIHByaWNpbmdBY3Rpb25MYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93UHJpY2luZ0FjdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZWQgPSB0cnVlO1xuICBASW5wdXQoKSBwYXJ0bmVySUQ6IHN0cmluZztcblxuICBAT3V0cHV0KCkgZW5hYmxlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGFkZG9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHByaWNpbmdBY3Rpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpdmF0ZSBfYWRkb25zOiBBZGRvbltdO1xuXG4gIGVtaXRFbmFibGVCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZW5hYmxlQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBnZXRBZGRvbnMoKTogQWRkb25bXSB7XG4gICAgICBpZiAoIXRoaXMuX2FkZG9ucykge1xuICAgICAgICAgIHRoaXMuX2FkZG9ucyA9IHRoaXMucHJvZHVjdC5hZGRvbnMubWFwKChhZGRvbikgPT4gQWRkb24uZnJvbUFwaShhZGRvbikpXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5fYWRkb25zO1xuICB9XG5cbiAgZ2V0QWN0aW9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9kdWN0LmlzQXJjaGl2ZWQpIHtcbiAgICAgIHJldHVybiAnRW5hYmxlJztcbiAgICB9XG4gICAgcmV0dXJuICdFbmFibGVkJztcbiAgfVxuXG4gIGdldCBwcmljZSgpIHtcbiAgICAvLyBOT1RFOiB3aG9sZXNhbGVQcmljZSA9IDAgbWVhbnMgZnJlZSwgd2hvbGVzYWxlUHJpY2UgPSBudWxsIHx8IC0xIG1lYW5zIFwiY29udGFjdCBzYWxlc1wiXG4gICAgbGV0IHByaWNlczogUHJpY2VbXSA9IFtdO1xuICAgIGlmICh0aGlzLnByb2R1Y3Qud2hvbGVzYWxlUHJpY2UgIT09IENPTlRBQ1RfU0FMRVMgJiYgdGhpcy5wcm9kdWN0Lndob2xlc2FsZVByaWNlICE9IG51bGwpIHtcbiAgICAgIHByaWNlcyA9IFt7XG4gICAgICAgIHByaWNlOiB0aGlzLnByb2R1Y3Qud2hvbGVzYWxlUHJpY2UsXG4gICAgICAgIGZyZXF1ZW5jeTogdGhpcy5wcm9kdWN0LmJpbGxpbmdGcmVxdWVuY3lcbiAgICAgIH1dXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW5jeTogdGhpcy5wcm9kdWN0LmN1cnJlbmN5LFxuICAgICAgcHJpY2VzOiBwcmljZXNcbiAgICB9XG4gIH1cblxuICBvbkFkZG9uU2VsZWN0ZWQoYWRkb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5hZGRvblNlbGVjdGVkLmVtaXQoYWRkb25JZCk7XG4gIH1cblxuICBlbWl0UHJpY2luZ0FjdGlvblNlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMucHJpY2luZ0FjdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgfVxufVxuIl19