Best Python code snippet using mailosaur-python_python
fontawesome-iconpicker.min.js
Source:fontawesome-iconpicker.min.js
1/*!2 * Font Awesome Icon Picker3 * https://farbelous.github.io/fontawesome-iconpicker/4 *5 * @author Javi Aguilar, itsjavi.com6 * @license MIT License7 * @see https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE8 */9!function (e) {10 "function" == typeof define && define.amd ? define(["jquery"], e) : e(jQuery)11}(function (j) {12 j.ui = j.ui || {};13 j.ui.version = "1.12.1";14 !function () {15 var r, y = Math.max, x = Math.abs, s = /left|center|right/, i = /top|center|bottom/,16 c = /[\+\-]\d+(\.[\d]+)?%?/, f = /^\w+/, l = /%$/, o = j.fn.pos;17 function q(e, a, t) {18 return [parseFloat(e[0]) * (l.test(e[0]) ? a / 100 : 1), parseFloat(e[1]) * (l.test(e[1]) ? t / 100 : 1)]19 }20 function C(e, a) {21 return parseInt(j.css(e, a), 10) || 022 }23 j.pos = {24 scrollbarWidth: function () {25 if (void 0 !== r) return r;26 var e, a,27 t = j("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),28 s = t.children()[0];29 return j("body").append(t), e = s.offsetWidth, t.css("overflow", "scroll"), e === (a = s.offsetWidth) && (a = t[0].clientWidth), t.remove(), r = e - a30 }, getScrollInfo: function (e) {31 var a = e.isWindow || e.isDocument ? "" : e.element.css("overflow-x"),32 t = e.isWindow || e.isDocument ? "" : e.element.css("overflow-y"),33 s = "scroll" === a || "auto" === a && e.width < e.element[0].scrollWidth;34 return {35 width: "scroll" === t || "auto" === t && e.height < e.element[0].scrollHeight ? j.pos.scrollbarWidth() : 0,36 height: s ? j.pos.scrollbarWidth() : 037 }38 }, getWithinInfo: function (e) {39 var a = j(e || window), t = j.isWindow(a[0]), s = !!a[0] && 9 === a[0].nodeType;40 return {41 element: a,42 isWindow: t,43 isDocument: s,44 offset: !t && !s ? j(e).offset() : {left: 0, top: 0},45 scrollLeft: a.scrollLeft(),46 scrollTop: a.scrollTop(),47 width: a.outerWidth(),48 height: a.outerHeight()49 }50 }51 }, j.fn.pos = function (h) {52 if (!h || !h.of) return o.apply(this, arguments);53 h = j.extend({}, h);54 var m, p, d, T, u, e, a, t, g = j(h.of), b = j.pos.getWithinInfo(h.within), k = j.pos.getScrollInfo(b),55 w = (h.collision || "flip").split(" "), v = {};56 return e = 9 === (t = (a = g)[0]).nodeType ? {57 width: a.width(),58 height: a.height(),59 offset: {top: 0, left: 0}60 } : j.isWindow(t) ? {61 width: a.width(),62 height: a.height(),63 offset: {top: a.scrollTop(), left: a.scrollLeft()}64 } : t.preventDefault ? {65 width: 0,66 height: 0,67 offset: {top: t.pageY, left: t.pageX}68 } : {69 width: a.outerWidth(),70 height: a.outerHeight(),71 offset: a.offset()72 }, g[0].preventDefault && (h.at = "left top"), p = e.width, d = e.height, T = e.offset, u = j.extend({}, T), j.each(["my", "at"], function () {73 var e, a, t = (h[this] || "").split(" ");74 1 === t.length && (t = s.test(t[0]) ? t.concat(["center"]) : i.test(t[0]) ? ["center"].concat(t) : ["center", "center"]), t[0] = s.test(t[0]) ? t[0] : "center", t[1] = i.test(t[1]) ? t[1] : "center", e = c.exec(t[0]), a = c.exec(t[1]), v[this] = [e ? e[0] : 0, a ? a[0] : 0], h[this] = [f.exec(t[0])[0], f.exec(t[1])[0]]75 }), 1 === w.length && (w[1] = w[0]), "right" === h.at[0] ? u.left += p : "center" === h.at[0] && (u.left += p / 2), "bottom" === h.at[1] ? u.top += d : "center" === h.at[1] && (u.top += d / 2), m = q(v.at, p, d), u.left += m[0], u.top += m[1], this.each(function () {76 var t, e, c = j(this), f = c.outerWidth(), l = c.outerHeight(), a = C(this, "marginLeft"),77 s = C(this, "marginTop"), r = f + a + C(this, "marginRight") + k.width,78 i = l + s + C(this, "marginBottom") + k.height, o = j.extend({}, u),79 n = q(v.my, c.outerWidth(), c.outerHeight());80 "right" === h.my[0] ? o.left -= f : "center" === h.my[0] && (o.left -= f / 2), "bottom" === h.my[1] ? o.top -= l : "center" === h.my[1] && (o.top -= l / 2), o.left += n[0], o.top += n[1], t = {81 marginLeft: a,82 marginTop: s83 }, j.each(["left", "top"], function (e, a) {84 j.ui.pos[w[e]] && j.ui.pos[w[e]][a](o, {85 targetWidth: p,86 targetHeight: d,87 elemWidth: f,88 elemHeight: l,89 collisionPosition: t,90 collisionWidth: r,91 collisionHeight: i,92 offset: [m[0] + n[0], m[1] + n[1]],93 my: h.my,94 at: h.at,95 within: b,96 elem: c97 })98 }), h.using && (e = function (e) {99 var a = T.left - o.left, t = a + p - f, s = T.top - o.top, r = s + d - l, i = {100 target: {element: g, left: T.left, top: T.top, width: p, height: d},101 element: {element: c, left: o.left, top: o.top, width: f, height: l},102 horizontal: t < 0 ? "left" : 0 < a ? "right" : "center",103 vertical: r < 0 ? "top" : 0 < s ? "bottom" : "middle"104 };105 p < f && x(a + t) < p && (i.horizontal = "center"), d < l && x(s + r) < d && (i.vertical = "middle"), y(x(a), x(t)) > y(x(s), x(r)) ? i.important = "horizontal" : i.important = "vertical", h.using.call(this, e, i)106 }), c.offset(j.extend(o, {using: e}))107 })108 }, j.ui.pos = {109 _trigger: function (e, a, t, s) {110 a.elem && a.elem.trigger({type: t, position: e, positionData: a, triggered: s})111 }, fit: {112 left: function (e, a) {113 j.ui.pos._trigger(e, a, "posCollide", "fitLeft");114 var t, s = a.within, r = s.isWindow ? s.scrollLeft : s.offset.left, i = s.width,115 c = e.left - a.collisionPosition.marginLeft, f = r - c, l = c + a.collisionWidth - i - r;116 a.collisionWidth > i ? 0 < f && l <= 0 ? (t = e.left + f + a.collisionWidth - i - r, e.left += f - t) : e.left = 0 < l && f <= 0 ? r : l < f ? r + i - a.collisionWidth : r : 0 < f ? e.left += f : 0 < l ? e.left -= l : e.left = y(e.left - c, e.left), j.ui.pos._trigger(e, a, "posCollided", "fitLeft")117 }, top: function (e, a) {118 j.ui.pos._trigger(e, a, "posCollide", "fitTop");119 var t, s = a.within, r = s.isWindow ? s.scrollTop : s.offset.top, i = a.within.height,120 c = e.top - a.collisionPosition.marginTop, f = r - c, l = c + a.collisionHeight - i - r;121 a.collisionHeight > i ? 0 < f && l <= 0 ? (t = e.top + f + a.collisionHeight - i - r, e.top += f - t) : e.top = 0 < l && f <= 0 ? r : l < f ? r + i - a.collisionHeight : r : 0 < f ? e.top += f : 0 < l ? e.top -= l : e.top = y(e.top - c, e.top), j.ui.pos._trigger(e, a, "posCollided", "fitTop")122 }123 }, flip: {124 left: function (e, a) {125 j.ui.pos._trigger(e, a, "posCollide", "flipLeft");126 var t, s, r = a.within, i = r.offset.left + r.scrollLeft, c = r.width,127 f = r.isWindow ? r.scrollLeft : r.offset.left, l = e.left - a.collisionPosition.marginLeft,128 o = l - f, n = l + a.collisionWidth - c - f,129 h = "left" === a.my[0] ? -a.elemWidth : "right" === a.my[0] ? a.elemWidth : 0,130 m = "left" === a.at[0] ? a.targetWidth : "right" === a.at[0] ? -a.targetWidth : 0,131 p = -2 * a.offset[0];132 o < 0 ? ((t = e.left + h + m + p + a.collisionWidth - c - i) < 0 || t < x(o)) && (e.left += h + m + p) : 0 < n && (0 < (s = e.left - a.collisionPosition.marginLeft + h + m + p - f) || x(s) < n) && (e.left += h + m + p), j.ui.pos._trigger(e, a, "posCollided", "flipLeft")133 }, top: function (e, a) {134 j.ui.pos._trigger(e, a, "posCollide", "flipTop");135 var t, s, r = a.within, i = r.offset.top + r.scrollTop, c = r.height,136 f = r.isWindow ? r.scrollTop : r.offset.top, l = e.top - a.collisionPosition.marginTop,137 o = l - f, n = l + a.collisionHeight - c - f,138 h = "top" === a.my[1] ? -a.elemHeight : "bottom" === a.my[1] ? a.elemHeight : 0,139 m = "top" === a.at[1] ? a.targetHeight : "bottom" === a.at[1] ? -a.targetHeight : 0,140 p = -2 * a.offset[1];141 o < 0 ? ((s = e.top + h + m + p + a.collisionHeight - c - i) < 0 || s < x(o)) && (e.top += h + m + p) : 0 < n && (0 < (t = e.top - a.collisionPosition.marginTop + h + m + p - f) || x(t) < n) && (e.top += h + m + p), j.ui.pos._trigger(e, a, "posCollided", "flipTop")142 }143 }, flipfit: {144 left: function () {145 j.ui.pos.flip.left.apply(this, arguments), j.ui.pos.fit.left.apply(this, arguments)146 }, top: function () {147 j.ui.pos.flip.top.apply(this, arguments), j.ui.pos.fit.top.apply(this, arguments)148 }149 }150 }, function () {151 var e, a, t, s, r, i = document.getElementsByTagName("body")[0], c = document.createElement("div");152 for (r in e = document.createElement(i ? "div" : "body"), t = {153 visibility: "hidden",154 width: 0,155 height: 0,156 border: 0,157 margin: 0,158 background: "none"159 }, i && j.extend(t, {position: "absolute", left: "-1000px", top: "-1000px"}), t) e.style[r] = t[r];160 e.appendChild(c), (a = i || document.documentElement).insertBefore(e, a.firstChild), c.style.cssText = "position: absolute; left: 10.7432222px;", s = j(c).offset().left, j.support.offsetFractions = 10 < s && s < 11, e.innerHTML = "", a.removeChild(e)161 }()162 }();163 j.ui.position164}), function (e) {165 "use strict";166 "function" == typeof define && define.amd ? define(["jquery"], e) : window.jQuery && !window.jQuery.fn.iconpicker && e(window.jQuery)167}(function (l) {168 "use strict";169 var t = function (e) {170 return !1 === e || "" === e || null == e171 }, s = function (e) {172 return 0 < l(e).length173 }, r = function (e) {174 return "string" == typeof e || e instanceof String175 }, i = function (e, a) {176 return -1 !== l.inArray(e, a)177 }, c = function (e, a) {178 this._id = c._idCounter++, this.element = l(e).addClass("iconpicker-element"), this._trigger("iconpickerCreate", {iconpickerValue: this.iconpickerValue}), this.options = l.extend({}, c.defaultOptions, this.element.data(), a), this.options.templates = l.extend({}, c.defaultOptions.templates, this.options.templates), this.options.originalPlacement = this.options.placement, this.container = !!s(this.options.container) && l(this.options.container), !1 === this.container && (this.element.is(".dropdown-toggle") ? this.container = l("~ .dropdown-menu:first", this.element) : this.container = this.element.is("input,textarea,button,.btn") ? this.element.parent() : this.element), this.container.addClass("iconpicker-container"), this.isDropdownMenu() && (this.options.placement = "inline"), this.input = !!this.element.is("input,textarea") && this.element.addClass("iconpicker-input"), !1 === this.input && (this.input = this.container.find(this.options.input), this.input.is("input,textarea") || (this.input = !1)), this.component = this.isDropdownMenu() ? this.container.parent().find(this.options.component) : this.container.find(this.options.component), 0 === this.component.length ? this.component = !1 : this.component.find("i").addClass("iconpicker-component"), this._createPopover(), this._createIconpicker(), 0 === this.getAcceptButton().length && (this.options.mustAccept = !1), this.isInputGroup() ? this.container.parent().append(this.popover) : this.container.append(this.popover), this._bindElementEvents(), this._bindWindowEvents(), this.update(this.options.selected), this.isInline() && this.show(), this._trigger("iconpickerCreated", {iconpickerValue: this.iconpickerValue})179 };180 c._idCounter = 0, c.defaultOptions = {181 title: !1,182 selected: !1,183 defaultValue: !1,184 placement: "bottom",185 collision: "none",186 animation: !0,187 hideOnSelect: !1,188 showFooter: !1,189 searchInFooter: !1,190 mustAccept: !1,191 selectedCustomClass: "bg-primary",192 icons: [],193 fullClassFormatter: function (e) {194 return e195 },196 input: "input,.iconpicker-input",197 inputSearch: !1,198 container: !1,199 component: ".input-group-addon,.iconpicker-component",200 templates: {201 popover: '<div class="iconpicker-popover popover"><div class="arrow"></div><div class="popover-title"></div><div class="popover-content"></div></div>',202 footer: '<div class="popover-footer"></div>',203 buttons: '<button class="iconpicker-btn iconpicker-btn-cancel btn btn-default btn-sm">Cancel</button> <button class="iconpicker-btn iconpicker-btn-accept btn btn-primary btn-sm">Accept</button>',204 search: '<input type="search" class="form-control iconpicker-search" placeholder="Type to filter" />',205 iconpicker: '<div class="iconpicker"><div class="iconpicker-items"></div></div>',206 iconpickerItem: '<a role="button" href="javascript:;" class="iconpicker-item"><i></i></a>'207 }208 }, c.batch = function (e, a) {209 var t = Array.prototype.slice.call(arguments, 2);210 return l(e).each(function () {211 var e = l(this).data("iconpicker");212 e && e[a].apply(e, t)213 })214 }, c.prototype = {215 constructor: c, options: {}, _id: 0, _trigger: function (e, a) {216 a = a || {}, this.element.trigger(l.extend({type: e, iconpickerInstance: this}, a))217 }, _createPopover: function () {218 this.popover = l(this.options.templates.popover);219 var e = this.popover.find(".popover-title");220 if (this.options.title && e.append(l('<div class="popover-title-text">' + this.options.title + "</div>")), this.hasSeparatedSearchInput() && !this.options.searchInFooter ? e.append(this.options.templates.search) : this.options.title || e.remove(), this.options.showFooter && !t(this.options.templates.footer)) {221 var a = l(this.options.templates.footer);222 this.hasSeparatedSearchInput() && this.options.searchInFooter && a.append(l(this.options.templates.search)), t(this.options.templates.buttons) || a.append(l(this.options.templates.buttons)), this.popover.append(a)223 }224 return !0 === this.options.animation && this.popover.addClass("fade"), this.popover225 }, _createIconpicker: function () {226 var t = this;227 this.iconpicker = l(this.options.templates.iconpicker);228 var e = function (e) {229 var a = l(this);230 a.is("i") && (a = a.parent()), t._trigger("iconpickerSelect", {231 iconpickerItem: a,232 iconpickerValue: t.iconpickerValue233 }), !1 === t.options.mustAccept ? (t.update(a.data("iconpickerValue")), t._trigger("iconpickerSelected", {234 iconpickerItem: this,235 iconpickerValue: t.iconpickerValue236 })) : t.update(a.data("iconpickerValue"), !0), t.options.hideOnSelect && !1 === t.options.mustAccept && t.hide()237 }, a = l(this.options.templates.iconpickerItem), s = [];238 for (var r in this.options.icons) if ("string" == typeof this.options.icons[r].title) {239 var i = a.clone();240 if (i.find("i").addClass(this.options.fullClassFormatter(this.options.icons[r].title)), i.data("iconpickerValue", this.options.icons[r].title).on("click.iconpicker", e), i.attr("title", "." + this.options.icons[r].title), 0 < this.options.icons[r].searchTerms.length) {241 for (var c = "", f = 0; f < this.options.icons[r].searchTerms.length; f++) c = c + this.options.icons[r].searchTerms[f] + " ";242 i.attr("data-search-terms", c)243 }244 s.push(i)245 }246 return this.iconpicker.find(".iconpicker-items").append(s), this.popover.find(".popover-content").append(this.iconpicker), this.iconpicker247 }, _isEventInsideIconpicker: function (e) {248 var a = l(e.target);249 return !((!a.hasClass("iconpicker-element") || a.hasClass("iconpicker-element") && !a.is(this.element)) && 0 === a.parents(".iconpicker-popover").length)250 }, _bindElementEvents: function () {251 var a = this;252 this.getSearchInput().on("keyup.iconpicker", function () {253 a.filter(l(this).val().toLowerCase())254 }), this.getAcceptButton().on("click.iconpicker", function () {255 var e = a.iconpicker.find(".iconpicker-selected").get(0);256 a.update(a.iconpickerValue), a._trigger("iconpickerSelected", {257 iconpickerItem: e,258 iconpickerValue: a.iconpickerValue259 }), a.isInline() || a.hide()260 }), this.getCancelButton().on("click.iconpicker", function () {261 a.isInline() || a.hide()262 }), this.element.on("focus.iconpicker", function (e) {263 a.show(), e.stopPropagation()264 }), this.hasComponent() && this.component.on("click.iconpicker", function () {265 a.toggle()266 }), this.hasInput() && this.input.on("keyup.iconpicker", function (e) {267 i(e.keyCode, [38, 40, 37, 39, 16, 17, 18, 9, 8, 91, 93, 20, 46, 186, 190, 46, 78, 188, 44, 86]) ? a._updateFormGroupStatus(!1 !== a.getValid(this.value)) : a.update(), !0 === a.options.inputSearch && a.filter(l(this).val().toLowerCase())268 })269 }, _bindWindowEvents: function () {270 var e = l(window.document), a = this, t = ".iconpicker.inst" + this._id;271 l(window).on("resize.iconpicker" + t + " orientationchange.iconpicker" + t, function (e) {272 a.popover.hasClass("in") && a.updatePlacement()273 }), a.isInline() || e.on("mouseup" + t, function (e) {274 a._isEventInsideIconpicker(e) || a.isInline() || a.hide()275 })276 }, _unbindElementEvents: function () {277 this.popover.off(".iconpicker"), this.element.off(".iconpicker"), this.hasInput() && this.input.off(".iconpicker"), this.hasComponent() && this.component.off(".iconpicker"), this.hasContainer() && this.container.off(".iconpicker")278 }, _unbindWindowEvents: function () {279 l(window).off(".iconpicker.inst" + this._id), l(window.document).off(".iconpicker.inst" + this._id)280 }, updatePlacement: function (e, a) {281 e = e || this.options.placement, this.options.placement = e, a = !0 === (a = a || this.options.collision) ? "flip" : a;282 var t = {283 at: "right bottom",284 my: "right top",285 of: this.hasInput() && !this.isInputGroup() ? this.input : this.container,286 collision: !0 === a ? "flip" : a,287 within: window288 };289 if (this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"), "object" == typeof e) return this.popover.pos(l.extend({}, t, e));290 switch (e) {291 case"inline":292 t = !1;293 break;294 case"topLeftCorner":295 t.my = "right bottom", t.at = "left top";296 break;297 case"topLeft":298 t.my = "left bottom", t.at = "left top";299 break;300 case"top":301 t.my = "center bottom", t.at = "center top";302 break;303 case"topRight":304 t.my = "right bottom", t.at = "right top";305 break;306 case"topRightCorner":307 t.my = "left bottom", t.at = "right top";308 break;309 case"rightTop":310 t.my = "left bottom", t.at = "right center";311 break;312 case"right":313 t.my = "left center", t.at = "right center";314 break;315 case"rightBottom":316 t.my = "left top", t.at = "right center";317 break;318 case"bottomRightCorner":319 t.my = "left top", t.at = "right bottom";320 break;321 case"bottomRight":322 t.my = "right top", t.at = "right bottom";323 break;324 case"bottom":325 t.my = "center top", t.at = "center bottom";326 break;327 case"bottomLeft":328 t.my = "left top", t.at = "left bottom";329 break;330 case"bottomLeftCorner":331 t.my = "right top", t.at = "left bottom";332 break;333 case"leftBottom":334 t.my = "right top", t.at = "left center";335 break;336 case"left":337 t.my = "right center", t.at = "left center";338 break;339 case"leftTop":340 t.my = "right bottom", t.at = "left center";341 break;342 default:343 return !1344 }345 return this.popover.css({display: "inline" === this.options.placement ? "" : "block"}), !1 !== t ? this.popover.pos(t).css("maxWidth", l(window).width() - this.container.offset().left - 5) : this.popover.css({346 top: "auto",347 right: "auto",348 bottom: "auto",349 left: "auto",350 maxWidth: "none"351 }), this.popover.addClass(this.options.placement), !0352 }, _updateComponents: function () {353 if (this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected " + this.options.selectedCustomClass), this.iconpickerValue && this.iconpicker.find("." + this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g, ".")).parent().addClass("iconpicker-selected " + this.options.selectedCustomClass), this.hasComponent()) {354 var e = this.component.find("i");355 0 < e.length ? e.attr("class", this.options.fullClassFormatter(this.iconpickerValue)) : this.component.html(this.getHtml())356 }357 }, _updateFormGroupStatus: function (e) {358 return !!this.hasInput() && (!1 !== e ? this.input.parents(".form-group:first").removeClass("has-error") : this.input.parents(".form-group:first").addClass("has-error"), !0)359 }, getValid: function (e) {360 r(e) || (e = "");361 var a = "" === e;362 e = l.trim(e);363 for (var t = !1, s = 0; s < this.options.icons.length; s++) if (this.options.icons[s].title === e) {364 t = !0;365 break366 }367 return !(!t && !a) && e368 }, setValue: function (e) {369 var a = this.getValid(e);370 return !1 !== a ? (this.iconpickerValue = a, this._trigger("iconpickerSetValue", {iconpickerValue: a}), this.iconpickerValue) : (this._trigger("iconpickerInvalid", {iconpickerValue: e}), !1)371 }, getHtml: function () {372 return '<i class="' + this.options.fullClassFormatter(this.iconpickerValue) + '"></i>'373 }, setSourceValue: function (e) {374 return !1 !== (e = this.setValue(e)) && "" !== e && (this.hasInput() ? this.input.val(this.iconpickerValue) : this.element.data("iconpickerValue", this.iconpickerValue), this._trigger("iconpickerSetSourceValue", {iconpickerValue: e})), e375 }, getSourceValue: function (e) {376 var a = e = e || this.options.defaultValue;377 return void 0 !== (a = this.hasInput() ? this.input.val() : this.element.data("iconpickerValue")) && "" !== a && null !== a && !1 !== a || (a = e), a378 }, hasInput: function () {379 return !1 !== this.input380 }, isInputSearch: function () {381 return this.hasInput() && !0 === this.options.inputSearch382 }, isInputGroup: function () {383 return this.container.is(".input-group")384 }, isDropdownMenu: function () {385 return this.container.is(".dropdown-menu")386 }, hasSeparatedSearchInput: function () {387 return !1 !== this.options.templates.search && !this.isInputSearch()388 }, hasComponent: function () {389 return !1 !== this.component390 }, hasContainer: function () {391 return !1 !== this.container392 }, getAcceptButton: function () {393 return this.popover.find(".iconpicker-btn-accept")394 }, getCancelButton: function () {395 return this.popover.find(".iconpicker-btn-cancel")396 }, getSearchInput: function () {397 return this.popover.find(".iconpicker-search")398 }, filter: function (s) {399 if (t(s)) return this.iconpicker.find(".iconpicker-item").show(), l(!1);400 var r = [];401 return this.iconpicker.find(".iconpicker-item").each(function () {402 var e = l(this), a = e.attr("title").toLowerCase();403 a = a + " " + (e.attr("data-search-terms") ? e.attr("data-search-terms").toLowerCase() : "");404 var t = !1;405 try {406 t = new RegExp("(^|\\W)" + s, "g")407 } catch (e) {408 t = !1409 }410 !1 !== t && a.match(t) ? (r.push(e), e.show()) : e.hide()411 }), r412 }, show: function () {413 if (this.popover.hasClass("in")) return !1;414 l.iconpicker.batch(l(".iconpicker-popover.in:not(.inline)").not(this.popover), "hide"), this._trigger("iconpickerShow", {iconpickerValue: this.iconpickerValue}), this.updatePlacement(), this.popover.addClass("in"), setTimeout(l.proxy(function () {415 this.popover.css("display", this.isInline() ? "" : "block"), this._trigger("iconpickerShown", {iconpickerValue: this.iconpickerValue})416 }, this), this.options.animation ? 300 : 1)417 }, hide: function () {418 if (!this.popover.hasClass("in")) return !1;419 this._trigger("iconpickerHide", {iconpickerValue: this.iconpickerValue}), this.popover.removeClass("in"), setTimeout(l.proxy(function () {420 this.popover.css("display", "none"), this.getSearchInput().val(""), this.filter(""), this._trigger("iconpickerHidden", {iconpickerValue: this.iconpickerValue})421 }, this), this.options.animation ? 300 : 1)422 }, toggle: function () {423 this.popover.is(":visible") ? this.hide() : this.show(!0)424 }, update: function (e, a) {425 return e = e || this.getSourceValue(this.iconpickerValue), this._trigger("iconpickerUpdate", {iconpickerValue: this.iconpickerValue}), !0 === a ? e = this.setValue(e) : (e = this.setSourceValue(e), this._updateFormGroupStatus(!1 !== e)), !1 !== e && this._updateComponents(), this._trigger("iconpickerUpdated", {iconpickerValue: this.iconpickerValue}), e426 }, destroy: function () {427 this._trigger("iconpickerDestroy", {iconpickerValue: this.iconpickerValue}), this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"), this._unbindElementEvents(), this._unbindWindowEvents(), l(this.popover).remove(), this._trigger("iconpickerDestroyed", {iconpickerValue: this.iconpickerValue})428 }, disable: function () {429 return !!this.hasInput() && (this.input.prop("disabled", !0), !0)430 }, enable: function () {431 return !!this.hasInput() && (this.input.prop("disabled", !1), !0)432 }, isDisabled: function () {433 return !!this.hasInput() && !0 === this.input.prop("disabled")434 }, isInline: function () {435 return "inline" === this.options.placement || this.popover.hasClass("inline")436 }437 }, l.iconpicker = c, l.fn.iconpicker = function (a) {438 return this.each(function () {439 var e = l(this);440 e.data("iconpicker") || e.data("iconpicker", new c(this, "object" == typeof a ? a : {}))441 })442 }, c.defaultOptions = l.extend(c.defaultOptions, {443 icons: [444 {445 title: "flaticon-analytics",446 searchTerms: ['analytics','flaticon']447 },448 {449 title: "flaticon-worldwide",450 searchTerms: ['worldwide','flaticon']451 },452 {453 title: "flaticon-internet",454 searchTerms: ['internet','flaticon']455 },456 {457 title: "flaticon-handshake",458 searchTerms: ['handshake','flaticon']459 },460 {461 title: "flaticon-file",462 searchTerms: ['file','flaticon']463 },464 {465 title: "flaticon-contract",466 searchTerms: ['contract','flaticon']467 },468 {469 title: "flaticon-business-and-finance",470 searchTerms: ['business','finance','flaticon']471 },472 {473 title: "flaticon-creative",474 searchTerms: ['creative','flaticon']475 },476 {477 title: "flaticon-pie-chart",478 searchTerms: ['pie-chart','flaticon']479 },480 {481 title: "flaticon-money-bag",482 searchTerms: ['money-bag','flaticon']483 },484 {485 title: "flaticon-money",486 searchTerms: ['money','flaticon']487 },488 {489 title: "flaticon-quote",490 searchTerms: ['quote','flaticon']491 },492 {493 title: "flaticon-left-quote",494 searchTerms: ['left-quote','flaticon']495 },496 {497 title: "flaticon-mail",498 searchTerms: ['mail','flaticon']499 },500 {501 title: "flaticon-envelope",502 searchTerms: ['envelope','flaticon']503 },504 {505 title: "flaticon-email",506 searchTerms: ['email','flaticon']507 },508 {509 title: "flaticon-call",510 searchTerms: ['call','flaticon']511 },512 {513 title: "flaticon-phone-call",514 searchTerms: ['phone-call','flaticon']515 },516 {517 title: "fab fa-500px",518 searchTerms: []519 },520 {521 title: "fab fa-accessible-icon",522 searchTerms: ["accessibility", "handicap", "person", "wheelchair", "wheelchair-alt"]523 }, {title: "fab fa-accusoft", searchTerms: []}, {524 title: "fab fa-acquisitions-incorporated",525 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop"]526 }, {title: "fas fa-ad", searchTerms: []}, {527 title: "fas fa-address-book",528 searchTerms: []529 }, {title: "far fa-address-book", searchTerms: []}, {530 title: "fas fa-address-card",531 searchTerms: []532 }, {title: "far fa-address-card", searchTerms: []}, {533 title: "fas fa-adjust",534 searchTerms: ["contrast"]535 }, {title: "fab fa-adn", searchTerms: []}, {536 title: "fab fa-adversal",537 searchTerms: []538 }, {title: "fab fa-affiliatetheme", searchTerms: []}, {539 title: "fas fa-air-freshener",540 searchTerms: []541 }, {title: "fab fa-algolia", searchTerms: []}, {542 title: "fas fa-align-center",543 searchTerms: ["middle", "text"]544 }, {title: "fas fa-align-justify", searchTerms: ["text"]}, {545 title: "fas fa-align-left",546 searchTerms: ["text"]547 }, {title: "fas fa-align-right", searchTerms: ["text"]}, {548 title: "fab fa-alipay",549 searchTerms: []550 }, {551 title: "fas fa-allergies",552 searchTerms: ["freckles", "hand", "intolerances", "pox", "spots"]553 }, {title: "fab fa-amazon", searchTerms: []}, {554 title: "fab fa-amazon-pay",555 searchTerms: []556 }, {557 title: "fas fa-ambulance",558 searchTerms: ["help", "machine", "support", "vehicle"]559 }, {title: "fas fa-american-sign-language-interpreting", searchTerms: []}, {560 title: "fab fa-amilia",561 searchTerms: []562 }, {title: "fas fa-anchor", searchTerms: ["link"]}, {563 title: "fab fa-android",564 searchTerms: ["robot"]565 }, {title: "fab fa-angellist", searchTerms: []}, {566 title: "fas fa-angle-double-down",567 searchTerms: ["arrows"]568 }, {569 title: "fas fa-angle-double-left",570 searchTerms: ["arrows", "back", "laquo", "previous", "quote"]571 }, {572 title: "fas fa-angle-double-right",573 searchTerms: ["arrows", "forward", "next", "quote", "raquo"]574 }, {title: "fas fa-angle-double-up", searchTerms: ["arrows"]}, {575 title: "fas fa-angle-down",576 searchTerms: ["arrow"]577 }, {title: "fas fa-angle-left", searchTerms: ["arrow", "back", "previous"]}, {578 title: "fas fa-angle-right",579 searchTerms: ["arrow", "forward", "next"]580 }, {title: "fas fa-angle-up", searchTerms: ["arrow"]}, {581 title: "fas fa-angry",582 searchTerms: ["disapprove", "emoticon", "face", "mad", "upset"]583 }, {584 title: "far fa-angry",585 searchTerms: ["disapprove", "emoticon", "face", "mad", "upset"]586 }, {title: "fab fa-angrycreative", searchTerms: []}, {587 title: "fab fa-angular",588 searchTerms: []589 }, {590 title: "fas fa-ankh",591 searchTerms: ["amulet", "copper", "coptic christianity", "copts", "crux ansata", "egyptian", "venus"]592 }, {title: "fab fa-app-store", searchTerms: []}, {593 title: "fab fa-app-store-ios",594 searchTerms: []595 }, {title: "fab fa-apper", searchTerms: []}, {596 title: "fab fa-apple",597 searchTerms: ["food", "fruit", "mac", "osx"]598 }, {599 title: "fas fa-apple-alt",600 searchTerms: ["fall", "food", "fruit", "fuji", "macintosh", "seasonal"]601 }, {title: "fab fa-apple-pay", searchTerms: []}, {602 title: "fas fa-archive",603 searchTerms: ["box", "package", "storage"]604 }, {605 title: "fas fa-archway",606 searchTerms: ["arc", "monument", "road", "street"]607 }, {608 title: "fas fa-arrow-alt-circle-down",609 searchTerms: ["arrow-circle-o-down", "download"]610 }, {611 title: "far fa-arrow-alt-circle-down",612 searchTerms: ["arrow-circle-o-down", "download"]613 }, {614 title: "fas fa-arrow-alt-circle-left",615 searchTerms: ["arrow-circle-o-left", "back", "previous"]616 }, {617 title: "far fa-arrow-alt-circle-left",618 searchTerms: ["arrow-circle-o-left", "back", "previous"]619 }, {620 title: "fas fa-arrow-alt-circle-right",621 searchTerms: ["arrow-circle-o-right", "forward", "next"]622 }, {623 title: "far fa-arrow-alt-circle-right",624 searchTerms: ["arrow-circle-o-right", "forward", "next"]625 }, {626 title: "fas fa-arrow-alt-circle-up",627 searchTerms: ["arrow-circle-o-up"]628 }, {629 title: "far fa-arrow-alt-circle-up",630 searchTerms: ["arrow-circle-o-up"]631 }, {title: "fas fa-arrow-circle-down", searchTerms: ["download"]}, {632 title: "fas fa-arrow-circle-left",633 searchTerms: ["back", "previous"]634 }, {title: "fas fa-arrow-circle-right", searchTerms: ["forward", "next"]}, {635 title: "fas fa-arrow-circle-up",636 searchTerms: []637 }, {title: "fas fa-arrow-down", searchTerms: ["download"]}, {638 title: "fas fa-arrow-left",639 searchTerms: ["back", "previous"]640 }, {title: "fas fa-arrow-right", searchTerms: ["forward", "next"]}, {641 title: "fas fa-arrow-up",642 searchTerms: []643 }, {644 title: "fas fa-arrows-alt",645 searchTerms: ["arrow", "arrows", "bigger", "enlarge", "expand", "fullscreen", "move", "position", "reorder", "resize"]646 }, {title: "fas fa-arrows-alt-h", searchTerms: ["arrows-h", "resize"]}, {647 title: "fas fa-arrows-alt-v",648 searchTerms: ["arrows-v", "resize"]649 }, {title: "fas fa-assistive-listening-systems", searchTerms: []}, {650 title: "fas fa-asterisk",651 searchTerms: ["details"]652 }, {title: "fab fa-asymmetrik", searchTerms: []}, {653 title: "fas fa-at",654 searchTerms: ["e-mail", "email"]655 }, {656 title: "fas fa-atlas",657 searchTerms: ["book", "directions", "geography", "map", "wayfinding"]658 }, {title: "fas fa-atom", searchTerms: ["atheism", "chemistry", "science"]}, {659 title: "fab fa-audible",660 searchTerms: []661 }, {title: "fas fa-audio-description", searchTerms: []}, {662 title: "fab fa-autoprefixer",663 searchTerms: []664 }, {title: "fab fa-avianex", searchTerms: []}, {665 title: "fab fa-aviato",666 searchTerms: []667 }, {668 title: "fas fa-award",669 searchTerms: ["honor", "praise", "prize", "recognition", "ribbon"]670 }, {title: "fab fa-aws", searchTerms: []}, {671 title: "fas fa-backspace",672 searchTerms: ["command", "delete", "keyboard", "undo"]673 }, {title: "fas fa-backward", searchTerms: ["previous", "rewind"]}, {674 title: "fas fa-balance-scale",675 searchTerms: ["balanced", "justice", "legal", "measure", "weight"]676 }, {677 title: "fas fa-ban",678 searchTerms: ["abort", "ban", "block", "cancel", "delete", "hide", "prohibit", "remove", "stop", "trash"]679 }, {title: "fas fa-band-aid", searchTerms: ["bandage", "boo boo", "ouch"]}, {680 title: "fab fa-bandcamp",681 searchTerms: []682 }, {title: "fas fa-barcode", searchTerms: ["scan"]}, {683 title: "fas fa-bars",684 searchTerms: ["checklist", "drag", "hamburger", "list", "menu", "nav", "navigation", "ol", "reorder", "settings", "todo", "ul"]685 }, {title: "fas fa-baseball-ball", searchTerms: []}, {686 title: "fas fa-basketball-ball",687 searchTerms: []688 }, {title: "fas fa-bath", searchTerms: []}, {689 title: "fas fa-battery-empty",690 searchTerms: ["power", "status"]691 }, {title: "fas fa-battery-full", searchTerms: ["power", "status"]}, {692 title: "fas fa-battery-half",693 searchTerms: ["power", "status"]694 }, {title: "fas fa-battery-quarter", searchTerms: ["power", "status"]}, {695 title: "fas fa-battery-three-quarters",696 searchTerms: ["power", "status"]697 }, {title: "fas fa-bed", searchTerms: ["lodging", "sleep", "travel"]}, {698 title: "fas fa-beer",699 searchTerms: ["alcohol", "bar", "beverage", "drink", "liquor", "mug", "stein"]700 }, {title: "fab fa-behance", searchTerms: []}, {701 title: "fab fa-behance-square",702 searchTerms: []703 }, {title: "fas fa-bell", searchTerms: ["alert", "notification", "reminder"]}, {704 title: "far fa-bell",705 searchTerms: ["alert", "notification", "reminder"]706 }, {title: "fas fa-bell-slash", searchTerms: []}, {707 title: "far fa-bell-slash",708 searchTerms: []709 }, {710 title: "fas fa-bezier-curve",711 searchTerms: ["curves", "illustrator", "lines", "path", "vector"]712 }, {title: "fas fa-bible", searchTerms: ["book", "catholicism", "christianity"]}, {713 title: "fas fa-bicycle",714 searchTerms: ["bike", "gears", "transportation", "vehicle"]715 }, {title: "fab fa-bimobject", searchTerms: []}, {716 title: "fas fa-binoculars",717 searchTerms: []718 }, {title: "fas fa-birthday-cake", searchTerms: []}, {719 title: "fab fa-bitbucket",720 searchTerms: ["bitbucket-square", "git"]721 }, {title: "fab fa-bitcoin", searchTerms: []}, {722 title: "fab fa-bity",723 searchTerms: []724 }, {title: "fab fa-black-tie", searchTerms: []}, {725 title: "fab fa-blackberry",726 searchTerms: []727 }, {title: "fas fa-blender", searchTerms: []}, {728 title: "fas fa-blender-phone",729 searchTerms: ["appliance", "fantasy", "silly"]730 }, {title: "fas fa-blind", searchTerms: []}, {731 title: "fab fa-blogger",732 searchTerms: []733 }, {title: "fab fa-blogger-b", searchTerms: []}, {734 title: "fab fa-bluetooth",735 searchTerms: []736 }, {title: "fab fa-bluetooth-b", searchTerms: []}, {737 title: "fas fa-bold",738 searchTerms: []739 }, {title: "fas fa-bolt", searchTerms: ["electricity", "lightning", "weather", "zap"]}, {740 title: "fas fa-bomb",741 searchTerms: []742 }, {title: "fas fa-bone", searchTerms: []}, {743 title: "fas fa-bong",744 searchTerms: ["aparatus", "cannabis", "marijuana", "pipe", "smoke", "smoking"]745 }, {title: "fas fa-book", searchTerms: ["documentation", "read"]}, {746 title: "fas fa-book-dead",747 searchTerms: ["Dungeons & Dragons", "crossbones", "d&d", "dark arts", "death", "dnd", "documentation", "evil", "fantasy", "halloween", "holiday", "read", "skull", "spell"]748 }, {749 title: "fas fa-book-open",750 searchTerms: ["flyer", "notebook", "open book", "pamphlet", "reading"]751 }, {title: "fas fa-book-reader", searchTerms: ["library"]}, {752 title: "fas fa-bookmark",753 searchTerms: ["save"]754 }, {title: "far fa-bookmark", searchTerms: ["save"]}, {755 title: "fas fa-bowling-ball",756 searchTerms: []757 }, {title: "fas fa-box", searchTerms: ["package"]}, {758 title: "fas fa-box-open",759 searchTerms: []760 }, {title: "fas fa-boxes", searchTerms: []}, {title: "fas fa-braille", searchTerms: []}, {761 title: "fas fa-brain",762 searchTerms: ["cerebellum", "gray matter", "intellect", "medulla oblongata", "mind", "noodle", "wit"]763 }, {764 title: "fas fa-briefcase",765 searchTerms: ["bag", "business", "luggage", "office", "work"]766 }, {title: "fas fa-briefcase-medical", searchTerms: ["health briefcase"]}, {767 title: "fas fa-broadcast-tower",768 searchTerms: ["airwaves", "radio", "waves"]769 }, {770 title: "fas fa-broom",771 searchTerms: ["clean", "firebolt", "fly", "halloween", "holiday", "nimbus 2000", "quidditch", "sweep", "witch"]772 }, {title: "fas fa-brush", searchTerms: ["bristles", "color", "handle", "painting"]}, {773 title: "fab fa-btc",774 searchTerms: []775 }, {title: "fas fa-bug", searchTerms: ["insect", "report"]}, {776 title: "fas fa-building",777 searchTerms: ["apartment", "business", "company", "office", "work"]778 }, {779 title: "far fa-building",780 searchTerms: ["apartment", "business", "company", "office", "work"]781 }, {782 title: "fas fa-bullhorn",783 searchTerms: ["announcement", "broadcast", "louder", "megaphone", "share"]784 }, {title: "fas fa-bullseye", searchTerms: ["target"]}, {785 title: "fas fa-burn",786 searchTerms: ["energy"]787 }, {title: "fab fa-buromobelexperte", searchTerms: []}, {788 title: "fas fa-bus",789 searchTerms: ["machine", "public transportation", "transportation", "vehicle"]790 }, {791 title: "fas fa-bus-alt",792 searchTerms: ["machine", "public transportation", "transportation", "vehicle"]793 }, {794 title: "fas fa-business-time",795 searchTerms: ["briefcase", "business socks", "clock", "flight of the conchords", "wednesday"]796 }, {title: "fab fa-buysellads", searchTerms: []}, {797 title: "fas fa-calculator",798 searchTerms: []799 }, {800 title: "fas fa-calendar",801 searchTerms: ["calendar-o", "date", "event", "schedule", "time", "when"]802 }, {803 title: "far fa-calendar",804 searchTerms: ["calendar-o", "date", "event", "schedule", "time", "when"]805 }, {806 title: "fas fa-calendar-alt",807 searchTerms: ["calendar", "date", "event", "schedule", "time", "when"]808 }, {809 title: "far fa-calendar-alt",810 searchTerms: ["calendar", "date", "event", "schedule", "time", "when"]811 }, {812 title: "fas fa-calendar-check",813 searchTerms: ["accept", "agree", "appointment", "confirm", "correct", "done", "ok", "select", "success", "todo"]814 }, {815 title: "far fa-calendar-check",816 searchTerms: ["accept", "agree", "appointment", "confirm", "correct", "done", "ok", "select", "success", "todo"]817 }, {818 title: "fas fa-calendar-minus",819 searchTerms: ["delete", "negative", "remove"]820 }, {821 title: "far fa-calendar-minus",822 searchTerms: ["delete", "negative", "remove"]823 }, {824 title: "fas fa-calendar-plus",825 searchTerms: ["add", "create", "new", "positive"]826 }, {827 title: "far fa-calendar-plus",828 searchTerms: ["add", "create", "new", "positive"]829 }, {830 title: "fas fa-calendar-times",831 searchTerms: ["archive", "delete", "remove", "x"]832 }, {title: "far fa-calendar-times", searchTerms: ["archive", "delete", "remove", "x"]}, {833 title: "fas fa-camera",834 searchTerms: ["photo", "picture", "record"]835 }, {title: "fas fa-camera-retro", searchTerms: ["photo", "picture", "record"]}, {836 title: "fas fa-campground",837 searchTerms: ["camping", "fall", "outdoors", "seasonal", "tent"]838 }, {839 title: "fas fa-cannabis",840 searchTerms: ["bud", "chronic", "drugs", "endica", "endo", "ganja", "marijuana", "mary jane", "pot", "reefer", "sativa", "spliff", "weed", "whacky-tabacky"]841 }, {title: "fas fa-capsules", searchTerms: ["drugs", "medicine"]}, {842 title: "fas fa-car",843 searchTerms: ["machine", "transportation", "vehicle"]844 }, {title: "fas fa-car-alt", searchTerms: []}, {845 title: "fas fa-car-battery",846 searchTerms: []847 }, {title: "fas fa-car-crash", searchTerms: []}, {848 title: "fas fa-car-side",849 searchTerms: []850 }, {851 title: "fas fa-caret-down",852 searchTerms: ["arrow", "dropdown", "menu", "more", "triangle down"]853 }, {854 title: "fas fa-caret-left",855 searchTerms: ["arrow", "back", "previous", "triangle left"]856 }, {857 title: "fas fa-caret-right",858 searchTerms: ["arrow", "forward", "next", "triangle right"]859 }, {860 title: "fas fa-caret-square-down",861 searchTerms: ["caret-square-o-down", "dropdown", "menu", "more"]862 }, {863 title: "far fa-caret-square-down",864 searchTerms: ["caret-square-o-down", "dropdown", "menu", "more"]865 }, {866 title: "fas fa-caret-square-left",867 searchTerms: ["back", "caret-square-o-left", "previous"]868 }, {869 title: "far fa-caret-square-left",870 searchTerms: ["back", "caret-square-o-left", "previous"]871 }, {872 title: "fas fa-caret-square-right",873 searchTerms: ["caret-square-o-right", "forward", "next"]874 }, {875 title: "far fa-caret-square-right",876 searchTerms: ["caret-square-o-right", "forward", "next"]877 }, {title: "fas fa-caret-square-up", searchTerms: ["caret-square-o-up"]}, {878 title: "far fa-caret-square-up",879 searchTerms: ["caret-square-o-up"]880 }, {title: "fas fa-caret-up", searchTerms: ["arrow", "triangle up"]}, {881 title: "fas fa-cart-arrow-down",882 searchTerms: ["shopping"]883 }, {884 title: "fas fa-cart-plus",885 searchTerms: ["add", "create", "new", "positive", "shopping"]886 }, {887 title: "fas fa-cat",888 searchTerms: ["feline", "halloween", "holiday", "kitten", "kitty", "meow", "pet"]889 }, {title: "fab fa-cc-amazon-pay", searchTerms: []}, {890 title: "fab fa-cc-amex",891 searchTerms: ["amex"]892 }, {title: "fab fa-cc-apple-pay", searchTerms: []}, {893 title: "fab fa-cc-diners-club",894 searchTerms: []895 }, {title: "fab fa-cc-discover", searchTerms: []}, {896 title: "fab fa-cc-jcb",897 searchTerms: []898 }, {title: "fab fa-cc-mastercard", searchTerms: []}, {899 title: "fab fa-cc-paypal",900 searchTerms: []901 }, {title: "fab fa-cc-stripe", searchTerms: []}, {902 title: "fab fa-cc-visa",903 searchTerms: []904 }, {title: "fab fa-centercode", searchTerms: []}, {905 title: "fas fa-certificate",906 searchTerms: ["badge", "star"]907 }, {title: "fas fa-chair", searchTerms: ["furniture", "seat"]}, {908 title: "fas fa-chalkboard",909 searchTerms: ["blackboard", "learning", "school", "teaching", "whiteboard", "writing"]910 }, {911 title: "fas fa-chalkboard-teacher",912 searchTerms: ["blackboard", "instructor", "learning", "professor", "school", "whiteboard", "writing"]913 }, {title: "fas fa-charging-station", searchTerms: []}, {914 title: "fas fa-chart-area",915 searchTerms: ["analytics", "area-chart", "graph"]916 }, {title: "fas fa-chart-bar", searchTerms: ["analytics", "bar-chart", "graph"]}, {917 title: "far fa-chart-bar",918 searchTerms: ["analytics", "bar-chart", "graph"]919 }, {920 title: "fas fa-chart-line",921 searchTerms: ["activity", "analytics", "dashboard", "graph", "line-chart"]922 }, {title: "fas fa-chart-pie", searchTerms: ["analytics", "graph", "pie-chart"]}, {923 title: "fas fa-check",924 searchTerms: ["accept", "agree", "checkmark", "confirm", "correct", "done", "notice", "notification", "notify", "ok", "select", "success", "tick", "todo", "yes"]925 }, {926 title: "fas fa-check-circle",927 searchTerms: ["accept", "agree", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes"]928 }, {929 title: "far fa-check-circle",930 searchTerms: ["accept", "agree", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes"]931 }, {932 title: "fas fa-check-double",933 searchTerms: ["accept", "agree", "checkmark", "confirm", "correct", "done", "notice", "notification", "notify", "ok", "select", "success", "tick", "todo"]934 }, {935 title: "fas fa-check-square",936 searchTerms: ["accept", "agree", "checkmark", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes"]937 }, {938 title: "far fa-check-square",939 searchTerms: ["accept", "agree", "checkmark", "confirm", "correct", "done", "ok", "select", "success", "todo", "yes"]940 }, {title: "fas fa-chess", searchTerms: []}, {941 title: "fas fa-chess-bishop",942 searchTerms: []943 }, {title: "fas fa-chess-board", searchTerms: []}, {944 title: "fas fa-chess-king",945 searchTerms: []946 }, {title: "fas fa-chess-knight", searchTerms: []}, {947 title: "fas fa-chess-pawn",948 searchTerms: []949 }, {title: "fas fa-chess-queen", searchTerms: []}, {950 title: "fas fa-chess-rook",951 searchTerms: []952 }, {953 title: "fas fa-chevron-circle-down",954 searchTerms: ["arrow", "dropdown", "menu", "more"]955 }, {956 title: "fas fa-chevron-circle-left",957 searchTerms: ["arrow", "back", "previous"]958 }, {959 title: "fas fa-chevron-circle-right",960 searchTerms: ["arrow", "forward", "next"]961 }, {title: "fas fa-chevron-circle-up", searchTerms: ["arrow"]}, {962 title: "fas fa-chevron-down",963 searchTerms: []964 }, {title: "fas fa-chevron-left", searchTerms: ["back", "bracket", "previous"]}, {965 title: "fas fa-chevron-right",966 searchTerms: ["bracket", "forward", "next"]967 }, {title: "fas fa-chevron-up", searchTerms: []}, {968 title: "fas fa-child",969 searchTerms: []970 }, {title: "fab fa-chrome", searchTerms: ["browser"]}, {971 title: "fas fa-church",972 searchTerms: ["building", "community", "religion"]973 }, {title: "fas fa-circle", searchTerms: ["circle-thin", "dot", "notification"]}, {974 title: "far fa-circle",975 searchTerms: ["circle-thin", "dot", "notification"]976 }, {title: "fas fa-circle-notch", searchTerms: ["circle-o-notch"]}, {977 title: "fas fa-city",978 searchTerms: ["buildings", "busy", "skyscrapers", "urban", "windows"]979 }, {title: "fas fa-clipboard", searchTerms: ["paste"]}, {980 title: "far fa-clipboard",981 searchTerms: ["paste"]982 }, {983 title: "fas fa-clipboard-check",984 searchTerms: ["accept", "agree", "confirm", "done", "ok", "select", "success", "todo", "yes"]985 }, {986 title: "fas fa-clipboard-list",987 searchTerms: ["checklist", "completed", "done", "finished", "intinerary", "ol", "schedule", "todo", "ul"]988 }, {989 title: "fas fa-clock",990 searchTerms: ["date", "late", "schedule", "timer", "timestamp", "watch"]991 }, {992 title: "far fa-clock",993 searchTerms: ["date", "late", "schedule", "timer", "timestamp", "watch"]994 }, {title: "fas fa-clone", searchTerms: ["copy", "duplicate"]}, {995 title: "far fa-clone",996 searchTerms: ["copy", "duplicate"]997 }, {title: "fas fa-closed-captioning", searchTerms: ["cc"]}, {998 title: "far fa-closed-captioning",999 searchTerms: ["cc"]1000 }, {title: "fas fa-cloud", searchTerms: ["save"]}, {1001 title: "fas fa-cloud-download-alt",1002 searchTerms: ["import"]1003 }, {title: "fas fa-cloud-meatball", searchTerms: []}, {1004 title: "fas fa-cloud-moon",1005 searchTerms: ["crescent", "evening", "halloween", "holiday", "lunar", "night", "sky"]1006 }, {title: "fas fa-cloud-moon-rain", searchTerms: []}, {1007 title: "fas fa-cloud-rain",1008 searchTerms: ["precipitation"]1009 }, {1010 title: "fas fa-cloud-showers-heavy",1011 searchTerms: ["precipitation", "rain", "storm"]1012 }, {1013 title: "fas fa-cloud-sun",1014 searchTerms: ["day", "daytime", "fall", "outdoors", "seasonal"]1015 }, {title: "fas fa-cloud-sun-rain", searchTerms: []}, {1016 title: "fas fa-cloud-upload-alt",1017 searchTerms: ["cloud-upload"]1018 }, {title: "fab fa-cloudscale", searchTerms: []}, {1019 title: "fab fa-cloudsmith",1020 searchTerms: []1021 }, {title: "fab fa-cloudversify", searchTerms: []}, {1022 title: "fas fa-cocktail",1023 searchTerms: ["alcohol", "beverage", "drink"]1024 }, {title: "fas fa-code", searchTerms: ["brackets", "html"]}, {1025 title: "fas fa-code-branch",1026 searchTerms: ["branch", "code-fork", "fork", "git", "github", "rebase", "svn", "vcs", "version"]1027 }, {title: "fab fa-codepen", searchTerms: []}, {1028 title: "fab fa-codiepie",1029 searchTerms: []1030 }, {1031 title: "fas fa-coffee",1032 searchTerms: ["beverage", "breakfast", "cafe", "drink", "fall", "morning", "mug", "seasonal", "tea"]1033 }, {title: "fas fa-cog", searchTerms: ["settings"]}, {1034 title: "fas fa-cogs",1035 searchTerms: ["gears", "settings"]1036 }, {title: "fas fa-coins", searchTerms: []}, {1037 title: "fas fa-columns",1038 searchTerms: ["dashboard", "panes", "split"]1039 }, {1040 title: "fas fa-comment",1041 searchTerms: ["bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting"]1042 }, {1043 title: "far fa-comment",1044 searchTerms: ["bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting"]1045 }, {1046 title: "fas fa-comment-alt",1047 searchTerms: ["bubble", "chat", "commenting", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting"]1048 }, {1049 title: "far fa-comment-alt",1050 searchTerms: ["bubble", "chat", "commenting", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting"]1051 }, {title: "fas fa-comment-dollar", searchTerms: []}, {1052 title: "fas fa-comment-dots",1053 searchTerms: []1054 }, {title: "far fa-comment-dots", searchTerms: []}, {1055 title: "fas fa-comment-slash",1056 searchTerms: []1057 }, {1058 title: "fas fa-comments",1059 searchTerms: ["bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting"]1060 }, {1061 title: "far fa-comments",1062 searchTerms: ["bubble", "chat", "conversation", "feedback", "message", "note", "notification", "sms", "speech", "texting"]1063 }, {title: "fas fa-comments-dollar", searchTerms: []}, {1064 title: "fas fa-compact-disc",1065 searchTerms: ["bluray", "cd", "disc", "media"]1066 }, {1067 title: "fas fa-compass",1068 searchTerms: ["directory", "location", "menu", "safari"]1069 }, {1070 title: "far fa-compass",1071 searchTerms: ["directory", "location", "menu", "safari"]1072 }, {1073 title: "fas fa-compress",1074 searchTerms: ["collapse", "combine", "contract", "merge", "smaller"]1075 }, {1076 title: "fas fa-concierge-bell",1077 searchTerms: ["attention", "hotel", "service", "support"]1078 }, {title: "fab fa-connectdevelop", searchTerms: []}, {1079 title: "fab fa-contao",1080 searchTerms: []1081 }, {1082 title: "fas fa-cookie",1083 searchTerms: ["baked good", "chips", "food", "snack", "sweet", "treat"]1084 }, {1085 title: "fas fa-cookie-bite",1086 searchTerms: ["baked good", "bitten", "chips", "eating", "food", "snack", "sweet", "treat"]1087 }, {title: "fas fa-copy", searchTerms: ["clone", "duplicate", "file", "files-o"]}, {1088 title: "far fa-copy",1089 searchTerms: ["clone", "duplicate", "file", "files-o"]1090 }, {title: "fas fa-copyright", searchTerms: []}, {1091 title: "far fa-copyright",1092 searchTerms: []1093 }, {title: "fas fa-couch", searchTerms: ["furniture", "sofa"]}, {1094 title: "fab fa-cpanel",1095 searchTerms: []1096 }, {title: "fab fa-creative-commons", searchTerms: []}, {1097 title: "fab fa-creative-commons-by",1098 searchTerms: []1099 }, {title: "fab fa-creative-commons-nc", searchTerms: []}, {1100 title: "fab fa-creative-commons-nc-eu",1101 searchTerms: []1102 }, {title: "fab fa-creative-commons-nc-jp", searchTerms: []}, {1103 title: "fab fa-creative-commons-nd",1104 searchTerms: []1105 }, {title: "fab fa-creative-commons-pd", searchTerms: []}, {1106 title: "fab fa-creative-commons-pd-alt",1107 searchTerms: []1108 }, {title: "fab fa-creative-commons-remix", searchTerms: []}, {1109 title: "fab fa-creative-commons-sa",1110 searchTerms: []1111 }, {1112 title: "fab fa-creative-commons-sampling",1113 searchTerms: []1114 }, {title: "fab fa-creative-commons-sampling-plus", searchTerms: []}, {1115 title: "fab fa-creative-commons-share",1116 searchTerms: []1117 }, {title: "fab fa-creative-commons-zero", searchTerms: []}, {1118 title: "fas fa-credit-card",1119 searchTerms: ["buy", "checkout", "credit-card-alt", "debit", "money", "payment", "purchase"]1120 }, {1121 title: "far fa-credit-card",1122 searchTerms: ["buy", "checkout", "credit-card-alt", "debit", "money", "payment", "purchase"]1123 }, {1124 title: "fab fa-critical-role",1125 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop"]1126 }, {title: "fas fa-crop", searchTerms: ["design"]}, {1127 title: "fas fa-crop-alt",1128 searchTerms: []1129 }, {title: "fas fa-cross", searchTerms: ["catholicism", "christianity"]}, {1130 title: "fas fa-crosshairs",1131 searchTerms: ["gpd", "picker", "position"]1132 }, {1133 title: "fas fa-crow",1134 searchTerms: ["bird", "bullfrog", "fauna", "halloween", "holiday", "toad"]1135 }, {title: "fas fa-crown", searchTerms: []}, {1136 title: "fab fa-css3",1137 searchTerms: ["code"]1138 }, {title: "fab fa-css3-alt", searchTerms: []}, {1139 title: "fas fa-cube",1140 searchTerms: ["package"]1141 }, {title: "fas fa-cubes", searchTerms: ["packages"]}, {1142 title: "fas fa-cut",1143 searchTerms: ["scissors"]1144 }, {title: "fab fa-cuttlefish", searchTerms: []}, {1145 title: "fab fa-d-and-d",1146 searchTerms: []1147 }, {1148 title: "fab fa-d-and-d-beyond",1149 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy", "gaming", "tabletop"]1150 }, {title: "fab fa-dashcube", searchTerms: []}, {1151 title: "fas fa-database",1152 searchTerms: []1153 }, {title: "fas fa-deaf", searchTerms: []}, {1154 title: "fab fa-delicious",1155 searchTerms: []1156 }, {1157 title: "fas fa-democrat",1158 searchTerms: ["american", "democratic party", "donkey", "election", "left", "left-wing", "liberal", "politics", "usa"]1159 }, {title: "fab fa-deploydog", searchTerms: []}, {1160 title: "fab fa-deskpro",1161 searchTerms: []1162 }, {1163 title: "fas fa-desktop",1164 searchTerms: ["computer", "cpu", "demo", "desktop", "device", "machine", "monitor", "pc", "screen"]1165 }, {title: "fab fa-dev", searchTerms: []}, {1166 title: "fab fa-deviantart",1167 searchTerms: []1168 }, {1169 title: "fas fa-dharmachakra",1170 searchTerms: ["buddhism", "buddhist", "wheel of dharma"]1171 }, {title: "fas fa-diagnoses", searchTerms: []}, {1172 title: "fas fa-dice",1173 searchTerms: ["chance", "gambling", "game", "roll"]1174 }, {1175 title: "fas fa-dice-d20",1176 searchTerms: ["Dungeons & Dragons", "chance", "d&d", "dnd", "fantasy", "gambling", "game", "roll"]1177 }, {1178 title: "fas fa-dice-d6",1179 searchTerms: ["Dungeons & Dragons", "chance", "d&d", "dnd", "fantasy", "gambling", "game", "roll"]1180 }, {title: "fas fa-dice-five", searchTerms: ["chance", "gambling", "game", "roll"]}, {1181 title: "fas fa-dice-four",1182 searchTerms: ["chance", "gambling", "game", "roll"]1183 }, {title: "fas fa-dice-one", searchTerms: ["chance", "gambling", "game", "roll"]}, {1184 title: "fas fa-dice-six",1185 searchTerms: ["chance", "gambling", "game", "roll"]1186 }, {title: "fas fa-dice-three", searchTerms: ["chance", "gambling", "game", "roll"]}, {1187 title: "fas fa-dice-two",1188 searchTerms: ["chance", "gambling", "game", "roll"]1189 }, {title: "fab fa-digg", searchTerms: []}, {1190 title: "fab fa-digital-ocean",1191 searchTerms: []1192 }, {title: "fas fa-digital-tachograph", searchTerms: []}, {1193 title: "fas fa-directions",1194 searchTerms: []1195 }, {title: "fab fa-discord", searchTerms: []}, {1196 title: "fab fa-discourse",1197 searchTerms: []1198 }, {title: "fas fa-divide", searchTerms: []}, {1199 title: "fas fa-dizzy",1200 searchTerms: ["dazed", "disapprove", "emoticon", "face"]1201 }, {title: "far fa-dizzy", searchTerms: ["dazed", "disapprove", "emoticon", "face"]}, {1202 title: "fas fa-dna",1203 searchTerms: ["double helix", "helix"]1204 }, {title: "fab fa-dochub", searchTerms: []}, {title: "fab fa-docker", searchTerms: []}, {1205 title: "fas fa-dog",1206 searchTerms: ["canine", "fauna", "mammmal", "pet", "pooch", "puppy", "woof"]1207 }, {1208 title: "fas fa-dollar-sign",1209 searchTerms: ["$", "dollar-sign", "money", "price", "usd"]1210 }, {title: "fas fa-dolly", searchTerms: []}, {1211 title: "fas fa-dolly-flatbed",1212 searchTerms: []1213 }, {title: "fas fa-donate", searchTerms: ["generosity", "give"]}, {1214 title: "fas fa-door-closed",1215 searchTerms: []1216 }, {title: "fas fa-door-open", searchTerms: []}, {1217 title: "fas fa-dot-circle",1218 searchTerms: ["bullseye", "notification", "target"]1219 }, {title: "far fa-dot-circle", searchTerms: ["bullseye", "notification", "target"]}, {1220 title: "fas fa-dove",1221 searchTerms: ["bird", "fauna", "flying", "peace"]1222 }, {title: "fas fa-download", searchTerms: ["import"]}, {1223 title: "fab fa-draft2digital",1224 searchTerms: []1225 }, {1226 title: "fas fa-drafting-compass",1227 searchTerms: ["mechanical drawing", "plot", "plotting"]1228 }, {1229 title: "fas fa-dragon",1230 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy"]1231 }, {title: "fas fa-draw-polygon", searchTerms: []}, {1232 title: "fab fa-dribbble",1233 searchTerms: []1234 }, {title: "fab fa-dribbble-square", searchTerms: []}, {1235 title: "fab fa-dropbox",1236 searchTerms: []1237 }, {1238 title: "fas fa-drum",1239 searchTerms: ["instrument", "music", "percussion", "snare", "sound"]1240 }, {1241 title: "fas fa-drum-steelpan",1242 searchTerms: ["calypso", "instrument", "music", "percussion", "reggae", "snare", "sound", "steel", "tropical"]1243 }, {title: "fas fa-drumstick-bite", searchTerms: []}, {1244 title: "fab fa-drupal",1245 searchTerms: []1246 }, {1247 title: "fas fa-dumbbell",1248 searchTerms: ["exercise", "gym", "strength", "weight", "weight-lifting"]1249 }, {1250 title: "fas fa-dungeon",1251 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "door", "entrance", "fantasy", "gate"]1252 }, {title: "fab fa-dyalog", searchTerms: []}, {1253 title: "fab fa-earlybirds",1254 searchTerms: []1255 }, {title: "fab fa-ebay", searchTerms: []}, {1256 title: "fab fa-edge",1257 searchTerms: ["browser", "ie"]1258 }, {title: "fas fa-edit", searchTerms: ["edit", "pen", "pencil", "update", "write"]}, {1259 title: "far fa-edit",1260 searchTerms: ["edit", "pen", "pencil", "update", "write"]1261 }, {title: "fas fa-eject", searchTerms: []}, {1262 title: "fab fa-elementor",1263 searchTerms: []1264 }, {1265 title: "fas fa-ellipsis-h",1266 searchTerms: ["dots", "drag", "kebab", "list", "menu", "nav", "navigation", "ol", "reorder", "settings", "ul"]1267 }, {1268 title: "fas fa-ellipsis-v",1269 searchTerms: ["dots", "drag", "kebab", "list", "menu", "nav", "navigation", "ol", "reorder", "settings", "ul"]1270 }, {title: "fab fa-ello", searchTerms: []}, {title: "fab fa-ember", searchTerms: []}, {1271 title: "fab fa-empire",1272 searchTerms: []1273 }, {1274 title: "fas fa-envelope",1275 searchTerms: ["e-mail", "email", "letter", "mail", "message", "notification", "support"]1276 }, {1277 title: "far fa-envelope",1278 searchTerms: ["e-mail", "email", "letter", "mail", "message", "notification", "support"]1279 }, {1280 title: "fas fa-envelope-open",1281 searchTerms: ["e-mail", "email", "letter", "mail", "message", "notification", "support"]1282 }, {1283 title: "far fa-envelope-open",1284 searchTerms: ["e-mail", "email", "letter", "mail", "message", "notification", "support"]1285 }, {title: "fas fa-envelope-open-text", searchTerms: []}, {1286 title: "fas fa-envelope-square",1287 searchTerms: ["e-mail", "email", "letter", "mail", "message", "notification", "support"]1288 }, {title: "fab fa-envira", searchTerms: ["leaf"]}, {1289 title: "fas fa-equals",1290 searchTerms: []1291 }, {title: "fas fa-eraser", searchTerms: ["delete", "remove"]}, {1292 title: "fab fa-erlang",1293 searchTerms: []1294 }, {title: "fab fa-ethereum", searchTerms: []}, {1295 title: "fab fa-etsy",1296 searchTerms: []1297 }, {title: "fas fa-euro-sign", searchTerms: ["eur"]}, {1298 title: "fas fa-exchange-alt",1299 searchTerms: ["arrow", "arrows", "exchange", "reciprocate", "return", "swap", "transfer"]1300 }, {1301 title: "fas fa-exclamation",1302 searchTerms: ["alert", "danger", "error", "important", "notice", "notification", "notify", "problem", "warning"]1303 }, {1304 title: "fas fa-exclamation-circle",1305 searchTerms: ["alert", "danger", "error", "important", "notice", "notification", "notify", "problem", "warning"]1306 }, {1307 title: "fas fa-exclamation-triangle",1308 searchTerms: ["alert", "danger", "error", "important", "notice", "notification", "notify", "problem", "warning"]1309 }, {title: "fas fa-expand", searchTerms: ["bigger", "enlarge", "resize"]}, {1310 title: "fas fa-expand-arrows-alt",1311 searchTerms: ["arrows-alt", "bigger", "enlarge", "move", "resize"]1312 }, {title: "fab fa-expeditedssl", searchTerms: []}, {1313 title: "fas fa-external-link-alt",1314 searchTerms: ["external-link", "new", "open"]1315 }, {1316 title: "fas fa-external-link-square-alt",1317 searchTerms: ["external-link-square", "new", "open"]1318 }, {1319 title: "fas fa-eye",1320 searchTerms: ["optic", "see", "seen", "show", "sight", "views", "visible"]1321 }, {1322 title: "far fa-eye",1323 searchTerms: ["optic", "see", "seen", "show", "sight", "views", "visible"]1324 }, {title: "fas fa-eye-dropper", searchTerms: ["eyedropper"]}, {1325 title: "fas fa-eye-slash",1326 searchTerms: ["blind", "hide", "show", "toggle", "unseen", "views", "visible", "visiblity"]1327 }, {1328 title: "far fa-eye-slash",1329 searchTerms: ["blind", "hide", "show", "toggle", "unseen", "views", "visible", "visiblity"]1330 }, {1331 title: "fab fa-facebook",1332 searchTerms: ["facebook-official", "social network"]1333 }, {title: "fab fa-facebook-f", searchTerms: ["facebook"]}, {1334 title: "fab fa-facebook-messenger",1335 searchTerms: []1336 }, {title: "fab fa-facebook-square", searchTerms: ["social network"]}, {1337 title: "fab fa-fantasy-flight-games",1338 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop"]1339 }, {1340 title: "fas fa-fast-backward",1341 searchTerms: ["beginning", "first", "previous", "rewind", "start"]1342 }, {title: "fas fa-fast-forward", searchTerms: ["end", "last", "next"]}, {1343 title: "fas fa-fax",1344 searchTerms: []1345 }, {title: "fas fa-feather", searchTerms: ["bird", "light", "plucked", "quill"]}, {1346 title: "fas fa-feather-alt",1347 searchTerms: ["bird", "light", "plucked", "quill"]1348 }, {1349 title: "fas fa-female",1350 searchTerms: ["human", "person", "profile", "user", "woman"]1351 }, {1352 title: "fas fa-fighter-jet",1353 searchTerms: ["airplane", "fast", "fly", "goose", "maverick", "plane", "quick", "top gun", "transportation", "travel"]1354 }, {title: "fas fa-file", searchTerms: ["document", "new", "page", "pdf", "resume"]}, {1355 title: "far fa-file",1356 searchTerms: ["document", "new", "page", "pdf", "resume"]1357 }, {1358 title: "fas fa-file-alt",1359 searchTerms: ["document", "file-text", "invoice", "new", "page", "pdf"]1360 }, {1361 title: "far fa-file-alt",1362 searchTerms: ["document", "file-text", "invoice", "new", "page", "pdf"]1363 }, {1364 title: "fas fa-file-archive",1365 searchTerms: [".zip", "bundle", "compress", "compression", "download", "zip"]1366 }, {1367 title: "far fa-file-archive",1368 searchTerms: [".zip", "bundle", "compress", "compression", "download", "zip"]1369 }, {title: "fas fa-file-audio", searchTerms: []}, {1370 title: "far fa-file-audio",1371 searchTerms: []1372 }, {title: "fas fa-file-code", searchTerms: []}, {1373 title: "far fa-file-code",1374 searchTerms: []1375 }, {1376 title: "fas fa-file-contract",1377 searchTerms: ["agreement", "binding", "document", "legal", "signature"]1378 }, {title: "fas fa-file-csv", searchTerms: ["spreadsheets"]}, {1379 title: "fas fa-file-download",1380 searchTerms: []1381 }, {title: "fas fa-file-excel", searchTerms: []}, {1382 title: "far fa-file-excel",1383 searchTerms: []1384 }, {title: "fas fa-file-export", searchTerms: []}, {1385 title: "fas fa-file-image",1386 searchTerms: []1387 }, {title: "far fa-file-image", searchTerms: []}, {1388 title: "fas fa-file-import",1389 searchTerms: []1390 }, {1391 title: "fas fa-file-invoice",1392 searchTerms: ["bill", "document", "receipt"]1393 }, {1394 title: "fas fa-file-invoice-dollar",1395 searchTerms: ["$", "bill", "document", "dollar-sign", "money", "receipt", "usd"]1396 }, {title: "fas fa-file-medical", searchTerms: []}, {1397 title: "fas fa-file-medical-alt",1398 searchTerms: []1399 }, {title: "fas fa-file-pdf", searchTerms: []}, {1400 title: "far fa-file-pdf",1401 searchTerms: []1402 }, {title: "fas fa-file-powerpoint", searchTerms: []}, {1403 title: "far fa-file-powerpoint",1404 searchTerms: []1405 }, {1406 title: "fas fa-file-prescription",1407 searchTerms: ["drugs", "medical", "medicine", "rx"]1408 }, {1409 title: "fas fa-file-signature",1410 searchTerms: ["John Hancock", "contract", "document", "name"]1411 }, {title: "fas fa-file-upload", searchTerms: []}, {1412 title: "fas fa-file-video",1413 searchTerms: []1414 }, {title: "far fa-file-video", searchTerms: []}, {1415 title: "fas fa-file-word",1416 searchTerms: []1417 }, {title: "far fa-file-word", searchTerms: []}, {1418 title: "fas fa-fill",1419 searchTerms: ["bucket", "color", "paint", "paint bucket"]1420 }, {1421 title: "fas fa-fill-drip",1422 searchTerms: ["bucket", "color", "drop", "paint", "paint bucket", "spill"]1423 }, {title: "fas fa-film", searchTerms: ["movie"]}, {1424 title: "fas fa-filter",1425 searchTerms: ["funnel", "options"]1426 }, {1427 title: "fas fa-fingerprint",1428 searchTerms: ["human", "id", "identification", "lock", "smudge", "touch", "unique", "unlock"]1429 }, {1430 title: "fas fa-fire",1431 searchTerms: ["caliente", "flame", "heat", "hot", "popular"]1432 }, {title: "fas fa-fire-extinguisher", searchTerms: []}, {1433 title: "fab fa-firefox",1434 searchTerms: ["browser"]1435 }, {title: "fas fa-first-aid", searchTerms: []}, {1436 title: "fab fa-first-order",1437 searchTerms: []1438 }, {title: "fab fa-first-order-alt", searchTerms: []}, {1439 title: "fab fa-firstdraft",1440 searchTerms: []1441 }, {title: "fas fa-fish", searchTerms: ["fauna", "gold", "swimming"]}, {1442 title: "fas fa-fist-raised",1443 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy", "hand", "ki", "monk", "resist", "strength", "unarmed combat"]1444 }, {1445 title: "fas fa-flag",1446 searchTerms: ["country", "notice", "notification", "notify", "pole", "report", "symbol"]1447 }, {1448 title: "far fa-flag",1449 searchTerms: ["country", "notice", "notification", "notify", "pole", "report", "symbol"]1450 }, {1451 title: "fas fa-flag-checkered",1452 searchTerms: ["notice", "notification", "notify", "pole", "racing", "report", "symbol"]1453 }, {1454 title: "fas fa-flag-usa",1455 searchTerms: ["betsy ross", "country", "old glory", "stars", "stripes", "symbol"]1456 }, {title: "fas fa-flask", searchTerms: ["beaker", "experimental", "labs", "science"]}, {1457 title: "fab fa-flickr",1458 searchTerms: []1459 }, {title: "fab fa-flipboard", searchTerms: []}, {1460 title: "fas fa-flushed",1461 searchTerms: ["embarrassed", "emoticon", "face"]1462 }, {title: "far fa-flushed", searchTerms: ["embarrassed", "emoticon", "face"]}, {1463 title: "fab fa-fly",1464 searchTerms: []1465 }, {title: "fas fa-folder", searchTerms: []}, {1466 title: "far fa-folder",1467 searchTerms: []1468 }, {1469 title: "fas fa-folder-minus",1470 searchTerms: ["archive", "delete", "negative", "remove"]1471 }, {title: "fas fa-folder-open", searchTerms: []}, {1472 title: "far fa-folder-open",1473 searchTerms: []1474 }, {title: "fas fa-folder-plus", searchTerms: ["add", "create", "new", "positive"]}, {1475 title: "fas fa-font",1476 searchTerms: ["text"]1477 }, {title: "fab fa-font-awesome", searchTerms: ["meanpath"]}, {1478 title: "fab fa-font-awesome-alt",1479 searchTerms: []1480 }, {title: "fab fa-font-awesome-flag", searchTerms: []}, {1481 title: "far fa-font-awesome-logo-full",1482 searchTerms: []1483 }, {title: "fas fa-font-awesome-logo-full", searchTerms: []}, {1484 title: "fab fa-font-awesome-logo-full",1485 searchTerms: []1486 }, {title: "fab fa-fonticons", searchTerms: []}, {1487 title: "fab fa-fonticons-fi",1488 searchTerms: []1489 }, {title: "fas fa-football-ball", searchTerms: ["fall", "pigskin", "seasonal"]}, {1490 title: "fab fa-fort-awesome",1491 searchTerms: ["castle"]1492 }, {title: "fab fa-fort-awesome-alt", searchTerms: ["castle"]}, {1493 title: "fab fa-forumbee",1494 searchTerms: []1495 }, {title: "fas fa-forward", searchTerms: ["forward", "next"]}, {1496 title: "fab fa-foursquare",1497 searchTerms: []1498 }, {title: "fab fa-free-code-camp", searchTerms: []}, {1499 title: "fab fa-freebsd",1500 searchTerms: []1501 }, {1502 title: "fas fa-frog",1503 searchTerms: ["amphibian", "bullfrog", "fauna", "hop", "kermit", "kiss", "prince", "ribbit", "toad", "wart"]1504 }, {1505 title: "fas fa-frown",1506 searchTerms: ["disapprove", "emoticon", "face", "rating", "sad"]1507 }, {1508 title: "far fa-frown",1509 searchTerms: ["disapprove", "emoticon", "face", "rating", "sad"]1510 }, {1511 title: "fas fa-frown-open",1512 searchTerms: ["disapprove", "emoticon", "face", "rating", "sad"]1513 }, {1514 title: "far fa-frown-open",1515 searchTerms: ["disapprove", "emoticon", "face", "rating", "sad"]1516 }, {title: "fab fa-fulcrum", searchTerms: []}, {1517 title: "fas fa-funnel-dollar",1518 searchTerms: []1519 }, {title: "fas fa-futbol", searchTerms: ["ball", "football", "soccer"]}, {1520 title: "far fa-futbol",1521 searchTerms: ["ball", "football", "soccer"]1522 }, {1523 title: "fab fa-galactic-republic",1524 searchTerms: ["politics", "star wars"]1525 }, {title: "fab fa-galactic-senate", searchTerms: ["star wars"]}, {1526 title: "fas fa-gamepad",1527 searchTerms: ["controller"]1528 }, {title: "fas fa-gas-pump", searchTerms: []}, {1529 title: "fas fa-gavel",1530 searchTerms: ["hammer", "judge", "lawyer", "opinion"]1531 }, {title: "fas fa-gem", searchTerms: ["diamond"]}, {1532 title: "far fa-gem",1533 searchTerms: ["diamond"]1534 }, {title: "fas fa-genderless", searchTerms: []}, {1535 title: "fab fa-get-pocket",1536 searchTerms: []1537 }, {title: "fab fa-gg", searchTerms: []}, {title: "fab fa-gg-circle", searchTerms: []}, {1538 title: "fas fa-ghost",1539 searchTerms: ["apparition", "blinky", "clyde", "floating", "halloween", "holiday", "inky", "pinky", "spirit"]1540 }, {1541 title: "fas fa-gift",1542 searchTerms: ["generosity", "giving", "party", "present", "wrapped"]1543 }, {title: "fab fa-git", searchTerms: []}, {1544 title: "fab fa-git-square",1545 searchTerms: []1546 }, {title: "fab fa-github", searchTerms: ["octocat"]}, {1547 title: "fab fa-github-alt",1548 searchTerms: ["octocat"]1549 }, {title: "fab fa-github-square", searchTerms: ["octocat"]}, {1550 title: "fab fa-gitkraken",1551 searchTerms: []1552 }, {title: "fab fa-gitlab", searchTerms: ["Axosoft"]}, {1553 title: "fab fa-gitter",1554 searchTerms: []1555 }, {1556 title: "fas fa-glass-martini",1557 searchTerms: ["alcohol", "bar", "beverage", "drink", "glass", "liquor", "martini"]1558 }, {title: "fas fa-glass-martini-alt", searchTerms: []}, {1559 title: "fas fa-glasses",1560 searchTerms: ["foureyes", "hipster", "nerd", "reading", "sight", "spectacles"]1561 }, {title: "fab fa-glide", searchTerms: []}, {title: "fab fa-glide-g", searchTerms: []}, {1562 title: "fas fa-globe",1563 searchTerms: ["all", "coordinates", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world"]1564 }, {1565 title: "fas fa-globe-africa",1566 searchTerms: ["all", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world"]1567 }, {1568 title: "fas fa-globe-americas",1569 searchTerms: ["all", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world"]1570 }, {1571 title: "fas fa-globe-asia",1572 searchTerms: ["all", "country", "earth", "global", "gps", "language", "localize", "location", "map", "online", "place", "planet", "translate", "travel", "world"]1573 }, {title: "fab fa-gofore", searchTerms: []}, {1574 title: "fas fa-golf-ball",1575 searchTerms: []1576 }, {title: "fab fa-goodreads", searchTerms: []}, {1577 title: "fab fa-goodreads-g",1578 searchTerms: []1579 }, {title: "fab fa-google", searchTerms: []}, {1580 title: "fab fa-google-drive",1581 searchTerms: []1582 }, {title: "fab fa-google-play", searchTerms: []}, {1583 title: "fab fa-google-plus",1584 searchTerms: ["google-plus-circle", "google-plus-official"]1585 }, {1586 title: "fab fa-google-plus-g",1587 searchTerms: ["google-plus", "social network"]1588 }, {title: "fab fa-google-plus-square", searchTerms: ["social network"]}, {1589 title: "fab fa-google-wallet",1590 searchTerms: []1591 }, {1592 title: "fas fa-gopuram",1593 searchTerms: ["building", "entrance", "hinduism", "temple", "tower"]1594 }, {title: "fas fa-graduation-cap", searchTerms: ["learning", "school", "student"]}, {1595 title: "fab fa-gratipay",1596 searchTerms: ["favorite", "heart", "like", "love"]1597 }, {title: "fab fa-grav", searchTerms: []}, {1598 title: "fas fa-greater-than",1599 searchTerms: []1600 }, {title: "fas fa-greater-than-equal", searchTerms: []}, {1601 title: "fas fa-grimace",1602 searchTerms: ["cringe", "emoticon", "face"]1603 }, {title: "far fa-grimace", searchTerms: ["cringe", "emoticon", "face"]}, {1604 title: "fas fa-grin",1605 searchTerms: ["emoticon", "face", "laugh", "smile"]1606 }, {title: "far fa-grin", searchTerms: ["emoticon", "face", "laugh", "smile"]}, {1607 title: "fas fa-grin-alt",1608 searchTerms: ["emoticon", "face", "laugh", "smile"]1609 }, {title: "far fa-grin-alt", searchTerms: ["emoticon", "face", "laugh", "smile"]}, {1610 title: "fas fa-grin-beam",1611 searchTerms: ["emoticon", "face", "laugh", "smile"]1612 }, {1613 title: "far fa-grin-beam",1614 searchTerms: ["emoticon", "face", "laugh", "smile"]1615 }, {1616 title: "fas fa-grin-beam-sweat",1617 searchTerms: ["emoticon", "face", "smile"]1618 }, {title: "far fa-grin-beam-sweat", searchTerms: ["emoticon", "face", "smile"]}, {1619 title: "fas fa-grin-hearts",1620 searchTerms: ["emoticon", "face", "love", "smile"]1621 }, {1622 title: "far fa-grin-hearts",1623 searchTerms: ["emoticon", "face", "love", "smile"]1624 }, {1625 title: "fas fa-grin-squint",1626 searchTerms: ["emoticon", "face", "laugh", "smile"]1627 }, {1628 title: "far fa-grin-squint",1629 searchTerms: ["emoticon", "face", "laugh", "smile"]1630 }, {1631 title: "fas fa-grin-squint-tears",1632 searchTerms: ["emoticon", "face", "happy", "smile"]1633 }, {1634 title: "far fa-grin-squint-tears",1635 searchTerms: ["emoticon", "face", "happy", "smile"]1636 }, {title: "fas fa-grin-stars", searchTerms: ["emoticon", "face", "star-struck"]}, {1637 title: "far fa-grin-stars",1638 searchTerms: ["emoticon", "face", "star-struck"]1639 }, {title: "fas fa-grin-tears", searchTerms: ["LOL", "emoticon", "face"]}, {1640 title: "far fa-grin-tears",1641 searchTerms: ["LOL", "emoticon", "face"]1642 }, {title: "fas fa-grin-tongue", searchTerms: ["LOL", "emoticon", "face"]}, {1643 title: "far fa-grin-tongue",1644 searchTerms: ["LOL", "emoticon", "face"]1645 }, {1646 title: "fas fa-grin-tongue-squint",1647 searchTerms: ["LOL", "emoticon", "face"]1648 }, {1649 title: "far fa-grin-tongue-squint",1650 searchTerms: ["LOL", "emoticon", "face"]1651 }, {1652 title: "fas fa-grin-tongue-wink",1653 searchTerms: ["LOL", "emoticon", "face"]1654 }, {title: "far fa-grin-tongue-wink", searchTerms: ["LOL", "emoticon", "face"]}, {1655 title: "fas fa-grin-wink",1656 searchTerms: ["emoticon", "face", "flirt", "laugh", "smile"]1657 }, {1658 title: "far fa-grin-wink",1659 searchTerms: ["emoticon", "face", "flirt", "laugh", "smile"]1660 }, {1661 title: "fas fa-grip-horizontal",1662 searchTerms: ["affordance", "drag", "drop", "grab", "handle"]1663 }, {1664 title: "fas fa-grip-vertical",1665 searchTerms: ["affordance", "drag", "drop", "grab", "handle"]1666 }, {title: "fab fa-gripfire", searchTerms: []}, {title: "fab fa-grunt", searchTerms: []}, {1667 title: "fab fa-gulp",1668 searchTerms: []1669 }, {title: "fas fa-h-square", searchTerms: ["hospital", "hotel"]}, {1670 title: "fab fa-hacker-news",1671 searchTerms: []1672 }, {title: "fab fa-hacker-news-square", searchTerms: []}, {1673 title: "fab fa-hackerrank",1674 searchTerms: []1675 }, {1676 title: "fas fa-hammer",1677 searchTerms: ["admin", "fix", "repair", "settings", "tool"]1678 }, {1679 title: "fas fa-hamsa",1680 searchTerms: ["amulet", "christianity", "islam", "jewish", "judaism", "muslim", "protection"]1681 }, {title: "fas fa-hand-holding", searchTerms: []}, {1682 title: "fas fa-hand-holding-heart",1683 searchTerms: []1684 }, {1685 title: "fas fa-hand-holding-usd",1686 searchTerms: ["$", "dollar sign", "donation", "giving", "money", "price"]1687 }, {title: "fas fa-hand-lizard", searchTerms: []}, {1688 title: "far fa-hand-lizard",1689 searchTerms: []1690 }, {title: "fas fa-hand-paper", searchTerms: ["stop"]}, {1691 title: "far fa-hand-paper",1692 searchTerms: ["stop"]1693 }, {title: "fas fa-hand-peace", searchTerms: []}, {1694 title: "far fa-hand-peace",1695 searchTerms: []1696 }, {1697 title: "fas fa-hand-point-down",1698 searchTerms: ["finger", "hand-o-down", "point"]1699 }, {1700 title: "far fa-hand-point-down",1701 searchTerms: ["finger", "hand-o-down", "point"]1702 }, {1703 title: "fas fa-hand-point-left",1704 searchTerms: ["back", "finger", "hand-o-left", "left", "point", "previous"]1705 }, {1706 title: "far fa-hand-point-left",1707 searchTerms: ["back", "finger", "hand-o-left", "left", "point", "previous"]1708 }, {1709 title: "fas fa-hand-point-right",1710 searchTerms: ["finger", "forward", "hand-o-right", "next", "point", "right"]1711 }, {1712 title: "far fa-hand-point-right",1713 searchTerms: ["finger", "forward", "hand-o-right", "next", "point", "right"]1714 }, {1715 title: "fas fa-hand-point-up",1716 searchTerms: ["finger", "hand-o-up", "point"]1717 }, {1718 title: "far fa-hand-point-up",1719 searchTerms: ["finger", "hand-o-up", "point"]1720 }, {title: "fas fa-hand-pointer", searchTerms: ["select"]}, {1721 title: "far fa-hand-pointer",1722 searchTerms: ["select"]1723 }, {title: "fas fa-hand-rock", searchTerms: []}, {1724 title: "far fa-hand-rock",1725 searchTerms: []1726 }, {title: "fas fa-hand-scissors", searchTerms: []}, {1727 title: "far fa-hand-scissors",1728 searchTerms: []1729 }, {title: "fas fa-hand-spock", searchTerms: []}, {1730 title: "far fa-hand-spock",1731 searchTerms: []1732 }, {title: "fas fa-hands", searchTerms: []}, {1733 title: "fas fa-hands-helping",1734 searchTerms: ["aid", "assistance", "partnership", "volunteering"]1735 }, {title: "fas fa-handshake", searchTerms: ["greeting", "partnership"]}, {1736 title: "far fa-handshake",1737 searchTerms: ["greeting", "partnership"]1738 }, {1739 title: "fas fa-hanukiah",1740 searchTerms: ["candle", "hanukkah", "jewish", "judaism", "light"]1741 }, {title: "fas fa-hashtag", searchTerms: []}, {1742 title: "fas fa-hat-wizard",1743 searchTerms: ["Dungeons & Dragons", "buckle", "cloth", "clothing", "d&d", "dnd", "fantasy", "halloween", "holiday", "mage", "magic", "pointy", "witch"]1744 }, {title: "fas fa-haykal", searchTerms: ["bahai", "bahá'Ã", "star"]}, {1745 title: "fas fa-hdd",1746 searchTerms: ["cpu", "hard drive", "harddrive", "machine", "save", "storage"]1747 }, {1748 title: "far fa-hdd",1749 searchTerms: ["cpu", "hard drive", "harddrive", "machine", "save", "storage"]1750 }, {title: "fas fa-heading", searchTerms: ["header"]}, {1751 title: "fas fa-headphones",1752 searchTerms: ["audio", "listen", "music", "sound", "speaker"]1753 }, {1754 title: "fas fa-headphones-alt",1755 searchTerms: ["audio", "listen", "music", "sound", "speaker"]1756 }, {1757 title: "fas fa-headset",1758 searchTerms: ["audio", "gamer", "gaming", "listen", "live chat", "microphone", "shot caller", "sound", "support", "telemarketer"]1759 }, {title: "fas fa-heart", searchTerms: ["favorite", "like", "love"]}, {1760 title: "far fa-heart",1761 searchTerms: ["favorite", "like", "love"]1762 }, {title: "fas fa-heartbeat", searchTerms: ["ekg", "lifeline", "vital signs"]}, {1763 title: "fas fa-helicopter",1764 searchTerms: ["airwolf", "apache", "chopper", "flight", "fly"]1765 }, {1766 title: "fas fa-highlighter",1767 searchTerms: ["edit", "marker", "sharpie", "update", "write"]1768 }, {1769 title: "fas fa-hiking",1770 searchTerms: ["activity", "backpack", "fall", "fitness", "outdoors", "seasonal", "walking"]1771 }, {title: "fas fa-hippo", searchTerms: ["fauna", "hungry", "mammmal"]}, {1772 title: "fab fa-hips",1773 searchTerms: []1774 }, {title: "fab fa-hire-a-helper", searchTerms: []}, {1775 title: "fas fa-history",1776 searchTerms: []1777 }, {title: "fas fa-hockey-puck", searchTerms: []}, {1778 title: "fas fa-home",1779 searchTerms: ["house", "main"]1780 }, {title: "fab fa-hooli", searchTerms: []}, {1781 title: "fab fa-hornbill",1782 searchTerms: []1783 }, {title: "fas fa-horse", searchTerms: ["equus", "fauna", "mammmal", "neigh"]}, {1784 title: "fas fa-hospital",1785 searchTerms: ["building", "emergency room", "medical center"]1786 }, {1787 title: "far fa-hospital",1788 searchTerms: ["building", "emergency room", "medical center"]1789 }, {1790 title: "fas fa-hospital-alt",1791 searchTerms: ["building", "emergency room", "medical center"]1792 }, {title: "fas fa-hospital-symbol", searchTerms: []}, {1793 title: "fas fa-hot-tub",1794 searchTerms: []1795 }, {title: "fas fa-hotel", searchTerms: ["building", "lodging"]}, {1796 title: "fab fa-hotjar",1797 searchTerms: []1798 }, {title: "fas fa-hourglass", searchTerms: []}, {1799 title: "far fa-hourglass",1800 searchTerms: []1801 }, {title: "fas fa-hourglass-end", searchTerms: []}, {1802 title: "fas fa-hourglass-half",1803 searchTerms: []1804 }, {title: "fas fa-hourglass-start", searchTerms: []}, {1805 title: "fas fa-house-damage",1806 searchTerms: ["devastation", "home"]1807 }, {title: "fab fa-houzz", searchTerms: []}, {1808 title: "fas fa-hryvnia",1809 searchTerms: ["money"]1810 }, {title: "fab fa-html5", searchTerms: []}, {1811 title: "fab fa-hubspot",1812 searchTerms: []1813 }, {title: "fas fa-i-cursor", searchTerms: []}, {1814 title: "fas fa-id-badge",1815 searchTerms: []1816 }, {title: "far fa-id-badge", searchTerms: []}, {1817 title: "fas fa-id-card",1818 searchTerms: ["document", "identification", "issued"]1819 }, {1820 title: "far fa-id-card",1821 searchTerms: ["document", "identification", "issued"]1822 }, {title: "fas fa-id-card-alt", searchTerms: ["demographics"]}, {1823 title: "fas fa-image",1824 searchTerms: ["album", "photo", "picture"]1825 }, {title: "far fa-image", searchTerms: ["album", "photo", "picture"]}, {1826 title: "fas fa-images",1827 searchTerms: ["album", "photo", "picture"]1828 }, {title: "far fa-images", searchTerms: ["album", "photo", "picture"]}, {1829 title: "fab fa-imdb",1830 searchTerms: []1831 }, {title: "fas fa-inbox", searchTerms: []}, {1832 title: "fas fa-indent",1833 searchTerms: []1834 }, {title: "fas fa-industry", searchTerms: ["factory", "manufacturing"]}, {1835 title: "fas fa-infinity",1836 searchTerms: []1837 }, {1838 title: "fas fa-info",1839 searchTerms: ["details", "help", "information", "more"]1840 }, {1841 title: "fas fa-info-circle",1842 searchTerms: ["details", "help", "information", "more"]1843 }, {title: "fab fa-instagram", searchTerms: []}, {1844 title: "fab fa-internet-explorer",1845 searchTerms: ["browser", "ie"]1846 }, {title: "fab fa-ioxhost", searchTerms: []}, {1847 title: "fas fa-italic",1848 searchTerms: ["italics"]1849 }, {title: "fab fa-itunes", searchTerms: []}, {1850 title: "fab fa-itunes-note",1851 searchTerms: []1852 }, {title: "fab fa-java", searchTerms: []}, {1853 title: "fas fa-jedi",1854 searchTerms: ["star wars"]1855 }, {title: "fab fa-jedi-order", searchTerms: ["star wars"]}, {1856 title: "fab fa-jenkins",1857 searchTerms: []1858 }, {title: "fab fa-joget", searchTerms: []}, {1859 title: "fas fa-joint",1860 searchTerms: ["blunt", "cannabis", "doobie", "drugs", "marijuana", "roach", "smoke", "smoking", "spliff"]1861 }, {title: "fab fa-joomla", searchTerms: []}, {1862 title: "fas fa-journal-whills",1863 searchTerms: ["book", "jedi", "star wars", "the force"]1864 }, {title: "fab fa-js", searchTerms: []}, {1865 title: "fab fa-js-square",1866 searchTerms: []1867 }, {title: "fab fa-jsfiddle", searchTerms: []}, {1868 title: "fas fa-kaaba",1869 searchTerms: ["building", "cube", "islam", "muslim"]1870 }, {title: "fab fa-kaggle", searchTerms: []}, {1871 title: "fas fa-key",1872 searchTerms: ["password", "unlock"]1873 }, {title: "fab fa-keybase", searchTerms: []}, {1874 title: "fas fa-keyboard",1875 searchTerms: ["input", "type"]1876 }, {title: "far fa-keyboard", searchTerms: ["input", "type"]}, {1877 title: "fab fa-keycdn",1878 searchTerms: []1879 }, {title: "fas fa-khanda", searchTerms: ["chakkar", "sikh", "sikhism", "sword"]}, {1880 title: "fab fa-kickstarter",1881 searchTerms: []1882 }, {title: "fab fa-kickstarter-k", searchTerms: []}, {1883 title: "fas fa-kiss",1884 searchTerms: ["beso", "emoticon", "face", "love", "smooch"]1885 }, {1886 title: "far fa-kiss",1887 searchTerms: ["beso", "emoticon", "face", "love", "smooch"]1888 }, {1889 title: "fas fa-kiss-beam",1890 searchTerms: ["beso", "emoticon", "face", "love", "smooch"]1891 }, {1892 title: "far fa-kiss-beam",1893 searchTerms: ["beso", "emoticon", "face", "love", "smooch"]1894 }, {1895 title: "fas fa-kiss-wink-heart",1896 searchTerms: ["beso", "emoticon", "face", "love", "smooch"]1897 }, {1898 title: "far fa-kiss-wink-heart",1899 searchTerms: ["beso", "emoticon", "face", "love", "smooch"]1900 }, {title: "fas fa-kiwi-bird", searchTerms: ["bird", "fauna"]}, {1901 title: "fab fa-korvue",1902 searchTerms: []1903 }, {1904 title: "fas fa-landmark",1905 searchTerms: ["building", "historic", "memoroable", "politics"]1906 }, {1907 title: "fas fa-language",1908 searchTerms: ["dialect", "idiom", "localize", "speech", "translate", "vernacular"]1909 }, {1910 title: "fas fa-laptop",1911 searchTerms: ["computer", "cpu", "dell", "demo", "device", "dude you're getting", "mac", "macbook", "machine", "pc"]1912 }, {title: "fas fa-laptop-code", searchTerms: []}, {1913 title: "fab fa-laravel",1914 searchTerms: []1915 }, {title: "fab fa-lastfm", searchTerms: []}, {1916 title: "fab fa-lastfm-square",1917 searchTerms: []1918 }, {title: "fas fa-laugh", searchTerms: ["LOL", "emoticon", "face", "laugh"]}, {1919 title: "far fa-laugh",1920 searchTerms: ["LOL", "emoticon", "face", "laugh"]1921 }, {title: "fas fa-laugh-beam", searchTerms: ["LOL", "emoticon", "face"]}, {1922 title: "far fa-laugh-beam",1923 searchTerms: ["LOL", "emoticon", "face"]1924 }, {title: "fas fa-laugh-squint", searchTerms: ["LOL", "emoticon", "face"]}, {1925 title: "far fa-laugh-squint",1926 searchTerms: ["LOL", "emoticon", "face"]1927 }, {title: "fas fa-laugh-wink", searchTerms: ["LOL", "emoticon", "face"]}, {1928 title: "far fa-laugh-wink",1929 searchTerms: ["LOL", "emoticon", "face"]1930 }, {title: "fas fa-layer-group", searchTerms: ["layers"]}, {1931 title: "fas fa-leaf",1932 searchTerms: ["eco", "flora", "nature", "plant"]1933 }, {title: "fab fa-leanpub", searchTerms: []}, {1934 title: "fas fa-lemon",1935 searchTerms: ["food"]1936 }, {title: "far fa-lemon", searchTerms: ["food"]}, {1937 title: "fab fa-less",1938 searchTerms: []1939 }, {title: "fas fa-less-than", searchTerms: []}, {1940 title: "fas fa-less-than-equal",1941 searchTerms: []1942 }, {title: "fas fa-level-down-alt", searchTerms: ["level-down"]}, {1943 title: "fas fa-level-up-alt",1944 searchTerms: ["level-up"]1945 }, {title: "fas fa-life-ring", searchTerms: ["support"]}, {1946 title: "far fa-life-ring",1947 searchTerms: ["support"]1948 }, {title: "fas fa-lightbulb", searchTerms: ["idea", "inspiration"]}, {1949 title: "far fa-lightbulb",1950 searchTerms: ["idea", "inspiration"]1951 }, {title: "fab fa-line", searchTerms: []}, {1952 title: "fas fa-link",1953 searchTerms: ["chain"]1954 }, {title: "fab fa-linkedin", searchTerms: ["linkedin-square"]}, {1955 title: "fab fa-linkedin-in",1956 searchTerms: ["linkedin"]1957 }, {title: "fab fa-linode", searchTerms: []}, {1958 title: "fab fa-linux",1959 searchTerms: ["tux"]1960 }, {title: "fas fa-lira-sign", searchTerms: ["try", "turkish"]}, {1961 title: "fas fa-list",1962 searchTerms: ["checklist", "completed", "done", "finished", "ol", "todo", "ul"]1963 }, {1964 title: "fas fa-list-alt",1965 searchTerms: ["checklist", "completed", "done", "finished", "ol", "todo", "ul"]1966 }, {1967 title: "far fa-list-alt",1968 searchTerms: ["checklist", "completed", "done", "finished", "ol", "todo", "ul"]1969 }, {1970 title: "fas fa-list-ol",1971 searchTerms: ["checklist", "list", "numbers", "ol", "todo", "ul"]1972 }, {1973 title: "fas fa-list-ul",1974 searchTerms: ["checklist", "list", "ol", "todo", "ul"]1975 }, {1976 title: "fas fa-location-arrow",1977 searchTerms: ["address", "coordinates", "gps", "location", "map", "place", "where"]1978 }, {title: "fas fa-lock", searchTerms: ["admin", "protect", "security"]}, {1979 title: "fas fa-lock-open",1980 searchTerms: ["admin", "lock", "open", "password", "protect"]1981 }, {1982 title: "fas fa-long-arrow-alt-down",1983 searchTerms: ["long-arrow-down"]1984 }, {1985 title: "fas fa-long-arrow-alt-left",1986 searchTerms: ["back", "long-arrow-left", "previous"]1987 }, {1988 title: "fas fa-long-arrow-alt-right",1989 searchTerms: ["long-arrow-right"]1990 }, {title: "fas fa-long-arrow-alt-up", searchTerms: ["long-arrow-up"]}, {1991 title: "fas fa-low-vision",1992 searchTerms: []1993 }, {title: "fas fa-luggage-cart", searchTerms: []}, {1994 title: "fab fa-lyft",1995 searchTerms: []1996 }, {title: "fab fa-magento", searchTerms: []}, {1997 title: "fas fa-magic",1998 searchTerms: ["autocomplete", "automatic", "mage", "magic", "spell", "witch", "wizard"]1999 }, {title: "fas fa-magnet", searchTerms: []}, {2000 title: "fas fa-mail-bulk",2001 searchTerms: []2002 }, {title: "fab fa-mailchimp", searchTerms: []}, {2003 title: "fas fa-male",2004 searchTerms: ["human", "man", "person", "profile", "user"]2005 }, {title: "fab fa-mandalorian", searchTerms: []}, {2006 title: "fas fa-map",2007 searchTerms: ["coordinates", "location", "paper", "place", "travel"]2008 }, {2009 title: "far fa-map",2010 searchTerms: ["coordinates", "location", "paper", "place", "travel"]2011 }, {2012 title: "fas fa-map-marked",2013 searchTerms: ["address", "coordinates", "destination", "gps", "localize", "location", "map", "paper", "pin", "place", "point of interest", "position", "route", "travel", "where"]2014 }, {2015 title: "fas fa-map-marked-alt",2016 searchTerms: ["address", "coordinates", "destination", "gps", "localize", "location", "map", "paper", "pin", "place", "point of interest", "position", "route", "travel", "where"]2017 }, {2018 title: "fas fa-map-marker",2019 searchTerms: ["address", "coordinates", "gps", "localize", "location", "map", "pin", "place", "position", "travel", "where"]2020 }, {2021 title: "fas fa-map-marker-alt",2022 searchTerms: ["address", "coordinates", "gps", "localize", "location", "map", "pin", "place", "position", "travel", "where"]2023 }, {2024 title: "fas fa-map-pin",2025 searchTerms: ["address", "coordinates", "gps", "localize", "location", "map", "marker", "place", "position", "travel", "where"]2026 }, {title: "fas fa-map-signs", searchTerms: []}, {2027 title: "fab fa-markdown",2028 searchTerms: []2029 }, {title: "fas fa-marker", searchTerms: ["edit", "sharpie", "update", "write"]}, {2030 title: "fas fa-mars",2031 searchTerms: ["male"]2032 }, {title: "fas fa-mars-double", searchTerms: []}, {2033 title: "fas fa-mars-stroke",2034 searchTerms: []2035 }, {title: "fas fa-mars-stroke-h", searchTerms: []}, {2036 title: "fas fa-mars-stroke-v",2037 searchTerms: []2038 }, {2039 title: "fas fa-mask",2040 searchTerms: ["costume", "disguise", "halloween", "holiday", "secret", "super hero"]2041 }, {title: "fab fa-mastodon", searchTerms: []}, {2042 title: "fab fa-maxcdn",2043 searchTerms: []2044 }, {title: "fas fa-medal", searchTerms: []}, {2045 title: "fab fa-medapps",2046 searchTerms: []2047 }, {title: "fab fa-medium", searchTerms: []}, {2048 title: "fab fa-medium-m",2049 searchTerms: []2050 }, {2051 title: "fas fa-medkit",2052 searchTerms: ["first aid", "firstaid", "health", "help", "support"]2053 }, {title: "fab fa-medrt", searchTerms: []}, {2054 title: "fab fa-meetup",2055 searchTerms: []2056 }, {title: "fab fa-megaport", searchTerms: []}, {2057 title: "fas fa-meh",2058 searchTerms: ["emoticon", "face", "neutral", "rating"]2059 }, {title: "far fa-meh", searchTerms: ["emoticon", "face", "neutral", "rating"]}, {2060 title: "fas fa-meh-blank",2061 searchTerms: ["emoticon", "face", "neutral", "rating"]2062 }, {2063 title: "far fa-meh-blank",2064 searchTerms: ["emoticon", "face", "neutral", "rating"]2065 }, {2066 title: "fas fa-meh-rolling-eyes",2067 searchTerms: ["emoticon", "face", "neutral", "rating"]2068 }, {2069 title: "far fa-meh-rolling-eyes",2070 searchTerms: ["emoticon", "face", "neutral", "rating"]2071 }, {title: "fas fa-memory", searchTerms: ["DIMM", "RAM"]}, {2072 title: "fas fa-menorah",2073 searchTerms: ["candle", "hanukkah", "jewish", "judaism", "light"]2074 }, {title: "fas fa-mercury", searchTerms: ["transgender"]}, {2075 title: "fas fa-meteor",2076 searchTerms: []2077 }, {title: "fas fa-microchip", searchTerms: ["cpu", "processor"]}, {2078 title: "fas fa-microphone",2079 searchTerms: ["record", "sound", "voice"]2080 }, {2081 title: "fas fa-microphone-alt",2082 searchTerms: ["record", "sound", "voice"]2083 }, {2084 title: "fas fa-microphone-alt-slash",2085 searchTerms: ["disable", "mute", "record", "sound", "voice"]2086 }, {2087 title: "fas fa-microphone-slash",2088 searchTerms: ["disable", "mute", "record", "sound", "voice"]2089 }, {title: "fas fa-microscope", searchTerms: []}, {2090 title: "fab fa-microsoft",2091 searchTerms: []2092 }, {2093 title: "fas fa-minus",2094 searchTerms: ["collapse", "delete", "hide", "minify", "negative", "remove", "trash"]2095 }, {2096 title: "fas fa-minus-circle",2097 searchTerms: ["delete", "hide", "negative", "remove", "trash"]2098 }, {2099 title: "fas fa-minus-square",2100 searchTerms: ["collapse", "delete", "hide", "minify", "negative", "remove", "trash"]2101 }, {2102 title: "far fa-minus-square",2103 searchTerms: ["collapse", "delete", "hide", "minify", "negative", "remove", "trash"]2104 }, {title: "fab fa-mix", searchTerms: []}, {title: "fab fa-mixcloud", searchTerms: []}, {2105 title: "fab fa-mizuni",2106 searchTerms: []2107 }, {2108 title: "fas fa-mobile",2109 searchTerms: ["apple", "call", "cell phone", "cellphone", "device", "iphone", "number", "screen", "telephone", "text"]2110 }, {2111 title: "fas fa-mobile-alt",2112 searchTerms: ["apple", "call", "cell phone", "cellphone", "device", "iphone", "number", "screen", "telephone", "text"]2113 }, {title: "fab fa-modx", searchTerms: []}, {2114 title: "fab fa-monero",2115 searchTerms: []2116 }, {2117 title: "fas fa-money-bill",2118 searchTerms: ["buy", "cash", "checkout", "money", "payment", "price", "purchase"]2119 }, {2120 title: "fas fa-money-bill-alt",2121 searchTerms: ["buy", "cash", "checkout", "money", "payment", "price", "purchase"]2122 }, {2123 title: "far fa-money-bill-alt",2124 searchTerms: ["buy", "cash", "checkout", "money", "payment", "price", "purchase"]2125 }, {title: "fas fa-money-bill-wave", searchTerms: []}, {2126 title: "fas fa-money-bill-wave-alt",2127 searchTerms: []2128 }, {title: "fas fa-money-check", searchTerms: ["bank check", "cheque"]}, {2129 title: "fas fa-money-check-alt",2130 searchTerms: ["bank check", "cheque"]2131 }, {title: "fas fa-monument", searchTerms: ["building", "historic", "memoroable"]}, {2132 title: "fas fa-moon",2133 searchTerms: ["contrast", "crescent", "darker", "lunar", "night"]2134 }, {2135 title: "far fa-moon",2136 searchTerms: ["contrast", "crescent", "darker", "lunar", "night"]2137 }, {2138 title: "fas fa-mortar-pestle",2139 searchTerms: ["crush", "culinary", "grind", "medical", "mix", "spices"]2140 }, {title: "fas fa-mosque", searchTerms: ["building", "islam", "muslim"]}, {2141 title: "fas fa-motorcycle",2142 searchTerms: ["bike", "machine", "transportation", "vehicle"]2143 }, {title: "fas fa-mountain", searchTerms: []}, {2144 title: "fas fa-mouse-pointer",2145 searchTerms: ["select"]2146 }, {title: "fas fa-music", searchTerms: ["note", "sound"]}, {2147 title: "fab fa-napster",2148 searchTerms: []2149 }, {title: "fab fa-neos", searchTerms: []}, {2150 title: "fas fa-network-wired",2151 searchTerms: []2152 }, {title: "fas fa-neuter", searchTerms: []}, {2153 title: "fas fa-newspaper",2154 searchTerms: ["article", "press"]2155 }, {title: "far fa-newspaper", searchTerms: ["article", "press"]}, {2156 title: "fab fa-nimblr",2157 searchTerms: []2158 }, {title: "fab fa-nintendo-switch", searchTerms: []}, {2159 title: "fab fa-node",2160 searchTerms: []2161 }, {title: "fab fa-node-js", searchTerms: []}, {2162 title: "fas fa-not-equal",2163 searchTerms: []2164 }, {title: "fas fa-notes-medical", searchTerms: []}, {2165 title: "fab fa-npm",2166 searchTerms: []2167 }, {title: "fab fa-ns8", searchTerms: []}, {2168 title: "fab fa-nutritionix",2169 searchTerms: []2170 }, {title: "fas fa-object-group", searchTerms: ["design"]}, {2171 title: "far fa-object-group",2172 searchTerms: ["design"]2173 }, {title: "fas fa-object-ungroup", searchTerms: ["design"]}, {2174 title: "far fa-object-ungroup",2175 searchTerms: ["design"]2176 }, {title: "fab fa-odnoklassniki", searchTerms: []}, {2177 title: "fab fa-odnoklassniki-square",2178 searchTerms: []2179 }, {title: "fas fa-oil-can", searchTerms: []}, {2180 title: "fab fa-old-republic",2181 searchTerms: ["politics", "star wars"]2182 }, {title: "fas fa-om", searchTerms: ["buddhism", "hinduism", "jainism", "mantra"]}, {2183 title: "fab fa-opencart",2184 searchTerms: []2185 }, {title: "fab fa-openid", searchTerms: []}, {2186 title: "fab fa-opera",2187 searchTerms: []2188 }, {title: "fab fa-optin-monster", searchTerms: []}, {2189 title: "fab fa-osi",2190 searchTerms: []2191 }, {title: "fas fa-otter", searchTerms: ["fauna", "mammmal"]}, {2192 title: "fas fa-outdent",2193 searchTerms: []2194 }, {title: "fab fa-page4", searchTerms: []}, {2195 title: "fab fa-pagelines",2196 searchTerms: ["eco", "flora", "leaf", "leaves", "nature", "plant", "tree"]2197 }, {title: "fas fa-paint-brush", searchTerms: []}, {2198 title: "fas fa-paint-roller",2199 searchTerms: ["brush", "painting", "tool"]2200 }, {title: "fas fa-palette", searchTerms: ["colors", "painting"]}, {2201 title: "fab fa-palfed",2202 searchTerms: []2203 }, {title: "fas fa-pallet", searchTerms: []}, {2204 title: "fas fa-paper-plane",2205 searchTerms: []2206 }, {title: "far fa-paper-plane", searchTerms: []}, {2207 title: "fas fa-paperclip",2208 searchTerms: ["attachment"]2209 }, {2210 title: "fas fa-parachute-box",2211 searchTerms: ["aid", "assistance", "rescue", "supplies"]2212 }, {title: "fas fa-paragraph", searchTerms: []}, {2213 title: "fas fa-parking",2214 searchTerms: []2215 }, {2216 title: "fas fa-passport",2217 searchTerms: ["document", "identification", "issued"]2218 }, {2219 title: "fas fa-pastafarianism",2220 searchTerms: ["agnosticism", "atheism", "flying spaghetti monster", "fsm"]2221 }, {title: "fas fa-paste", searchTerms: ["clipboard", "copy"]}, {2222 title: "fab fa-patreon",2223 searchTerms: []2224 }, {title: "fas fa-pause", searchTerms: ["wait"]}, {2225 title: "fas fa-pause-circle",2226 searchTerms: []2227 }, {title: "far fa-pause-circle", searchTerms: []}, {2228 title: "fas fa-paw",2229 searchTerms: ["animal", "pet"]2230 }, {title: "fab fa-paypal", searchTerms: []}, {title: "fas fa-peace", searchTerms: []}, {2231 title: "fas fa-pen",2232 searchTerms: ["design", "edit", "update", "write"]2233 }, {title: "fas fa-pen-alt", searchTerms: ["design", "edit", "update", "write"]}, {2234 title: "fas fa-pen-fancy",2235 searchTerms: ["design", "edit", "fountain pen", "update", "write"]2236 }, {2237 title: "fas fa-pen-nib",2238 searchTerms: ["design", "edit", "fountain pen", "update", "write"]2239 }, {2240 title: "fas fa-pen-square",2241 searchTerms: ["edit", "pencil-square", "update", "write"]2242 }, {2243 title: "fas fa-pencil-alt",2244 searchTerms: ["design", "edit", "pencil", "update", "write"]2245 }, {title: "fas fa-pencil-ruler", searchTerms: []}, {2246 title: "fab fa-penny-arcade",2247 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "pax", "tabletop"]2248 }, {title: "fas fa-people-carry", searchTerms: ["movers"]}, {2249 title: "fas fa-percent",2250 searchTerms: []2251 }, {title: "fas fa-percentage", searchTerms: []}, {2252 title: "fab fa-periscope",2253 searchTerms: []2254 }, {2255 title: "fas fa-person-booth",2256 searchTerms: ["changing", "changing room", "election", "human", "person", "vote", "voting"]2257 }, {title: "fab fa-phabricator", searchTerms: []}, {2258 title: "fab fa-phoenix-framework",2259 searchTerms: []2260 }, {title: "fab fa-phoenix-squadron", searchTerms: []}, {2261 title: "fas fa-phone",2262 searchTerms: ["call", "earphone", "number", "support", "telephone", "voice"]2263 }, {title: "fas fa-phone-slash", searchTerms: []}, {2264 title: "fas fa-phone-square",2265 searchTerms: ["call", "number", "support", "telephone", "voice"]2266 }, {title: "fas fa-phone-volume", searchTerms: ["telephone", "volume-control-phone"]}, {2267 title: "fab fa-php",2268 searchTerms: []2269 }, {title: "fab fa-pied-piper", searchTerms: []}, {2270 title: "fab fa-pied-piper-alt",2271 searchTerms: []2272 }, {title: "fab fa-pied-piper-hat", searchTerms: ["clothing"]}, {2273 title: "fab fa-pied-piper-pp",2274 searchTerms: []2275 }, {title: "fas fa-piggy-bank", searchTerms: ["save", "savings"]}, {2276 title: "fas fa-pills",2277 searchTerms: ["drugs", "medicine"]2278 }, {title: "fab fa-pinterest", searchTerms: []}, {2279 title: "fab fa-pinterest-p",2280 searchTerms: []2281 }, {title: "fab fa-pinterest-square", searchTerms: []}, {2282 title: "fas fa-place-of-worship",2283 searchTerms: []2284 }, {2285 title: "fas fa-plane",2286 searchTerms: ["airplane", "destination", "fly", "location", "mode", "travel", "trip"]2287 }, {2288 title: "fas fa-plane-arrival",2289 searchTerms: ["airplane", "arriving", "destination", "fly", "land", "landing", "location", "mode", "travel", "trip"]2290 }, {2291 title: "fas fa-plane-departure",2292 searchTerms: ["airplane", "departing", "destination", "fly", "location", "mode", "take off", "taking off", "travel", "trip"]2293 }, {title: "fas fa-play", searchTerms: ["music", "playing", "sound", "start"]}, {2294 title: "fas fa-play-circle",2295 searchTerms: ["playing", "start"]2296 }, {title: "far fa-play-circle", searchTerms: ["playing", "start"]}, {2297 title: "fab fa-playstation",2298 searchTerms: []2299 }, {title: "fas fa-plug", searchTerms: ["connect", "online", "power"]}, {2300 title: "fas fa-plus",2301 searchTerms: ["add", "create", "expand", "new", "positive"]2302 }, {2303 title: "fas fa-plus-circle",2304 searchTerms: ["add", "create", "expand", "new", "positive"]2305 }, {2306 title: "fas fa-plus-square",2307 searchTerms: ["add", "create", "expand", "new", "positive"]2308 }, {2309 title: "far fa-plus-square",2310 searchTerms: ["add", "create", "expand", "new", "positive"]2311 }, {title: "fas fa-podcast", searchTerms: []}, {2312 title: "fas fa-poll",2313 searchTerms: ["results", "survey", "vote", "voting"]2314 }, {title: "fas fa-poll-h", searchTerms: ["results", "survey", "vote", "voting"]}, {2315 title: "fas fa-poo",2316 searchTerms: []2317 }, {title: "fas fa-poo-storm", searchTerms: ["mess", "poop", "shit"]}, {2318 title: "fas fa-poop",2319 searchTerms: []2320 }, {title: "fas fa-portrait", searchTerms: []}, {2321 title: "fas fa-pound-sign",2322 searchTerms: ["gbp"]2323 }, {title: "fas fa-power-off", searchTerms: ["on", "reboot", "restart"]}, {2324 title: "fas fa-pray",2325 searchTerms: []2326 }, {title: "fas fa-praying-hands", searchTerms: []}, {2327 title: "fas fa-prescription",2328 searchTerms: ["drugs", "medical", "medicine", "rx"]2329 }, {2330 title: "fas fa-prescription-bottle",2331 searchTerms: ["drugs", "medical", "medicine", "rx"]2332 }, {2333 title: "fas fa-prescription-bottle-alt",2334 searchTerms: ["drugs", "medical", "medicine", "rx"]2335 }, {title: "fas fa-print", searchTerms: []}, {2336 title: "fas fa-procedures",2337 searchTerms: []2338 }, {title: "fab fa-product-hunt", searchTerms: []}, {2339 title: "fas fa-project-diagram",2340 searchTerms: []2341 }, {title: "fab fa-pushed", searchTerms: []}, {2342 title: "fas fa-puzzle-piece",2343 searchTerms: ["add-on", "addon", "section"]2344 }, {title: "fab fa-python", searchTerms: []}, {title: "fab fa-qq", searchTerms: []}, {2345 title: "fas fa-qrcode",2346 searchTerms: ["scan"]2347 }, {2348 title: "fas fa-question",2349 searchTerms: ["help", "information", "support", "unknown"]2350 }, {2351 title: "fas fa-question-circle",2352 searchTerms: ["help", "information", "support", "unknown"]2353 }, {2354 title: "far fa-question-circle",2355 searchTerms: ["help", "information", "support", "unknown"]2356 }, {title: "fas fa-quidditch", searchTerms: []}, {2357 title: "fab fa-quinscape",2358 searchTerms: []2359 }, {title: "fab fa-quora", searchTerms: []}, {2360 title: "fas fa-quote-left",2361 searchTerms: []2362 }, {title: "fas fa-quote-right", searchTerms: []}, {2363 title: "fas fa-quran",2364 searchTerms: ["book", "islam", "muslim"]2365 }, {title: "fab fa-r-project", searchTerms: []}, {2366 title: "fas fa-rainbow",2367 searchTerms: []2368 }, {title: "fas fa-random", searchTerms: ["shuffle", "sort"]}, {2369 title: "fab fa-ravelry",2370 searchTerms: []2371 }, {title: "fab fa-react", searchTerms: []}, {2372 title: "fab fa-reacteurope",2373 searchTerms: []2374 }, {title: "fab fa-readme", searchTerms: []}, {2375 title: "fab fa-rebel",2376 searchTerms: []2377 }, {title: "fas fa-receipt", searchTerms: ["check", "invoice", "table"]}, {2378 title: "fas fa-recycle",2379 searchTerms: []2380 }, {title: "fab fa-red-river", searchTerms: []}, {2381 title: "fab fa-reddit",2382 searchTerms: []2383 }, {title: "fab fa-reddit-alien", searchTerms: []}, {2384 title: "fab fa-reddit-square",2385 searchTerms: []2386 }, {title: "fas fa-redo", searchTerms: ["forward", "refresh", "reload", "repeat"]}, {2387 title: "fas fa-redo-alt",2388 searchTerms: ["forward", "refresh", "reload", "repeat"]2389 }, {title: "fas fa-registered", searchTerms: []}, {2390 title: "far fa-registered",2391 searchTerms: []2392 }, {title: "fab fa-renren", searchTerms: []}, {2393 title: "fas fa-reply",2394 searchTerms: []2395 }, {title: "fas fa-reply-all", searchTerms: []}, {2396 title: "fab fa-replyd",2397 searchTerms: []2398 }, {2399 title: "fas fa-republican",2400 searchTerms: ["american", "conservative", "election", "elephant", "politics", "republican party", "right", "right-wing", "usa"]2401 }, {title: "fab fa-researchgate", searchTerms: []}, {2402 title: "fab fa-resolving",2403 searchTerms: []2404 }, {title: "fas fa-retweet", searchTerms: ["refresh", "reload", "share", "swap"]}, {2405 title: "fab fa-rev",2406 searchTerms: []2407 }, {title: "fas fa-ribbon", searchTerms: ["badge", "cause", "lapel", "pin"]}, {2408 title: "fas fa-ring",2409 searchTerms: ["Dungeons & Dragons", "Gollum", "band", "binding", "d&d", "dnd", "fantasy", "jewelry", "precious"]2410 }, {title: "fas fa-road", searchTerms: ["street"]}, {2411 title: "fas fa-robot",2412 searchTerms: []2413 }, {title: "fas fa-rocket", searchTerms: ["app"]}, {2414 title: "fab fa-rocketchat",2415 searchTerms: []2416 }, {title: "fab fa-rockrms", searchTerms: []}, {title: "fas fa-route", searchTerms: []}, {2417 title: "fas fa-rss",2418 searchTerms: ["blog"]2419 }, {title: "fas fa-rss-square", searchTerms: ["blog", "feed"]}, {2420 title: "fas fa-ruble-sign",2421 searchTerms: ["rub"]2422 }, {title: "fas fa-ruler", searchTerms: []}, {2423 title: "fas fa-ruler-combined",2424 searchTerms: []2425 }, {title: "fas fa-ruler-horizontal", searchTerms: []}, {2426 title: "fas fa-ruler-vertical",2427 searchTerms: []2428 }, {title: "fas fa-running", searchTerms: ["jog", "sprint"]}, {2429 title: "fas fa-rupee-sign",2430 searchTerms: ["indian", "inr"]2431 }, {title: "fas fa-sad-cry", searchTerms: ["emoticon", "face", "tear", "tears"]}, {2432 title: "far fa-sad-cry",2433 searchTerms: ["emoticon", "face", "tear", "tears"]2434 }, {title: "fas fa-sad-tear", searchTerms: ["emoticon", "face", "tear", "tears"]}, {2435 title: "far fa-sad-tear",2436 searchTerms: ["emoticon", "face", "tear", "tears"]2437 }, {title: "fab fa-safari", searchTerms: ["browser"]}, {2438 title: "fab fa-sass",2439 searchTerms: []2440 }, {title: "fas fa-save", searchTerms: ["floppy", "floppy-o"]}, {2441 title: "far fa-save",2442 searchTerms: ["floppy", "floppy-o"]2443 }, {title: "fab fa-schlix", searchTerms: []}, {2444 title: "fas fa-school",2445 searchTerms: []2446 }, {2447 title: "fas fa-screwdriver",2448 searchTerms: ["admin", "fix", "repair", "settings", "tool"]2449 }, {title: "fab fa-scribd", searchTerms: []}, {2450 title: "fas fa-scroll",2451 searchTerms: ["Dungeons & Dragons", "announcement", "d&d", "dnd", "fantasy", "paper"]2452 }, {2453 title: "fas fa-search",2454 searchTerms: ["bigger", "enlarge", "magnify", "preview", "zoom"]2455 }, {title: "fas fa-search-dollar", searchTerms: []}, {2456 title: "fas fa-search-location",2457 searchTerms: []2458 }, {2459 title: "fas fa-search-minus",2460 searchTerms: ["minify", "negative", "smaller", "zoom", "zoom out"]2461 }, {2462 title: "fas fa-search-plus",2463 searchTerms: ["bigger", "enlarge", "magnify", "positive", "zoom", "zoom in"]2464 }, {title: "fab fa-searchengin", searchTerms: []}, {2465 title: "fas fa-seedling",2466 searchTerms: []2467 }, {title: "fab fa-sellcast", searchTerms: ["eercast"]}, {2468 title: "fab fa-sellsy",2469 searchTerms: []2470 }, {title: "fas fa-server", searchTerms: ["cpu"]}, {2471 title: "fab fa-servicestack",2472 searchTerms: []2473 }, {title: "fas fa-shapes", searchTerms: ["circle", "square", "triangle"]}, {2474 title: "fas fa-share",2475 searchTerms: []2476 }, {title: "fas fa-share-alt", searchTerms: []}, {2477 title: "fas fa-share-alt-square",2478 searchTerms: []2479 }, {title: "fas fa-share-square", searchTerms: ["send", "social"]}, {2480 title: "far fa-share-square",2481 searchTerms: ["send", "social"]2482 }, {title: "fas fa-shekel-sign", searchTerms: ["ils"]}, {2483 title: "fas fa-shield-alt",2484 searchTerms: ["achievement", "award", "block", "defend", "security", "winner"]2485 }, {title: "fas fa-ship", searchTerms: ["boat", "sea"]}, {2486 title: "fas fa-shipping-fast",2487 searchTerms: []2488 }, {title: "fab fa-shirtsinbulk", searchTerms: []}, {2489 title: "fas fa-shoe-prints",2490 searchTerms: ["feet", "footprints", "steps"]2491 }, {title: "fas fa-shopping-bag", searchTerms: []}, {2492 title: "fas fa-shopping-basket",2493 searchTerms: []2494 }, {2495 title: "fas fa-shopping-cart",2496 searchTerms: ["buy", "checkout", "payment", "purchase"]2497 }, {title: "fab fa-shopware", searchTerms: []}, {2498 title: "fas fa-shower",2499 searchTerms: []2500 }, {2501 title: "fas fa-shuttle-van",2502 searchTerms: ["machine", "public-transportation", "transportation", "vehicle"]2503 }, {title: "fas fa-sign", searchTerms: []}, {2504 title: "fas fa-sign-in-alt",2505 searchTerms: ["arrow", "enter", "join", "log in", "login", "sign in", "sign up", "sign-in", "signin", "signup"]2506 }, {title: "fas fa-sign-language", searchTerms: []}, {2507 title: "fas fa-sign-out-alt",2508 searchTerms: ["arrow", "exit", "leave", "log out", "logout", "sign-out"]2509 }, {title: "fas fa-signal", searchTerms: ["bars", "graph", "online", "status"]}, {2510 title: "fas fa-signature",2511 searchTerms: ["John Hancock", "cursive", "name", "writing"]2512 }, {title: "fab fa-simplybuilt", searchTerms: []}, {2513 title: "fab fa-sistrix",2514 searchTerms: []2515 }, {2516 title: "fas fa-sitemap",2517 searchTerms: ["directory", "hierarchy", "ia", "information architecture", "organization"]2518 }, {title: "fab fa-sith", searchTerms: []}, {2519 title: "fas fa-skull",2520 searchTerms: ["bones", "skeleton", "yorick"]2521 }, {2522 title: "fas fa-skull-crossbones",2523 searchTerms: ["Dungeons & Dragons", "alert", "bones", "d&d", "danger", "dead", "deadly", "death", "dnd", "fantasy", "halloween", "holiday", "jolly-roger", "pirate", "poison", "skeleton", "warning"]2524 }, {title: "fab fa-skyatlas", searchTerms: []}, {2525 title: "fab fa-skype",2526 searchTerms: []2527 }, {title: "fab fa-slack", searchTerms: ["anchor", "hash", "hashtag"]}, {2528 title: "fab fa-slack-hash",2529 searchTerms: ["anchor", "hash", "hashtag"]2530 }, {title: "fas fa-slash", searchTerms: []}, {2531 title: "fas fa-sliders-h",2532 searchTerms: ["settings", "sliders"]2533 }, {title: "fab fa-slideshare", searchTerms: []}, {2534 title: "fas fa-smile",2535 searchTerms: ["approve", "emoticon", "face", "happy", "rating", "satisfied"]2536 }, {2537 title: "far fa-smile",2538 searchTerms: ["approve", "emoticon", "face", "happy", "rating", "satisfied"]2539 }, {2540 title: "fas fa-smile-beam",2541 searchTerms: ["emoticon", "face", "happy", "positive"]2542 }, {2543 title: "far fa-smile-beam",2544 searchTerms: ["emoticon", "face", "happy", "positive"]2545 }, {title: "fas fa-smile-wink", searchTerms: ["emoticon", "face", "happy"]}, {2546 title: "far fa-smile-wink",2547 searchTerms: ["emoticon", "face", "happy"]2548 }, {title: "fas fa-smog", searchTerms: ["dragon"]}, {2549 title: "fas fa-smoking",2550 searchTerms: ["cigarette", "nicotine", "smoking status"]2551 }, {title: "fas fa-smoking-ban", searchTerms: ["no smoking", "non-smoking"]}, {2552 title: "fab fa-snapchat",2553 searchTerms: []2554 }, {title: "fab fa-snapchat-ghost", searchTerms: []}, {2555 title: "fab fa-snapchat-square",2556 searchTerms: []2557 }, {2558 title: "fas fa-snowflake",2559 searchTerms: ["precipitation", "seasonal", "winter"]2560 }, {title: "far fa-snowflake", searchTerms: ["precipitation", "seasonal", "winter"]}, {2561 title: "fas fa-socks",2562 searchTerms: ["business socks", "business time", "flight of the conchords", "wednesday"]2563 }, {2564 title: "fas fa-solar-panel",2565 searchTerms: ["clean", "eco-friendly", "energy", "green", "sun"]2566 }, {title: "fas fa-sort", searchTerms: ["order"]}, {2567 title: "fas fa-sort-alpha-down",2568 searchTerms: ["sort-alpha-asc"]2569 }, {title: "fas fa-sort-alpha-up", searchTerms: ["sort-alpha-desc"]}, {2570 title: "fas fa-sort-amount-down",2571 searchTerms: ["sort-amount-asc"]2572 }, {title: "fas fa-sort-amount-up", searchTerms: ["sort-amount-desc"]}, {2573 title: "fas fa-sort-down",2574 searchTerms: ["arrow", "descending", "sort-desc"]2575 }, {2576 title: "fas fa-sort-numeric-down",2577 searchTerms: ["numbers", "sort-numeric-asc"]2578 }, {title: "fas fa-sort-numeric-up", searchTerms: ["numbers", "sort-numeric-desc"]}, {2579 title: "fas fa-sort-up",2580 searchTerms: ["arrow", "ascending", "sort-asc"]2581 }, {title: "fab fa-soundcloud", searchTerms: []}, {2582 title: "fas fa-spa",2583 searchTerms: ["flora", "mindfullness", "plant", "wellness"]2584 }, {2585 title: "fas fa-space-shuttle",2586 searchTerms: ["astronaut", "machine", "nasa", "rocket", "transportation"]2587 }, {title: "fab fa-speakap", searchTerms: []}, {2588 title: "fas fa-spider",2589 searchTerms: ["arachnid", "bug", "charlotte", "crawl", "eight", "halloween", "holiday"]2590 }, {title: "fas fa-spinner", searchTerms: ["loading", "progress"]}, {2591 title: "fas fa-splotch",2592 searchTerms: []2593 }, {title: "fab fa-spotify", searchTerms: []}, {2594 title: "fas fa-spray-can",2595 searchTerms: []2596 }, {title: "fas fa-square", searchTerms: ["block", "box"]}, {2597 title: "far fa-square",2598 searchTerms: ["block", "box"]2599 }, {title: "fas fa-square-full", searchTerms: []}, {2600 title: "fas fa-square-root-alt",2601 searchTerms: []2602 }, {title: "fab fa-squarespace", searchTerms: []}, {2603 title: "fab fa-stack-exchange",2604 searchTerms: []2605 }, {title: "fab fa-stack-overflow", searchTerms: []}, {2606 title: "fas fa-stamp",2607 searchTerms: []2608 }, {2609 title: "fas fa-star",2610 searchTerms: ["achievement", "award", "favorite", "important", "night", "rating", "score"]2611 }, {2612 title: "far fa-star",2613 searchTerms: ["achievement", "award", "favorite", "important", "night", "rating", "score"]2614 }, {title: "fas fa-star-and-crescent", searchTerms: ["islam", "muslim"]}, {2615 title: "fas fa-star-half",2616 searchTerms: ["achievement", "award", "rating", "score", "star-half-empty", "star-half-full"]2617 }, {2618 title: "far fa-star-half",2619 searchTerms: ["achievement", "award", "rating", "score", "star-half-empty", "star-half-full"]2620 }, {2621 title: "fas fa-star-half-alt",2622 searchTerms: ["achievement", "award", "rating", "score", "star-half-empty", "star-half-full"]2623 }, {title: "fas fa-star-of-david", searchTerms: ["jewish", "judaism"]}, {2624 title: "fas fa-star-of-life",2625 searchTerms: []2626 }, {title: "fab fa-staylinked", searchTerms: []}, {2627 title: "fab fa-steam",2628 searchTerms: []2629 }, {title: "fab fa-steam-square", searchTerms: []}, {2630 title: "fab fa-steam-symbol",2631 searchTerms: []2632 }, {2633 title: "fas fa-step-backward",2634 searchTerms: ["beginning", "first", "previous", "rewind", "start"]2635 }, {title: "fas fa-step-forward", searchTerms: ["end", "last", "next"]}, {2636 title: "fas fa-stethoscope",2637 searchTerms: []2638 }, {title: "fab fa-sticker-mule", searchTerms: []}, {2639 title: "fas fa-sticky-note",2640 searchTerms: []2641 }, {title: "far fa-sticky-note", searchTerms: []}, {2642 title: "fas fa-stop",2643 searchTerms: ["block", "box", "square"]2644 }, {title: "fas fa-stop-circle", searchTerms: []}, {2645 title: "far fa-stop-circle",2646 searchTerms: []2647 }, {title: "fas fa-stopwatch", searchTerms: ["time"]}, {2648 title: "fas fa-store",2649 searchTerms: []2650 }, {title: "fas fa-store-alt", searchTerms: []}, {2651 title: "fab fa-strava",2652 searchTerms: []2653 }, {title: "fas fa-stream", searchTerms: []}, {2654 title: "fas fa-street-view",2655 searchTerms: ["map"]2656 }, {title: "fas fa-strikethrough", searchTerms: []}, {2657 title: "fab fa-stripe",2658 searchTerms: []2659 }, {title: "fab fa-stripe-s", searchTerms: []}, {2660 title: "fas fa-stroopwafel",2661 searchTerms: ["dessert", "food", "sweets", "waffle"]2662 }, {title: "fab fa-studiovinari", searchTerms: []}, {2663 title: "fab fa-stumbleupon",2664 searchTerms: []2665 }, {title: "fab fa-stumbleupon-circle", searchTerms: []}, {2666 title: "fas fa-subscript",2667 searchTerms: []2668 }, {2669 title: "fas fa-subway",2670 searchTerms: ["machine", "railway", "train", "transportation", "vehicle"]2671 }, {2672 title: "fas fa-suitcase",2673 searchTerms: ["baggage", "luggage", "move", "suitcase", "travel", "trip"]2674 }, {title: "fas fa-suitcase-rolling", searchTerms: []}, {2675 title: "fas fa-sun",2676 searchTerms: ["brighten", "contrast", "day", "lighter", "sol", "solar", "star", "weather"]2677 }, {2678 title: "far fa-sun",2679 searchTerms: ["brighten", "contrast", "day", "lighter", "sol", "solar", "star", "weather"]2680 }, {title: "fab fa-superpowers", searchTerms: []}, {2681 title: "fas fa-superscript",2682 searchTerms: ["exponential"]2683 }, {title: "fab fa-supple", searchTerms: []}, {2684 title: "fas fa-surprise",2685 searchTerms: ["emoticon", "face", "shocked"]2686 }, {title: "far fa-surprise", searchTerms: ["emoticon", "face", "shocked"]}, {2687 title: "fas fa-swatchbook",2688 searchTerms: []2689 }, {2690 title: "fas fa-swimmer",2691 searchTerms: ["athlete", "head", "man", "person", "water"]2692 }, {title: "fas fa-swimming-pool", searchTerms: ["ladder", "recreation", "water"]}, {2693 title: "fas fa-synagogue",2694 searchTerms: ["building", "jewish", "judaism", "star of david", "temple"]2695 }, {2696 title: "fas fa-sync",2697 searchTerms: ["exchange", "refresh", "reload", "rotate", "swap"]2698 }, {title: "fas fa-sync-alt", searchTerms: ["refresh", "reload", "rotate"]}, {2699 title: "fas fa-syringe",2700 searchTerms: ["immunizations", "needle"]2701 }, {title: "fas fa-table", searchTerms: ["data", "excel", "spreadsheet"]}, {2702 title: "fas fa-table-tennis",2703 searchTerms: []2704 }, {2705 title: "fas fa-tablet",2706 searchTerms: ["apple", "device", "ipad", "kindle", "screen"]2707 }, {2708 title: "fas fa-tablet-alt",2709 searchTerms: ["apple", "device", "ipad", "kindle", "screen"]2710 }, {title: "fas fa-tablets", searchTerms: ["drugs", "medicine"]}, {2711 title: "fas fa-tachometer-alt",2712 searchTerms: ["dashboard", "tachometer"]2713 }, {title: "fas fa-tag", searchTerms: ["label"]}, {2714 title: "fas fa-tags",2715 searchTerms: ["labels"]2716 }, {title: "fas fa-tape", searchTerms: []}, {2717 title: "fas fa-tasks",2718 searchTerms: ["downloading", "downloads", "loading", "progress", "settings"]2719 }, {2720 title: "fas fa-taxi",2721 searchTerms: ["cab", "cabbie", "car", "car service", "lyft", "machine", "transportation", "uber", "vehicle"]2722 }, {title: "fab fa-teamspeak", searchTerms: []}, {2723 title: "fas fa-teeth",2724 searchTerms: []2725 }, {title: "fas fa-teeth-open", searchTerms: []}, {2726 title: "fab fa-telegram",2727 searchTerms: []2728 }, {title: "fab fa-telegram-plane", searchTerms: []}, {2729 title: "fas fa-temperature-high",2730 searchTerms: ["mercury", "thermometer", "warm"]2731 }, {2732 title: "fas fa-temperature-low",2733 searchTerms: ["cool", "mercury", "thermometer"]2734 }, {title: "fab fa-tencent-weibo", searchTerms: []}, {2735 title: "fas fa-terminal",2736 searchTerms: ["code", "command", "console", "prompt"]2737 }, {title: "fas fa-text-height", searchTerms: []}, {2738 title: "fas fa-text-width",2739 searchTerms: []2740 }, {title: "fas fa-th", searchTerms: ["blocks", "boxes", "grid", "squares"]}, {2741 title: "fas fa-th-large",2742 searchTerms: ["blocks", "boxes", "grid", "squares"]2743 }, {2744 title: "fas fa-th-list",2745 searchTerms: ["checklist", "completed", "done", "finished", "ol", "todo", "ul"]2746 }, {title: "fab fa-the-red-yeti", searchTerms: []}, {2747 title: "fas fa-theater-masks",2748 searchTerms: []2749 }, {title: "fab fa-themeco", searchTerms: []}, {2750 title: "fab fa-themeisle",2751 searchTerms: []2752 }, {2753 title: "fas fa-thermometer",2754 searchTerms: ["mercury", "status", "temperature"]2755 }, {2756 title: "fas fa-thermometer-empty",2757 searchTerms: ["mercury", "status", "temperature"]2758 }, {2759 title: "fas fa-thermometer-full",2760 searchTerms: ["fever", "mercury", "status", "temperature"]2761 }, {2762 title: "fas fa-thermometer-half",2763 searchTerms: ["mercury", "status", "temperature"]2764 }, {2765 title: "fas fa-thermometer-quarter",2766 searchTerms: ["mercury", "status", "temperature"]2767 }, {2768 title: "fas fa-thermometer-three-quarters",2769 searchTerms: ["mercury", "status", "temperature"]2770 }, {title: "fab fa-think-peaks", searchTerms: []}, {2771 title: "fas fa-thumbs-down",2772 searchTerms: ["disagree", "disapprove", "dislike", "hand", "thumbs-o-down"]2773 }, {2774 title: "far fa-thumbs-down",2775 searchTerms: ["disagree", "disapprove", "dislike", "hand", "thumbs-o-down"]2776 }, {2777 title: "fas fa-thumbs-up",2778 searchTerms: ["agree", "approve", "favorite", "hand", "like", "ok", "okay", "success", "thumbs-o-up", "yes", "you got it dude"]2779 }, {2780 title: "far fa-thumbs-up",2781 searchTerms: ["agree", "approve", "favorite", "hand", "like", "ok", "okay", "success", "thumbs-o-up", "yes", "you got it dude"]2782 }, {2783 title: "fas fa-thumbtack",2784 searchTerms: ["coordinates", "location", "marker", "pin", "thumb-tack"]2785 }, {title: "fas fa-ticket-alt", searchTerms: ["ticket"]}, {2786 title: "fas fa-times",2787 searchTerms: ["close", "cross", "error", "exit", "incorrect", "notice", "notification", "notify", "problem", "wrong", "x"]2788 }, {2789 title: "fas fa-times-circle",2790 searchTerms: ["close", "cross", "exit", "incorrect", "notice", "notification", "notify", "problem", "wrong", "x"]2791 }, {2792 title: "far fa-times-circle",2793 searchTerms: ["close", "cross", "exit", "incorrect", "notice", "notification", "notify", "problem", "wrong", "x"]2794 }, {2795 title: "fas fa-tint",2796 searchTerms: ["drop", "droplet", "raindrop", "waterdrop"]2797 }, {title: "fas fa-tint-slash", searchTerms: []}, {2798 title: "fas fa-tired",2799 searchTerms: ["emoticon", "face", "grumpy"]2800 }, {title: "far fa-tired", searchTerms: ["emoticon", "face", "grumpy"]}, {2801 title: "fas fa-toggle-off",2802 searchTerms: ["switch"]2803 }, {title: "fas fa-toggle-on", searchTerms: ["switch"]}, {2804 title: "fas fa-toilet-paper",2805 searchTerms: ["bathroom", "halloween", "holiday", "lavatory", "prank", "restroom", "roll"]2806 }, {2807 title: "fas fa-toolbox",2808 searchTerms: ["admin", "container", "fix", "repair", "settings", "tools"]2809 }, {2810 title: "fas fa-tooth",2811 searchTerms: ["bicuspid", "dental", "molar", "mouth", "teeth"]2812 }, {title: "fas fa-torah", searchTerms: ["book", "jewish", "judaism"]}, {2813 title: "fas fa-torii-gate",2814 searchTerms: ["building", "shintoism"]2815 }, {title: "fas fa-tractor", searchTerms: []}, {2816 title: "fab fa-trade-federation",2817 searchTerms: []2818 }, {title: "fas fa-trademark", searchTerms: []}, {2819 title: "fas fa-traffic-light",2820 searchTerms: []2821 }, {title: "fas fa-train", searchTerms: ["bullet", "locomotive", "railway"]}, {2822 title: "fas fa-transgender",2823 searchTerms: ["intersex"]2824 }, {title: "fas fa-transgender-alt", searchTerms: []}, {2825 title: "fas fa-trash",2826 searchTerms: ["delete", "garbage", "hide", "remove"]2827 }, {2828 title: "fas fa-trash-alt",2829 searchTerms: ["delete", "garbage", "hide", "remove", "trash", "trash-o"]2830 }, {2831 title: "far fa-trash-alt",2832 searchTerms: ["delete", "garbage", "hide", "remove", "trash", "trash-o"]2833 }, {2834 title: "fas fa-tree",2835 searchTerms: ["bark", "fall", "flora", "forest", "nature", "plant", "seasonal"]2836 }, {title: "fab fa-trello", searchTerms: []}, {2837 title: "fab fa-tripadvisor",2838 searchTerms: []2839 }, {2840 title: "fas fa-trophy",2841 searchTerms: ["achievement", "award", "cup", "game", "winner"]2842 }, {title: "fas fa-truck", searchTerms: ["delivery", "shipping"]}, {2843 title: "fas fa-truck-loading",2844 searchTerms: []2845 }, {title: "fas fa-truck-monster", searchTerms: []}, {2846 title: "fas fa-truck-moving",2847 searchTerms: []2848 }, {title: "fas fa-truck-pickup", searchTerms: []}, {2849 title: "fas fa-tshirt",2850 searchTerms: ["cloth", "clothing"]2851 }, {title: "fas fa-tty", searchTerms: []}, {2852 title: "fab fa-tumblr",2853 searchTerms: []2854 }, {title: "fab fa-tumblr-square", searchTerms: []}, {2855 title: "fas fa-tv",2856 searchTerms: ["computer", "display", "monitor", "television"]2857 }, {title: "fab fa-twitch", searchTerms: []}, {2858 title: "fab fa-twitter",2859 searchTerms: ["social network", "tweet"]2860 }, {title: "fab fa-twitter-square", searchTerms: ["social network", "tweet"]}, {2861 title: "fab fa-typo3",2862 searchTerms: []2863 }, {title: "fab fa-uber", searchTerms: []}, {title: "fab fa-uikit", searchTerms: []}, {2864 title: "fas fa-umbrella",2865 searchTerms: ["protection", "rain"]2866 }, {2867 title: "fas fa-umbrella-beach",2868 searchTerms: ["protection", "recreation", "sun"]2869 }, {title: "fas fa-underline", searchTerms: []}, {2870 title: "fas fa-undo",2871 searchTerms: ["back", "control z", "exchange", "oops", "return", "rotate", "swap"]2872 }, {2873 title: "fas fa-undo-alt",2874 searchTerms: ["back", "control z", "exchange", "oops", "return", "swap"]2875 }, {title: "fab fa-uniregistry", searchTerms: []}, {2876 title: "fas fa-universal-access",2877 searchTerms: []2878 }, {title: "fas fa-university", searchTerms: ["bank", "institution"]}, {2879 title: "fas fa-unlink",2880 searchTerms: ["chain", "chain-broken", "remove"]2881 }, {title: "fas fa-unlock", searchTerms: ["admin", "lock", "password", "protect"]}, {2882 title: "fas fa-unlock-alt",2883 searchTerms: ["admin", "lock", "password", "protect"]2884 }, {title: "fab fa-untappd", searchTerms: []}, {2885 title: "fas fa-upload",2886 searchTerms: ["export", "publish"]2887 }, {title: "fab fa-usb", searchTerms: []}, {2888 title: "fas fa-user",2889 searchTerms: ["account", "avatar", "head", "human", "man", "person", "profile"]2890 }, {2891 title: "far fa-user",2892 searchTerms: ["account", "avatar", "head", "human", "man", "person", "profile"]2893 }, {2894 title: "fas fa-user-alt",2895 searchTerms: ["account", "avatar", "head", "human", "man", "person", "profile"]2896 }, {title: "fas fa-user-alt-slash", searchTerms: []}, {2897 title: "fas fa-user-astronaut",2898 searchTerms: ["avatar", "clothing", "cosmonaut", "space", "suit"]2899 }, {title: "fas fa-user-check", searchTerms: []}, {2900 title: "fas fa-user-circle",2901 searchTerms: ["account", "avatar", "head", "human", "man", "person", "profile"]2902 }, {2903 title: "far fa-user-circle",2904 searchTerms: ["account", "avatar", "head", "human", "man", "person", "profile"]2905 }, {title: "fas fa-user-clock", searchTerms: []}, {2906 title: "fas fa-user-cog",2907 searchTerms: []2908 }, {title: "fas fa-user-edit", searchTerms: []}, {2909 title: "fas fa-user-friends",2910 searchTerms: []2911 }, {2912 title: "fas fa-user-graduate",2913 searchTerms: ["cap", "clothing", "commencement", "gown", "graduation", "student"]2914 }, {title: "fas fa-user-injured", searchTerms: ["cast", "ouch", "sling"]}, {2915 title: "fas fa-user-lock",2916 searchTerms: []2917 }, {2918 title: "fas fa-user-md",2919 searchTerms: ["doctor", "job", "medical", "nurse", "occupation", "profile"]2920 }, {title: "fas fa-user-minus", searchTerms: ["delete", "negative", "remove"]}, {2921 title: "fas fa-user-ninja",2922 searchTerms: ["assassin", "avatar", "dangerous", "deadly", "sneaky"]2923 }, {title: "fas fa-user-plus", searchTerms: ["positive", "sign up", "signup"]}, {2924 title: "fas fa-user-secret",2925 searchTerms: ["clothing", "coat", "hat", "incognito", "privacy", "spy", "whisper"]2926 }, {title: "fas fa-user-shield", searchTerms: []}, {2927 title: "fas fa-user-slash",2928 searchTerms: ["ban", "remove"]2929 }, {title: "fas fa-user-tag", searchTerms: []}, {2930 title: "fas fa-user-tie",2931 searchTerms: ["avatar", "business", "clothing", "formal"]2932 }, {title: "fas fa-user-times", searchTerms: ["archive", "delete", "remove", "x"]}, {2933 title: "fas fa-users",2934 searchTerms: ["people", "persons", "profiles"]2935 }, {title: "fas fa-users-cog", searchTerms: []}, {2936 title: "fab fa-ussunnah",2937 searchTerms: []2938 }, {title: "fas fa-utensil-spoon", searchTerms: ["spoon"]}, {2939 title: "fas fa-utensils",2940 searchTerms: ["cutlery", "dinner", "eat", "food", "knife", "restaurant", "spoon"]2941 }, {title: "fab fa-vaadin", searchTerms: []}, {2942 title: "fas fa-vector-square",2943 searchTerms: ["anchors", "lines", "object"]2944 }, {title: "fas fa-venus", searchTerms: ["female"]}, {2945 title: "fas fa-venus-double",2946 searchTerms: []2947 }, {title: "fas fa-venus-mars", searchTerms: []}, {2948 title: "fab fa-viacoin",2949 searchTerms: []2950 }, {title: "fab fa-viadeo", searchTerms: []}, {2951 title: "fab fa-viadeo-square",2952 searchTerms: []2953 }, {title: "fas fa-vial", searchTerms: ["test tube"]}, {2954 title: "fas fa-vials",2955 searchTerms: ["lab results", "test tubes"]2956 }, {title: "fab fa-viber", searchTerms: []}, {2957 title: "fas fa-video",2958 searchTerms: ["camera", "film", "movie", "record", "video-camera"]2959 }, {title: "fas fa-video-slash", searchTerms: []}, {2960 title: "fas fa-vihara",2961 searchTerms: ["buddhism", "buddhist", "building", "monastery"]2962 }, {title: "fab fa-vimeo", searchTerms: []}, {2963 title: "fab fa-vimeo-square",2964 searchTerms: []2965 }, {title: "fab fa-vimeo-v", searchTerms: ["vimeo"]}, {2966 title: "fab fa-vine",2967 searchTerms: []2968 }, {title: "fab fa-vk", searchTerms: []}, {2969 title: "fab fa-vnv",2970 searchTerms: []2971 }, {title: "fas fa-volleyball-ball", searchTerms: []}, {2972 title: "fas fa-volume-down",2973 searchTerms: ["audio", "lower", "music", "quieter", "sound", "speaker"]2974 }, {title: "fas fa-volume-mute", searchTerms: []}, {2975 title: "fas fa-volume-off",2976 searchTerms: ["audio", "music", "mute", "sound"]2977 }, {2978 title: "fas fa-volume-up",2979 searchTerms: ["audio", "higher", "louder", "music", "sound", "speaker"]2980 }, {2981 title: "fas fa-vote-yea",2982 searchTerms: ["accept", "cast", "election", "politics", "positive", "yes"]2983 }, {title: "fas fa-vr-cardboard", searchTerms: ["google", "reality", "virtual"]}, {2984 title: "fab fa-vuejs",2985 searchTerms: []2986 }, {title: "fas fa-walking", searchTerms: []}, {2987 title: "fas fa-wallet",2988 searchTerms: []2989 }, {title: "fas fa-warehouse", searchTerms: []}, {2990 title: "fas fa-water",2991 searchTerms: []2992 }, {title: "fab fa-weebly", searchTerms: []}, {title: "fab fa-weibo", searchTerms: []}, {2993 title: "fas fa-weight",2994 searchTerms: ["measurement", "scale", "weight"]2995 }, {title: "fas fa-weight-hanging", searchTerms: ["anvil", "heavy", "measurement"]}, {2996 title: "fab fa-weixin",2997 searchTerms: []2998 }, {title: "fab fa-whatsapp", searchTerms: []}, {2999 title: "fab fa-whatsapp-square",3000 searchTerms: []3001 }, {title: "fas fa-wheelchair", searchTerms: ["handicap", "person"]}, {3002 title: "fab fa-whmcs",3003 searchTerms: []3004 }, {title: "fas fa-wifi", searchTerms: []}, {3005 title: "fab fa-wikipedia-w",3006 searchTerms: []3007 }, {3008 title: "fas fa-wind",3009 searchTerms: ["air", "blow", "breeze", "fall", "seasonal"]3010 }, {title: "fas fa-window-close", searchTerms: []}, {3011 title: "far fa-window-close",3012 searchTerms: []3013 }, {title: "fas fa-window-maximize", searchTerms: []}, {3014 title: "far fa-window-maximize",3015 searchTerms: []3016 }, {title: "fas fa-window-minimize", searchTerms: []}, {3017 title: "far fa-window-minimize",3018 searchTerms: []3019 }, {title: "fas fa-window-restore", searchTerms: []}, {3020 title: "far fa-window-restore",3021 searchTerms: []3022 }, {title: "fab fa-windows", searchTerms: ["microsoft"]}, {3023 title: "fas fa-wine-bottle",3024 searchTerms: ["alcohol", "beverage", "drink", "glass", "grapes"]3025 }, {3026 title: "fas fa-wine-glass",3027 searchTerms: ["alcohol", "beverage", "drink", "grapes"]3028 }, {3029 title: "fas fa-wine-glass-alt",3030 searchTerms: ["alcohol", "beverage", "drink", "grapes"]3031 }, {title: "fab fa-wix", searchTerms: []}, {3032 title: "fab fa-wizards-of-the-coast",3033 searchTerms: ["Dungeons & Dragons", "d&d", "dnd", "fantasy", "game", "gaming", "tabletop"]3034 }, {title: "fab fa-wolf-pack-battalion", searchTerms: []}, {3035 title: "fas fa-won-sign",3036 searchTerms: ["krw"]3037 }, {title: "fab fa-wordpress", searchTerms: []}, {3038 title: "fab fa-wordpress-simple",3039 searchTerms: []3040 }, {title: "fab fa-wpbeginner", searchTerms: []}, {3041 title: "fab fa-wpexplorer",3042 searchTerms: []3043 }, {title: "fab fa-wpforms", searchTerms: []}, {3044 title: "fab fa-wpressr",3045 searchTerms: ["rendact"]3046 }, {3047 title: "fas fa-wrench",3048 searchTerms: ["fix", "settings", "spanner", "tool", "update"]3049 }, {title: "fas fa-x-ray", searchTerms: ["radiological images", "radiology"]}, {3050 title: "fab fa-xbox",3051 searchTerms: []3052 }, {title: "fab fa-xing", searchTerms: []}, {3053 title: "fab fa-xing-square",3054 searchTerms: []3055 }, {title: "fab fa-y-combinator", searchTerms: []}, {3056 title: "fab fa-yahoo",3057 searchTerms: []3058 }, {title: "fab fa-yandex", searchTerms: []}, {3059 title: "fab fa-yandex-international",3060 searchTerms: []3061 }, {title: "fab fa-yelp", searchTerms: []}, {3062 title: "fas fa-yen-sign",3063 searchTerms: ["jpy", "money"]3064 }, {title: "fas fa-yin-yang", searchTerms: ["daoism", "opposites", "taoism"]}, {3065 title: "fab fa-yoast",3066 searchTerms: []3067 }, {3068 title: "fab fa-youtube",3069 searchTerms: ["film", "video", "youtube-play", "youtube-square"]3070 }, {title: "fab fa-youtube-square", searchTerms: []}, {title: "fab fa-zhihu", searchTerms: []}]3071 })...
AdvancedSearchController.js
Source:AdvancedSearchController.js
1/*2 * Copyright (C) 2011 Google Inc. All rights reserved.3 *4 * Redistribution and use in source and binary forms, with or without5 * modification, are permitted provided that the following conditions are6 * met:7 *8 * 1. Redistributions of source code must retain the above copyright9 * notice, this list of conditions and the following disclaimer.10 *11 * 2. Redistributions in binary form must reproduce the above12 * copyright notice, this list of conditions and the following disclaimer13 * in the documentation and/or other materials provided with the14 * distribution.15 *16 * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. AND ITS CONTRIBUTORS17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT18 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR19 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE INC.20 * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.27 */28/**29 * @constructor30 */31WebInspector.AdvancedSearchController = function()32{33 this._shortcut = WebInspector.AdvancedSearchController.createShortcut();34 this._searchId = 0;35 36 WebInspector.settings.advancedSearchConfig = WebInspector.settings.createSetting("advancedSearchConfig", new WebInspector.SearchConfig("", true, false));37 38 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.FrameNavigated, this._frameNavigated, this);39}40WebInspector.AdvancedSearchController.createShortcut = function()41{42 if (WebInspector.isMac())43 return WebInspector.KeyboardShortcut.makeDescriptor("f", WebInspector.KeyboardShortcut.Modifiers.Meta | WebInspector.KeyboardShortcut.Modifiers.Alt);44 else45 return WebInspector.KeyboardShortcut.makeDescriptor("f", WebInspector.KeyboardShortcut.Modifiers.Ctrl | WebInspector.KeyboardShortcut.Modifiers.Shift);46}47WebInspector.AdvancedSearchController.prototype = {48 /**49 * @param {Event} event50 */51 handleShortcut: function(event)52 {53 if (WebInspector.KeyboardShortcut.makeKeyFromEvent(event) === this._shortcut.key) {54 this.show();55 event.handled = true;56 }57 },58 _frameNavigated: function()59 {60 this.resetSearch();61 },62 /**63 * @param {WebInspector.SearchScope} searchScope64 */65 registerSearchScope: function(searchScope)66 {67 // FIXME: implement multiple search scopes.68 this._searchScope = searchScope;69 },70 show: function()71 {72 if (!this._searchView)73 this._searchView = new WebInspector.SearchView(this);74 75 if (this._searchView.isShowing())76 this._searchView.focus();77 else78 WebInspector.showViewInDrawer(this._searchView);79 },80 close: function()81 {82 this.stopSearch();83 WebInspector.closeDrawerView();84 },85 /**86 * @param {number} searchId87 * @param {Object} searchResult88 */89 _onSearchResult: function(searchId, searchResult)90 {91 if (searchId !== this._searchId)92 return;93 this._searchView.addSearchResult(searchResult);94 if (!searchResult.searchMatches.length)95 return;96 97 if (!this._searchResultsPane) 98 this._searchResultsPane = this._currentSearchScope.createSearchResultsPane(this._searchConfig); 99 this._searchView.resultsPane = this._searchResultsPane; 100 this._searchResultsPane.addSearchResult(searchResult);101 },102 103 /**104 * @param {number} searchId105 * @param {boolean} finished106 */107 _onSearchFinished: function(searchId, finished)108 {109 if (searchId !== this._searchId)110 return;111 if (!this._searchResultsPane)112 this._searchView.nothingFound();113 114 this._searchView.searchFinished(finished);115 },116 117 /**118 * @param {WebInspector.SearchConfig} searchConfig119 */120 startSearch: function(searchConfig)121 {122 this.resetSearch();123 ++this._searchId;124 this._searchConfig = searchConfig;125 // FIXME: this._currentSearchScope should be initialized based on searchConfig126 this._currentSearchScope = this._searchScope;127 var totalSearchResultsCount = this._currentSearchScope.performSearch(searchConfig, this._onSearchResult.bind(this, this._searchId), this._onSearchFinished.bind(this, this._searchId));128 this._searchView.searchStarted(totalSearchResultsCount);129 },130 131 resetSearch: function()132 {133 this.stopSearch();134 if (this._searchResultsPane) {135 this._searchView.resetResults();136 delete this._searchResultsPane;137 }138 },139 140 stopSearch: function()141 {142 if (this._currentSearchScope)143 this._currentSearchScope.stopSearch();144 }145}146/**147 * @constructor148 * @extends {WebInspector.View}149 * @param {WebInspector.AdvancedSearchController} controller150 */151WebInspector.SearchView = function(controller)152{153 WebInspector.View.call(this);154 this.registerRequiredCSS("textViewer.css");155 156 this._controller = controller;157 this.element.className = "search-view";158 this._searchPanelElement = this.element.createChild("div");159 this._searchPanelElement.tabIndex = 0;160 this._searchPanelElement.className = "search-panel";161 this._searchPanelElement.addEventListener("keydown", this._onKeyDown.bind(this), false);162 163 this._searchResultsElement = this.element.createChild("div");164 this._searchResultsElement.className = "search-results";165 166 this._search = this._searchPanelElement.createChild("input");167 this._search.setAttribute("type", "search");168 this._search.addStyleClass("search-config-search");169 this._search.setAttribute("results", "0");170 this._search.setAttribute("size", 20);171 this._ignoreCaseLabel = this._searchPanelElement.createChild("label");172 this._ignoreCaseLabel.addStyleClass("search-config-label");173 this._ignoreCaseCheckbox = this._ignoreCaseLabel.createChild("input");174 this._ignoreCaseCheckbox.setAttribute("type", "checkbox");175 this._ignoreCaseCheckbox.addStyleClass("search-config-checkbox");176 this._ignoreCaseLabel.appendChild(document.createTextNode(WebInspector.UIString("Ignore case")));177 178 this._regexLabel = this._searchPanelElement.createChild("label");179 this._regexLabel.addStyleClass("search-config-label");180 this._regexCheckbox = this._regexLabel.createChild("input");181 this._regexCheckbox.setAttribute("type", "checkbox");182 this._regexCheckbox.addStyleClass("search-config-checkbox");183 this._regexLabel.appendChild(document.createTextNode(WebInspector.UIString("Regular expression")));184 185 this._searchDoneButton = this._searchPanelElement.createChild("button");186 this._searchDoneButton.textContent = WebInspector.UIString("Close");187 this._searchDoneButton.addStyleClass("search-close-button");188 this._searchDoneButton.addEventListener("click", this._closeButtonPressed.bind(this));189 190 this._searchStatusBarElement = document.createElement("div");191 this._searchStatusBarElement.className = "search-status-bar-item";192 this._searchMessageElement = this._searchStatusBarElement.createChild("div");193 this._searchMessageElement.className = "search-status-bar-message";194 this._searchProgressElement = document.createElement("progress");195 this._searchProgressElement.className = "search-status-bar-progress";196 197 this._searchStopButtonItem = document.createElement("div");198 this._searchStopButtonItem.className = "search-status-bar-stop-button-item";199 this._searchStopStatusBarButton = new WebInspector.StatusBarButton(WebInspector.UIString("Stop search"), "search-status-bar-stop-button");200 this._searchStopButtonItem.appendChild(this._searchStopStatusBarButton.element);201 this._searchStopStatusBarButton.addEventListener("click", this._searchStopButtonPressed, this);202 203 this._searchResultsMessageElement = document.createElement("span");204 this._searchResultsMessageElement.className = "search-results-status-bar-message";205 this._load();206}207// Number of recent search queries to store.208WebInspector.SearchView.maxQueriesCount = 20;209WebInspector.SearchView.prototype = {210 /**211 * @return {Array.<Element>}212 */213 get statusBarItems()214 {215 return [this._searchStatusBarElement];216 },217 /**218 * @return {Element}219 */220 get counterElement()221 {222 return this._searchResultsMessageElement;223 },224 /**225 * @return {WebInspector.SearchConfig}226 */227 get searchConfig()228 {229 return new WebInspector.SearchConfig(this._search.value, this._ignoreCaseCheckbox.checked, this._regexCheckbox.checked);230 },231 232 /**233 * @type {WebInspector.SearchResultsPane}234 */235 set resultsPane(resultsPane)236 {237 this.resetResults();238 this._searchResultsElement.appendChild(resultsPane.element);239 },240 241 /**242 * @param {number} totalSearchResultsCount243 */244 searchStarted: function(totalSearchResultsCount)245 {246 this.resetResults();247 this._resetCounters();248 249 this._totalSearchResultsCount = totalSearchResultsCount;250 this._searchMessageElement.textContent = WebInspector.UIString("Searching...");251 this._searchStatusBarElement.appendChild(this._searchProgressElement);252 this._searchStatusBarElement.appendChild(this._searchStopButtonItem);253 this._updateSearchProgress();254 255 this._updateSearchResultsMessage();256 257 if (!this._searchingView)258 this._searchingView = new WebInspector.EmptyView(WebInspector.UIString("Searching..."));259 this._searchingView.show(this._searchResultsElement);260 },261 _updateSearchResultsMessage: function()262 {263 if (this._searchMatchesCount && this._searchResultsCount)264 this._searchResultsMessageElement.textContent = WebInspector.UIString("Found %d matches in %d files.", this._searchMatchesCount, this._nonEmptySearchResultsCount);265 else266 this._searchResultsMessageElement.textContent = "";267 },268 _updateSearchProgress: function()269 {270 this._searchProgressElement.setAttribute("max", this._totalSearchResultsCount);271 this._searchProgressElement.setAttribute("value", this._searchResultsCount);272 },273 resetResults: function()274 {275 if (this._searchingView)276 this._searchingView.detach();277 if (this._notFoundView)278 this._notFoundView.detach();279 this._searchResultsElement.removeChildren();280 },281 _resetCounters: function()282 {283 this._searchMatchesCount = 0;284 this._searchResultsCount = 0;285 this._nonEmptySearchResultsCount = 0;286 },287 nothingFound: function()288 {289 this.resetResults();290 if (!this._notFoundView)291 this._notFoundView = new WebInspector.EmptyView(WebInspector.UIString("No matches found."));292 this._notFoundView.show(this._searchResultsElement);293 this._searchResultsMessageElement.textContent = WebInspector.UIString("No matches found.");294 },295 /**296 * @param {Object} searchResult297 */298 addSearchResult: function(searchResult)299 {300 this._searchMatchesCount += searchResult.searchMatches.length;301 this._searchResultsCount++;302 if (searchResult.searchMatches.length)303 this._nonEmptySearchResultsCount++;304 this._updateSearchResultsMessage();305 this._updateSearchProgress();306 },307 /**308 * @param {boolean} finished309 */310 searchFinished: function(finished)311 {312 this._searchMessageElement.textContent = finished ? WebInspector.UIString("Search finished.") : WebInspector.UIString("Search interrupted.");313 this._searchStatusBarElement.removeChild(this._searchProgressElement);314 this._searchStatusBarElement.removeChild(this._searchStopButtonItem);315 },316 focus: function()317 {318 WebInspector.setCurrentFocusElement(this._search);319 this._search.select();320 },321 wasShown: function()322 {323 this.focus();324 },325 wasHidden: function()326 {327 this._controller.stopSearch();328 },329 /**330 * @param {Event} event331 */332 _onKeyDown: function(event)333 {334 switch (event.keyCode) {335 case WebInspector.KeyboardShortcut.Keys.Enter.code:336 this._onAction();337 break;338 case WebInspector.KeyboardShortcut.Keys.Esc.code:339 this._controller.close();340 event.consume(true);341 break;342 } 343 },344 345 _save: function()346 {347 var searchConfig = new WebInspector.SearchConfig(this.searchConfig.query, this.searchConfig.ignoreCase, this.searchConfig.isRegex); 348 WebInspector.settings.advancedSearchConfig.set(searchConfig);349 },350 351 _load: function()352 {353 var searchConfig = WebInspector.settings.advancedSearchConfig.get();354 this._search.value = searchConfig.query;355 this._ignoreCaseCheckbox.checked = searchConfig.ignoreCase;356 this._regexCheckbox.checked = searchConfig.isRegex;357 },358 _closeButtonPressed: function()359 {360 this._controller.close();361 },362 _searchStopButtonPressed: function()363 {364 this._controller.stopSearch();365 this.focus();366 },367 368 _onAction: function()369 {370 if (!this.searchConfig.query || !this.searchConfig.query.length)371 return;372 373 this._save();374 this._controller.startSearch(this.searchConfig);375 }376}377WebInspector.SearchView.prototype.__proto__ = WebInspector.View.prototype;378/**379 * @constructor380 * @param {string} query381 * @param {boolean} ignoreCase382 * @param {boolean} isRegex383 */384WebInspector.SearchConfig = function(query, ignoreCase, isRegex)385{386 this.query = query;387 this.ignoreCase = ignoreCase;388 this.isRegex = isRegex;389}390/**391 * @interface392 */393WebInspector.SearchScope = function()394{395}396WebInspector.SearchScope.prototype = {397 /**398 * @param {WebInspector.SearchConfig} searchConfig399 * @param {function(Object)} searchResultCallback400 * @param {function(boolean)} searchFinishedCallback401 */402 performSearch: function(searchConfig, searchResultCallback, searchFinishedCallback) { },403 stopSearch: function() { },404 405 /**406 * @param {WebInspector.SearchConfig} searchConfig407 * @return {WebInspector.SearchResultsPane}408 */409 createSearchResultsPane: function(searchConfig) { }410}411/**412 * @constructor413 * @param {WebInspector.SearchConfig} searchConfig414 */415WebInspector.SearchResultsPane = function(searchConfig)416{417 this._searchConfig = searchConfig;418 this.element = document.createElement("div");419}420WebInspector.SearchResultsPane.prototype = {421 /**422 * @return {WebInspector.SearchConfig}423 */424 get searchConfig()425 {426 return this._searchConfig;427 },428 /**429 * @param {Object} searchResult430 */431 addSearchResult: function(searchResult) { }432}433/**434 * @constructor435 * @extends {WebInspector.SearchResultsPane} 436 * @param {WebInspector.SearchConfig} searchConfig437 */438WebInspector.FileBasedSearchResultsPane = function(searchConfig)439{440 WebInspector.SearchResultsPane.call(this, searchConfig);441 442 this._searchResults = [];443 this.element.id ="search-results-pane-file-based";444 445 this._treeOutlineElement = document.createElement("ol");446 this._treeOutlineElement.className = "outline-disclosure";447 this._treeOutlineElement.addStyleClass("search-results-outline-disclosure");448 this.element.appendChild(this._treeOutlineElement);449 this._treeOutline = new TreeOutline(this._treeOutlineElement);450 451 this._matchesExpandedCount = 0;452}453WebInspector.FileBasedSearchResultsPane.matchesExpandedByDefaultCount = 20;454WebInspector.FileBasedSearchResultsPane.fileMatchesShownAtOnce = 20;455WebInspector.FileBasedSearchResultsPane.prototype = {456 /**457 * @param {Object} file458 * @param {number} lineNumber459 * @param {number} columnNumber460 * @return {Element}461 */462 createAnchor: function(file, lineNumber, columnNumber) { },463 /**464 * @param {Object} file465 * @return {string}466 */467 fileName: function(file) { },468 /**469 * @param {Object} searchResult470 */471 addSearchResult: function(searchResult)472 {473 this._searchResults.push(searchResult);474 var file = searchResult.file;475 var fileName = this.fileName(file);476 var searchMatches = searchResult.searchMatches;477 var fileTreeElement = this._addFileTreeElement(fileName, searchMatches.length, this._searchResults.length - 1);478 },479 /**480 * @param {Object} searchResult481 * @param {TreeElement} fileTreeElement482 */483 _fileTreeElementExpanded: function(searchResult, fileTreeElement)484 {485 if (fileTreeElement._initialized)486 return;487 488 var toIndex = Math.min(searchResult.searchMatches.length, WebInspector.FileBasedSearchResultsPane.fileMatchesShownAtOnce);489 if (toIndex < searchResult.searchMatches.length) {490 this._appendSearchMatches(fileTreeElement, searchResult, 0, toIndex - 1);491 this._appendShowMoreMatchesElement(fileTreeElement, searchResult, toIndex - 1);492 } else493 this._appendSearchMatches(fileTreeElement, searchResult, 0, toIndex);494 495 fileTreeElement._initialized = true;496 },497 /**498 * @param {TreeElement} fileTreeElement499 * @param {Object} searchResult500 * @param {number} fromIndex501 * @param {number} toIndex502 */503 _appendSearchMatches: function(fileTreeElement, searchResult, fromIndex, toIndex)504 {505 var file = searchResult.file;506 var fileName = this.fileName(file);507 var searchMatches = searchResult.searchMatches;508 509 var regex = createSearchRegex(this._searchConfig.query, !this._searchConfig.ignoreCase, this._searchConfig.isRegex);510 for (var i = fromIndex; i < toIndex; ++i) {511 var lineNumber = searchMatches[i].lineNumber;512 var lineContent = searchMatches[i].lineContent;513 var matchRanges = this._regexMatchRanges(lineContent, regex);514 515 var anchor = this.createAnchor(file, lineNumber, matchRanges[0].offset);516 517 var numberString = numberToStringWithSpacesPadding(lineNumber + 1, 4);518 var lineNumberSpan = document.createElement("span");519 lineNumberSpan.addStyleClass("webkit-line-number");520 lineNumberSpan.addStyleClass("search-match-line-number");521 lineNumberSpan.textContent = numberString;522 anchor.appendChild(lineNumberSpan);523 524 var contentSpan = this._createContentSpan(lineContent, matchRanges);525 anchor.appendChild(contentSpan);526 527 var searchMatchElement = new TreeElement("", null, false);528 fileTreeElement.appendChild(searchMatchElement);529 searchMatchElement.listItemElement.className = "search-match";530 searchMatchElement.listItemElement.appendChild(anchor);531 }532 },533 /**534 * @param {TreeElement} fileTreeElement535 * @param {Object} searchResult536 * @param {number} startMatchIndex537 */538 _appendShowMoreMatchesElement: function(fileTreeElement, searchResult, startMatchIndex)539 {540 var matchesLeftCount = searchResult.searchMatches.length - startMatchIndex;541 var showMoreMatchesText = WebInspector.UIString("Show all matches (%d more).", matchesLeftCount);542 var showMoreMatchesElement = new TreeElement(showMoreMatchesText, null, false);543 fileTreeElement.appendChild(showMoreMatchesElement);544 showMoreMatchesElement.listItemElement.addStyleClass("show-more-matches");545 showMoreMatchesElement.onselect = this._showMoreMatchesElementSelected.bind(this, searchResult, startMatchIndex);546 },547 /**548 * @param {Object} searchResult549 * @param {number} startMatchIndex550 * @param {TreeElement} showMoreMatchesElement551 */552 _showMoreMatchesElementSelected: function(searchResult, startMatchIndex, showMoreMatchesElement)553 {554 var fileTreeElement = showMoreMatchesElement.parent;555 fileTreeElement.removeChild(showMoreMatchesElement);556 this._appendSearchMatches(fileTreeElement, searchResult, startMatchIndex, searchResult.searchMatches.length);557 },558 /**559 * @param {string} fileName560 * @param {number} searchMatchesCount561 * @param {number} searchResultIndex562 */563 _addFileTreeElement: function(fileName, searchMatchesCount, searchResultIndex)564 {565 var fileTreeElement = new TreeElement("", null, true);566 fileTreeElement.toggleOnClick = true;567 fileTreeElement.selectable = false;568 this._treeOutline.appendChild(fileTreeElement);569 fileTreeElement.listItemElement.addStyleClass("search-result");570 var fileNameSpan = document.createElement("span");571 fileNameSpan.className = "search-result-file-name";572 fileNameSpan.textContent = fileName;573 fileTreeElement.listItemElement.appendChild(fileNameSpan);574 var matchesCountSpan = document.createElement("span");575 matchesCountSpan.className = "search-result-matches-count";576 if (searchMatchesCount === 1)577 matchesCountSpan.textContent = WebInspector.UIString("(%d match)", searchMatchesCount);578 else579 matchesCountSpan.textContent = WebInspector.UIString("(%d matches)", searchMatchesCount);580 581 fileTreeElement.listItemElement.appendChild(matchesCountSpan);582 583 var searchResult = this._searchResults[searchResultIndex];584 fileTreeElement.onexpand = this._fileTreeElementExpanded.bind(this, searchResult);585 // Expand until at least certain amount of matches is expanded.586 if (this._matchesExpandedCount < WebInspector.FileBasedSearchResultsPane.matchesExpandedByDefaultCount)587 fileTreeElement.expand();588 this._matchesExpandedCount += searchResult.searchMatches.length;589 return fileTreeElement; 590 },591 /**592 * @param {string} lineContent593 * @param {RegExp} regex594 * @return {Array.<Object>}595 */596 _regexMatchRanges: function(lineContent, regex)597 {598 regex.lastIndex = 0;599 var match;600 var offset = 0;601 var matchRanges = [];602 while ((regex.lastIndex < lineContent.length) && (match = regex.exec(lineContent)))603 matchRanges.push({ offset: match.index, length: match[0].length });604 605 return matchRanges;606 },607 608 /**609 * @param {string} lineContent610 * @param {Array.<Object>} matchRanges611 */612 _createContentSpan: function(lineContent, matchRanges)613 {614 var contentSpan = document.createElement("span");615 contentSpan.className = "search-match-content";616 contentSpan.textContent = lineContent;617 WebInspector.highlightRangesWithStyleClass(contentSpan, matchRanges, "highlighted-match");618 return contentSpan;619 }620}621WebInspector.FileBasedSearchResultsPane.prototype.__proto__ = WebInspector.SearchResultsPane.prototype;622/**623 * @constructor624 * @param {Object} file625 * @param {Array.<Object>} searchMatches626 */627WebInspector.FileBasedSearchResultsPane.SearchResult = function(file, searchMatches) {628 this.file = file;629 this.searchMatches = searchMatches;630}631/**632 * @type {WebInspector.AdvancedSearchController}633 */...
views.py
Source:views.py
1import os23from api.utils import Documen_job4import operator5BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))6import pandas as pd7from django.db.models import Q8from django.shortcuts import render, redirect9from django.http import HttpResponse10from django.views import View11from django.http import JsonResponse12from collector.models import Innovation13from searchBar.models import SearchResult, KeywordSearch, Category, Keyword_category, company_info14import json15import csv16import wget17from datetime import datetime as dt1819my_api_key = ''20my_cse_id = ''212223# Create your views here.24class SearchView(View):25 template_name = "searchBar/searchBar.html"26 Return_template = "searchBar/searchResult.html"2728 def get(self, request):29 if request.user.is_authenticated:30 user = request.user.username31 category_result = Category.objects.all()32 return render(request, self.template_name, {'user': user, 'category_result': category_result})3334 def post(self, request):35 if request.user.is_authenticated:36 user = request.user.username37 if 'search' in request.POST:38 for type in request.POST.getlist('type'):39 for Key_word in request.POST.getlist('Search_Anything'):40 Description = request.POST.get('Desc_Search')41 filter_type = type42 store_Keyword = KeywordSearch(keyWord=Key_word, description=Description, filter=filter_type, status=4)43 store_Keyword.save()44 categories = request.POST.getlist('category')45 categories.append('OTHERS')46 for category in categories:47 store_category = Keyword_category(name=category.upper(), keywordId=store_Keyword)48 store_category.save()49 """Run BackGround Job For Panding Task"""50 Keyword_result = KeywordSearch.objects.filter(status=4).values()51 for filter in Keyword_result:52 del filter["created_at"]53 del filter["updated_at"]54 keyword_searchId = KeywordSearch.objects.get(pk=filter['id'])55 keyword_searchId.status = 056 keyword_searchId.save()57 create_lists = [filter]58 Documen_job(create_lists)59 return redirect("searchResult")6061class SearchResultView(View):62 template_name = "searchBar/searchResult.html"6364 def get(self, request):65 if request.user.is_authenticated:66 user = request.user.username67 Keyword_result = KeywordSearch.objects.all().order_by('id')68 final_result = []69 for result in Keyword_result:7071 types_of_text = SearchResult.objects.filter(keywordId_id=result.id).values_list('type_of_text',72 flat=True).distinct()73 total_company_result = company_info.objects.filter(keywordId=result.id).values_list('company_url',74 flat=True).distinct()75 total_stored_result = SearchResult.objects.filter(keywordId_id=result.id).values_list('url',76 flat=True).distinct()77 78 result.total_stored_result = len(total_stored_result) + len(total_company_result)7980 if result.total_crawled_result is not None:81 result.total_crawled_result -= len(total_company_result)82 83 r = list(types_of_text[:1])84 if r:85 result.types_of_text = r[0]86 else:87 result.types_of_text = "TECHNOLOGY"88 if result.status == 0:89 result.status = 'Pending'90 elif result.status == 1:91 result.status = 'Running'92 elif result.status == 2:93 result.status = 'Completed'94 result.total_crawled_result = result.total_stored_result95 final_result.append(result)96 return render(request, self.template_name, {'params': final_result})9798 def post(self, request):99100 if 'load' in request.POST:101 Keyword_result = KeywordSearch.objects.filter(status=0).values()102 # print(Keyword_result)103 keywords_data = []104 for filter in Keyword_result:105 if filter['filter'] == 'Document':106 pass107 # document_Crawl(Keyword_result)108 elif filter['filter'] == 'Website':109 keywords_data.append(filter)110 # test_crawl(keywords_data)111 Documen_job(keywords_data)112 return redirect("searchResult")113 else:114 selected_tests = request.POST['test_list_ids']115 selected_tests = json.loads(selected_tests)116 for i, test in enumerate(selected_tests):117 delete_records = KeywordSearch.objects.get(id=test)118 delete_records.delete()119 return HttpResponse("success")120121class result(View):122 def get(self, request):123 searches = request.GET['search']124 matches = Innovation.objects.all().order_by("title").filter(Q(title__contains=searches)).values()125 return JsonResponse({"models_to_return": list(matches)})126127128class updateResult(View):129 def get(self, request):130 Keyword_result = KeywordSearch.objects.all().values()131 object_result = []132133 for result in Keyword_result:134 if result['status'] == 0:135 result['status'] = 'Pending'136 elif result['status'] == 1:137 result['status'] = 'Running'138 elif result['status'] == 2:139 result['status'] = 'Completed'140 object_result.append(result)141 return JsonResponse({"models_to_return": list(object_result)})142143144class filterResult(View):145 template_name = "searchBar/searchResult.html"146147 def get(self, request, status_id):148 result_list = KeywordSearch.objects.filter(status=status_id).values()149 final_result = []150 for result in result_list:151 if result['status'] == 0:152 result['status'] = 'Pending'153 elif result['status'] == 1:154 result['status'] = 'Running'155 elif result['status'] == 2:156 result['status'] = 'Completed'157 final_result.append(result)158 return render(request, self.template_name, {'params': final_result})159160161"""New Overview page Response"""162163164class SearchListView(View):165 template_name1 = "searchBar/searchList.html"166 template_name2 = "searchBar/weboverview_ref.html"167168 def get(self, request, search_id):169 keywordSearchResult = KeywordSearch.objects.get(id=search_id)170 """Get All Type Of Url_extension"""171 extract_url_extension_type = SearchResult.objects.filter(keywordId_id=search_id).values_list(172 'url_extension_type', flat=True).distinct()173 """Get Keyword_Id To find Results"""174 SearchResults = SearchResult.objects.filter(keywordId_id=search_id).values()175 """Get Type_of_text"""176 types_of_text = SearchResult.objects.filter(keywordId_id=search_id).values_list('type_of_text',177 flat=True).distinct()178 custom_result = {}179180 for filter in extract_url_extension_type:181 filterResults = SearchResult.objects.filter(182 Q(keywordId_id=search_id) & Q(url_extension_type=filter)).values()183 custom_result[filter] = filterResults184 """ Finding Company_Info Witch Stores From Google Map Api"""185 company_data = company_info.objects.filter(keywordId_id=search_id).values()186 return render(request, self.template_name2,187 {'result': SearchResults, 'finalResult': custom_result, 'keywordSearch': keywordSearchResult,188 'types_of_text': types_of_text, 'url_extension': extract_url_extension_type, 'select_type': '',189 'company_details': company_data})190191192"""Replica"""193194195class SearchListTypeView(View):196 template_name1 = "searchBar/searchList.html"197 template_name2 = "searchBar/weboverview_ref.html"198199 def get(self, request, search_id, type):200 keywordSearchResult = KeywordSearch.objects.get(id=search_id)201 desc_is_null = False202 if not keywordSearchResult.description:203 desc_is_null = True204 """Get All Type Of Url_extension"""205 extract_url_extension_type = SearchResult.objects.filter(keywordId_id=search_id).values_list(206 'url_extension_type', flat=True).distinct()207 """Get Keyword_Id To find Results"""208 SearchResults = SearchResult.objects.filter(keywordId_id=search_id).values()209 """Get Type_of_text"""210 types_of_text = SearchResult.objects.filter(keywordId_id=search_id).values_list('type_of_text',211 flat=True).distinct()212213 custom_result = {}214 for filter in extract_url_extension_type:215 filterResults = SearchResult.objects.filter(216 Q(keywordId_id=search_id) & Q(url_extension_type=filter) & Q(type_of_text=type)).order_by(217 '-matched_similarity').values()218 custom_result[filter] = filterResults219 """Finding Company_Info Witch Stores From Google Map Api"""220 company_data = company_info.objects.filter(keywordId_id=search_id).order_by('-matched_similarity').values()221222 return render(request, self.template_name2,223 {'result': SearchResults, 'finalResult': custom_result, 'keywordSearch': keywordSearchResult,224 'types_of_text': types_of_text, 'url_extension': extract_url_extension_type,225 'select_type': type, 'company_details': company_data, 'desc_is_null': desc_is_null})226227228"""Old_Overview page Response"""229230231# class SearchListView(View):232# template_name1 = "searchBar/searchList.html"233# template_name2 = "searchBar/weboverview.html"234#235# def get(self, request, search_id):236# keywordSearchResult = KeywordSearch.objects.get(id=search_id)237# SearchResults = SearchResult.objects.filter(keywordId_id=search_id).values()238# return render(request, self.template_name2, {'result': SearchResults, 'keywordSearch': keywordSearchResult})239240241class ExportCsvView(View):242243 def post(self, request):244 fileName = request.POST['filename'] + '.csv'245 filePath = 'media/' + fileName246 search_id = request.POST['search_id']247 company_search_id = request.POST['company_startup_id']248 check_all_ids = request.POST['check_all_ids']249 search_ids = json.loads(search_id)250 allcheck_ids = json.loads(check_all_ids)251 print(allcheck_ids)252 company_search_ids = json.loads(company_search_id)253254 """Extracting_data For all checked_id with Type"""255 search_result_id_list = []256 for allcheck_id in allcheck_ids:257 SearchResults = SearchResult.objects.filter(keywordId=allcheck_id['keyword_id'],258 url_extension_type=allcheck_id['type'],type_of_text=allcheck_id['types_of_text'],).values_list('id',259 flat=True).distinct().order_by('-matched_similarity')260 for id in SearchResults:261 search_result_id_list.append(id)262 """combine Two search id least"""263 all_searchid = search_result_id_list + search_ids264 """Removing same Id's from list and creating Final list of id's"""265 final_search_ids = []266 for id in all_searchid:267 if int(id) not in final_search_ids:268 final_search_ids.append(id)269 """Writing the csv file"""270 with open(filePath, 'w', newline='') as file:271 writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')272 writer.writerow(273 ["Title", "URL", "Description", "Type", "Category", "Subcategory", "Rating"])274 275 276 for ids in final_search_ids:277 searchResult = SearchResult.objects.get(pk=ids)278 keywordSearchResult = KeywordSearch.objects.get(pk=searchResult.keywordId_id)279 writer.writerow(280 [searchResult.title, searchResult.url, searchResult.description, keywordSearchResult.filter,281 searchResult.type_of_text, searchResult.url_extension_type, searchResult.matched_similarity])282 283 284 for company_id in company_search_ids:285 searchResult = SearchResult.objects.get(pk=company_id)286 keywordSearchResult = KeywordSearch.objects.get(pk=searchResult.keywordId_id)287 company_details = company_info.objects.get(searchResultId=company_id)288 writer.writerow(289 [company_details.company_name, company_details.company_url, searchResult.description,290 keywordSearchResult.filter,291 searchResult.type_of_text,"COMPANY / STARTUP" , keywordSearchResult.spin])292293 294 return JsonResponse({"filePath": filePath, "fileName": fileName})295296297class DownloadServerView(View):298299 def post(self, request):300 test = '%d%m%Y'301 dte = dt.now().strftime(test)302 fileName = "innovation{}.xlsx".format(dte)303 filePath = 'media/searchresult/' + fileName304 search_id = request.POST['search_id']305 search_ids = json.loads(search_id)306307 with open(filePath, 'w') as file:308 writer = csv.writer(file, )309 writer.writerow(["Title", "URL", "Description"])310 for ids in search_ids:311 searchResult = SearchResult.objects.get(pk=ids)312 writer.writerow([searchResult.title, searchResult.url, searchResult.description])313 return JsonResponse({"filePath": filePath, "fileName": fileName})314315316class DownloadLocallyView(View):317318 def post(self, request):319 innvoation_id = request.POST['innvoation_id']320 # fileName = "innovation{}.xlsx".format(innvoation_id)321 fileName = "innovation_{}.xlsx".format(innvoation_id)322 filePath = 'media/downloadLocally/' + fileName323 search_id = request.POST['search_id']324 search_ids = json.loads(search_id)325 if len(search_id) > 2:326 with open(filePath, 'w') as file:327 writer = csv.writer(file, )328 writer.writerow(["Title", "URL", "Description"])329 # data showing based on search ids330 for ids in search_ids:331 searchResult = SearchResult.objects.get(pk=ids)332 writer.writerow([searchResult.title, searchResult.url, searchResult.description])333334 else:335 with open(filePath, 'w') as file:336 # data showing based on innovation id337 writer = csv.writer(file, )338 writer.writerow(["Title", "URL", "Description"])339 searchResultData = SearchResult.objects.filter(keywordId_id=innvoation_id)340 for search in searchResultData:341 writer.writerow([search.title, search.url, search.description])342343 return JsonResponse({"filePath": filePath, "fileName": fileName})344345346class DownloadFile(View):347348 def post(self, request):349 url = request.POST['linkUrls']350 fileName = request.POST['fileName'];351 filePath = 'media/downloadFileTempLocally/' + request.POST['fileName']352 wget.download(url, filePath)353 return JsonResponse({"filePath": filePath, "fileName": fileName})354355356def delete_duplicate_link(search_id):357 keywordSearchResult = KeywordSearch.objects.get(id=search_id)358 SearchResults = SearchResult.objects.filter(keywordId_id=search_id).values()359 y = []360 t = []361 z = []362 for a in SearchResults:363 if not a["url"] in y:364 y.append(a["url"])365 else:366 t.append(a["url"])367 z.append(a["id"])368 urldel = SearchResult.objects.get(id=a["id"])369 urldel.delete()370
...
test_search.py
Source:test_search.py
...70 'time-ms': 2,71 'cpu-time-ms': 072 }73 }74 def test_cloudsearch_qsearch(self):75 search = SearchConnection(endpoint=HOSTNAME)76 search.search(q='Test')77 args = self.get_args(HTTPretty.last_request.raw_requestline)78 self.assertEqual(args[b'q'], [b"Test"])79 self.assertEqual(args[b'start'], [b"0"])80 self.assertEqual(args[b'size'], [b"10"])81 def test_cloudsearch_bqsearch(self):82 search = SearchConnection(endpoint=HOSTNAME)83 search.search(bq="'Test'")84 args = self.get_args(HTTPretty.last_request.raw_requestline)85 self.assertEqual(args[b'bq'], [b"'Test'"])86 def test_cloudsearch_search_details(self):87 search = SearchConnection(endpoint=HOSTNAME)88 search.search(q='Test', size=50, start=20)89 args = self.get_args(HTTPretty.last_request.raw_requestline)90 self.assertEqual(args[b'q'], [b"Test"])91 self.assertEqual(args[b'size'], [b"50"])92 self.assertEqual(args[b'start'], [b"20"])93 def test_cloudsearch_facet_single(self):94 search = SearchConnection(endpoint=HOSTNAME)95 search.search(q='Test', facet=["Author"])96 args = self.get_args(HTTPretty.last_request.raw_requestline)97 self.assertEqual(args[b'facet'], [b"Author"])98 def test_cloudsearch_facet_multiple(self):99 search = SearchConnection(endpoint=HOSTNAME)100 search.search(q='Test', facet=["author", "cat"])101 args = self.get_args(HTTPretty.last_request.raw_requestline)102 self.assertEqual(args[b'facet'], [b"author,cat"])103 def test_cloudsearch_facet_constraint_single(self):104 search = SearchConnection(endpoint=HOSTNAME)105 search.search(106 q='Test',107 facet_constraints={'author': "'John Smith','Mark Smith'"})108 args = self.get_args(HTTPretty.last_request.raw_requestline)109 self.assertEqual(args[b'facet-author-constraints'],110 [b"'John Smith','Mark Smith'"])111 def test_cloudsearch_facet_constraint_multiple(self):112 search = SearchConnection(endpoint=HOSTNAME)113 search.search(114 q='Test',115 facet_constraints={'author': "'John Smith','Mark Smith'",116 'category': "'News','Reviews'"})117 args = self.get_args(HTTPretty.last_request.raw_requestline)118 self.assertEqual(args[b'facet-author-constraints'],119 [b"'John Smith','Mark Smith'"])120 self.assertEqual(args[b'facet-category-constraints'],121 [b"'News','Reviews'"])122 def test_cloudsearch_facet_sort_single(self):123 search = SearchConnection(endpoint=HOSTNAME)124 search.search(q='Test', facet_sort={'author': 'alpha'})125 args = self.get_args(HTTPretty.last_request.raw_requestline)126 self.assertEqual(args[b'facet-author-sort'], [b'alpha'])127 def test_cloudsearch_facet_sort_multiple(self):128 search = SearchConnection(endpoint=HOSTNAME)129 search.search(q='Test', facet_sort={'author': 'alpha',130 'cat': 'count'})131 args = self.get_args(HTTPretty.last_request.raw_requestline)132 self.assertEqual(args[b'facet-author-sort'], [b'alpha'])133 self.assertEqual(args[b'facet-cat-sort'], [b'count'])134 def test_cloudsearch_top_n_single(self):135 search = SearchConnection(endpoint=HOSTNAME)136 search.search(q='Test', facet_top_n={'author': 5})137 args = self.get_args(HTTPretty.last_request.raw_requestline)138 self.assertEqual(args[b'facet-author-top-n'], [b'5'])139 def test_cloudsearch_top_n_multiple(self):140 search = SearchConnection(endpoint=HOSTNAME)141 search.search(q='Test', facet_top_n={'author': 5, 'cat': 10})142 args = self.get_args(HTTPretty.last_request.raw_requestline)143 self.assertEqual(args[b'facet-author-top-n'], [b'5'])144 self.assertEqual(args[b'facet-cat-top-n'], [b'10'])145 def test_cloudsearch_rank_single(self):146 search = SearchConnection(endpoint=HOSTNAME)147 search.search(q='Test', rank=["date"])148 args = self.get_args(HTTPretty.last_request.raw_requestline)149 self.assertEqual(args[b'rank'], [b'date'])150 def test_cloudsearch_rank_multiple(self):151 search = SearchConnection(endpoint=HOSTNAME)152 search.search(q='Test', rank=["date", "score"])153 args = self.get_args(HTTPretty.last_request.raw_requestline)154 self.assertEqual(args[b'rank'], [b'date,score'])155 def test_cloudsearch_result_fields_single(self):156 search = SearchConnection(endpoint=HOSTNAME)157 search.search(q='Test', return_fields=['author'])158 args = self.get_args(HTTPretty.last_request.raw_requestline)159 self.assertEqual(args[b'return-fields'], [b'author'])160 def test_cloudsearch_result_fields_multiple(self):161 search = SearchConnection(endpoint=HOSTNAME)162 search.search(q='Test', return_fields=['author', 'title'])163 args = self.get_args(HTTPretty.last_request.raw_requestline)164 self.assertEqual(args[b'return-fields'], [b'author,title'])165 def test_cloudsearch_t_field_single(self):166 search = SearchConnection(endpoint=HOSTNAME)167 search.search(q='Test', t={'year': '2001..2007'})168 args = self.get_args(HTTPretty.last_request.raw_requestline)169 self.assertEqual(args[b't-year'], [b'2001..2007'])170 def test_cloudsearch_t_field_multiple(self):171 search = SearchConnection(endpoint=HOSTNAME)172 search.search(q='Test', t={'year': '2001..2007', 'score': '10..50'})173 args = self.get_args(HTTPretty.last_request.raw_requestline)174 self.assertEqual(args[b't-year'], [b'2001..2007'])175 self.assertEqual(args[b't-score'], [b'10..50'])176 def test_cloudsearch_results_meta(self):177 """Check returned metadata is parsed correctly"""178 search = SearchConnection(endpoint=HOSTNAME)179 results = search.search(q='Test')180 # These rely on the default response which is fed into HTTPretty181 self.assertEqual(results.rank, "-text_relevance")182 self.assertEqual(results.match_expression, "Test")183 def test_cloudsearch_results_info(self):184 """Check num_pages_needed is calculated correctly"""185 search = SearchConnection(endpoint=HOSTNAME)186 results = search.search(q='Test')187 # This relies on the default response which is fed into HTTPretty188 self.assertEqual(results.num_pages_needed, 3.0)189 def test_cloudsearch_results_matched(self):190 """191 Check that information objects are passed back through the API192 correctly.193 """194 search = SearchConnection(endpoint=HOSTNAME)195 query = search.build_query(q='Test')196 results = search(query)197 self.assertEqual(results.search_service, search)198 self.assertEqual(results.query, query)199 def test_cloudsearch_results_hits(self):200 """Check that documents are parsed properly from AWS"""201 search = SearchConnection(endpoint=HOSTNAME)202 results = search.search(q='Test')203 hits = list(map(lambda x: x['id'], results.docs))204 # This relies on the default response which is fed into HTTPretty205 self.assertEqual(206 hits, ["12341", "12342", "12343", "12344",207 "12345", "12346", "12347"])208 def test_cloudsearch_results_iterator(self):209 """Check the results iterator"""210 search = SearchConnection(endpoint=HOSTNAME)211 results = search.search(q='Test')212 results_correct = iter(["12341", "12342", "12343", "12344",213 "12345", "12346", "12347"])214 for x in results:215 self.assertEqual(x['id'], next(results_correct))216 def test_cloudsearch_results_internal_consistancy(self):217 """Check the documents length matches the iterator details"""218 search = SearchConnection(endpoint=HOSTNAME)219 results = search.search(q='Test')220 self.assertEqual(len(results), len(results.docs))221 def test_cloudsearch_search_nextpage(self):222 """Check next page query is correct"""223 search = SearchConnection(endpoint=HOSTNAME)224 query1 = search.build_query(q='Test')225 query2 = search.build_query(q='Test')226 results = search(query2)227 self.assertEqual(results.next_page().query.start,228 query1.start + query1.size)229 self.assertEqual(query1.q, query2.q)230class CloudSearchSearchFacetTest(CloudSearchSearchBaseTest):231 response = {232 'rank': '-text_relevance',233 'match-expr': "Test",234 'hits': {235 'found': 30,236 'start': 0,237 'hit': CloudSearchSearchBaseTest.hits238 },239 'info': {240 'rid': 'b7c167f6c2da6d93531b9a7b314ad030b3a74803b4b7797edb905ba5a6a08',241 'time-ms': 2,242 'cpu-time-ms': 0243 },244 'facets': {245 'tags': {},246 'animals': {'constraints': [{'count': '2', 'value': 'fish'}, {'count': '1', 'value': 'lions'}]},247 }248 }249 def test_cloudsearch_search_facets(self):250 #self.response['facets'] = {'tags': {}}251 search = SearchConnection(endpoint=HOSTNAME)252 results = search.search(q='Test', facet=['tags'])253 self.assertTrue('tags' not in results.facets)254 self.assertEqual(results.facets['animals'], {u'lions': u'1', u'fish': u'2'})255class CloudSearchNonJsonTest(CloudSearchSearchBaseTest):256 response = b'<html><body><h1>500 Internal Server Error</h1></body></html>'257 response_status = 500258 content_type = 'text/xml'259 def test_response(self):260 search = SearchConnection(endpoint=HOSTNAME)261 with self.assertRaises(SearchServiceException):262 search.search(q='Test')263class CloudSearchUnauthorizedTest(CloudSearchSearchBaseTest):264 response = b'<html><body><h1>403 Forbidden</h1>foo bar baz</body></html>'265 response_status = 403266 content_type = 'text/html'267 def test_response(self):268 search = SearchConnection(endpoint=HOSTNAME)269 with self.assertRaisesRegexp(SearchServiceException, 'foo bar baz'):270 search.search(q='Test')271class FakeResponse(object):272 status_code = 405273 content = b''274class CloudSearchConnectionTest(unittest.TestCase):275 cloudsearch = True276 def setUp(self):277 super(CloudSearchConnectionTest, self).setUp()278 self.conn = SearchConnection(279 endpoint='test-domain.cloudsearch.amazonaws.com'280 )281 def test_expose_additional_error_info(self):282 mpo = mock.patch.object283 fake = FakeResponse()284 fake.content = b'Nopenopenope'285 # First, in the case of a non-JSON, non-403 error.286 with mpo(requests, 'get', return_value=fake) as mock_request:287 with self.assertRaises(SearchServiceException) as cm:288 self.conn.search(q='not_gonna_happen')289 self.assertTrue('non-json response' in str(cm.exception))290 self.assertTrue('Nopenopenope' in str(cm.exception))291 # Then with JSON & an 'error' key within.292 fake.content = json.dumps({293 'error': "Something went wrong. Oops."294 }).encode('utf-8')295 with mpo(requests, 'get', return_value=fake) as mock_request:296 with self.assertRaises(SearchServiceException) as cm:297 self.conn.search(q='no_luck_here')298 self.assertTrue('Unknown error' in str(cm.exception))...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!