UNPKG

@vendasta/store

Version:

Components and data for Store

141 lines 12.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { File } from '../files/shared/file.model'; import { Sellable } from './sellable'; import { CaseTransform } from './case-transform'; /** @type {?} */ const COLOR_CODES = [ '#EF5350', '#42A5F5', '#66BB6A', '#FFA726', '#AB47BC', '#FFCA28', '#EC407A', '#26C6DA', '#FF7B57' ]; /** @type {?} */ const DEFAULT_COLOR = '#808080'; export class Product extends Sellable { /** * @param {?=} data */ constructor(data) { super(); this.addons = []; data = data || {}; this.pricing = data.pricing; this.productId = data.productId; this.editionId = data.editionId; this.editionName = data.editionName; this.name = data.name; this.description = data.description; this.tagline = data.tagline; this.iconUrl = data.iconUrl; this.entryUrl = data.entryUrl; this.screenshotUrls = data.screenshotUrls; this.pdfUploadUrls = data.pdfUploadUrls; this.lmiCategories = data.lmiCategories; this.keySellingPoints = data.keySellingPoints; this.faqs = data.faqs; this.wholesalePrice = data.wholesalePrice; this.currency = data.currency; this.billingFrequency = data.billingFrequency; this.isArchived = data.isArchived; this.addons = data.addons; this.restrictions = data.restrictions; this.billingId = data.billingId; if (data.hasOwnProperty('pdfUploadUrls')) { this.files = this.pdfUploadUrls ? this.pdfUploadUrls.map(url => new File(url)) : null; } } /** * @param {?} data * @return {?} */ static fromApi(data) { /** @type {?} */ const newProduct = {}; data = data || {}; for (const key in data) { if (data.hasOwnProperty(key)) { /** @type {?} */ const newKey = CaseTransform.snakeToCamelCase(key); newProduct[newKey] = data[key]; } } return new Product(newProduct); } /** * @return {?} */ get iconStyle() { return this.iconUrl ? `url("${this.iconUrl}") no-repeat center / 100% 100%` : null; } /** * @return {?} */ get iconColor() { // determine an icon color for a product with no icon by using the product name if (!this.name) { return DEFAULT_COLOR; } /** @type {?} */ let nameSum = 0; for (let i = 0; i < this.name.length; i++) { nameSum += this.name[i].charCodeAt(0); } /** @type {?} */ const index = nameSum % COLOR_CODES.length; return COLOR_CODES[index]; } /** * @return {?} */ getLmiCategoryNames() { /** @type {?} */ const lmiCategories = this.lmiCategories || []; return lmiCategories.map(lmiCategory => CaseTransform.lowerToTitleCase(lmiCategory.toLowerCase().replace(/_/g, ' '))); } } if (false) { /** @type {?} */ Product.prototype.productId; /** @type {?} */ Product.prototype.editionId; /** @type {?} */ Product.prototype.editionName; /** @type {?} */ Product.prototype.name; /** @type {?} */ Product.prototype.description; /** @type {?} */ Product.prototype.tagline; /** @type {?} */ Product.prototype.iconUrl; /** @type {?} */ Product.prototype.entryUrl; /** @type {?} */ Product.prototype.screenshotUrls; /** @type {?} */ Product.prototype.pdfUploadUrls; /** @type {?} */ Product.prototype.lmiCategories; /** @type {?} */ Product.prototype.keySellingPoints; /** @type {?} */ Product.prototype.faqs; /** @type {?} */ Product.prototype.wholesalePrice; /** @type {?} */ Product.prototype.currency; /** @type {?} */ Product.prototype.billingFrequency; /** @type {?} */ Product.prototype.billingId; /** @type {?} */ Product.prototype.isArchived; /** @type {?} */ Product.prototype.addons; /** @type {?} */ Product.prototype.files; /** @type {?} */ Product.prototype.restrictions; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B2ZW5kYXN0YS9zdG9yZS8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWhELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOztNQUl6QyxXQUFXLEdBQUc7SUFDaEIsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7SUFDdEYsU0FBUztDQUNaOztNQUVLLGFBQWEsR0FBRyxTQUFTO0FBRS9CLE1BQU0sT0FBTyxPQUFRLFNBQVEsUUFBUTs7OztJQWtDakMsWUFBWSxJQUFVO1FBQ3BCLEtBQUssRUFBRSxDQUFDO1FBaEJWLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFpQm5CLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFD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QUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hILENBQUM7Q0FDSjs7O0lBcEZHLDRCQUFrQjs7SUFDbEIsNEJBQWtCOztJQUNsQiw4QkFBb0I7O0lBQ3BCLHVCQUFhOztJQUNiLDhCQUFvQjs7SUFDcEIsMEJBQWdCOztJQUNoQiwwQkFBZ0I7O0lBQ2hCLDJCQUFpQjs7SUFDakIsaUNBQXlCOztJQUN6QixnQ0FBd0I7O0lBQ3hCLGdDQUF3Qjs7SUFDeEIsbUNBQTJCOztJQUMzQix1QkFBWTs7SUFDWixpQ0FBdUI7O0lBQ3ZCLDJCQUFpQjs7SUFDakIsbUNBQXlCOztJQUN6Qiw0QkFBa0I7O0lBQ2xCLDZCQUFvQjs7SUFDcEIseUJBQXFCOztJQUNyQix3QkFBYzs7SUFDZCwrQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbGV9IGZyb20gJy4uL2ZpbGVzL3NoYXJlZC9maWxlLm1vZGVsJztcbmltcG9ydCB7RmFxfSBmcm9tICcuLi9mYXFzL3NoYXJlZC9mYXFzLm1vZGVsJztcbmltcG9ydCB7U2VsbGFibGV9IGZyb20gJy4vc2VsbGFibGUnO1xuaW1wb3J0IHtDYXNlVHJhbnNmb3JtfSBmcm9tICcuL2Nhc2UtdHJhbnNmb3JtJztcbmltcG9ydCB7QWRkb259IGZyb20gJ0B2ZW5kYXN0YS9jb3JlL3NoYXJlZCc7XG5pbXBvcnQge1Jlc3RyaWN0aW9uc30gZnJvbSAnLi4vcmVzdHJpY3Rpb25zL3NoYXJlZC9yZXN0cmljdGlvbnMubW9kZWwnO1xuXG5jb25zdCBDT0xPUl9DT0RFUyA9IFtcbiAgICAnI0VGNTM1MCcsICcjNDJBNUY1JywgJyM2NkJCNkEnLCAnI0ZGQTcyNicsICcjQUI0N0JDJywgJyNGRkNBMjgnLCAnI0VDNDA3QScsICcjMjZDNkRBJyxcbiAgICAnI0ZGN0I1Nydcbl07XG5cbmNvbnN0IERFRkFVTFRfQ09MT1IgPSAnIzgwODA4MCc7XG5cbmV4cG9ydCBjbGFzcyBQcm9kdWN0IGV4dGVuZHMgU2VsbGFibGUge1xuICAgIHByb2R1Y3RJZDogc3RyaW5nO1xuICAgIGVkaXRpb25JZDogc3RyaW5nO1xuICAgIGVkaXRpb25OYW1lOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgdGFnbGluZTogc3RyaW5nO1xuICAgIGljb25Vcmw6IHN0cmluZztcbiAgICBlbnRyeVVybDogc3RyaW5nO1xuICAgIHNjcmVlbnNob3RVcmxzOiBzdHJpbmdbXTtcbiAgICBwZGZVcGxvYWRVcmxzOiBzdHJpbmdbXTtcbiAgICBsbWlDYXRlZ29yaWVzOiBzdHJpbmdbXTtcbiAgICBrZXlTZWxsaW5nUG9pbnRzOiBzdHJpbmdbXTtcbiAgICBmYXFzOiBGYXFbXTtcbiAgICB3aG9sZXNhbGVQcmljZTogbnVtYmVyO1xuICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gICAgYmlsbGluZ0ZyZXF1ZW5jeTogc3RyaW5nO1xuICAgIGJpbGxpbmdJZDogc3RyaW5nO1xuICAgIGlzQXJjaGl2ZWQ6IGJvb2xlYW47XG4gICAgYWRkb25zOiBBZGRvbltdID0gW107XG4gICAgZmlsZXM6IEZpbGVbXTtcbiAgICByZXN0cmljdGlvbnM6IFJlc3RyaWN0aW9ucztcblxuICAgIHN0YXRpYyBmcm9tQXBpKGRhdGE6IGFueSk6IFByb2R1Y3Qge1xuICAgICAgY29uc3QgbmV3UHJvZHVjdCA9IHt9O1xuICAgICAgZGF0YSA9IGRhdGEgfHwge307XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICBjb25zdCBuZXdLZXkgPSBDYXNlVHJhbnNmb3JtLnNuYWtlVG9DYW1lbENhc2Uoa2V5KTtcbiAgICAgICAgICBuZXdQcm9kdWN0W25ld0tleV0gPSBkYXRhW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgUHJvZHVjdChuZXdQcm9kdWN0KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIGRhdGEgPSBkYXRhIHx8IHt9O1xuICAgICAgdGhpcy5wcmljaW5nID0gZGF0YS5wcmljaW5nO1xuICAgICAgdGhpcy5wcm9kdWN0SWQgPSBkYXRhLnByb2R1Y3RJZDtcbiAgICAgIHRoaXMuZWRpdGlvbklkID0gZGF0YS5lZGl0aW9uSWQ7XG4gICAgICB0aGlzLmVkaXRpb25OYW1lID0gZGF0YS5lZGl0aW9uTmFtZTtcbiAgICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkYXRhLmRlc2NyaXB0aW9uO1xuICAgICAgdGhpcy50YWdsaW5lID0gZGF0YS50YWdsaW5lO1xuICAgICAgdGhpcy5pY29uVXJsID0gZGF0YS5pY29uVXJsO1xuICAgICAgdGhpcy5lbnRyeVVybCA9IGRhdGEuZW50cnlVcmw7XG4gICAgICB0aGlzLnNjcmVlbnNob3RVcmxzID0gZGF0YS5zY3JlZW5zaG90VXJscztcbiAgICAgIHRoaXMucGRmVXBsb2FkVXJscyA9IGRhdGEucGRmVXBsb2FkVXJscztcbiAgICAgIHRoaXMubG1pQ2F0ZWdvcmllcyA9IGRhdGEubG1pQ2F0ZWdvcmllcztcbiAgICAgIHRoaXMua2V5U2VsbGluZ1BvaW50cyA9IGRhdGEua2V5U2VsbGluZ1BvaW50cztcbiAgICAgIHRoaXMuZmFxcyA9IGRhdGEuZmFxcztcbiAgICAgIHRoaXMud2hvbGVzYWxlUHJpY2UgPSBkYXRhLndob2xlc2FsZVByaWNlO1xuICAgICAgdGhpcy5jdXJyZW5jeSA9IGRhdGEuY3VycmVuY3k7XG4gICAgICB0aGlzLmJpbGxpbmdGcmVxdWVuY3kgPSBkYXRhLmJpbGxpbmdGcmVxdWVuY3k7XG4gICAgICB0aGlzLmlzQXJjaGl2ZWQgPSBkYXRhLmlzQXJjaGl2ZWQ7XG4gICAgICB0aGlzLmFkZG9ucyA9IGRhdGEuYWRkb25zO1xuICAgICAgdGhpcy5yZXN0cmljdGlvbnMgPSBkYXRhLnJlc3RyaWN0aW9ucztcbiAgICAgIHRoaXMuYmlsbGluZ0lkID0gZGF0YS5iaWxsaW5nSWQ7XG4gICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgncGRmVXBsb2FkVXJscycpKSB7XG4gICAgICAgIHRoaXMuZmlsZXMgPSB0aGlzLnBkZlVwbG9hZFVybHMgPyB0aGlzLnBkZlVwbG9hZFVybHMubWFwKHVybCA9PiBuZXcgRmlsZSh1cmwpKSA6IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGdldCBpY29uU3R5bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWNvblVybCA/IGB1cmwoXCIke3RoaXMuaWNvblVybH1cIikgbm8tcmVwZWF0IGNlbnRlciAvIDEwMCUgMTAwJWAgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBpY29uQ29sb3IoKTogc3RyaW5nIHtcbiAgICAgICAgLy8gZGV0ZXJtaW5lIGFuIGljb24gY29sb3IgZm9yIGEgcHJvZHVjdCB3aXRoIG5vIGljb24gYnkgdXNpbmcgdGhlIHByb2R1Y3QgbmFtZVxuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIERFRkFVTFRfQ09MT1I7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbmFtZVN1bSA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uYW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBuYW1lU3VtICs9IHRoaXMubmFtZVtpXS5jaGFyQ29kZUF0KDApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSBuYW1lU3VtICUgQ09MT1JfQ09ERVMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gQ09MT1JfQ09ERVNbaW5kZXhdO1xuICAgIH1cblxuICAgIGdldExtaUNhdGVnb3J5TmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgbG1pQ2F0ZWdvcmllcyA9IHRoaXMubG1pQ2F0ZWdvcmllcyB8fCBbXTtcbiAgICAgIHJldHVybiBsbWlDYXRlZ29yaWVzLm1hcChsbWlDYXRlZ29yeSA9PiBDYXNlVHJhbnNmb3JtLmxvd2VyVG9UaXRsZUNhc2UobG1pQ2F0ZWdvcnkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9fL2csICcgJykpKTtcbiAgICB9XG59XG4iXX0=