UNPKG

@vendasta/store

Version:

Components and data for Store

154 lines 14.3 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 { 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