coveo-search-ui
Version:
Coveo JavaScript Search Framework
1,101 lines (1,039 loc) • 101 kB
JavaScript
webpackJsonpCoveo__temporary([19],{
/***/ 118:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Component_1 = __webpack_require__(7);
var ResultList_1 = __webpack_require__(93);
var Dom_1 = __webpack_require__(1);
var underscore_1 = __webpack_require__(0);
var Logger_1 = __webpack_require__(9);
var ResultListUtils = /** @class */ (function () {
function ResultListUtils() {
}
ResultListUtils.hideIfInfiniteScrollEnabled = function (cmp) {
var infiniteScrollEnabled = ResultListUtils.isInfiniteScrollEnabled(cmp.searchInterface.element);
if (infiniteScrollEnabled) {
cmp.disable();
Dom_1.$$(cmp.element).hide();
ResultListUtils.warnIfComponentNotNeeded(cmp);
}
else {
cmp.enable();
Dom_1.$$(cmp.element).unhide();
}
};
ResultListUtils.isInfiniteScrollEnabled = function (root) {
var resultList = ResultListUtils.getMainResultList(root);
return resultList ? !!resultList.options.enableInfiniteScroll : false;
};
ResultListUtils.scrollToTop = function (root) {
var resultList = ResultListUtils.getMainResultList(root);
if (!resultList) {
new Logger_1.Logger(this).warn('No active ResultList, scrolling to the top of the Window');
return window.scrollTo(0, 0);
}
var searchInterfacePosition = resultList.searchInterface.element.getBoundingClientRect().top;
if (searchInterfacePosition > 0) {
return;
}
window.scrollTo(0, window.pageYOffset + searchInterfacePosition);
};
ResultListUtils.getMainResultList = function (root) {
var resultLists = ResultListUtils.getResultLists(root);
return underscore_1.find(resultLists, function (resultList) {
var isRecInterface = resultList.searchInterface.element.classList.contains('CoveoRecommendation');
return !resultList.disabled && !isRecInterface;
});
};
ResultListUtils.getResultLists = function (root) {
return Dom_1.$$(root)
.findAll("." + ResultListUtils.cssClass())
.map(function (el) { return Component_1.Component.get(el, ResultList_1.ResultList); });
};
ResultListUtils.cssClass = function () {
return Component_1.Component.computeCssClassName(ResultList_1.ResultList);
};
ResultListUtils.warnIfComponentNotNeeded = function (cmp) {
var root = cmp.searchInterface.root;
var allListsUseInfiniteScroll = ResultListUtils.allResultListsUseInfiniteScroll(root);
allListsUseInfiniteScroll && ResultListUtils.notNeededComponentWarning(cmp);
};
ResultListUtils.allResultListsUseInfiniteScroll = function (root) {
var listsWithInfiniteScrollDisabled = ResultListUtils.getResultLists(root).filter(function (resultList) { return !resultList.options.enableInfiniteScroll; });
return listsWithInfiniteScrollDisabled.length === 0;
};
ResultListUtils.notNeededComponentWarning = function (cmp) {
var cmpCssClass = Component_1.Component.computeCssClassNameForType(cmp.type);
var message = "The " + cmpCssClass + " component is not needed because all " + ResultListUtils.cssClass() + " components have enableInfiniteScroll set to 'true'.\n For the best performance, remove the " + cmpCssClass + " component from your search page.";
new Logger_1.Logger(cmp).warn(message);
};
return ResultListUtils;
}());
exports.ResultListUtils = ResultListUtils;
/***/ }),
/***/ 215:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Component_1 = __webpack_require__(7);
var _ = __webpack_require__(0);
var ResultListRenderer = /** @class */ (function () {
function ResultListRenderer(resultListOptions, autoCreateComponentsFn) {
this.resultListOptions = resultListOptions;
this.autoCreateComponentsFn = autoCreateComponentsFn;
}
ResultListRenderer.prototype.renderResults = function (resultElements, append, resultDisplayedCallback) {
var _this = this;
if (append === void 0) { append = false; }
return Promise.all([this.getStartFragment(resultElements, append), this.getEndFragment(resultElements, append)]).then(function (_a) {
var startFrag = _a[0], endFrag = _a[1];
var resultsFragment = document.createDocumentFragment();
if (startFrag) {
resultsFragment.appendChild(startFrag);
}
_.each(resultElements, function (resultElement) {
resultsFragment.appendChild(resultElement);
resultDisplayedCallback(Component_1.Component.getResult(resultElement), resultElement);
});
if (endFrag) {
resultsFragment.appendChild(endFrag);
}
_this.resultListOptions.resultsContainer.appendChild(resultsFragment);
});
};
ResultListRenderer.prototype.getStartFragment = function (resultElements, append) {
return Promise.resolve(document.createDocumentFragment());
};
ResultListRenderer.prototype.getEndFragment = function (resultElements, append) {
return Promise.resolve(document.createDocumentFragment());
};
return ResultListRenderer;
}());
exports.ResultListRenderer = ResultListRenderer;
/***/ }),
/***/ 40:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/// <reference path='Facet.ts' />
var StringUtils_1 = __webpack_require__(22);
var QueryUtils_1 = __webpack_require__(21);
var FileTypes_1 = __webpack_require__(121);
var DateUtils_1 = __webpack_require__(33);
var Utils_1 = __webpack_require__(4);
var Dom_1 = __webpack_require__(1);
var _ = __webpack_require__(0);
var Strings_1 = __webpack_require__(6);
var FacetUtils = /** @class */ (function () {
function FacetUtils() {
}
FacetUtils.getRegexToUseForFacetSearch = function (value, ignoreAccent) {
return new RegExp(StringUtils_1.StringUtils.stringToRegex(value, ignoreAccent), 'i');
};
FacetUtils.getDisplayValueFromValueCaption = function (value, field, valueCaption) {
var returnValue = this.tryToGetTranslatedCaption(field, value, false);
return valueCaption[value] || returnValue;
};
FacetUtils.getValuesToUseForSearchInFacet = function (original, facet) {
var ret = [original];
var regex = this.getRegexToUseForFacetSearch(original, facet.options.facetSearchIgnoreAccents);
if (facet.options.valueCaption) {
_.chain(facet.options.valueCaption)
.pairs()
.filter(function (pair) {
return regex.test(pair[1]);
})
.each(function (match) {
ret.push(match[0]);
});
if (QueryUtils_1.QueryUtils.isStratusAgnosticField(facet.options.field, '@objecttype') ||
QueryUtils_1.QueryUtils.isStratusAgnosticField(facet.options.field, '@filetype')) {
_.each(FileTypes_1.FileTypes.getFileTypeCaptions(), function (value, key) {
if (!(key in facet.options.valueCaption) && regex.test(value)) {
ret.push(key);
}
});
}
}
else if (QueryUtils_1.QueryUtils.isStratusAgnosticField(facet.options.field, '@objecttype') ||
QueryUtils_1.QueryUtils.isStratusAgnosticField(facet.options.field, '@filetype')) {
_.each(_.filter(_.pairs(FileTypes_1.FileTypes.getFileTypeCaptions()), function (pair) {
return regex.test(pair[1]);
}), function (match) {
ret.push(match[0]);
});
}
else if (QueryUtils_1.QueryUtils.isStratusAgnosticField(facet.options.field, '@month')) {
_.each(_.range(1, 13), function (month) {
if (regex.test(DateUtils_1.DateUtils.monthToString(month - 1))) {
ret.push(('0' + month.toString()).substr(-2));
}
});
}
return ret;
};
FacetUtils.buildFacetSearchPattern = function (values) {
values = _.map(values, function (value) {
return Utils_1.Utils.escapeRegexCharacter(value);
});
values[0] = '.*' + values[0] + '.*';
return values.join('|');
};
FacetUtils.needAnotherFacetSearch = function (currentSearchLength, newSearchLength, oldSearchLength, desiredSearchLength) {
// Something was removed (currentSearch < newSearch)
// && we might want to display more facet search result(currentSearch < desiredSearch)
// && the new query returned more stuff than the old one so there's still more results(currentSearchLength > oldLength)
return currentSearchLength < newSearchLength && currentSearchLength < desiredSearchLength && currentSearchLength > oldSearchLength;
};
FacetUtils.addNoStateCssClassToFacetValues = function (facet, container) {
// This takes care of adding the correct css class on each facet value checkbox (empty white box) if at least one value is selected in that facet
if (facet.values.getSelected().length != 0) {
var noStates = Dom_1.$$(container).findAll('li:not(.coveo-selected)');
_.each(noStates, function (noState) {
Dom_1.$$(noState).addClass('coveo-no-state');
});
}
};
FacetUtils.tryToGetTranslatedCaption = function (field, value, fallbackOnLocalization) {
if (fallbackOnLocalization === void 0) { fallbackOnLocalization = true; }
var found;
if (QueryUtils_1.QueryUtils.isStratusAgnosticField(field.toLowerCase(), '@filetype')) {
found = FileTypes_1.FileTypes.getFileType(value, fallbackOnLocalization).caption;
}
else if (QueryUtils_1.QueryUtils.isStratusAgnosticField(field.toLowerCase(), '@objecttype')) {
found = FileTypes_1.FileTypes.getObjectType(value, fallbackOnLocalization).caption;
}
else if (FacetUtils.isMonthFieldValue(field, value)) {
var month = parseInt(value, 10);
found = DateUtils_1.DateUtils.monthToString(month - 1);
}
else if (fallbackOnLocalization) {
found = Strings_1.l(value);
}
return found != undefined && Utils_1.Utils.isNonEmptyString(found) ? found : value;
};
FacetUtils.isMonthFieldValue = function (field, value) {
if (!QueryUtils_1.QueryUtils.isStratusAgnosticField(field.toLowerCase(), '@month')) {
return false;
}
var asInt = parseInt(value, 10);
if (isNaN(asInt)) {
return false;
}
if (asInt < 1 || asInt > 12) {
return false;
}
return true;
};
return FacetUtils;
}());
exports.FacetUtils = FacetUtils;
/***/ }),
/***/ 470:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var Template_1 = __webpack_require__(27);
var TemplateList_1 = __webpack_require__(96);
var _ = __webpack_require__(0);
var TableTemplate = /** @class */ (function (_super) {
__extends(TableTemplate, _super);
function TableTemplate() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.defaultTemplate = "<td><a class=\"CoveoResultLink\"></a></td>\n <td><span class=\"CoveoExcerpt\"></span></td>\n <td><span class=\"CoveoFieldValue\" data-field=\"@date\" data-helper=\"date\"></span></td>";
_this.defaultRoledTemplates = {
'table-header': "<th style=\"width: 40%\">Link</th>\n <th>Excerpt</th>\n <th style=\"width: 20%\"\n class=\"CoveoSort coveo-table-header-sort\"\n data-sort-criteria=\"date ascending,date descending\"\n data-display-unselected-icon=\"false\">Date</th>",
'table-footer': "<th>Link</th>\n <th>Excerpt</th>\n <th>Date</th>"
};
return _this;
}
TableTemplate.prototype.instantiateRoleToString = function (role) {
var roledTemplate = _.find(this.templates, function (t) { return t.role === role; });
if (roledTemplate) {
return roledTemplate.instantiateToString(undefined, {});
}
else {
return this.defaultRoledTemplates[role];
}
};
TableTemplate.prototype.instantiateRoleToElement = function (role) {
var _this = this;
var roledTemplate = _.find(this.templates, function (t) { return t.role === role; });
if (roledTemplate) {
return roledTemplate.instantiateToElement(undefined, {});
}
else {
var tmpl = new Template_1.Template(function () { return _this.defaultRoledTemplates[role]; });
tmpl.layout = 'table';
return tmpl.instantiateToElement(undefined);
}
};
TableTemplate.prototype.getFallbackTemplate = function () {
var _this = this;
return new Template_1.Template(function () { return _this.defaultTemplate; });
};
TableTemplate.prototype.hasTemplateWithRole = function (role) {
return _.find(this.templates, function (t) { return t.role === role; });
};
return TableTemplate;
}(TemplateList_1.TemplateList));
exports.TableTemplate = TableTemplate;
/***/ }),
/***/ 472:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var Template_1 = __webpack_require__(27);
var DefaultRecommendationTemplate = /** @class */ (function (_super) {
__extends(DefaultRecommendationTemplate, _super);
function DefaultRecommendationTemplate() {
return _super !== null && _super.apply(this, arguments) || this;
}
DefaultRecommendationTemplate.prototype.instantiateToString = function (object) {
var template = "<div class=\"coveo-result-frame\">\n <div class=\"coveo-result-row\">\n <div class=\"coveo-result-cell\" style=\"width:40px;text-align:center;vertical-align:middle;\">\n <span class=\"CoveoIcon\" data-small=\"true\" data-with-label=\"false\">\n </span>\n </div>\n <div class=\"coveo-result-cell\" style=\"padding:0 0 3px 5px;vertical-align:middle\">\n <div class=\"coveo-result-row\">\n <div class=\"coveo-result-cell\" style=\"font-size:10pt;\">\n <a class=\"CoveoResultLink\" style=\"display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis\">\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>";
return template;
};
DefaultRecommendationTemplate.prototype.instantiateToElement = function (object) {
var _this = this;
return new Promise(function (resolve, reject) {
var div = document.createElement('div');
div.innerHTML = _this.instantiateToString(object);
resolve(div);
});
};
return DefaultRecommendationTemplate;
}(Template_1.Template));
exports.DefaultRecommendationTemplate = DefaultRecommendationTemplate;
/***/ }),
/***/ 473:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [0, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var Core_1 = __webpack_require__(20);
var ResultList_1 = __webpack_require__(93);
var underscore_1 = __webpack_require__(0);
var Dom_1 = __webpack_require__(1);
var Logger_1 = __webpack_require__(9);
var TemplateToHtml = /** @class */ (function () {
function TemplateToHtml(args) {
this.args = args;
}
TemplateToHtml.prototype.buildResults = function (results, layout, currentlyDisplayedResults) {
return __awaiter(this, void 0, void 0, function () {
var _this = this;
var res, resultsPromises;
return __generator(this, function (_a) {
res = [];
resultsPromises = underscore_1.map(results.results, function (result, index) {
return _this.buildResult(result, layout, currentlyDisplayedResults).then(function (resultElement) {
if (resultElement != null) {
res.push({ elem: resultElement, idx: index });
}
ResultList_1.ResultList.resultCurrentlyBeingRendered = null;
return resultElement;
});
});
// We need to sort by the original index order, because in lazy loading mode, it's possible that results does not gets rendered
// in the correct order returned by the index, depending on the time it takes to load all the results component for a given result template
return [2 /*return*/, Promise.all(resultsPromises).then(function () {
return underscore_1.pluck(underscore_1.sortBy(res, 'idx'), 'elem');
})];
});
});
};
TemplateToHtml.prototype.buildResult = function (result, layout, currentlyDisplayedResults) {
return __awaiter(this, void 0, void 0, function () {
var resultElement;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
Core_1.Assert.exists(result);
Core_1.QueryUtils.setStateObjectOnQueryResult(this.args.queryStateModel.get(), result);
Core_1.QueryUtils.setSearchInterfaceObjectOnQueryResult(this.args.searchInterface, result);
ResultList_1.ResultList.resultCurrentlyBeingRendered = result;
return [4 /*yield*/, this.createHtmlElement(result, layout)];
case 1:
resultElement = _a.sent();
if (resultElement != null) {
Core_1.Component.bindResultToElement(resultElement, result);
}
currentlyDisplayedResults.push(result);
return [4 /*yield*/, this.autoCreateComponentsInsideResult(resultElement, result).initResult];
case 2:
_a.sent();
this.verifyChildren(resultElement);
return [2 /*return*/, resultElement];
}
});
});
};
TemplateToHtml.prototype.autoCreateComponentsInsideResult = function (element, result) {
Core_1.Assert.exists(element);
return Core_1.Initialization.automaticallyCreateComponentsInsideResult(element, result);
};
TemplateToHtml.prototype.createHtmlElement = function (result, layout) {
return this.args.resultTemplate.instantiateToElement(result, {
wrapInDiv: true,
checkCondition: true,
currentLayout: layout,
responsiveComponents: this.args.searchInterface.responsiveComponents
});
};
TemplateToHtml.prototype.verifyChildren = function (element) {
var containsResultLink = !!Dom_1.$$(element).find('.CoveoResultLink');
if (containsResultLink) {
return;
}
var msg = "Result does not contain a \"CoveoResultLink\" component, please verify the result template";
new Logger_1.Logger(element).warn(msg, this.args.resultTemplate);
};
return TemplateToHtml;
}());
exports.TemplateToHtml = TemplateToHtml;
/***/ }),
/***/ 474:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
var TemplateHelpers_1 = __webpack_require__(122);
var HighlightUtils_1 = __webpack_require__(69);
var DateUtils_1 = __webpack_require__(33);
var CurrencyUtils_1 = __webpack_require__(135);
var HtmlUtils_1 = __webpack_require__(179);
var Utils_1 = __webpack_require__(4);
var StringUtils_1 = __webpack_require__(22);
var TimeSpanUtils_1 = __webpack_require__(73);
var EmailUtils_1 = __webpack_require__(178);
var QueryUtils_1 = __webpack_require__(21);
var DeviceUtils_1 = __webpack_require__(24);
var Dom_1 = __webpack_require__(1);
var SearchEndpoint_1 = __webpack_require__(53);
var StreamHighlightUtils_1 = __webpack_require__(120);
var FacetUtils_1 = __webpack_require__(40);
var Globalize = __webpack_require__(23);
var _ = __webpack_require__(0);
var Component_1 = __webpack_require__(7);
var TemplateCache_1 = __webpack_require__(68);
var CoreHelpers = /** @class */ (function () {
function CoreHelpers() {
}
/**
* For backward compatibility reason, the "global" template helper should be available under the
* coveo namespace.
* @param scope
*/
CoreHelpers.exportAllHelpersGlobally = function (scope) {
_.each(TemplateHelpers_1.TemplateHelpers.getHelpers(), function (helper, name) {
if (scope[name] == undefined) {
scope[name] = helper;
}
});
};
return CoreHelpers;
}());
exports.CoreHelpers = CoreHelpers;
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('javascriptEncode', function (value) {
return Utils_1.Utils.exists(value) ? StringUtils_1.StringUtils.javascriptEncode(value) : undefined;
});
var executeShorten = function (content, options) {
var strAndHoles = HighlightUtils_1.StringAndHoles.shortenString(content, options.length, '...');
if (Utils_1.Utils.exists(options.highlights)) {
return HighlightUtils_1.HighlightUtils.highlightString(strAndHoles.value, options.highlights, strAndHoles.holes, options.cssClass || 'highlight');
}
else {
return strAndHoles.value;
}
};
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('shorten', function (content, length, highlights, cssClass) {
return executeShorten(content, {
length: length,
highlights: highlights,
cssClass: cssClass
});
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('shortenv2', function (content, options) {
return executeShorten(content, options);
});
var executeShortenPath = function (content, options) {
var strAndHoles = HighlightUtils_1.StringAndHoles.shortenPath(content, options.length);
if (Utils_1.Utils.exists(options.highlights)) {
return HighlightUtils_1.HighlightUtils.highlightString(strAndHoles.value, options.highlights, strAndHoles.holes, options.cssClass || 'highlight');
}
else {
return strAndHoles.value;
}
};
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('shortenPath', function (content, length, highlights, cssClass) {
return executeShortenPath(content, {
length: length,
highlights: highlights,
cssClass: cssClass
});
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('shortenPathv2', function (content, options) {
return executeShortenPath(content, options);
});
var executeShortenUri = function (content, options) {
var strAndHoles = HighlightUtils_1.StringAndHoles.shortenUri(content, options.length);
if (Utils_1.Utils.exists(options.highlights)) {
return HighlightUtils_1.HighlightUtils.highlightString(strAndHoles.value, options.highlights, strAndHoles.holes, options.cssClass || 'highlight');
}
else {
return strAndHoles.value;
}
};
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('shortenUri', function (content, length, highlights, cssClass) {
return executeShortenUri(content, {
length: length,
highlights: highlights,
cssClass: cssClass
});
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('shortenUriv2', function (content, options) {
return executeShortenUri(content, options);
});
var executeHighlight = function (content, options) {
if (Utils_1.Utils.exists(content)) {
if (Utils_1.Utils.exists(options.highlights)) {
return HighlightUtils_1.HighlightUtils.highlightString(content, options.highlights, null, options.cssClass || 'highlight');
}
else {
return content;
}
}
else {
return undefined;
}
};
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('highlight', function (content, highlights, cssClass) {
return executeHighlight(content, {
highlights: highlights,
cssClass: cssClass
});
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('highlightv2', function (content, options) {
return executeHighlight(content, options);
});
var executeHighlightStreamText = function (content, options) {
if (Utils_1.Utils.exists(content) && Utils_1.Utils.exists(options.termsToHighlight) && Utils_1.Utils.exists(options.phrasesToHighlight)) {
if (termsToHighlightAreDefined(options.termsToHighlight, options.phrasesToHighlight)) {
return StreamHighlightUtils_1.StreamHighlightUtils.highlightStreamText(content, options.termsToHighlight, options.phrasesToHighlight, options.opts);
}
else {
return content;
}
}
else {
return undefined;
}
};
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('highlightStreamText', function (content, termsToHighlight, phrasesToHighlight, opts) {
if (termsToHighlight === void 0) { termsToHighlight = resolveTermsToHighlight(); }
if (phrasesToHighlight === void 0) { phrasesToHighlight = resolvePhrasesToHighlight(); }
return executeHighlightStreamText(content, {
termsToHighlight: termsToHighlight,
phrasesToHighlight: phrasesToHighlight,
opts: opts
});
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('highlightStreamTextv2', function (content, options) {
var mergedOptions = __assign({ termsToHighlight: resolveTermsToHighlight(), phrasesToHighlight: resolvePhrasesToHighlight() }, options);
return executeHighlightStreamText(content, mergedOptions);
});
var executeHighlightStreamHTML = function (content, options) {
if (Utils_1.Utils.exists(content) && Utils_1.Utils.exists(options.termsToHighlight) && Utils_1.Utils.exists(options.phrasesToHighlight)) {
if (termsToHighlightAreDefined(options.termsToHighlight, options.phrasesToHighlight)) {
return StreamHighlightUtils_1.StreamHighlightUtils.highlightStreamHTML(content, options.termsToHighlight, options.phrasesToHighlight, options.opts);
}
else {
return content;
}
}
else {
return undefined;
}
};
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('highlightStreamHTML', function (content, termsToHighlight, phrasesToHighlight, opts) {
if (termsToHighlight === void 0) { termsToHighlight = resolveTermsToHighlight(); }
if (phrasesToHighlight === void 0) { phrasesToHighlight = resolvePhrasesToHighlight(); }
return executeHighlightStreamHTML(content, {
termsToHighlight: termsToHighlight,
phrasesToHighlight: phrasesToHighlight,
opts: opts
});
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('highlightStreamHTMLv2', function (content, options) {
var mergedOptions = __assign({ termsToHighlight: resolveTermsToHighlight(), phrasesToHighlight: resolvePhrasesToHighlight() }, options);
return executeHighlightStreamHTML(content, mergedOptions);
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('number', function (value, options) {
if (!Utils_1.Utils.exists(value)) {
return undefined;
}
var numberValue = Number(value);
var format = _.isString(options) ? options : options && options.format;
if (!format) {
return StringUtils_1.StringUtils.htmlEncode(numberValue.toString());
}
return StringUtils_1.StringUtils.htmlEncode(Globalize.format(numberValue, format));
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('date', function (value, options) {
return DateUtils_1.DateUtils.dateToString(DateUtils_1.DateUtils.convertFromJsonDateIfNeeded(value), options);
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('time', function (value, options) {
return DateUtils_1.DateUtils.timeToString(DateUtils_1.DateUtils.convertFromJsonDateIfNeeded(value), options);
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('dateTime', function (value, options) {
return DateUtils_1.DateUtils.dateTimeToString(DateUtils_1.DateUtils.convertFromJsonDateIfNeeded(value), options);
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('emailDateTime', function (value, options) {
var defaultOptions = {};
defaultOptions.includeTimeIfThisWeek = true;
var optionsToUse = _.extend(options, defaultOptions);
return value ? DateUtils_1.DateUtils.dateTimeToString(DateUtils_1.DateUtils.convertFromJsonDateIfNeeded(value), optionsToUse) : undefined;
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('currency', function (value, options) {
return CurrencyUtils_1.CurrencyUtils.currencyToString(value, options);
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('timeSpan', function (value, options) {
if (options === void 0) { options = { isMilliseconds: false }; }
return new TimeSpanUtils_1.TimeSpan(value, options.isMilliseconds).getHHMMSS();
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('email', function (value) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
// support old arguments (value: any, companyDomain: string, me: string, lengthLimit = 2, truncateName = false)
var companyDomain;
var me;
var lengthLimit;
var truncateName;
if (_.isObject(args[0])) {
companyDomain = args[0]['companyDomain'];
me = args[0]['me'];
lengthLimit = args[0]['lengthLimit'];
truncateName = args[0]['truncateName'];
}
else {
companyDomain = args[0];
me = args[1];
lengthLimit = args[2];
truncateName = args[3];
}
if (lengthLimit == undefined) {
lengthLimit = 2;
}
if (truncateName == undefined) {
truncateName = false;
}
if (_.isString(value)) {
var listOfAddresses = EmailUtils_1.EmailUtils.splitSemicolonSeparatedListOfEmailAddresses(value);
return EmailUtils_1.EmailUtils.emailAddressesToHyperlinks(listOfAddresses, companyDomain, me, lengthLimit, truncateName);
}
else if (_.isArray(value)) {
return EmailUtils_1.EmailUtils.emailAddressesToHyperlinks(value, companyDomain, me, lengthLimit, truncateName);
}
else {
return undefined;
}
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('excessEmailToggle', function (target) {
Dom_1.$$(target).removeClass('coveo-active');
if (Dom_1.$$(target).hasClass('coveo-emails-excess-collapsed')) {
_.each(Dom_1.$$(target).siblings('.coveo-emails-excess-expanded'), function (sibling) {
Dom_1.$$(sibling).addClass('coveo-active');
});
}
else if (Dom_1.$$(target).hasClass('coveo-hide-expanded')) {
Dom_1.$$(target.parentElement).addClass('coveo-inactive');
_.each(Dom_1.$$(target.parentElement).siblings('.coveo-emails-excess-collapsed'), function (sibling) {
Dom_1.$$(sibling).addClass('coveo-active');
});
}
return undefined;
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('anchor', function (href, options) {
return HtmlUtils_1.AnchorUtils.buildAnchor(href, options);
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('image', function (src, options, result) {
if (result === void 0) { result = resolveQueryResult(); }
if (options && options.srcTemplate) {
return HtmlUtils_1.ImageUtils.buildImage(StringUtils_1.StringUtils.buildStringTemplateFromResult(options.srcTemplate, result), {
alt: options.alt,
height: options.height,
width: options.width
});
}
return HtmlUtils_1.ImageUtils.buildImage(src, options);
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('thumbnail', function (result, endpoint, options) {
if (result === void 0) { result = resolveQueryResult(); }
if (endpoint === void 0) { endpoint = 'default'; }
if (QueryUtils_1.QueryUtils.hasThumbnail(result)) {
return HtmlUtils_1.ImageUtils.buildImageFromResult(result, SearchEndpoint_1.SearchEndpoint.endpoints[endpoint], options);
}
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('fromFileTypeToIcon', function (result, options) {
if (result === void 0) { result = resolveQueryResult(); }
if (options === void 0) { options = {}; }
var icon = Component_1.Component.getComponentRef('Icon');
if (icon) {
return icon.createIcon(result, options).outerHTML;
}
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('attrEncode', function (value) {
return ('' + value) /* Forces the conversion to string. */
.replace(/&/g, '&') /* This MUST be the 1st replacement. */
.replace(/'/g, ''') /* The 4 other predefined entities, required. */
.replace(/'/g, '"')
.replace(/</g, '<')
.replace(/>/g, '>');
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('loadTemplates', function (templatesToLoad, once) {
if (once === void 0) { once = true; }
var ret = '';
var data = resolveQueryResult();
var atLeastOneWasLoaded = false;
var toLoad = templatesToLoad;
var defaultTmpl;
_.each(templatesToLoad, function (value, key, obj) {
if (value == 'default') {
defaultTmpl = key;
}
});
if (defaultTmpl != undefined) {
toLoad = _.omit(templatesToLoad, defaultTmpl);
}
_.each(toLoad, function (condition, id, obj) {
if (!atLeastOneWasLoaded || !once) {
atLeastOneWasLoaded = atLeastOneWasLoaded || condition;
ret += TemplateHelpers_1.TemplateHelpers.getHelper('loadTemplate')(id, condition, data);
}
});
if (!atLeastOneWasLoaded && defaultTmpl != undefined) {
ret += TemplateHelpers_1.TemplateHelpers.getHelper('loadTemplate')(defaultTmpl, true, data);
}
return ret;
});
var byteMeasure = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'];
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('size', function (value, options) {
var size = parseInt(value, 10);
var precision = options != null && options.precision != null ? options.precision : 2;
var base = options != null && options.base != null ? options.base : 0;
while (size > 1024 && base + 1 < byteMeasure.length) {
size /= 1024;
base++;
}
size = Math.floor(size * Math.pow(10, precision)) / Math.pow(10, precision);
return size + ' ' + byteMeasure[base];
});
TemplateHelpers_1.TemplateHelpers.registerFieldHelper('translatedCaption', function (value) {
return FacetUtils_1.FacetUtils.tryToGetTranslatedCaption('@filetype', value);
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('loadTemplate', function (id, condition, data) {
if (condition === void 0) { condition = true; }
if (Utils_1.Utils.isNullOrUndefined(data)) {
data = resolveQueryResult();
}
if (condition) {
return TemplateCache_1.TemplateCache.getTemplate(id).instantiateToString(data, {
checkCondition: false
});
}
return '';
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('encodeCarriageReturn', function (data) {
if (Utils_1.Utils.isNullOrUndefined(data)) {
return undefined;
}
else {
return StringUtils_1.StringUtils.encodeCarriageReturn(data);
}
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('isMobileDevice', function () {
return DeviceUtils_1.DeviceUtils.isMobileDevice() ? DeviceUtils_1.DeviceUtils.getDeviceName() : null;
});
TemplateHelpers_1.TemplateHelpers.registerTemplateHelper('pluralHelper', function (count, options) {
return count > 1 ? options.plural : options.singular;
});
function resolveQueryResult() {
var found;
var resultList = Component_1.Component.getComponentRef('ResultList');
if (resultList) {
found = resultList.resultCurrentlyBeingRendered;
}
if (!found) {
var quickview = Component_1.Component.getComponentRef('Quickview');
if (quickview) {
found = quickview.resultCurrentlyBeingRendered;
}
}
return found;
}
function resolveTermsToHighlight() {
var currentQueryResult = resolveQueryResult();
if (currentQueryResult) {
return currentQueryResult.termsToHighlight;
}
}
function resolvePhrasesToHighlight() {
var currentQueryResult = resolveQueryResult();
if (currentQueryResult) {
return currentQueryResult.phrasesToHighlight;
}
}
function termsToHighlightAreDefined(termsToHighlight, phrasesToHighlight) {
return Utils_1.Utils.isNonEmptyArray(_.keys(termsToHighlight)) || Utils_1.Utils.isNonEmptyArray(_.keys(phrasesToHighlight));
}
/***/ }),
/***/ 528:
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ 529:
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ 530:
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ 531:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var ResponsiveComponentsManager_1 = __webpack_require__(62);
var SearchInterface_1 = __webpack_require__(19);
var ResultList_1 = __webpack_require__(93);
var Dom_1 = __webpack_require__(1);
var Component_1 = __webpack_require__(7);
var Logger_1 = __webpack_require__(9);
var ResponsiveDefaultResultTemplate = /** @class */ (function () {
function ResponsiveDefaultResultTemplate(coveoRoot, ID, options, responsiveDropdown) {
this.coveoRoot = coveoRoot;
this.ID = ID;
this.searchInterface = Component_1.Component.get(this.coveoRoot.el, SearchInterface_1.SearchInterface, false);
this.currentMode = 'large';
}
ResponsiveDefaultResultTemplate.init = function (root, component, options) {
if (!Dom_1.$$(root).find("." + Component_1.Component.computeCssClassName(ResultList_1.ResultList))) {
var logger = new Logger_1.Logger('ResponsiveDefaultResultTemplate');
logger.trace('No ResultLayout component found : Cannot instantiate ResponsiveResultLayout');
return;
}
ResponsiveComponentsManager_1.ResponsiveComponentsManager.register(ResponsiveDefaultResultTemplate, Dom_1.$$(root), ResultList_1.ResultList.ID, component, options);
};
ResponsiveDefaultResultTemplate.prototype.registerComponent = function (accept) {
if (accept instanceof ResultList_1.ResultList) {
this.resultList = accept;
return true;
}
return false;
};
ResponsiveDefaultResultTemplate.prototype.handleResizeEvent = function () {
var _this = this;
var lastResults = this.resultList.queryController.getLastResults();
if (this.needSmallMode()) {
Dom_1.$$(this.resultList.options.resultsContainer).addClass('coveo-card-layout-container');
Dom_1.$$(this.resultList.options.resultsContainer).removeClass("coveo-list-layout-container");
if (this.currentMode != 'small') {
if (lastResults) {
this.resultList.buildResults(lastResults).then(function (elements) {
_this.resultList.renderResults(elements);
});
}
this.currentMode = 'small';
}
}
else {
Dom_1.$$(this.resultList.options.resultsContainer).removeClass('coveo-card-layout-container');
Dom_1.$$(this.resultList.options.resultsContainer).addClass("coveo-list-layout-container");
if (this.currentMode != 'large') {
if (lastResults) {
this.resultList.buildResults(lastResults).then(function (elements) {
_this.resultList.renderResults(elements);
});
}
this.currentMode = 'large';
}
}
};
ResponsiveDefaultResultTemplate.prototype.needSmallMode = function () {
return this.coveoRoot.width() <= this.searchInterface.responsiveComponents.getSmallScreenWidth();
};
return ResponsiveDefaultResultTemplate;
}());
exports.ResponsiveDefaultResultTemplate = ResponsiveDefaultResultTemplate;
/***/ }),
/***/ 532:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Dom_1 = __webpack_require__(1);
var ResultContainer = /** @class */ (function () {
function ResultContainer(resultContainer, searchInterface) {
this.searchInterface = searchInterface;
this.resultContainerElement = Dom_1.$$(resultContainer);
}
ResultContainer.prototype.empty = function () {
this.searchInterface.detachComponentsInside(this.resultContainerElement.el);
Dom_1.$$(this.resultContainerElement).empty();
};
ResultContainer.prototype.addClass = function (classToAdd) {
this.resultContainerElement.addClass(classToAdd);
};
ResultContainer.prototype.isEmpty = function () {
return this.resultContainerElement.isEmpty();
};
ResultContainer.prototype.hideChildren = function () {
this.resultContainerElement.children().forEach(function (child) { return Dom_1.$$(child).hide(); });
};
ResultContainer.prototype.getResultElements = function () {
return this.resultContainerElement.findAll('.CoveoResult');
};
Object.defineProperty(ResultContainer.prototype, "el", {
get: function () {
return this.resultContainerElement.el;
},
enumerable: true,
configurable: true
});
ResultContainer.resultCurrentlyBeingRendered = null;
return ResultContainer;
}());
exports.ResultContainer = ResultContainer;
/***/ }),
/***/ 533:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var ResultListRenderer_1 = __webpack_require__(215);
var Dom_1 = __webpack_require__(1);
var _ = __webpack_require__(0);
var ResultListCardRenderer = /** @class */ (function (_super) {
__extends(ResultListCardRenderer, _super);
function ResultListCardRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
ResultListCardRenderer.prototype.getEndFragment = function (resultElements) {
var _this = this;
return new Promise(function (resolve) {
if (!_.isEmpty(resultElements)) {
// with infinite scrolling, we want the additional results to append at the end of the previous query.
// For this, we need to remove the padding.
if (_this.resultListOptions.enableInfiniteScroll) {
var needToBeRemoved = Dom_1.$$(_this.resultListOptions.resultsContainer).findAll('.coveo-card-layout-padding');
_.each(needToBeRemoved, function (toRemove) { return Dom_1.$$(toRemove).remove(); });
}
// Used to prevent last card from spanning the grid's whole width
var emptyCards_1 = document.createDocumentFragment();
_.times(3, function () { return emptyCards_1.appendChild(Dom_1.$$('div', { className: 'coveo-card-layout coveo-card-layout-padding' }).el); });
resolve(emptyCards_1);
}
resolve(null);
});
};
return ResultListCardRenderer;
}(ResultListRenderer_1.ResultListRenderer));
exports.ResultListCardRenderer = ResultListCardRenderer;
/***/ }),
/***/ 534:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
functio