var baseSegments = (function () { 'use strict'; var pearlID = '2020'; var template = '
{{# isPearl}}
LiveRamp Segments:

{{/isPearl}}
'; return newSegments; function newSegments(d, cid, uf, bf) { return new Segments(d, cid, uf, bf); } function mapSegmentID(seg) { return seg.getValue().id; } function Segments(d, cid, uf, bf) { var isPearl = uf.core.agencyID === pearlID, e = getElementFromString(template, {isPearl: isPearl}), lrSegs = e.querySelector('#lrSegs'), items = getDataItems(d, d.lists.segments, isPearl), lrSegsTC = lrSegs ? new TagContainer(lrSegs, { 'limit' : 2000, 'data' : items.lr }, lrSegUpdate) : null, list = CheckboxListv2.New(e.firstChild, 'Select Segments', items.segs, segmentsUpdate, true); this.getE = function () { return e; }; this.getActive = list.getActive; this.toggleUserSegments = toggle; this.exit = exit; function lrSegUpdate(v) { d.segments = d.segments.filter(filterLRAndAuto); d.segments.push.apply(d.segments, v.map(v => 'lr-' + v.trim()).filter((v) => v.length > 3)); } function segmentsUpdate() { var otherSegs = d.segments ? d.segments.filter((v) => v.substr(0, 3) === 'lr-' || v.substr(0, 5) === 'auto_') : []; d.segments = list.getActive().map(mapSegmentID).concat(otherSegs); uf.refreshSidePanel(); } function toggle(state) { loop(list.getList(), p); function p(k, v) { var t = v.getElement(); if (typeof t.dataset.id === 'string') t.classList[state ? 'remove' : 'add']('noDisplay'); } } function exit() { if (!!list) list.exit(); e = lrSegs = lrSegsTC = list = null; } } function getDataItems(d, segs, isPearl) { var r = { segs: [], lr: unmapLiveRampIDs(d.segments), }; segs.forEach(function (seg) { if(seg.id.substr(0, 3) === 'lr-') { r.lr.push(seg.id.substr(3)); // trim the 'lr-' } else { r.segs.push(new CheckboxListv2.Item(seg.label, seg, hasID(d.segments, seg.id))); } }); return r; } function hasID(arr, id) { if (!Array.isArray(arr)) { return false; } return arr.some(function (rid) { return rid === id; }); } function getSegmentsAndEvegments(d) { if (!d.apps.evegment || !d.apps.evegment.list) return d.segments; var ret = []; ret.push.apply(ret, d.segments); ret.push.apply(ret, d.apps.evegment.list); return ret; } function unmapLiveRampIDs(segs) { if(!segs) return []; return segs.filter((v) => v.substr(0, 3) === 'lr-').map((v) => v.substr(3)); } function filterLRAndAuto(v) { return v.indexOf('auto_') !== -1 || v.indexOf("lr-") !== -1; } })();