coveo-search-ui
Version:
Coveo JavaScript Search Framework
121 lines (120 loc) • 4.91 kB
JavaScript
var Coveo;
!(function (e) {
!(function (e) {
function c(e, l) {
e.className = e.className.replace(new RegExp('(^|\\s)' + l + '(\\s|\\b)', 'g'), '$1');
}
!(function (e) {
(e[(e.OK = 1)] = 'OK'),
(e[(e.APPLY = 2)] = 'APPLY'),
(e[(e.YES = 4)] = 'YES'),
(e[(e.NO = 8)] = 'NO'),
(e[(e.CANCEL = 16)] = 'CANCEL');
})(e.BUTTON || (e.BUTTON = {}));
var l = e.BUTTON,
d = [];
(e.open = function o(e, s) {
void 0 === s && (s = {});
var r = s.body || document.body;
r.className
? -1 == r.className.indexOf('coveo-modal-opened') && (r.className += ' coveo-modal-opened')
: (r.className = 'coveo-modal-opened');
var i = document.createElement('div');
(i.className = 'coveo-modal-container coveo-opened '),
'small' == s.sizeMod && (i.className += ' coveo-mod-small'),
'big' == s.sizeMod && (i.className += ' coveo-mod-big'),
setTimeout(function () {
i.className += ' coveo-mod-fade-in-scale';
}, 0),
r.appendChild(i),
!0 === s.fullscreen && (i.className += ' coveo-fullscreen');
var v = document.createElement('div');
(v.className = 'coveo-modal-backdrop coveo-modal-transparent'),
r.appendChild(v),
setTimeout(function () {
c(v, 'coveo-modal-transparent');
}, 0);
var u = document.createElement('div');
(u.className = 'coveo-modal-content'), i.appendChild(u);
var m = function (e, l) {
if ((void 0 === e && (e = 0), void 0 === l && (l = !1), !1 !== (null == s.validation || s.validation(e)) || l)) {
i.parentElement && i.parentElement.removeChild(i);
var u = d.indexOf(m);
return (
document.removeEventListener('keyup', N),
u >= 0 && d.splice(u, 1),
null == r.querySelector('.coveo-modal-container') && c(r, 'coveo-modal-opened'),
v.parentNode && v.parentNode.removeChild(v),
!0
);
}
return !1;
},
p = (function a(e, l) {
var d = document.createElement('header');
if (((d.className = 'coveo-modal-header'), null != e.title)) {
var s = document.createElement('h1');
d.appendChild(s),
e.title instanceof HTMLElement ? s.appendChild(e.title) : (s.innerHTML = e.title),
!0 === e.titleClose &&
s.addEventListener('click', function () {
return l();
});
}
var r = document.createElement('span');
(r.className = 'coveo-small-close'), d.appendChild(r);
var i =
'<svg viewBox="0 0 22 22" class="coveo-icon coveo-fill-pure-white">\n <g transform="matrix(.7071-.7071.7071.7071-3.142 11)">\n <path d="m9-3.4h2v26.9h-2z"></path>\n <path d="m-3.4 9h26.9v2h-26.9z"></path>\n </g>\n </svg>';
return (r.innerHTML = i), { header: d, closeIcon: r };
})(s, m),
f = p.header,
C = p.closeIcon;
u.appendChild(f),
u.appendChild(
(function t(e, l) {
var d = document.createElement('div');
return (d.className = 'coveo-modal-body coveo-mod-header-paddding coveo-mod-form-top-bottom-padding'), d.appendChild(l), d;
})(0, e)
),
C.addEventListener('click', function () {
m();
}),
v.addEventListener('click', function () {
m();
});
var N = function (e) {
27 == e.keyCode && -1 != r.className.indexOf('coveo-modal-opened') && m();
};
document.addEventListener('keyup', N);
var E,
h = function (e, l) {
var d = document.createElement('button');
(d.className = 'coveo-btn'),
(d.textContent = e),
d.addEventListener('click', function () {
return m(l);
}),
E.appendChild(d);
};
return (
null != s.buttons &&
(((E = document.createElement('footer')).className = 'coveo-modal-footer'),
u.appendChild(E),
s.buttons & l.OK && h('Ok', l.OK),
s.buttons & l.APPLY && h('Apply', l.APPLY),
s.buttons & l.YES && h('Yes', l.YES),
s.buttons & l.NO && h('No', l.NO),
s.buttons & l.CANCEL && h('Cancel', l.CANCEL)),
d.push(m),
null != s.className && (i.className += ' ' + s.className),
{ modalBox: i, wrapper: u, buttons: E, content: u, overlay: v, close: m }
);
}),
(e.close = function n(e) {
void 0 === e && (e = !1);
for (var l = 0; d.length > l; ) {
d[l](0, e) || l++;
}
});
})(e.ModalBox || (e.ModalBox = {}));
})(Coveo || (Coveo = {}));