UNPKG

@swrve/smarttv-sdk

Version:

Swrve marketing engagement platform SDK for SmartTV OTT devices

97 lines (96 loc) 3.34 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SwrveImage = void 0; const TextTemplating_1 = require("../utils/TextTemplating"); const SwrveLogger_1 = __importDefault(require("../utils/SwrveLogger")); class SwrveImage { constructor(image, cdn, personalizationProperties, scale) { this._image = image; this._cdn = cdn; this._scale = scale; this._hasDynamicUrl = !!this._image.dynamic_image_url; this._isSingleLineText = !!this._image.text; this._personalizationProperties = personalizationProperties; } get image() { return this._image; } get scale() { return this._scale; } get hasDynamicUrl() { return this._hasDynamicUrl; } get isSingleLineText() { return this._isSingleLineText; } canRender() { if (this.isSingleLineText) { const resolved = this.resolveTextTemplating(this.image.text.value, this._personalizationProperties); /** return directly since if there's single text then it should either resolve or not show up at all */ return (resolved !== null); } if (this.hasDynamicUrl) { const response = this.resolveTextTemplating(this._image.dynamic_image_url, this._personalizationProperties); if (response !== null) return true; } if (this._image.image !== undefined) { return true; } return false; } //FIXME: this needs to change for items that have no backup assets getAssetID() { if (this._image.image) { return this.resolveOrFallbackUrlPersonalization(this._image.image.value); } else { return this.resolveOrFallbackUrlPersonalization(""); } } getAssetPath() { if (this._image.image) { return this.resolveOrFallbackUrlPersonalization(`${this._cdn}${this.image.image.value}`); } else { return this.resolveOrFallbackUrlPersonalization(""); } } getWidth() { if (this.hasDynamicUrl) return this.image.w.value; return this.image.image_width; } getHeight() { if (this.hasDynamicUrl) return this.image.h.value; return this.image.image_height; } resolveOrFallbackUrlPersonalization(fallback) { if (this.hasDynamicUrl) { const response = this.resolveTextTemplating(this._image.dynamic_image_url, this._personalizationProperties); if (response !== null) { return response; } } return fallback; } resolveTextTemplating(text, personalizationProperties) { try { const resolvedText = TextTemplating_1.TextTemplating.applyTextTemplatingToString(text, personalizationProperties); if (resolvedText !== null) { return resolvedText; } } catch (e) { SwrveLogger_1.default.debug("Could not resolve personalization for: " + text); return null; } return null; } } exports.SwrveImage = SwrveImage;