UNPKG

@68publishers/amp-client

Version:

JS Client for 68publishers/amp

56 lines (42 loc) 1.52 kB
import { Banner } from '../banner.mjs'; import { Fingerprint } from '../fingerprint.mjs'; export class EmbedBanner extends Banner { #iframe; #fingerprints; constructor(eventBus, uid, element, iframe, position, options) { super(eventBus, uid, element, position, options); this.#iframe = iframe; this.#fingerprints = []; this.setState(this.STATE.NEW, 'Banner created.'); } get iframe() { return this.#iframe; } get fingerprints() { return this.#fingerprints; } unsetFingerprint(fingerprint) { this.#fingerprints = this.#fingerprints.filter(f => f.value !== fingerprint.value); if (0 >= this.#fingerprints.length) { this.setState(this.STATE.CLOSED, 'Banner has empty data.'); } } getCurrentBreakpoint(bannerId) { // eslint-disable-line no-unused-vars throw new Error('Method EmbedBanner.getCurrentBreakpoint() is not readable.'); } isEmbed() { return true; } updatePositionData(data) { const props = ['id', 'name', 'rotationSeconds', 'displayType', 'breakpointType', 'closedExpiration']; const positionData = this.positionData; for (let prop of props) { if (prop in data) { positionData[prop] = data[prop]; } } } updateFingerprints(fingerprints) { this.#fingerprints = fingerprints.map(f => f instanceof Fingerprint ? f : Fingerprint.createFromValue(f)); } }