diff --git a/.gitignore b/.gitignore index e1bf595b5..ed2994d91 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ node_modules +bower_components # released binaries release/ dist diff --git a/bower_components/bootstrap-sortable/.bower.json b/bower_components/bootstrap-sortable/.bower.json deleted file mode 100644 index 4be322461..000000000 --- a/bower_components/bootstrap-sortable/.bower.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "bootstrap-sortable", - "version": "2.0.1", - "homepage": "https://github.com/drvic10k/bootstrap-sortable", - "authors": [ - "Matus Brlit " - ], - "description": "Adding sorting ability to HTML tables", - "main": "Scripts/bootstrap-sortable.js", - "keywords": [ - "sort table", - "sortable", - "sortable table", - "bootstrap sortable", - "bootstrap-sortable" - ], - "license": "MIT", - "ignore": [ - "Scripts/moment.min.js" - ], - "dependencies": { - "jquery": ">= 1.9.0", - "moment": ">= 2.3.1" - }, - "_release": "2.0.1", - "_resolution": { - "type": "version", - "tag": "2.0.1", - "commit": "90a15de789662d4c3161b60baf43d16b2b401a69" - }, - "_source": "https://github.com/drvic10k/bootstrap-sortable.git", - "_target": "^2.0.1", - "_originalSource": "bootstrap-sortable" -} \ No newline at end of file diff --git a/bower_components/bootstrap-sortable/.gitignore b/bower_components/bootstrap-sortable/.gitignore deleted file mode 100644 index 7a1056a29..000000000 --- a/bower_components/bootstrap-sortable/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/* -npm-debug.log \ No newline at end of file diff --git a/bower_components/bootstrap-sortable/.travis.yml b/bower_components/bootstrap-sortable/.travis.yml deleted file mode 100644 index 20f0c0bc2..000000000 --- a/bower_components/bootstrap-sortable/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "4.2" diff --git a/bower_components/bootstrap-sortable/Contents/bootstrap-sortable.css b/bower_components/bootstrap-sortable/Contents/bootstrap-sortable.css deleted file mode 100644 index aed89cd62..000000000 --- a/bower_components/bootstrap-sortable/Contents/bootstrap-sortable.css +++ /dev/null @@ -1,110 +0,0 @@ -/** - * adding sorting ability to HTML tables with Bootstrap styling - * @summary HTML tables sorting ability - * @version 2.0.0 - * @requires tinysort, moment.js, jQuery - * @license MIT - * @author Matus Brlit (drvic10k) - * @copyright Matus Brlit (drvic10k), bootstrap-sortable contributors - */ - -table.sortable span.sign { - display: block; - position: absolute; - top: 50%; - right: 5px; - font-size: 12px; - margin-top: -10px; - color: #bfbfc1; -} - -table.sortable th:after { - display: block; - position: absolute; - top: 50%; - right: 5px; - font-size: 12px; - margin-top: -10px; - color: #bfbfc1; -} - -table.sortable th.arrow:after { - content: ''; -} - -table.sortable span.arrow, span.reversed, th.arrow.down:after, th.reversedarrow.down:after, th.arrow.up:after, th.reversedarrow.up:after { - border-style: solid; - border-width: 5px; - font-size: 0; - border-color: #ccc transparent transparent transparent; - line-height: 0; - height: 0; - width: 0; - margin-top: -2px; -} - - table.sortable span.arrow.up, th.arrow.up:after { - border-color: transparent transparent #ccc transparent; - margin-top: -7px; - } - -table.sortable span.reversed, th.reversedarrow.down:after { - border-color: transparent transparent #ccc transparent; - margin-top: -7px; -} - - table.sortable span.reversed.up, th.reversedarrow.up:after { - border-color: #ccc transparent transparent transparent; - margin-top: -2px; - } - -table.sortable span.az:before, th.az.down:after { - content: "a .. z"; -} - -table.sortable span.az.up:before, th.az.up:after { - content: "z .. a"; -} - -table.sortable th.az.nosort:after, th.AZ.nosort:after, th._19.nosort:after, th.month.nosort:after { - content: ".."; -} - -table.sortable span.AZ:before, th.AZ.down:after { - content: "A .. Z"; -} - -table.sortable span.AZ.up:before, th.AZ.up:after { - content: "Z .. A"; -} - -table.sortable span._19:before, th._19.down:after { - content: "1 .. 9"; -} - -table.sortable span._19.up:before, th._19.up:after { - content: "9 .. 1"; -} - -table.sortable span.month:before, th.month.down:after { - content: "jan .. dec"; -} - -table.sortable span.month.up:before, th.month.up:after { - content: "dec .. jan"; -} - -table.sortable>thead th:not([data-defaultsort=disabled]) { - cursor: pointer; - position: relative; - top: 0; - left: 0; -} - -table.sortable>thead th:hover:not([data-defaultsort=disabled]) { - background: #efefef; -} - -table.sortable>thead th div.mozilla { - position: relative; -} diff --git a/bower_components/bootstrap-sortable/README.md b/bower_components/bootstrap-sortable/README.md deleted file mode 100644 index 94bfe7f94..000000000 --- a/bower_components/bootstrap-sortable/README.md +++ /dev/null @@ -1,83 +0,0 @@ -[![Build Status](https://travis-ci.org/drvic10k/bootstrap-sortable.svg?branch=master)](https://travis-ci.org/drvic10k/bootstrap-sortable) -[![Issue Stats](http://issuestats.com/github/drvic10k/bootstrap-sortable/badge/issue?style=flat)](http://issuestats.com/github/drvic10k/bootstrap-sortable) - -bootstrap-sortable -================== -adding sorting ability to HTML tables with Bootstrap styling -Current version: 1.12.0 / 2.0.1 - -Sorting provided by [TinySort](https://github.com/Sjeiti/TinySort). -Date parsing provided by [moment.js](https://github.com/timrwood/moment/). - -Available for download with NuGet, search for `bootstrap-sortable`. -Working [demo](http://drvic10k.github.io/bootstrap-sortable/). - -For compatibility issues with older browsers and possible workarounds, please look into the [issues list](https://github.com/drvic10k/bootstrap-sortable/issues?labels=compatibility&page=1&state=closed). - -In version 2, the parameters to `$.bootstrapSortable` function were changed to single Object. For basic compatibility, you can still use single Boolean parameter (applyLast), other parameters are passed as properties of the Object. - -####Dependencies: -You should add the provided "moment.js" library, or get yourself a copy from http://momentjs.com. - -####Basic usage: - -Add references to bootstrap-sortable.css and bootstrap-sortable.js to your page. Add class "sortable" to your bootstrap table. -HTML table has to be properly formated, using ``, `` and `` elements. - -You can disable sorting for a column by using `data-defaultsort='disabled'` attribute in the `` element. - -When you add table rows or whole table from client side, use `$.bootstrapSortable({ applyLast: true })` function to add sortability to parts/tables that were not present at document.ready. -Use optional paramater `applyLast=true` if you want to preserve the last used sorting. - -After sorting a column, the table triggers an event `sorted`. - -####Cell with `colspan` and multiple header rows: -When you have multiple header rows, all header cells in the same column can be used to sort that column. - -Cells with `colspan` can also be used for sorting. When not specified, the first column of the colspan will be used for sorting. You can override this by using `data-mainsort` attribute. (Use zero-based index as the value, `data-mainsort='1'` will sort the second column of the span.) - -If this cell is in the last row of the header, the sorting will be done according to this cell. If there is another row below, the cell in this row will be used. (i.e. the sorting sign, default-sort setting...) - -#####!BREAKING CHANGE! -This changes the previous behaviour, where it only worked if the `colspan` cell was not in the last row and the `mainsort` had to be set on the cell in the next row. Now the `mainsort` is set on the `colspan` cell. - -####Sorting direction signs: -You can choose the sign that show the sort direcion. Default is the arrow pointing towards the higher value. - -This proved to be counterintuitive for some, so you can change it to opposite using the second parameter: `$.bootstrapSortable({ sign: 'reversed' })`. - -Other possible values are `'az'`, `'AZ'`, `'_19'`, `'month'`. (See [demo](http://htmlpreview.github.io/?https://github.com/drvic10k/bootstrap-sortable/blob/gh-pages/index.html) to see how it looks.) - -You can set individual signs for each column using `data-defaultsign` attribute in the `` element. - -#####Alternative way of styling the sorting signs: -Set `data-defaultsign='nospan'` and set a `class` on `` elements. Then the sorting signs will be shown using `:after` pseudoelement on ``. This can be seen on the first column in the demo page. -For this purpose, sorted column headers have classes `up`, `down` and `nosort` respectively and all previous styles are supported. -You can also do your own styling in `css`. - -####Optional attributes: - -You can preset one column to be sorted when table is loaded using `data-defaultsort` attribute: -```html - Column 1 - Column 2 - Column 3 -``` - -To change the initial direction when sorting a column for the first time, use the `data-firstsort` attribute: -```html - Column 1 - Column 2 - Column 3 -``` - -You can change the value that is used for sorting for each `` using `data-value` attribute: -```html -5,45 -``` - -You can sort dates, even if they are in different formats. Specify date formats according to moment.js documentation. This only works if you include any version of Moment.js. If Moment.js is not found it will fallback to the usual sorting. -```html -2013-06-24 -26 June 2013 -``` diff --git a/bower_components/bootstrap-sortable/Scripts/bootstrap-sortable.js b/bower_components/bootstrap-sortable/Scripts/bootstrap-sortable.js deleted file mode 100644 index 155722856..000000000 --- a/bower_components/bootstrap-sortable/Scripts/bootstrap-sortable.js +++ /dev/null @@ -1,295 +0,0 @@ -/** - * adding sorting ability to HTML tables with Bootstrap styling - * @summary HTML tables sorting ability - * @version 2.0.1 - * @requires tinysort, moment.js, jQuery - * @license MIT - * @author Matus Brlit (drvic10k) - * @copyright Matus Brlit (drvic10k), bootstrap-sortable contributors - */ - -/** - * TinySort is a small script that sorts HTML elements. It sorts by text- or attribute value, or by that of one of it's children. - * @summary A nodeElement sorting script. - * @version 2.3.6 - * @license MIT - * @author Ron Valstar - * @copyright Ron Valstar - * @namespace tinysort - */ -!function (e, t) { "use strict"; function r() { return t } "function" == typeof define && define.amd ? define("tinysort", r) : e.tinysort = t }(this, function () { "use strict"; function e(e, n) { function s() { 0 === arguments.length ? v({}) : t(arguments, function (e) { v(x(e) ? { selector: e } : e) }), d = $.length } function v(e) { var t = !!e.selector, n = t && ":" === e.selector[0], o = r(e || {}, m); $.push(r({ hasSelector: t, hasAttr: !(o.attr === l || "" === o.attr), hasData: o.data !== l, hasFilter: n, sortReturnNumber: "asc" === o.order ? 1 : -1 }, o)) } function S() { t(e, function (e, t) { M ? M !== e.parentNode && (k = !1) : M = e.parentNode; var r = $[0], n = r.hasFilter, o = r.selector, a = !o || n && e.matchesSelector(o) || o && e.querySelector(o), l = a ? R : V, s = { elm: e, pos: t, posn: l.length }; B.push(s), l.push(s) }), D = R.slice(0) } function y(e, t, r) { for (var n = r(e.toString()), o = r(t.toString()), a = 0; n[a] && o[a]; a++) if (n[a] !== o[a]) { var l = Number(n[a]), s = Number(o[a]); return l == n[a] && s == o[a] ? l - s : n[a] > o[a] ? 1 : -1 } return n.length - o.length } function N(e) { for (var t, r, n = [], o = 0, a = -1, l = 0; t = (r = e.charAt(o++)).charCodeAt(0) ;) { var s = 46 == t || t >= 48 && 57 >= t; s !== l && (n[++a] = "", l = s), n[a] += r } return n } function C(e, r) { var n = 0; for (0 !== p && (p = 0) ; 0 === n && d > p;) { var l = $[p], s = l.ignoreDashes ? f : u; if (t(h, function (e) { var t = e.prepare; t && t(l) }), l.sortFunction) n = l.sortFunction(e, r); else if ("rand" == l.order) n = Math.random() < .5 ? 1 : -1; else { var c = a, g = w(e, l), m = w(r, l), v = "" === g || g === o, S = "" === m || m === o; if (g === m) n = 0; else if (l.emptyEnd && (v || S)) n = v && S ? 0 : v ? 1 : -1; else { if (!l.forceStrings) { var C = x(g) ? g && g.match(s) : a, b = x(m) ? m && m.match(s) : a; if (C && b) { var A = g.substr(0, g.length - C[0].length), F = m.substr(0, m.length - b[0].length); A == F && (c = !a, g = i(C[0]), m = i(b[0])) } } n = g === o || m === o ? 0 : l.natural && (isNaN(g) || isNaN(m)) ? y(g, m, N) : m > g ? -1 : g > m ? 1 : 0 } } t(h, function (e) { var t = e.sort; t && (n = t(l, c, g, m, n)) }), n *= l.sortReturnNumber, 0 === n && p++ } return 0 === n && (n = e.pos > r.pos ? 1 : -1), n } function b() { var e = R.length === B.length; if (k && e) O ? R.forEach(function (e, t) { e.elm.style.order = t }) : M ? M.appendChild(A()) : console.warn("parentNode has been removed"); else { var t = $[0], r = t.place, n = "org" === r, o = "start" === r, a = "end" === r, l = "first" === r, s = "last" === r; if (n) R.forEach(F), R.forEach(function (e, t) { E(D[t], e.elm) }); else if (o || a) { var c = D[o ? 0 : D.length - 1], i = c && c.elm.parentNode, u = i && (o && i.firstChild || i.lastChild); u && (u !== c.elm && (c = { elm: u }), F(c), a && i.appendChild(c.ghost), E(c, A())) } else if (l || s) { var f = D[l ? 0 : D.length - 1]; E(F(f), A()) } } } function A() { return R.forEach(function (e) { q.appendChild(e.elm) }), q } function F(e) { var t = e.elm, r = c.createElement("div"); return e.ghost = r, t.parentNode.insertBefore(r, t), e } function E(e, t) { var r = e.ghost, n = r.parentNode; n.insertBefore(t, r), n.removeChild(r), delete e.ghost } function w(e, t) { var r, n = e.elm; return t.selector && (t.hasFilter ? n.matchesSelector(t.selector) || (n = l) : n = n.querySelector(t.selector)), t.hasAttr ? r = n.getAttribute(t.attr) : t.useVal ? r = n.value || n.getAttribute("value") : t.hasData ? r = n.getAttribute("data-" + t.data) : n && (r = n.textContent), x(r) && (t.cases || (r = r.toLowerCase()), r = r.replace(/\s+/g, " ")), null === r && (r = g), r } function x(e) { return "string" == typeof e } x(e) && (e = c.querySelectorAll(e)), 0 === e.length && console.warn("No elements to sort"); var D, M, q = c.createDocumentFragment(), B = [], R = [], V = [], $ = [], k = !0, z = e.length && e[0].parentNode, L = z.rootNode !== document, O = e.length && (n === o || n.useFlex !== !1) && !L && -1 !== getComputedStyle(z, null).display.indexOf("flex"); return s.apply(l, Array.prototype.slice.call(arguments, 1)), S(), R.sort(C), b(), R.map(function (e) { return e.elm }) } function t(e, t) { for (var r, n = e.length, o = n; o--;) r = n - o - 1, t(e[r], r) } function r(e, t, r) { for (var n in t) (r || e[n] === o) && (e[n] = t[n]); return e } function n(e, t, r) { h.push({ prepare: e, sort: t, sortBy: r }) } var o, a = !1, l = null, s = window, c = s.document, i = parseFloat, u = /(-?\d+\.?\d*)\s*$/g, f = /(\d+\.?\d*)\s*$/g, h = [], d = 0, p = 0, g = String.fromCharCode(4095), m = { selector: l, order: "asc", attr: l, data: l, useVal: a, place: "org", returns: a, cases: a, natural: a, forceStrings: a, ignoreDashes: a, sortFunction: l, useFlex: a, emptyEnd: a }; return s.Element && function (e) { e.matchesSelector = e.matchesSelector || e.mozMatchesSelector || e.msMatchesSelector || e.oMatchesSelector || e.webkitMatchesSelector || function (e) { for (var t = this, r = (t.parentNode || t.document).querySelectorAll(e), n = -1; r[++n] && r[n] != t;); return !!r[n] } }(Element.prototype), r(n, { loop: t }), r(e, { plugin: n, defaults: m }) }()); - -(function (global, factory) { - if (typeof define === 'function' && define.amd) { - define(['jquery', 'tinysort', 'moment'], factory); - } else { - factory(global.jQuery, global.tinysort, global.moment || undefined); - } -})(this, function ($, tinysort, moment) { - - var $document = $(document), - signClass, - sortEngine, - emptyEnd; - - $.bootstrapSortable = function (options) { - if (options == undefined) { - initialize({}); - } - else if (options.constructor === Boolean) { - initialize({ applyLast: options }); - } - else if (options.sortingHeader !== undefined) { - sortByColumn(options.sortingHeader); - } - else { - initialize(options); - } - }; - - function initialize(options) { - // Check if moment.js is available - var momentJsAvailable = (typeof moment !== 'undefined'); - - // Set class based on sign parameter - signClass = !options.sign ? "arrow" : options.sign; - - // Set sorting algorithm - if (options.customSort == 'default') - options.customSort = defaultSortEngine; - sortEngine = options.customSort || sortEngine || defaultSortEngine; - - emptyEnd = options.emptyEnd; - - // Set attributes needed for sorting - $('table.sortable').each(function () { - var $this = $(this); - var applyLast = (options.applyLast === true); - $this.find('span.sign').remove(); - - // Add placeholder cells for colspans - $this.find('> thead [colspan]').each(function () { - var colspan = parseFloat($(this).attr('colspan')); - for (var i = 1; i < colspan; i++) { - $(this).after(''); - } - }); - - // Add placeholder cells for rowspans - $this.find('> thead [rowspan]').each(function () { - var $cell = $(this); - var rowspan = parseFloat($cell.attr('rowspan')); - for (var i = 1; i < rowspan; i++) { - var parentRow = $cell.parent('tr'); - var nextRow = parentRow.next('tr'); - var index = parentRow.children().index($cell); - nextRow.children().eq(index).before(''); - } - }); - - // Set indexes to header cells - $this.find('> thead tr').each(function (rowIndex) { - $(this).find('th').each(function (columnIndex) { - var $header = $(this); - $header.addClass('nosort').removeClass('up down'); - $header.attr('data-sortcolumn', columnIndex); - $header.attr('data-sortkey', columnIndex + '-' + rowIndex); - }); - }); - - // Cleanup placeholder cells - $this.find('> thead .rowspan-compensate, .colspan-compensate').remove(); - - // Initialize sorting values specified in header - $this.find('th').each(function () { - var $header = $(this); - if ($header.attr('data-dateformat') !== undefined && momentJsAvailable) { - var colNumber = parseFloat($header.attr('data-sortcolumn')); - $this.find('td:nth-child(' + (colNumber + 1) + ')').each(function () { - var $cell = $(this); - $cell.attr('data-value', moment($cell.text(), $header.attr('data-dateformat')).format('YYYY/MM/DD/HH/mm/ss')); - }); - } - else if ($header.attr('data-valueprovider') !== undefined) { - var colNumber = parseFloat($header.attr('data-sortcolumn')); - $this.find('td:nth-child(' + (colNumber + 1) + ')').each(function () { - var $cell = $(this); - $cell.attr('data-value', new RegExp($header.attr('data-valueprovider')).exec($cell.text())[0]); - }); - } - }); - - // Initialize sorting values - $this.find('td').each(function () { - var $cell = $(this); - if ($cell.attr('data-dateformat') !== undefined && momentJsAvailable) { - $cell.attr('data-value', moment($cell.text(), $cell.attr('data-dateformat')).format('YYYY/MM/DD/HH/mm/ss')); - } - else if ($cell.attr('data-valueprovider') !== undefined) { - $cell.attr('data-value', new RegExp($cell.attr('data-valueprovider')).exec($cell.text())[0]); - } - else { - $cell.attr('data-value') === undefined && $cell.attr('data-value', $cell.text()); - } - }); - - var context = lookupSortContext($this), - bsSort = context.bsSort; - - $this.find('> thead th[data-defaultsort!="disabled"]').each(function (index) { - var $header = $(this); - var $sortTable = $header.closest('table.sortable'); - $header.data('sortTable', $sortTable); - var sortKey = $header.attr('data-sortkey'); - var thisLastSort = applyLast ? context.lastSort : -1; - bsSort[sortKey] = applyLast ? bsSort[sortKey] : $header.attr('data-defaultsort'); - if (bsSort[sortKey] !== undefined && (applyLast === (sortKey === thisLastSort))) { - bsSort[sortKey] = bsSort[sortKey] === 'asc' ? 'desc' : 'asc'; - doSort($header, $sortTable); - } - }); - }); - } - - // Add click event to table header - $document.on('click', 'table.sortable>thead th[data-defaultsort!="disabled"]', function (e) { - sortByColumn(this); - }); - - // element is the header of the column to sort (the clicked header) - function sortByColumn(element) { - var $this = $(element), $table = $this.data('sortTable') || $this.closest('table.sortable'); - doSort($this, $table); - } - - // Look up sorting data appropriate for the specified table (jQuery element). - // This allows multiple tables on one page without collisions. - function lookupSortContext($table) { - var context = $table.data("bootstrap-sortable-context"); - if (context === undefined) { - context = { bsSort: [], lastSort: undefined }; - $table.find('> thead th[data-defaultsort!="disabled"]').each(function (index) { - var $this = $(this); - var sortKey = $this.attr('data-sortkey'); - context.bsSort[sortKey] = $this.attr('data-defaultsort'); - if (context.bsSort[sortKey] !== undefined) { - context.lastSort = sortKey; - } - }); - $table.data("bootstrap-sortable-context", context); - } - return context; - } - - function defaultSortEngine(rows, sortingParams) { - tinysort(rows, sortingParams); - } - - // Sorting mechanism separated - function doSort($this, $table) { - $table.trigger('before-sort'); - - var sortColumn = parseFloat($this.attr('data-sortcolumn')), - context = lookupSortContext($table), - bsSort = context.bsSort; - - var colspan = $this.attr('colspan'); - if (colspan) { - var mainSort = parseFloat($this.data('mainsort')) || 0; - var rowIndex = parseFloat($this.data('sortkey').split('-').pop()); - - // If there is one more row in header, delve deeper - if ($table.find('> thead tr').length - 1 > rowIndex) { - doSort($table.find('[data-sortkey="' + (sortColumn + mainSort) + '-' + (rowIndex + 1) + '"]'), $table); - return; - } - // Otherwise, just adjust the sortColumn - sortColumn = sortColumn + mainSort; - } - - var localSignClass = $this.attr('data-defaultsign') || signClass; - - // update arrow icon - $table.find('> thead th').each(function () { - $(this).removeClass('up').removeClass('down').addClass('nosort'); - }); - - if ($.browser.mozilla) { - var moz_arrow = $table.find('> thead div.mozilla'); - if (moz_arrow !== undefined) { - moz_arrow.find('.sign').remove(); - moz_arrow.parent().html(moz_arrow.html()); - } - $this.wrapInner('
'); - $this.children().eq(0).append(''); - } - else { - $table.find('> thead span.sign').remove(); - $this.append(''); - } - - // sort direction - var sortKey = $this.attr('data-sortkey'); - var initialDirection = $this.attr('data-firstsort') !== 'desc' ? 'desc' : 'asc'; - - var newDirection = (bsSort[sortKey] || initialDirection); - if (context.lastSort === sortKey || bsSort[sortKey] === undefined) { - newDirection = newDirection === 'asc' ? 'desc' : 'asc'; - } - bsSort[sortKey] = newDirection; - context.lastSort = sortKey; - - if (bsSort[sortKey] === 'desc') { - $this.find('span.sign').addClass('up'); - $this.addClass('up').removeClass('down nosort'); - } else { - $this.addClass('down').removeClass('up nosort'); - } - - // remove rows that should not be sorted - var rows = $table.children('tbody').children('tr'); - var fixedRows = []; - $(rows.filter('[data-disablesort="true"]').get().reverse()).each(function (index, fixedRow) { - var $fixedRow = $(fixedRow); - fixedRows.push({ index: rows.index($fixedRow), row: $fixedRow }); - $fixedRow.remove(); - }); - - // sort rows - var rowsToSort = rows.not('[data-disablesort="true"]'); - if (rowsToSort.length != 0) { - var emptySorting = bsSort[sortKey] === 'asc' ? emptyEnd : false; - sortEngine(rowsToSort, { emptyEnd: emptySorting, selector: 'td:nth-child(' + (sortColumn + 1) + ')', order: bsSort[sortKey], data: 'value' }); - } - - // add back the fixed rows - $(fixedRows.reverse()).each(function (index, row) { - if (row.index === 0) { - $table.children('tbody').prepend(row.row); - } else { - $table.children('tbody').children('tr').eq(row.index - 1).after(row.row); - } - }); - - // add class to sorted column cells - $table.find('> tbody > tr > td.sorted,> thead th.sorted').removeClass('sorted'); - rowsToSort.find('td:eq(' + sortColumn + ')').addClass('sorted'); - $this.addClass('sorted'); - $table.trigger('sorted'); - } - - // jQuery 1.9 removed this object - if (!$.browser) { - $.browser = { chrome: false, mozilla: false, opera: false, msie: false, safari: false }; - var ua = navigator.userAgent; - $.each($.browser, function (c) { - $.browser[c] = ((new RegExp(c, 'i').test(ua))) ? true : false; - if ($.browser.mozilla && c === 'mozilla') { $.browser.mozilla = ((new RegExp('firefox', 'i').test(ua))) ? true : false; } - if ($.browser.chrome && c === 'safari') { $.browser.safari = false; } - }); - } - - // Initialise on DOM ready - $($.bootstrapSortable); - -}); diff --git a/bower_components/bootstrap-sortable/Tests/avoidFlippingOrder.html b/bower_components/bootstrap-sortable/Tests/avoidFlippingOrder.html deleted file mode 100644 index 6c5f193a1..000000000 --- a/bower_components/bootstrap-sortable/Tests/avoidFlippingOrder.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - Bootstrap Sortable Tables - - - - - - - - - - - - - - - - - - - - - - - - - - - -
h1h2
az
by
cx
dw
- - diff --git a/bower_components/bootstrap-sortable/Tests/avoidFlippingOrder.js b/bower_components/bootstrap-sortable/Tests/avoidFlippingOrder.js deleted file mode 100644 index fff96e5f0..000000000 --- a/bower_components/bootstrap-sortable/Tests/avoidFlippingOrder.js +++ /dev/null @@ -1,33 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'base/Tests/'; - -describe('Avoid flipping order', function () { - beforeEach(function () { - jasmine.getFixtures().load('avoidFlippingOrder.html'); - $.bootstrapSortable(); - }); - - it("Initially 'a' is first", function () { - var index = $('#az').index('tbody tr'); - expect(index).toBe(0); - }); - - it("Click h2, 'w' is first", function () { - $.bootstrapSortable({ sortingHeader: $('#h2') }); - var index = $('#dw').index('tbody tr'); - expect(index).toBe(0); - }); - - it("Click h2 twice, 'a' is first", function () { - $.bootstrapSortable({ sortingHeader: $('#h2') }); - $.bootstrapSortable({ sortingHeader: $('#h2') }); - var index = $('#az').index('tbody tr'); - expect(index).toBe(0); - }); - - it("Click h2 and h1, 'a' is first", function () { - $.bootstrapSortable({ sortingHeader: $('#h2') }); - $.bootstrapSortable({ sortingHeader: $('#h1') }); - var index = $('#az').index('tbody tr'); - expect(index).toBe(0); - }); -}) \ No newline at end of file diff --git a/bower_components/bootstrap-sortable/Tests/disableSortingOnRows.html b/bower_components/bootstrap-sortable/Tests/disableSortingOnRows.html deleted file mode 100644 index 6e858294d..000000000 --- a/bower_components/bootstrap-sortable/Tests/disableSortingOnRows.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - Bootstrap Sortable Tables - - - - - - - - - - - - - - - - - - - - - - -
a
b
c
z
- - diff --git a/bower_components/bootstrap-sortable/Tests/disableSortingOnRows.js b/bower_components/bootstrap-sortable/Tests/disableSortingOnRows.js deleted file mode 100644 index 45d664c88..000000000 --- a/bower_components/bootstrap-sortable/Tests/disableSortingOnRows.js +++ /dev/null @@ -1,23 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'base/Tests/'; - -describe('Disable sorting on rows', function () { - beforeEach(function () { - jasmine.getFixtures().load('disableSortingOnRows.html'); - $.bootstrapSortable(); - }); - - it("First row stays first", function () { - var index = $('#first').index('tbody tr td'); - expect(index).toBe(0); - }); - - it("Last row stays last", function () { - var index = $('#last').index('tbody tr td'); - expect(index).toBe(3); - }); - - it("Middle rows are ordered", function () { - var index = $('#b').index('tbody tr td'); - expect(index).toBe(2); - }); -}) \ No newline at end of file diff --git a/bower_components/bootstrap-sortable/Tests/emptyRowsSorting.html b/bower_components/bootstrap-sortable/Tests/emptyRowsSorting.html deleted file mode 100644 index bb452470c..000000000 --- a/bower_components/bootstrap-sortable/Tests/emptyRowsSorting.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - Bootstrap Sortable Tables - - - - - - - - - - - - - - - - - - - - - - - - - -
a
z
- - diff --git a/bower_components/bootstrap-sortable/Tests/emptyRowsSorting.js b/bower_components/bootstrap-sortable/Tests/emptyRowsSorting.js deleted file mode 100644 index 968daa18a..000000000 --- a/bower_components/bootstrap-sortable/Tests/emptyRowsSorting.js +++ /dev/null @@ -1,54 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'base/Tests/'; - -describe('Empty rows sorting', function () { - - describe('Empty rows are sorted at the end { emptyEnd: true }', function () { - beforeEach(function () { - jasmine.getFixtures().load('emptyRowsSorting.html'); - $.bootstrapSortable({ emptyEnd: true }); - }); - - it("Sort ascending", function () { - var header = $('#header'); - $.bootstrapSortable({ sortingHeader: header }); - var indexA = $('#a').index('tbody tr td'); - var indexZ = $('#z').index('tbody tr td'); - expect(indexA).toBe(0); - expect(indexZ).toBe(1); - }); - - it("Sort descending", function () { - $.bootstrapSortable({ sortingHeader: header }); - $.bootstrapSortable({ sortingHeader: header }); - var indexZ = $('#z').index('tbody tr td'); - var indexA = $('#a').index('tbody tr td'); - expect(indexZ).toBe(0); - expect(indexA).toBe(1); - }); - }); - - describe('Empty rows are sorted as default (beginning of the alphabet)', function () { - beforeEach(function () { - jasmine.getFixtures().load('emptyRowsSorting.html'); - $.bootstrapSortable(); - }); - - it("Sort ascending", function () { - var header = $('#header'); - $.bootstrapSortable({ sortingHeader: header }); - var indexA = $('#a').index('tbody tr td'); - var indexZ = $('#z').index('tbody tr td'); - expect(indexA).toBe(3); - expect(indexZ).toBe(4); - }); - - it("Sort descending", function () { - $.bootstrapSortable({ sortingHeader: header }); - $.bootstrapSortable({ sortingHeader: header }); - var indexA = $('#a').index('tbody tr td'); - var indexZ = $('#z').index('tbody tr td'); - expect(indexZ).toBe(0); - expect(indexA).toBe(1); - }); - }); -}); \ No newline at end of file diff --git a/bower_components/bootstrap-sortable/Tests/eventsRaising.html b/bower_components/bootstrap-sortable/Tests/eventsRaising.html deleted file mode 100644 index 6c5f193a1..000000000 --- a/bower_components/bootstrap-sortable/Tests/eventsRaising.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - Bootstrap Sortable Tables - - - - - - - - - - - - - - - - - - - - - - - - - - - -
h1h2
az
by
cx
dw
- - diff --git a/bower_components/bootstrap-sortable/Tests/eventsRaising.js b/bower_components/bootstrap-sortable/Tests/eventsRaising.js deleted file mode 100644 index e41d56f77..000000000 --- a/bower_components/bootstrap-sortable/Tests/eventsRaising.js +++ /dev/null @@ -1,49 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'base/Tests/'; - -describe('Events raising', function () { - beforeEach(function () { - jasmine.getFixtures().load('eventsRaising.html'); - }); - - it("before-sort is raised on initialization", function () { - var table = $('table.sortable'); - var wasRaised = false; - table.on('before-sort', function() { - wasRaised = true; - }); - $.bootstrapSortable(); - expect(wasRaised).toBe(true); - }); - - it("sorted is raised on initialization", function () { - var table = $('table.sortable'); - var wasRaised = false; - table.on('sorted', function () { - wasRaised = true; - }); - $.bootstrapSortable(); - expect(wasRaised).toBe(true); - }); - - it("before-sort is raised on manual sorting", function () { - var table = $('table.sortable'); - var wasRaised = false; - $.bootstrapSortable(); - table.on('before-sort', function () { - wasRaised = true; - }); - $.bootstrapSortable({ sortingHeader: $('#h2') }); - expect(wasRaised).toBe(true); - }); - - it("sorted is raised on manual sorting", function () { - var table = $('table.sortable'); - var wasRaised = false; - $.bootstrapSortable(); - table.on('sorted', function () { - wasRaised = true; - }); - $.bootstrapSortable({ sortingHeader: $('#h2') }); - expect(wasRaised).toBe(true); - }); -}) \ No newline at end of file diff --git a/bower_components/bootstrap-sortable/Tests/initializeSortingValues.html b/bower_components/bootstrap-sortable/Tests/initializeSortingValues.html deleted file mode 100644 index cad89918f..000000000 --- a/bower_components/bootstrap-sortable/Tests/initializeSortingValues.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - Bootstrap Sortable Tables - - - - - - - - - - - - - - - - - - - - - - - -
22/3/2012direct valuedirect value10%22/3/201210%
- - diff --git a/bower_components/bootstrap-sortable/Tests/initializeSortingValues.js b/bower_components/bootstrap-sortable/Tests/initializeSortingValues.js deleted file mode 100644 index f5b0f70c9..000000000 --- a/bower_components/bootstrap-sortable/Tests/initializeSortingValues.js +++ /dev/null @@ -1,40 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'base/Tests/'; - -describe('Initializing sorting values', function () { - beforeEach(function () { - jasmine.getFixtures().load('initializeSortingValues.html'); - $.bootstrapSortable(); - }); - - it("Date value", function () { - var cell = $('#date'); - expect(cell).toHaveData('value', '2012/03/22/00/00/00'); - }); - - it("Automatic value", function () { - var cell = $('#auto'); - expect(cell).toHaveData('value', 'direct value'); - }); - - it("Specified value", function () { - var cell = $('#specified'); - expect(cell).toHaveData('value', 'specified value'); - }); - - it("Regex value", function () { - var cell = $('#regex'); - expect(cell).toHaveData('value', 10); - }); - - describe('Format in header', function() { - it("Correctly applied date format", function () { - var cell = $('#dateHeader'); - expect(cell).toHaveData('value', '2012/03/22/00/00/00'); - }); - - it("Correctly applied regex value", function () { - var cell = $('#regexHeader'); - expect(cell).toHaveData('value', 10); - }); - }); -}) \ No newline at end of file diff --git a/bower_components/bootstrap-sortable/Tests/tableInsideTable.html b/bower_components/bootstrap-sortable/Tests/tableInsideTable.html deleted file mode 100644 index 956d7a86c..000000000 --- a/bower_components/bootstrap-sortable/Tests/tableInsideTable.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - Bootstrap Sortable Tables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
head1head2head3head4
2hi2015/04/085.234
5yeah2013/03/16548.2154
1test2005/10/241.547
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
head1head2head3head4
2hi2015/04/085.234
5yeah2013/03/16548.2154
1test2005/10/241.547
-
- - diff --git a/bower_components/bootstrap-sortable/Tests/tableInsideTable.js b/bower_components/bootstrap-sortable/Tests/tableInsideTable.js deleted file mode 100644 index 1e035c42a..000000000 --- a/bower_components/bootstrap-sortable/Tests/tableInsideTable.js +++ /dev/null @@ -1,34 +0,0 @@ -jasmine.getFixtures().fixturesPath = 'base/Tests/'; - -describe('Table inside table sorting', function() { - beforeEach(function() { - jasmine.getFixtures().load('tableInsideTable.html'); - $.bootstrapSortable(); - }); - - it("Outer table has correct order of rows", function() { - var index = $('#outerFirst').index('#outer > tr'); - expect(index).toBe(1); - }); - - it("Inner table has correct order of rows", function() { - var index = $('#innerFirst').index('#inner > tr'); - expect(index).toBe(0); - }); - - it("Inner table header keeps sorted class after outer sorting", function() { - var innerHeader = $('#innerh1'); - expect(innerHeader.hasClass('sorted')).toBe(true); - - $.bootstrapSortable({ sortingHeader: $('#outerh2') }); - expect(innerHeader.hasClass('sorted')).toBe(true); - }); - - it("Inner table header keeps sorted icon after outer sorting", function() { - var innerHeader = $('#innerh1'); - expect(innerHeader.children('.sign').length).toBe(1); - - $.bootstrapSortable({ sortingHeader: $('#outerh2') }); - expect(innerHeader.children('.sign').length).toBe(1); - }); -}); diff --git a/bower_components/bootstrap-sortable/bower.json b/bower_components/bootstrap-sortable/bower.json deleted file mode 100644 index a6ac59371..000000000 --- a/bower_components/bootstrap-sortable/bower.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "bootstrap-sortable", - "version": "2.0.0", - "homepage": "https://github.com/drvic10k/bootstrap-sortable", - "authors": [ - "Matus Brlit " - ], - "description": "Adding sorting ability to HTML tables", - "main": "Scripts/bootstrap-sortable.js", - "keywords": [ - "sort table", "sortable", "sortable table", "bootstrap sortable", "bootstrap-sortable" - ], - "license": "MIT", - "ignore": [ - "Scripts/moment.min.js" - ], - "dependencies": { - "jquery": ">= 1.9.0", - "moment": ">= 2.3.1" - } -} diff --git a/bower_components/bootstrap-sortable/karma.conf.js b/bower_components/bootstrap-sortable/karma.conf.js deleted file mode 100644 index 55e749c50..000000000 --- a/bower_components/bootstrap-sortable/karma.conf.js +++ /dev/null @@ -1,66 +0,0 @@ -module.exports = function (config) { - var configuration = { - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], - - - // list of files / patterns to load in the browser - files: [ - 'node_modules/jquery/dist/jquery.js', - 'node_modules/jasmine-jquery/lib/jasmine-jquery.js', - 'node_modules/jasmine2-custom-message/jasmine2-custom-message.js', - { pattern: 'Tests/*.html', included: true }, - { pattern: 'Tests/*.js', included: true }, - 'Scripts/moment.min.js', - 'Scripts/bootstrap-sortable.js' - ], - - - // list of files to exclude - exclude: [ - ], - - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - }, - - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['mocha'], - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: false, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['PhantomJS'], - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: true - }; - - config.set(configuration); -} - diff --git a/bower_components/bootstrap-sortable/license.md b/bower_components/bootstrap-sortable/license.md deleted file mode 100644 index 41a83523d..000000000 --- a/bower_components/bootstrap-sortable/license.md +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) 2016 Matúš Brliť (drvic10k), bootstrap-sortable contributors - -Copyright (c) 2011-2013 Tim Wood, Iskren Chernev, Moment.js contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/bower_components/bootstrap-sortable/package.json b/bower_components/bootstrap-sortable/package.json deleted file mode 100644 index ed902d038..000000000 --- a/bower_components/bootstrap-sortable/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "bootstrap-sortable", - "version": "1.11.2", - "description": "adding sorting ability to HTML tables", - "scripts": { - "test": "karma start karma.conf.js --single-run" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/drvic10k/bootstrap-sortable.git" - }, - "author": "Matus Brlit ", - "license": "MIT", - "bugs": { - "url": "https://github.com/drvic10k/bootstrap-sortable/issues" - }, - "homepage": "https://github.com/drvic10k/bootstrap-sortable#readme", - "devDependencies": { - "grunt": "^0.4.5", - "jasmine-core": "^2.4.1", - "jasmine-jquery": "^2.1.1", - "jasmine2-custom-message": "^0.8.0", - "jquery": "^2.1.4", - "karma": "^0.13.16", - "karma-jasmine": "^0.3.6", - "karma-mocha-reporter": "^1.1.3", - "karma-phantomjs-launcher": "^0.2.2", - "phantomjs": "^1.9.19" - } -} diff --git a/bower_components/bootstrap/.bower.json b/bower_components/bootstrap/.bower.json deleted file mode 100644 index 2e57901e4..000000000 --- a/bower_components/bootstrap/.bower.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", - "keywords": [ - "css", - "js", - "sass", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "homepage": "https://getbootstrap.com", - "license": "MIT", - "moduleType": "globals", - "main": [ - "scss/bootstrap.scss", - "dist/js/bootstrap.js" - ], - "ignore": [ - "/.*", - "_config.yml", - "CNAME", - "composer.json", - "CONTRIBUTING.md", - "docs", - "js/tests", - "test-infra" - ], - "dependencies": { - "jquery": ">=1.9.1", - "tether": "^1.4.0" - }, - "version": "4.0.0-alpha.6", - "_release": "4.0.0-alpha.6", - "_resolution": { - "type": "version", - "tag": "v4.0.0-alpha.6", - "commit": "65ffb1c3b6e94440812a2e228cb8e8be512652ec" - }, - "_source": "https://github.com/twbs/bootstrap.git", - "_target": "4.0.0-alpha.6", - "_originalSource": "bootstrap" -} \ No newline at end of file diff --git a/bower_components/bootstrap/CHANGELOG.md b/bower_components/bootstrap/CHANGELOG.md deleted file mode 100644 index 7b60d7c9a..000000000 --- a/bower_components/bootstrap/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs. - -See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. - -Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. diff --git a/bower_components/bootstrap/Gemfile b/bower_components/bootstrap/Gemfile deleted file mode 100644 index eb3366f11..000000000 --- a/bower_components/bootstrap/Gemfile +++ /dev/null @@ -1,8 +0,0 @@ -source 'https://rubygems.org' - -group :development, :test do - gem 'jekyll', '~> 3.3.1' - gem 'jekyll-redirect-from', '~> 0.12.0' - gem 'jekyll-sitemap', '~> 0.12.0' - gem 'scss_lint', '~> 0.51.0' -end diff --git a/bower_components/bootstrap/Gemfile.lock b/bower_components/bootstrap/Gemfile.lock deleted file mode 100644 index c245b6aa8..000000000 --- a/bower_components/bootstrap/Gemfile.lock +++ /dev/null @@ -1,58 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.5.0) - public_suffix (~> 2.0, >= 2.0.2) - colorator (1.1.0) - ffi (1.9.14) - forwardable-extended (2.6.0) - jekyll (3.3.1) - addressable (~> 2.4) - colorator (~> 1.0) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 3.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (~> 1.7) - safe_yaml (~> 1.0) - jekyll-redirect-from (0.12.0) - jekyll (~> 3.3) - jekyll-sass-converter (1.5.0) - sass (~> 3.4) - jekyll-sitemap (0.12.0) - jekyll (~> 3.3) - jekyll-watch (1.5.0) - listen (~> 3.0, < 3.1) - kramdown (1.13.1) - liquid (3.0.6) - listen (3.0.8) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - mercenary (0.3.6) - pathutil (0.14.0) - forwardable-extended (~> 2.6) - public_suffix (2.0.5) - rake (12.0.0) - rb-fsevent (0.9.8) - rb-inotify (0.9.7) - ffi (>= 0.5.0) - rouge (1.11.1) - safe_yaml (1.0.4) - sass (3.4.23) - scss_lint (0.51.0) - rake (>= 0.9, < 13) - sass (~> 3.4.20) - -PLATFORMS - ruby - -DEPENDENCIES - jekyll (~> 3.3.1) - jekyll-redirect-from (~> 0.12.0) - jekyll-sitemap (~> 0.12.0) - scss_lint (~> 0.51.0) - -BUNDLED WITH - 1.13.6 diff --git a/bower_components/bootstrap/Gruntfile.js b/bower_components/bootstrap/Gruntfile.js deleted file mode 100644 index 7d16ff432..000000000 --- a/bower_components/bootstrap/Gruntfile.js +++ /dev/null @@ -1,355 +0,0 @@ -/*! - * Bootstrap's Gruntfile - * https://getbootstrap.com - * Copyright 2013-2017 The Bootstrap Authors - * Copyright 2013-2017 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -module.exports = function (grunt) { - 'use strict' - - // Force use of Unix newlines - grunt.util.linefeed = '\n' - - RegExp.quote = function (string) { - return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&') - } - - var path = require('path') - var isTravis = require('is-travis') - - var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' }) - - Object.keys(configBridge.paths).forEach(function (key) { - configBridge.paths[key].forEach(function (val, i, arr) { - arr[i] = path.join('./docs', val) - }) - }) - - // Project configuration. - grunt.initConfig({ - - // Metadata. - pkg: grunt.file.readJSON('package.json'), - banner: '/*!\n' + - ' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' + - ' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + - ' * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' + - ' */\n', - jqueryCheck: 'if (typeof jQuery === \'undefined\') {\n' + - ' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\\'s JavaScript.\')\n' + - '}\n', - jqueryVersionCheck: '+function ($) {\n' + - ' var version = $.fn.jquery.split(\' \')[0].split(\'.\')\n' + - ' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {\n' + - ' throw new Error(\'Bootstrap\\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\')\n' + - ' }\n' + - '}(jQuery);\n\n', - - // Task configuration. - clean: { - dist: 'dist', - docs: 'docs/dist' - }, - - // JS build configuration - babel: { - dev: { - options: { - sourceMap: true - }, - files: { - 'js/dist/util.js' : 'js/src/util.js', - 'js/dist/alert.js' : 'js/src/alert.js', - 'js/dist/button.js' : 'js/src/button.js', - 'js/dist/carousel.js' : 'js/src/carousel.js', - 'js/dist/collapse.js' : 'js/src/collapse.js', - 'js/dist/dropdown.js' : 'js/src/dropdown.js', - 'js/dist/modal.js' : 'js/src/modal.js', - 'js/dist/scrollspy.js' : 'js/src/scrollspy.js', - 'js/dist/tab.js' : 'js/src/tab.js', - 'js/dist/tooltip.js' : 'js/src/tooltip.js', - 'js/dist/popover.js' : 'js/src/popover.js' - } - }, - dist: { - options: { - extends: '../../js/.babelrc' - }, - files: { - '<%= concat.bootstrap.dest %>' : '<%= concat.bootstrap.dest %>' - } - } - }, - - stamp: { - options: { - banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>\n+function () {\n', - footer: '\n}();' - }, - bootstrap: { - files: { - src: '<%= concat.bootstrap.dest %>' - } - } - }, - - concat: { - options: { - // Custom function to remove all export and import statements - process: function (src) { - return src.replace(/^(export|import).*/gm, '') - } - }, - bootstrap: { - src: [ - 'js/src/util.js', - 'js/src/alert.js', - 'js/src/button.js', - 'js/src/carousel.js', - 'js/src/collapse.js', - 'js/src/dropdown.js', - 'js/src/modal.js', - 'js/src/scrollspy.js', - 'js/src/tab.js', - 'js/src/tooltip.js', - 'js/src/popover.js' - ], - dest: 'dist/js/<%= pkg.name %>.js' - } - }, - - qunit: { - options: { - inject: 'js/tests/unit/phantom.js' - }, - files: 'js/tests/index.html' - }, - - // CSS build configuration - copy: { - docs: { - expand: true, - cwd: 'dist/', - src: [ - '**/*' - ], - dest: 'docs/dist/' - } - }, - - connect: { - server: { - options: { - port: 3000, - base: '.' - } - } - }, - - jekyll: { - options: { - bundleExec: true, - config: '_config.yml', - incremental: false - }, - docs: {}, - github: { - options: { - raw: 'github: true' - } - } - }, - - htmllint: { - options: { - ignore: [ - 'Attribute “autocomplete” is only allowed when the input type is “color”, “date”, “datetime”, “datetime-local”, “email”, “hidden”, “month”, “number”, “password”, “range”, “search”, “tel”, “text”, “time”, “url”, or “week”.', - 'Attribute “autocomplete” not allowed on element “button” at this point.', - 'Consider using the “h1” element as a top-level heading only (all “h1” elements are treated as top-level headings by many screen readers and other tools).', - 'Element “div” not allowed as child of element “progress” in this context. (Suppressing further errors from this subtree.)', - 'Element “img” is missing required attribute “src”.', - 'The “color” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.', - 'The “date” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.', - 'The “datetime” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.', - 'The “datetime-local” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.', - 'The “month” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.', - 'The “time” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.', - 'The “week” input type is not supported in all browsers. Please be sure to test, and consider using a polyfill.' - ] - }, - src: ['_gh_pages/**/*.html', 'js/tests/visual/*.html'] - }, - - watch: { - src: { - files: '<%= concat.bootstrap.src %>', - tasks: ['babel:dev'] - }, - sass: { - files: 'scss/**/*.scss', - tasks: ['dist-css', 'docs'] - }, - docs: { - files: 'docs/assets/scss/**/*.scss', - tasks: ['dist-css', 'docs'] - } - }, - - 'saucelabs-qunit': { - all: { - options: { - build: process.env.TRAVIS_JOB_ID, - concurrency: 10, - maxRetries: 3, - maxPollRetries: 4, - urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'], - browsers: grunt.file.readYAML('grunt/sauce_browsers.yml') - } - } - }, - - exec: { - 'clean-css': { - command: 'npm run clean-css' - }, - 'clean-css-docs': { - command: 'npm run clean-css-docs' - }, - postcss: { - command: 'npm run postcss' - }, - 'postcss-docs': { - command: 'npm run postcss-docs' - }, - htmlhint: { - command: 'npm run htmlhint' - }, - sass: { - command: 'npm run sass' - }, - 'sass-docs': { - command: 'npm run sass-docs' - }, - 'scss-lint': { - command: 'npm run scss-lint' - }, - 'scss-lint-docs': { - command: 'npm run scss-lint-docs' - }, - uglify: { - command: 'npm run uglify' - }, - 'uglify-docs': { - command: 'npm run uglify-docs' - } - }, - - buildcontrol: { - options: { - dir: '_gh_pages', - commit: true, - push: true, - message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%' - }, - pages: { - options: { - remote: 'git@github.com:twbs/derpstrap.git', - branch: 'gh-pages' - } - } - }, - - compress: { - main: { - options: { - archive: 'bootstrap-<%= pkg.version %>-dist.zip', - mode: 'zip', - level: 9, - pretty: true - }, - files: [ - { - expand: true, - cwd: 'dist/', - src: ['**'], - dest: 'bootstrap-<%= pkg.version %>-dist' - } - ] - } - } - - }) - - - // These plugins provide necessary tasks. - require('load-grunt-tasks')(grunt) - require('time-grunt')(grunt) - - // Docs HTML validation task - grunt.registerTask('validate-html', ['jekyll:docs', 'htmllint', 'exec:htmlhint']) - - var runSubset = function (subset) { - return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset - } - var isUndefOrNonZero = function (val) { - return val === undefined || val !== '0' - } - - // Test task. - var testSubtasks = [] - // Skip core tests if running a different subset of the test suite - if (runSubset('core') && - // Skip core tests if this is a Savage build - process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') { - testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'test-scss', 'qunit', 'docs']) - } - // Skip HTML validation if running a different subset of the test suite - if (runSubset('validate-html') && - isTravis && - // Skip HTML5 validator when [skip validator] is in the commit message - isUndefOrNonZero(process.env.TWBS_DO_VALIDATOR)) { - testSubtasks.push('validate-html') - } - // Only run Sauce Labs tests if there's a Sauce access key - if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' && - // Skip Sauce if running a different subset of the test suite - runSubset('sauce-js-unit')) { - testSubtasks = testSubtasks.concat(['dist', 'docs-css', 'docs-js', 'clean:docs', 'copy:docs']) - // Skip Sauce on Travis when [skip sauce] is in the commit message - if (isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) { - testSubtasks.push('connect') - testSubtasks.push('saucelabs-qunit') - } - } - grunt.registerTask('test', testSubtasks) - - // JS distribution task. - grunt.registerTask('dist-js', ['babel:dev', 'concat', 'babel:dist', 'stamp', 'exec:uglify']) - - grunt.registerTask('test-scss', ['exec:scss-lint']) - - // CSS distribution task. - grunt.registerTask('sass-compile', ['exec:sass', 'exec:sass-docs']) - - grunt.registerTask('dist-css', ['sass-compile', 'exec:postcss', 'exec:clean-css', 'exec:clean-css-docs']) - - // Full distribution task. - grunt.registerTask('dist', ['clean:dist', 'dist-css', 'dist-js']) - - // Default task. - grunt.registerTask('default', ['clean:dist', 'test']) - - // Docs task. - grunt.registerTask('docs-css', ['exec:clean-css-docs', 'exec:postcss-docs']) - grunt.registerTask('lint-docs-css', ['exec:scss-lint-docs']) - grunt.registerTask('docs-js', ['exec:uglify-docs']) - grunt.registerTask('docs', ['lint-docs-css', 'docs-css', 'docs-js', 'clean:docs', 'copy:docs']) - grunt.registerTask('docs-github', ['jekyll:github']) - - grunt.registerTask('prep-release', ['dist', 'docs', 'docs-github', 'compress']) - - // Publish to GitHub - grunt.registerTask('publish', ['buildcontrol:pages']) -} diff --git a/bower_components/bootstrap/ISSUE_TEMPLATE.md b/bower_components/bootstrap/ISSUE_TEMPLATE.md deleted file mode 100644 index d2a406f9c..000000000 --- a/bower_components/bootstrap/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,22 +0,0 @@ -Before opening an issue: - -- [Search for duplicate or closed issues](https://github.com/twbs/bootstrap/issues?utf8=%E2%9C%93&q=is%3Aissue) -- [Validate](https://validator.w3.org/nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems -- Prepare a [reduced test case](https://css-tricks.com/reduced-test-cases/) for any bugs -- Read the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md) - -When asking general "how to" questions: - -- Please do not open an issue here -- Instead, ask for help on [StackOverflow, IRC, or Slack](https://github.com/twbs/bootstrap/blob/master/README.md#community) - -When reporting a bug, include: - -- Operating system and version (Windows, Mac OS X, Android, iOS, Win10 Mobile) -- Browser and version (Chrome, Firefox, Safari, IE, MS Edge, Opera 15+, Android Browser) -- Reduced test cases and potential fixes using [JS Bin](https://jsbin.com) - -When suggesting a feature, include: - -- As much detail as possible for what we should add and why it's important to Bootstrap -- Relevant links to prior art, screenshots, or live demos whenever possible diff --git a/bower_components/bootstrap/LICENSE b/bower_components/bootstrap/LICENSE deleted file mode 100644 index 1381cb2be..000000000 --- a/bower_components/bootstrap/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2011-2017 Twitter, Inc. -Copyright (c) 2011-2017 The Bootstrap Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/bower_components/bootstrap/README.md b/bower_components/bootstrap/README.md deleted file mode 100644 index a8a2c2664..000000000 --- a/bower_components/bootstrap/README.md +++ /dev/null @@ -1,135 +0,0 @@ -# [Bootstrap](https://getbootstrap.com) - -[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com) -![Bower version](https://img.shields.io/bower/v/bootstrap.svg) -[![npm version](https://img.shields.io/npm/v/bootstrap.svg)](https://www.npmjs.com/package/bootstrap) -[![Gem version](https://img.shields.io/gem/v/bootstrap.svg)](https://rubygems.org/gems/bootstrap) -[![Build Status](https://img.shields.io/travis/twbs/bootstrap/master.svg)](https://travis-ci.org/twbs/bootstrap) -[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap?type=dev) -[![Meteor Atmosphere](https://img.shields.io/badge/meteor-twbs%3Abootstrap-blue.svg)](https://atmospherejs.com/twbs/bootstrap) -[![Packagist Prerelease](https://img.shields.io/packagist/vpre/twbs/bootstrap.svg)](https://packagist.org/packages/twbs/bootstrap) -[![NuGet](https://img.shields.io/nuget/vpre/bootstrap.svg)](https://www.nuget.org/packages/bootstrap/4.0.0-alpha5) - -[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap) - -Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thornton](https://twitter.com/fat), and maintained by the [core team](https://github.com/orgs/twbs/people) with the massive support and involvement of the community. - -To get started, check out ! - -## Table of contents - -- [Quick start](#quick-start) -- [Bugs and feature requests](#bugs-and-feature-requests) -- [Documentation](#documentation) -- [Contributing](#contributing) -- [Community](#community) -- [Versioning](#versioning) -- [Creators](#creators) -- [Copyright and license](#copyright-and-license) - -## Quick start - -Several quick start options are available: - -- [Download the latest release.](https://github.com/twbs/bootstrap/archive/v4.0.0-alpha.6.zip) -- Clone the repo: `git clone https://github.com/twbs/bootstrap.git` -- Install with [npm](https://www.npmjs.com): `npm install bootstrap@4.0.0-alpha.6` -- Install with [yarn](https://github.com/yarnpkg/yarn): `yarn add bootstrap@4.0.0-alpha.6` -- Install with [Composer](https://getcomposer.org): `composer require twbs/bootstrap:4.0.0-alpha.6` -- Install with [Bower](https://bower.io): `bower install bootstrap#v4.0.0-alpha.6` -- Install with [NuGet](https://www.nuget.org): CSS: `Install-Package bootstrap -Pre` Sass: `Install-Package bootstrap.sass -Pre` (`-Pre` is only required until Bootstrap v4 has a stable release). - -Read the [Getting started page](https://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more. - -### What's included - -Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this: - -``` -bootstrap/ -├── css/ -│ ├── bootstrap.css -│ ├── bootstrap.css.map -│ ├── bootstrap.min.css -│ └── bootstrap.min.css.map -└── js/ - ├── bootstrap.js - └── bootstrap.min.js -``` - -We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). CSS [source maps](https://developer.chrome.com/devtools/docs/css-preprocessors) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. - - -## Bugs and feature requests - -Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new). - - -## Documentation - -Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](https://jekyllrb.com) and publicly hosted on GitHub Pages at . The docs may also be run locally. - -### Running documentation locally - -1. Run through the [tooling setup](https://github.com/twbs/bootstrap/blob/v4-dev/docs/getting-started/build-tools.md#tooling-setup) to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`. -2. Run `grunt` (or a specific set of Grunt tasks) to rebuild distributed CSS and JavaScript files, as well as our docs assets. -3. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line. -4. Open in your browser, and voilà. - -Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/home/). - -### Documentation for previous releases - -Documentation for v2.3.2 has been made available for the time being at while folks transition to Bootstrap 3. - -[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. - - - -## Contributing - -Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. - -Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo). - -Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at . - - - -## Community - -Get updates on Bootstrap's development and chat with the project maintainers and community members. - -- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). -- Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com). -- Join [the official Slack room](https://bootstrap-slack.herokuapp.com). -- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel. -- Implementation help may be found at Stack Overflow (tagged [`bootstrap-4`](https://stackoverflow.com/questions/tagged/bootstrap-4)). -- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. - - - -## Versioning - -For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](http://semver.org/). Sometimes we screw up, but we'll adhere to those rules whenever possible. - -See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](https://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. - - -## Creators - -**Mark Otto** - -- -- - -**Jacob Thornton** - -- -- - - - -## Copyright and license - -Code and documentation copyright 2011-2017 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors) and [Twitter, Inc.](https://twitter.com) Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE). diff --git a/bower_components/bootstrap/bower.json b/bower_components/bootstrap/bower.json deleted file mode 100644 index 510770926..000000000 --- a/bower_components/bootstrap/bower.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", - "keywords": [ - "css", - "js", - "sass", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "homepage": "https://getbootstrap.com", - "license": "MIT", - "moduleType": "globals", - "main": [ - "scss/bootstrap.scss", - "dist/js/bootstrap.js" - ], - "ignore": [ - "/.*", - "_config.yml", - "CNAME", - "composer.json", - "CONTRIBUTING.md", - "docs", - "js/tests", - "test-infra" - ], - "dependencies": { - "jquery": ">=1.9.1", - "tether": "^1.4.0" - } -} diff --git a/bower_components/bootstrap/grunt/change-version.js b/bower_components/bootstrap/grunt/change-version.js deleted file mode 100755 index 5ea59185a..000000000 --- a/bower_components/bootstrap/grunt/change-version.js +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/env node - -'use strict' - -/*! - * Script to update version number references in the project. - * Copyright 2017 The Bootstrap Authors - * Copyright 2017 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/* global Set */ - -var fs = require('fs') -var path = require('path') -var sh = require('shelljs') -sh.config.fatal = true -var sed = sh.sed - -// Blame TC39... https://github.com/benjamingr/RegExp.escape/issues/37 -RegExp.quote = function (string) { - return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&') -} -RegExp.quoteReplacement = function (string) { - return string.replace(/[$]/g, '$$') -} - -var DRY_RUN = false - -function walkAsync(directory, excludedDirectories, fileCallback, errback) { - if (excludedDirectories.has(path.parse(directory).base)) { - return - } - fs.readdir(directory, function (err, names) { - if (err) { - errback(err) - return - } - names.forEach(function (name) { - var filepath = path.join(directory, name) - fs.lstat(filepath, function (err, stats) { - if (err) { - process.nextTick(errback, err) - return - } - if (stats.isSymbolicLink()) { - return - } - else if (stats.isDirectory()) { - process.nextTick(walkAsync, filepath, excludedDirectories, fileCallback, errback) - } - else if (stats.isFile()) { - process.nextTick(fileCallback, filepath) - } - }) - }) - }) -} - -function replaceRecursively(directory, excludedDirectories, allowedExtensions, original, replacement) { - original = new RegExp(RegExp.quote(original), 'g') - replacement = RegExp.quoteReplacement(replacement) - var updateFile = !DRY_RUN ? function (filepath) { - if (allowedExtensions.has(path.parse(filepath).ext)) { - sed('-i', original, replacement, filepath) - } - } : function (filepath) { - if (allowedExtensions.has(path.parse(filepath).ext)) { - console.log('FILE: ' + filepath) - } - else { - console.log('EXCLUDED:' + filepath) - } - } - walkAsync(directory, excludedDirectories, updateFile, function (err) { - console.error('ERROR while traversing directory!:') - console.error(err) - process.exit(1) - }) -} - -function main(args) { - if (args.length !== 2) { - console.error('USAGE: change-version old_version new_version') - console.error('Got arguments:', args) - process.exit(1) - } - var oldVersion = args[0] - var newVersion = args[1] - var EXCLUDED_DIRS = new Set([ - '.git', - 'node_modules', - 'vendor' - ]) - var INCLUDED_EXTENSIONS = new Set([ - // This extension whitelist is how we avoid modifying binary files - '', - '.css', - '.html', - '.js', - '.json', - '.md', - '.scss', - '.txt', - '.yml' - ]) - replaceRecursively('.', EXCLUDED_DIRS, INCLUDED_EXTENSIONS, oldVersion, newVersion) -} - -main(process.argv.slice(2)) diff --git a/bower_components/bootstrap/grunt/configBridge.json b/bower_components/bootstrap/grunt/configBridge.json deleted file mode 100644 index 140d9ab78..000000000 --- a/bower_components/bootstrap/grunt/configBridge.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "paths": { - "docsJs": [ - "assets/js/vendor/anchor.min.js", - "assets/js/vendor/clipboard.min.js", - "assets/js/vendor/holder.min.js", - "assets/js/src/application.js" - ] - } -} diff --git a/bower_components/bootstrap/grunt/gcp-key.json.enc b/bower_components/bootstrap/grunt/gcp-key.json.enc deleted file mode 100644 index 6e1856a2f..000000000 Binary files a/bower_components/bootstrap/grunt/gcp-key.json.enc and /dev/null differ diff --git a/bower_components/bootstrap/grunt/npm-shrinkwrap.json b/bower_components/bootstrap/grunt/npm-shrinkwrap.json deleted file mode 100644 index 6206c1f93..000000000 --- a/bower_components/bootstrap/grunt/npm-shrinkwrap.json +++ /dev/null @@ -1,3864 +0,0 @@ -{ - "name": "bootstrap", - "version": "4.0.0-alpha.6", - "dependencies": { - "abbrev": { - "version": "1.0.9", - "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "dev": true - }, - "accepts": { - "version": "1.3.3", - "from": "accepts@>=1.3.3 <1.4.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "dev": true - }, - "acorn": { - "version": "4.0.4", - "from": "acorn@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "from": "acorn-jsx@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "dev": true, - "dependencies": { - "acorn": { - "version": "3.3.0", - "from": "acorn@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "dev": true - } - } - }, - "agent-base": { - "version": "2.0.1", - "from": "agent-base@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz", - "dev": true, - "dependencies": { - "semver": { - "version": "5.0.3", - "from": "semver@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", - "dev": true - } - } - }, - "ajv": { - "version": "4.10.3", - "from": "ajv@>=4.7.0 <5.0.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.10.3.tgz", - "dev": true - }, - "ajv-keywords": { - "version": "1.5.0", - "from": "ajv-keywords@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.0.tgz", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "from": "align-text@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "dev": true - }, - "ansi-escapes": { - "version": "1.4.0", - "from": "ansi-escapes@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "dev": true - }, - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "dev": true - }, - "anymatch": { - "version": "1.3.0", - "from": "anymatch@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.0.4", - "from": "aproba@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz", - "dev": true - }, - "archiver": { - "version": "1.3.0", - "from": "archiver@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", - "dev": true, - "dependencies": { - "async": { - "version": "2.1.4", - "from": "async@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", - "dev": true - } - } - }, - "archiver-utils": { - "version": "1.3.0", - "from": "archiver-utils@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.2", - "from": "are-we-there-yet@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "dev": true - }, - "argparse": { - "version": "1.0.9", - "from": "argparse@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "from": "arr-diff@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "dev": true, - "optional": true - }, - "arr-flatten": { - "version": "1.0.1", - "from": "arr-flatten@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz", - "dev": true, - "optional": true - }, - "array-differ": { - "version": "1.0.0", - "from": "array-differ@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "from": "array-find-index@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "dev": true - }, - "array-index": { - "version": "1.0.0", - "from": "array-index@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "from": "array-union@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "from": "array-uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "dev": true, - "optional": true - }, - "arrify": { - "version": "1.0.1", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "dev": true - }, - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "dev": true - }, - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "dev": true - }, - "async": { - "version": "1.5.2", - "from": "async@>=1.5.2 <1.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "from": "async-each@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "dev": true, - "optional": true - }, - "async-foreach": { - "version": "0.1.3", - "from": "async-foreach@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "from": "asynckit@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "dev": true - }, - "autoprefixer": { - "version": "6.6.1", - "from": "autoprefixer@>=6.6.1 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.6.1.tgz", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "dev": true - }, - "aws4": { - "version": "1.5.0", - "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz", - "dev": true - }, - "babel-code-frame": { - "version": "6.20.0", - "from": "babel-code-frame@>=6.16.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.20.0.tgz", - "dev": true - }, - "babel-core": { - "version": "6.21.0", - "from": "babel-core@>=6.0.12 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.21.0.tgz", - "dev": true - }, - "babel-eslint": { - "version": "7.1.1", - "from": "babel-eslint@>=7.1.1 <8.0.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.1.1.tgz", - "dev": true - }, - "babel-generator": { - "version": "6.21.0", - "from": "babel-generator@>=6.21.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.21.0.tgz", - "dev": true, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "from": "jsesc@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "dev": true - } - } - }, - "babel-helper-call-delegate": { - "version": "6.18.0", - "from": "babel-helper-call-delegate@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.18.0.tgz", - "dev": true - }, - "babel-helper-define-map": { - "version": "6.18.0", - "from": "babel-helper-define-map@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.18.0.tgz", - "dev": true - }, - "babel-helper-function-name": { - "version": "6.18.0", - "from": "babel-helper-function-name@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.18.0.tgz", - "dev": true - }, - "babel-helper-get-function-arity": { - "version": "6.18.0", - "from": "babel-helper-get-function-arity@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.18.0.tgz", - "dev": true - }, - "babel-helper-hoist-variables": { - "version": "6.18.0", - "from": "babel-helper-hoist-variables@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.18.0.tgz", - "dev": true - }, - "babel-helper-optimise-call-expression": { - "version": "6.18.0", - "from": "babel-helper-optimise-call-expression@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.18.0.tgz", - "dev": true - }, - "babel-helper-regex": { - "version": "6.18.0", - "from": "babel-helper-regex@>=6.8.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.18.0.tgz", - "dev": true - }, - "babel-helper-replace-supers": { - "version": "6.18.0", - "from": "babel-helper-replace-supers@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.18.0.tgz", - "dev": true - }, - "babel-helpers": { - "version": "6.16.0", - "from": "babel-helpers@>=6.16.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz", - "dev": true - }, - "babel-messages": { - "version": "6.8.0", - "from": "babel-messages@>=6.8.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz", - "dev": true - }, - "babel-plugin-check-es2015-constants": { - "version": "6.8.0", - "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.21.0", - "from": "babel-plugin-transform-es2015-block-scoping@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.21.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.18.0", - "from": "babel-plugin-transform-es2015-classes@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.18.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.19.0", - "from": "babel-plugin-transform-es2015-destructuring@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-duplicate-keys@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.18.0", - "from": "babel-plugin-transform-es2015-for-of@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.18.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.9.0", - "from": "babel-plugin-transform-es2015-function-name@>=6.9.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.9.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-literals@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.18.0", - "from": "babel-plugin-transform-es2015-modules-amd@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.18.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.18.0", - "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.18.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-modules-strip": { - "version": "0.1.0", - "from": "babel-plugin-transform-es2015-modules-strip@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-strip/-/babel-plugin-transform-es2015-modules-strip-0.1.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.19.0", - "from": "babel-plugin-transform-es2015-modules-systemjs@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.19.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.18.0", - "from": "babel-plugin-transform-es2015-modules-umd@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.18.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.21.0", - "from": "babel-plugin-transform-es2015-parameters@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.21.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.18.0", - "from": "babel-plugin-transform-es2015-shorthand-properties@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-sticky-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.8.0", - "from": "babel-plugin-transform-es2015-template-literals@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.8.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.18.0", - "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.18.0.tgz", - "dev": true - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.11.0", - "from": "babel-plugin-transform-es2015-unicode-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.11.0.tgz", - "dev": true - }, - "babel-plugin-transform-regenerator": { - "version": "6.21.0", - "from": "babel-plugin-transform-regenerator@>=6.16.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.21.0.tgz", - "dev": true - }, - "babel-plugin-transform-strict-mode": { - "version": "6.18.0", - "from": "babel-plugin-transform-strict-mode@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.18.0.tgz", - "dev": true - }, - "babel-preset-es2015": { - "version": "6.18.0", - "from": "babel-preset-es2015@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz", - "dev": true - }, - "babel-register": { - "version": "6.18.0", - "from": "babel-register@>=6.18.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.18.0.tgz", - "dev": true - }, - "babel-runtime": { - "version": "6.20.0", - "from": "babel-runtime@>=6.20.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.20.0.tgz", - "dev": true - }, - "babel-template": { - "version": "6.16.0", - "from": "babel-template@>=6.15.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.16.0.tgz", - "dev": true - }, - "babel-traverse": { - "version": "6.21.0", - "from": "babel-traverse@>=6.15.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.21.0.tgz", - "dev": true - }, - "babel-types": { - "version": "6.21.0", - "from": "babel-types@>=6.15.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.21.0.tgz", - "dev": true - }, - "babylon": { - "version": "6.14.1", - "from": "babylon@>=6.13.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.14.1.tgz", - "dev": true - }, - "balanced-match": { - "version": "0.4.2", - "from": "balanced-match@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "dev": true - }, - "basic-auth": { - "version": "1.0.4", - "from": "basic-auth@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", - "dev": true - }, - "batch": { - "version": "0.5.3", - "from": "batch@0.5.3", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.0", - "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", - "dev": true, - "optional": true - }, - "binary-extensions": { - "version": "1.8.0", - "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "dev": true, - "optional": true - }, - "bl": { - "version": "1.2.0", - "from": "bl@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.0.tgz", - "dev": true - }, - "block-stream": { - "version": "0.0.9", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "dev": true - }, - "bluebird": { - "version": "3.4.7", - "from": "bluebird@>=3.0.6 <4.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "dev": true - }, - "body-parser": { - "version": "1.14.2", - "from": "body-parser@>=1.14.0 <1.15.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", - "dev": true, - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "dev": true - }, - "iconv-lite": { - "version": "0.4.13", - "from": "iconv-lite@0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - }, - "qs": { - "version": "5.2.0", - "from": "qs@5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", - "dev": true - } - } - }, - "boom": { - "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "dev": true - }, - "brace-expansion": { - "version": "1.1.6", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", - "dev": true - }, - "braces": { - "version": "1.8.5", - "from": "braces@>=1.8.2 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "dev": true, - "optional": true - }, - "browserslist": { - "version": "1.5.1", - "from": "browserslist@>=1.5.1 <1.6.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.5.1.tgz", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "from": "buffer-crc32@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "dev": true - }, - "buffer-shims": { - "version": "1.0.0", - "from": "buffer-shims@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "from": "builtin-modules@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "dev": true - }, - "bytes": { - "version": "2.2.0", - "from": "bytes@2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "from": "caller-path@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "dev": true - }, - "callsites": { - "version": "0.2.0", - "from": "callsites@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "dev": true - }, - "camelcase": { - "version": "2.1.1", - "from": "camelcase@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "from": "camelcase-keys@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "dev": true - }, - "caniuse-db": { - "version": "1.0.30000604", - "from": "caniuse-db@>=1.0.30000604 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000604.tgz", - "dev": true - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "from": "center-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dev": true, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "dev": true - } - } - }, - "chokidar": { - "version": "1.6.1", - "from": "chokidar@>=1.5.1 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", - "dev": true, - "optional": true - }, - "circular-json": { - "version": "0.3.1", - "from": "circular-json@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", - "dev": true - }, - "clean-css": { - "version": "3.4.23", - "from": "clean-css@>=3.4.23 <4.0.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.23.tgz", - "dev": true, - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "dev": true - } - } - }, - "cli": { - "version": "0.6.6", - "from": "cli@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/cli/-/cli-0.6.6.tgz", - "dev": true, - "dependencies": { - "glob": { - "version": "3.2.11", - "from": "glob@>=3.2.1 <3.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "dev": true - }, - "minimatch": { - "version": "0.3.0", - "from": "minimatch@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "dev": true - } - } - }, - "cli-cursor": { - "version": "1.0.2", - "from": "cli-cursor@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "dev": true - }, - "cli-width": { - "version": "2.1.0", - "from": "cli-width@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "from": "cliui@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "dev": true - }, - "co": { - "version": "4.6.0", - "from": "co@>=4.6.0 <5.0.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "from": "code-point-at@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "dev": true - }, - "coffee-script": { - "version": "1.10.0", - "from": "coffee-script@>=1.10.0 <1.11.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz", - "dev": true - }, - "colors": { - "version": "1.1.2", - "from": "colors@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "dev": true - }, - "commander": { - "version": "2.8.1", - "from": "commander@>=2.8.0 <2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "dev": true - }, - "compress-commons": { - "version": "1.1.0", - "from": "compress-commons@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.1.0.tgz", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "dev": true - }, - "concat-stream": { - "version": "1.6.0", - "from": "concat-stream@>=1.4.6 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "dev": true - }, - "connect": { - "version": "3.5.0", - "from": "connect@>=3.4.0 <4.0.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz", - "dev": true, - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - } - } - }, - "connect-livereload": { - "version": "0.5.4", - "from": "connect-livereload@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "from": "console-control-strings@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "dev": true - }, - "content-type": { - "version": "1.0.2", - "from": "content-type@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "dev": true - }, - "convert-source-map": { - "version": "1.3.0", - "from": "convert-source-map@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz", - "dev": true - }, - "core-js": { - "version": "2.4.1", - "from": "core-js@>=2.4.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "dev": true - }, - "crc32-stream": { - "version": "1.0.0", - "from": "crc32-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-1.0.0.tgz", - "dev": true - }, - "cross-spawn": { - "version": "3.0.1", - "from": "cross-spawn@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "dev": true, - "dependencies": { - "lru-cache": { - "version": "4.0.2", - "from": "lru-cache@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "dev": true - } - } - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "dev": true - }, - "csslint": { - "version": "0.10.0", - "from": "csslint@0.10.0", - "resolved": "https://registry.npmjs.org/csslint/-/csslint-0.10.0.tgz", - "dev": true - }, - "currently-unhandled": { - "version": "0.4.1", - "from": "currently-unhandled@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "dev": true - }, - "d": { - "version": "0.1.1", - "from": "d@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "from": "dashdash@>=1.12.0 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "dev": true - } - } - }, - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "dev": true - }, - "date-time": { - "version": "1.1.0", - "from": "date-time@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz", - "dev": true - }, - "dateformat": { - "version": "1.0.12", - "from": "dateformat@>=1.0.12 <1.1.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "dev": true - }, - "debug": { - "version": "2.6.0", - "from": "debug@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "from": "decamelize@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "from": "deep-is@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "dev": true - }, - "del": { - "version": "2.2.2", - "from": "del@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "from": "delegates@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "dev": true - }, - "depd": { - "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "from": "destroy@>=1.0.4 <1.1.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "from": "detect-indent@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "dev": true - }, - "doctrine": { - "version": "1.5.0", - "from": "doctrine@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "dev": true - }, - "dom-serializer": { - "version": "0.1.0", - "from": "dom-serializer@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "dev": true, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "from": "domelementtype@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "dev": true - }, - "entities": { - "version": "1.1.1", - "from": "entities@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.0", - "from": "domelementtype@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "dev": true - }, - "domhandler": { - "version": "2.3.0", - "from": "domhandler@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "dev": true - }, - "domutils": { - "version": "1.5.1", - "from": "domutils@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "dev": true, - "optional": true - }, - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "dev": true - }, - "encodeurl": { - "version": "1.0.1", - "from": "encodeurl@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "dev": true - }, - "end-of-stream": { - "version": "1.1.0", - "from": "end-of-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", - "dev": true, - "dependencies": { - "once": { - "version": "1.3.3", - "from": "once@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "dev": true - } - } - }, - "entities": { - "version": "1.0.0", - "from": "entities@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "dev": true - }, - "error-ex": { - "version": "1.3.0", - "from": "error-ex@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz", - "dev": true - }, - "es5-ext": { - "version": "0.10.12", - "from": "es5-ext@>=0.10.11 <0.11.0", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "dev": true - }, - "es6-iterator": { - "version": "2.0.0", - "from": "es6-iterator@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", - "dev": true - }, - "es6-map": { - "version": "0.1.4", - "from": "es6-map@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz", - "dev": true - }, - "es6-object-assign": { - "version": "1.0.3", - "from": "es6-object-assign@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.0.3.tgz", - "dev": true - }, - "es6-promise": { - "version": "4.0.5", - "from": "es6-promise@>=4.0.3 <4.1.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", - "dev": true - }, - "es6-set": { - "version": "0.1.4", - "from": "es6-set@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz", - "dev": true - }, - "es6-symbol": { - "version": "3.1.0", - "from": "es6-symbol@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz", - "dev": true - }, - "es6-weak-map": { - "version": "2.0.1", - "from": "es6-weak-map@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "dev": true - }, - "escope": { - "version": "3.6.0", - "from": "escope@>=3.6.0 <4.0.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "dev": true - }, - "eslint": { - "version": "3.12.2", - "from": "eslint@>=3.12.2 <4.0.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.12.2.tgz", - "dev": true - }, - "espree": { - "version": "3.3.2", - "from": "espree@>=3.3.1 <4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.3.2.tgz", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "dev": true - }, - "esrecurse": { - "version": "4.1.0", - "from": "esrecurse@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", - "dev": true, - "dependencies": { - "estraverse": { - "version": "4.1.1", - "from": "estraverse@>=4.1.0 <4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", - "dev": true - } - } - }, - "estraverse": { - "version": "4.2.0", - "from": "estraverse@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "from": "esutils@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "dev": true - }, - "etag": { - "version": "1.7.0", - "from": "etag@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "dev": true - }, - "event-emitter": { - "version": "0.3.4", - "from": "event-emitter@>=0.3.4 <0.4.0", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz", - "dev": true - }, - "eventemitter2": { - "version": "0.4.14", - "from": "eventemitter2@>=0.4.13 <0.5.0", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "dev": true - }, - "exit": { - "version": "0.1.2", - "from": "exit@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "dev": true - }, - "exit-hook": { - "version": "1.1.1", - "from": "exit-hook@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "from": "expand-brackets@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "dev": true, - "optional": true - }, - "expand-range": { - "version": "1.8.2", - "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "dev": true, - "optional": true - }, - "extend": { - "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "dev": true - }, - "extglob": { - "version": "0.3.2", - "from": "extglob@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "dev": true, - "optional": true - }, - "extract-zip": { - "version": "1.5.0", - "from": "extract-zip@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", - "dev": true, - "dependencies": { - "concat-stream": { - "version": "1.5.0", - "from": "concat-stream@1.5.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", - "dev": true - }, - "debug": { - "version": "0.7.4", - "from": "debug@0.7.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "dev": true - }, - "mkdirp": { - "version": "0.5.0", - "from": "mkdirp@0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "dev": true - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "from": "fast-levenshtein@>=2.0.4 <2.1.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "from": "faye-websocket@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "dev": true - }, - "fd-slicer": { - "version": "1.0.1", - "from": "fd-slicer@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "dev": true - }, - "fg-lodash": { - "version": "0.0.2", - "from": "fg-lodash@0.0.2", - "resolved": "https://registry.npmjs.org/fg-lodash/-/fg-lodash-0.0.2.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <3.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "dev": true - }, - "underscore.string": { - "version": "2.3.3", - "from": "underscore.string@>=2.3.3 <2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", - "dev": true - } - } - }, - "figures": { - "version": "1.7.0", - "from": "figures@>=1.3.5 <2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "dev": true - }, - "file-entry-cache": { - "version": "2.0.0", - "from": "file-entry-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "dev": true - }, - "file-sync-cmp": { - "version": "0.1.1", - "from": "file-sync-cmp@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "dev": true - }, - "filename-regex": { - "version": "2.0.0", - "from": "filename-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "2.2.3", - "from": "fill-range@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "dev": true, - "optional": true - }, - "finalhandler": { - "version": "0.5.0", - "from": "finalhandler@0.5.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz", - "dev": true, - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - } - } - }, - "find-up": { - "version": "1.1.2", - "from": "find-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "dev": true - }, - "findup-sync": { - "version": "0.3.0", - "from": "findup-sync@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "dev": true, - "dependencies": { - "glob": { - "version": "5.0.15", - "from": "glob@>=5.0.0 <5.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "dev": true - } - } - }, - "flat-cache": { - "version": "1.2.2", - "from": "flat-cache@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", - "dev": true - }, - "for-in": { - "version": "0.1.6", - "from": "for-in@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz", - "dev": true, - "optional": true - }, - "for-own": { - "version": "0.1.4", - "from": "for-own@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz", - "dev": true, - "optional": true - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "dev": true - }, - "form-data": { - "version": "2.1.2", - "from": "form-data@>=2.1.1 <2.2.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "dev": true - }, - "fresh": { - "version": "0.3.0", - "from": "fresh@0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "dev": true - }, - "fs-extra": { - "version": "1.0.0", - "from": "fs-extra@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "from": "fs.realpath@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "dev": true - }, - "fstream": { - "version": "1.0.10", - "from": "fstream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "dev": true - }, - "gather-stream": { - "version": "1.0.0", - "from": "gather-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz", - "dev": true - }, - "gauge": { - "version": "2.6.0", - "from": "gauge@>=2.6.0 <2.7.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.6.0.tgz", - "dev": true - }, - "gaze": { - "version": "1.1.2", - "from": "gaze@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "dev": true - }, - "generate-function": { - "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "dev": true - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "dev": true - }, - "get-caller-file": { - "version": "1.0.2", - "from": "get-caller-file@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "dev": true - }, - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "dev": true - }, - "getobject": { - "version": "0.1.0", - "from": "getobject@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "dev": true - }, - "getpass": { - "version": "0.1.6", - "from": "getpass@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "dev": true - } - } - }, - "glob": { - "version": "7.1.1", - "from": "glob@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "dev": true - }, - "glob-base": { - "version": "0.3.0", - "from": "glob-base@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "dev": true - }, - "glob-parent": { - "version": "2.0.0", - "from": "glob-parent@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "dev": true - }, - "globals": { - "version": "9.14.0", - "from": "globals@>=9.0.0 <10.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz", - "dev": true - }, - "globby": { - "version": "5.0.0", - "from": "globby@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "dev": true - }, - "globule": { - "version": "1.1.0", - "from": "globule@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.1.0.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "4.16.6", - "from": "lodash@>=4.16.4 <4.17.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "dev": true - }, - "grunt": { - "version": "1.0.1", - "from": "grunt@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", - "dev": true, - "dependencies": { - "glob": { - "version": "7.0.6", - "from": "glob@>=7.0.0 <7.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "dev": true - }, - "grunt-cli": { - "version": "1.2.0", - "from": "grunt-cli@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", - "dev": true - }, - "js-yaml": { - "version": "3.5.5", - "from": "js-yaml@>=3.5.2 <3.6.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", - "dev": true - }, - "resolve": { - "version": "1.1.7", - "from": "resolve@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "dev": true - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@>=2.2.8 <2.3.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "dev": true - } - } - }, - "grunt-babel": { - "version": "6.0.0", - "from": "grunt-babel@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/grunt-babel/-/grunt-babel-6.0.0.tgz", - "dev": true - }, - "grunt-build-control": { - "version": "0.7.1", - "from": "grunt-build-control@>=0.7.1 <0.8.0", - "resolved": "https://registry.npmjs.org/grunt-build-control/-/grunt-build-control-0.7.1.tgz", - "dev": true, - "dependencies": { - "semver": { - "version": "4.3.6", - "from": "semver@>=4.3.3 <4.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "dev": true - }, - "shelljs": { - "version": "0.2.6", - "from": "shelljs@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz", - "dev": true - } - } - }, - "grunt-contrib-clean": { - "version": "1.0.0", - "from": "grunt-contrib-clean@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz", - "dev": true - }, - "grunt-contrib-compress": { - "version": "1.3.0", - "from": "grunt-contrib-compress@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.3.0.tgz", - "dev": true - }, - "grunt-contrib-concat": { - "version": "1.0.1", - "from": "grunt-contrib-concat@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz", - "dev": true - }, - "grunt-contrib-connect": { - "version": "1.0.2", - "from": "grunt-contrib-connect@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-1.0.2.tgz", - "dev": true - }, - "grunt-contrib-copy": { - "version": "1.0.0", - "from": "grunt-contrib-copy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "dev": true - }, - "grunt-contrib-qunit": { - "version": "1.2.0", - "from": "grunt-contrib-qunit@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-1.2.0.tgz", - "dev": true - }, - "grunt-contrib-watch": { - "version": "1.0.0", - "from": "grunt-contrib-watch@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "dev": true - } - } - }, - "grunt-exec": { - "version": "1.0.1", - "from": "grunt-exec@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-1.0.1.tgz", - "dev": true - }, - "grunt-html": { - "version": "8.1.0", - "from": "grunt-html@>=8.1.0 <9.0.0", - "resolved": "https://registry.npmjs.org/grunt-html/-/grunt-html-8.1.0.tgz", - "dev": true, - "dependencies": { - "async": { - "version": "2.1.2", - "from": "async@2.1.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.2.tgz", - "dev": true - } - } - }, - "grunt-jekyll": { - "version": "0.4.4", - "from": "grunt-jekyll@>=0.4.4 <0.5.0", - "resolved": "https://registry.npmjs.org/grunt-jekyll/-/grunt-jekyll-0.4.4.tgz", - "dev": true - }, - "grunt-known-options": { - "version": "1.1.0", - "from": "grunt-known-options@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", - "dev": true - }, - "grunt-legacy-log": { - "version": "1.0.0", - "from": "grunt-legacy-log@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <3.11.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "dev": true - } - } - }, - "grunt-legacy-log-utils": { - "version": "1.0.0", - "from": "grunt-legacy-log-utils@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "4.3.0", - "from": "lodash@>=4.3.0 <4.4.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", - "dev": true - } - } - }, - "grunt-legacy-util": { - "version": "1.0.0", - "from": "grunt-legacy-util@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "4.3.0", - "from": "lodash@>=4.3.0 <4.4.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", - "dev": true - } - } - }, - "grunt-lib-phantomjs": { - "version": "1.1.0", - "from": "grunt-lib-phantomjs@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz", - "dev": true - }, - "grunt-saucelabs": { - "version": "9.0.0", - "from": "grunt-saucelabs@>=9.0.0 <10.0.0", - "resolved": "https://registry.npmjs.org/grunt-saucelabs/-/grunt-saucelabs-9.0.0.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "4.13.1", - "from": "lodash@>=4.13.1 <4.14.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz", - "dev": true - } - } - }, - "grunt-stamp": { - "version": "0.3.0", - "from": "grunt-stamp@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/grunt-stamp/-/grunt-stamp-0.3.0.tgz", - "dev": true - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@>=2.0.6 <2.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "dev": true, - "dependencies": { - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "dev": true - } - } - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dev": true - }, - "has-color": { - "version": "0.1.7", - "from": "has-color@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "from": "has-unicode@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "dev": true - }, - "hasha": { - "version": "2.2.0", - "from": "hasha@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "dev": true - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@>=3.1.3 <3.2.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "dev": true - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "dev": true - }, - "home-or-tmp": { - "version": "2.0.0", - "from": "home-or-tmp@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "dev": true - }, - "hooker": { - "version": "0.2.3", - "from": "hooker@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "dev": true - }, - "hosted-git-info": { - "version": "2.1.5", - "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", - "dev": true - }, - "htmlhint": { - "version": "0.9.13", - "from": "htmlhint@>=0.9.13 <0.10.0", - "resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-0.9.13.tgz", - "dev": true, - "dependencies": { - "async": { - "version": "1.4.2", - "from": "async@1.4.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz", - "dev": true - }, - "colors": { - "version": "1.0.3", - "from": "colors@1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "dev": true - }, - "commander": { - "version": "2.6.0", - "from": "commander@2.6.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", - "dev": true - }, - "glob": { - "version": "5.0.15", - "from": "glob@5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "dev": true - } - } - }, - "htmlparser2": { - "version": "3.8.3", - "from": "htmlparser2@>=3.8.0 <3.9.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "dev": true, - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "dev": true - } - } - }, - "http-errors": { - "version": "1.5.1", - "from": "http-errors@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "dev": true - }, - "http2": { - "version": "3.3.6", - "from": "http2@>=3.3.4 <4.0.0", - "resolved": "https://registry.npmjs.org/http2/-/http2-3.3.6.tgz", - "dev": true - }, - "https-proxy-agent": { - "version": "1.0.0", - "from": "https-proxy-agent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", - "dev": true - }, - "iconv-lite": { - "version": "0.4.15", - "from": "iconv-lite@>=0.4.13 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "dev": true - }, - "ignore": { - "version": "3.2.0", - "from": "ignore@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.0.tgz", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "from": "imurmurhash@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "from": "in-publish@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "from": "indent-string@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "from": "inherits@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "dev": true - }, - "inquirer": { - "version": "0.12.0", - "from": "inquirer@>=0.12.0 <0.13.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "dev": true - }, - "interpret": { - "version": "1.0.1", - "from": "interpret@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "from": "invariant@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "from": "invert-kv@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "from": "is-arrayish@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "dev": true, - "optional": true - }, - "is-buffer": { - "version": "1.1.4", - "from": "is-buffer@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.4.tgz", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "from": "is-builtin-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "dev": true - }, - "is-dotfile": { - "version": "1.0.2", - "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "from": "is-extendable@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "dev": true, - "optional": true - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "dev": true - }, - "is-my-json-valid": { - "version": "2.15.0", - "from": "is-my-json-valid@>=2.10.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "from": "is-number@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "from": "is-path-cwd@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.0", - "from": "is-path-in-cwd@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "dev": true - }, - "is-path-inside": { - "version": "1.0.0", - "from": "is-path-inside@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "from": "is-posix-bracket@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "dev": true, - "optional": true - }, - "is-primitive": { - "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "dev": true - }, - "is-property": { - "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "dev": true - }, - "is-resolvable": { - "version": "1.0.0", - "from": "is-resolvable@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "from": "is-stream@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "dev": true - }, - "is-travis": { - "version": "1.0.0", - "from": "is-travis@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-travis/-/is-travis-1.0.0.tgz", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "from": "is-utf8@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "dev": true - }, - "isexe": { - "version": "1.1.2", - "from": "isexe@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "from": "isobject@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "dev": true, - "optional": true - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "dev": true - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "dev": true, - "optional": true - }, - "jquery": { - "version": "3.1.1", - "from": "jquery@>=1.9.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.1.1.tgz" - }, - "js-base64": { - "version": "2.1.9", - "from": "js-base64@>=2.1.9 <3.0.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "dev": true - }, - "js-tokens": { - "version": "2.0.0", - "from": "js-tokens@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz", - "dev": true - }, - "js-yaml": { - "version": "3.7.0", - "from": "js-yaml@>=3.5.1 <4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "dev": true - }, - "jsbn": { - "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", - "dev": true, - "optional": true - }, - "jsesc": { - "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "dev": true - }, - "jshint": { - "version": "2.8.0", - "from": "jshint@2.8.0", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.8.0.tgz", - "dev": true, - "dependencies": { - "lodash": { - "version": "3.7.0", - "from": "lodash@>=3.7.0 <3.8.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "dev": true - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "dev": true - }, - "shelljs": { - "version": "0.3.0", - "from": "shelljs@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "dev": true - } - } - }, - "json-schema": { - "version": "0.2.3", - "from": "json-schema@0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "from": "json-stable-stringify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "dev": true - }, - "json5": { - "version": "0.5.1", - "from": "json5@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "dev": true - }, - "jsonfile": { - "version": "2.4.0", - "from": "jsonfile@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "from": "jsonify@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "dev": true - }, - "jsonpointer": { - "version": "4.0.1", - "from": "jsonpointer@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "dev": true - }, - "jsprim": { - "version": "1.3.1", - "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "dev": true - }, - "kew": { - "version": "0.7.0", - "from": "kew@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "dev": true - }, - "kind-of": { - "version": "3.1.0", - "from": "kind-of@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.1.0.tgz", - "dev": true - }, - "klaw": { - "version": "1.3.1", - "from": "klaw@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "dev": true - }, - "lazy-cache": { - "version": "1.0.4", - "from": "lazy-cache@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "dev": true - }, - "lazystream": { - "version": "1.0.0", - "from": "lazystream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "from": "lcid@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "dev": true - }, - "levn": { - "version": "0.3.0", - "from": "levn@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "dev": true - }, - "livereload-js": { - "version": "2.2.2", - "from": "livereload-js@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz", - "dev": true - }, - "load-grunt-tasks": { - "version": "3.5.2", - "from": "load-grunt-tasks@>=3.5.2 <4.0.0", - "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "from": "load-json-file@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "dev": true, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "from": "strip-bom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.4", - "from": "lodash@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "from": "lodash.assign@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "from": "lodash.clonedeep@>=4.3.2 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.0", - "from": "lodash.mergewith@>=4.6.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", - "dev": true - }, - "lodash.pickby": { - "version": "4.6.0", - "from": "lodash.pickby@>=4.6.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", - "dev": true - }, - "longest": { - "version": "1.0.1", - "from": "longest@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "dev": true - }, - "loose-envify": { - "version": "1.3.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.0.tgz", - "dev": true - }, - "loud-rejection": { - "version": "1.6.0", - "from": "loud-rejection@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "dev": true - }, - "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "from": "map-obj@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "dev": true - }, - "meow": { - "version": "3.7.0", - "from": "meow@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "dev": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "dev": true - } - } - }, - "micromatch": { - "version": "2.3.11", - "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "dev": true, - "optional": true - }, - "mime": { - "version": "1.3.4", - "from": "mime@1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "dev": true - }, - "mime-db": { - "version": "1.25.0", - "from": "mime-db@>=1.25.0 <1.26.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz", - "dev": true - }, - "mime-types": { - "version": "2.1.13", - "from": "mime-types@>=2.1.11 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", - "dev": true - }, - "minimatch": { - "version": "3.0.3", - "from": "minimatch@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "dev": true - }, - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dev": true - }, - "morgan": { - "version": "1.7.0", - "from": "morgan@>=1.6.1 <2.0.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.7.0.tgz", - "dev": true, - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - } - } - }, - "ms": { - "version": "0.7.2", - "from": "ms@0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "dev": true - }, - "multimatch": { - "version": "2.1.0", - "from": "multimatch@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "dev": true - }, - "mute-stream": { - "version": "0.0.5", - "from": "mute-stream@0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "dev": true - }, - "nan": { - "version": "2.5.0", - "from": "nan@>=2.3.2 <3.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.0.tgz", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "from": "natural-compare@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "dev": true - }, - "negotiator": { - "version": "0.6.1", - "from": "negotiator@0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "dev": true - }, - "neo-async": { - "version": "1.8.2", - "from": "neo-async@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-1.8.2.tgz", - "dev": true - }, - "node-gyp": { - "version": "3.4.0", - "from": "node-gyp@>=3.3.1 <4.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.4.0.tgz", - "dev": true, - "dependencies": { - "npmlog": { - "version": "3.1.2", - "from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0||>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-3.1.2.tgz", - "dev": true - } - } - }, - "node-sass": { - "version": "4.1.1", - "from": "node-sass@>=4.1.1 <5.0.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.1.1.tgz", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "from": "nopt@>=3.0.6 <3.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "dev": true - }, - "normalize-package-data": { - "version": "2.3.5", - "from": "normalize-package-data@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "dev": true - }, - "normalize-path": { - "version": "2.0.1", - "from": "normalize-path@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "from": "normalize-range@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "dev": true - }, - "npmlog": { - "version": "4.0.2", - "from": "npmlog@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", - "dev": true, - "dependencies": { - "gauge": { - "version": "2.7.2", - "from": "gauge@>=2.7.1 <2.8.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", - "dev": true - }, - "supports-color": { - "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "dev": true - } - } - }, - "num2fraction": { - "version": "1.2.2", - "from": "num2fraction@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "from": "oauth-sign@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "dev": true - }, - "object-assign": { - "version": "4.1.0", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "dev": true - }, - "object.omit": { - "version": "2.0.1", - "from": "object.omit@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "dev": true, - "optional": true - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dev": true - }, - "on-headers": { - "version": "1.0.1", - "from": "on-headers@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "dev": true - }, - "once": { - "version": "1.4.0", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "dev": true - }, - "onetime": { - "version": "1.1.0", - "from": "onetime@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "dev": true - }, - "opn": { - "version": "4.0.2", - "from": "opn@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "dev": true - }, - "optionator": { - "version": "0.8.2", - "from": "optionator@>=0.8.2 <0.9.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "from": "os-homedir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "from": "os-locale@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "from": "os-tmpdir@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "dev": true - }, - "osenv": { - "version": "0.1.4", - "from": "osenv@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "dev": true - }, - "package": { - "version": "1.0.1", - "from": "package@>=1.0.0 <1.2.0", - "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "from": "parse-glob@3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "from": "parse-json@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "dev": true - }, - "parse-ms": { - "version": "1.0.1", - "from": "parse-ms@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "dev": true - }, - "parserlib": { - "version": "0.2.5", - "from": "parserlib@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/parserlib/-/parserlib-0.2.5.tgz", - "dev": true - }, - "parseurl": { - "version": "1.3.1", - "from": "parseurl@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "dev": true - }, - "path-array": { - "version": "1.0.1", - "from": "path-array@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "from": "path-exists@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "from": "path-is-inside@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "from": "path-type@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "dev": true - }, - "pend": { - "version": "1.2.0", - "from": "pend@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "dev": true - }, - "phantomjs-prebuilt": { - "version": "2.1.14", - "from": "phantomjs-prebuilt@>=2.1.3 <3.0.0", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz", - "dev": true - }, - "pify": { - "version": "2.3.0", - "from": "pify@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "dev": true - }, - "pkg-up": { - "version": "1.0.0", - "from": "pkg-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", - "dev": true - }, - "plur": { - "version": "1.0.0", - "from": "plur@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", - "dev": true - }, - "pluralize": { - "version": "1.2.1", - "from": "pluralize@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "dev": true - }, - "portscanner": { - "version": "1.2.0", - "from": "portscanner@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-1.2.0.tgz", - "dev": true - }, - "postcss": { - "version": "5.2.8", - "from": "postcss@>=5.2.8 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.8.tgz", - "dev": true - }, - "postcss-cli": { - "version": "2.6.0", - "from": "postcss-cli@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-2.6.0.tgz", - "dev": true, - "dependencies": { - "glob": { - "version": "6.0.4", - "from": "glob@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "dev": true - }, - "globby": { - "version": "4.1.0", - "from": "globby@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", - "dev": true - } - } - }, - "postcss-flexbugs-fixes": { - "version": "2.1.0", - "from": "postcss-flexbugs-fixes@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-2.1.0.tgz", - "dev": true - }, - "postcss-value-parser": { - "version": "3.3.0", - "from": "postcss-value-parser@>=3.2.3 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "from": "prelude-ls@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "dev": true, - "optional": true - }, - "pretty-bytes": { - "version": "3.0.1", - "from": "pretty-bytes@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "dev": true - }, - "pretty-ms": { - "version": "2.1.0", - "from": "pretty-ms@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", - "dev": true - }, - "private": { - "version": "0.1.6", - "from": "private@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "dev": true - }, - "progress": { - "version": "1.1.8", - "from": "progress@>=1.1.8 <2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "from": "pseudomap@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "from": "punycode@>=1.4.1 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "dev": true - }, - "q": { - "version": "1.4.1", - "from": "q@>=1.4.1 <1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "dev": true - }, - "qs": { - "version": "6.3.0", - "from": "qs@>=6.3.0 <6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", - "dev": true - }, - "randomatic": { - "version": "1.1.6", - "from": "randomatic@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", - "dev": true, - "optional": true - }, - "range-parser": { - "version": "1.2.0", - "from": "range-parser@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "dev": true - }, - "raw-body": { - "version": "2.1.7", - "from": "raw-body@>=2.1.5 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", - "dev": true, - "dependencies": { - "bytes": { - "version": "2.4.0", - "from": "bytes@2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "dev": true - }, - "iconv-lite": { - "version": "0.4.13", - "from": "iconv-lite@0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "dev": true - } - } - }, - "read-file-stdin": { - "version": "0.2.1", - "from": "read-file-stdin@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "from": "read-pkg@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "dev": true - }, - "read-pkg-up": { - "version": "1.0.1", - "from": "read-pkg-up@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "dev": true - }, - "readable-stream": { - "version": "2.2.2", - "from": "readable-stream@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "dev": true - }, - "readdirp": { - "version": "2.1.0", - "from": "readdirp@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "dev": true, - "optional": true - }, - "readline2": { - "version": "1.0.1", - "from": "readline2@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "dev": true - }, - "rechoir": { - "version": "0.6.2", - "from": "rechoir@>=0.6.2 <0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "dev": true - }, - "redent": { - "version": "1.0.0", - "from": "redent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "dev": true - }, - "regenerate": { - "version": "1.3.2", - "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "dev": true - }, - "regenerator-runtime": { - "version": "0.10.1", - "from": "regenerator-runtime@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz", - "dev": true - }, - "regenerator-transform": { - "version": "0.9.8", - "from": "regenerator-transform@0.9.8", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz", - "dev": true - }, - "regex-cache": { - "version": "0.4.3", - "from": "regex-cache@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "dev": true, - "optional": true - }, - "regexpu-core": { - "version": "2.0.0", - "from": "regexpu-core@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "dev": true - }, - "regjsgen": { - "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "from": "repeating@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "dev": true - }, - "request": { - "version": "2.79.0", - "from": "request@>=2.79.0 <2.80.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "dev": true - }, - "request-progress": { - "version": "2.0.1", - "from": "request-progress@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "dev": true - }, - "requestretry": { - "version": "1.9.1", - "from": "requestretry@>=1.9.0 <1.10.0", - "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.9.1.tgz", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "from": "require-directory@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "from": "require-main-filename@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "from": "require-uncached@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "dev": true - }, - "resolve": { - "version": "1.2.0", - "from": "resolve@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz", - "dev": true - }, - "resolve-from": { - "version": "1.0.1", - "from": "resolve-from@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "dev": true - }, - "resolve-pkg": { - "version": "0.1.0", - "from": "resolve-pkg@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz", - "dev": true, - "dependencies": { - "resolve-from": { - "version": "2.0.0", - "from": "resolve-from@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "dev": true - } - } - }, - "restore-cursor": { - "version": "1.0.1", - "from": "restore-cursor@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "from": "right-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "dev": true - }, - "rimraf": { - "version": "2.5.4", - "from": "rimraf@>=2.2.8 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "dev": true - }, - "run-async": { - "version": "0.1.0", - "from": "run-async@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "dev": true - }, - "rx-lite": { - "version": "3.1.2", - "from": "rx-lite@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "dev": true - }, - "sass-graph": { - "version": "2.1.2", - "from": "sass-graph@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.1.2.tgz", - "dev": true - }, - "sauce-tunnel": { - "version": "2.5.0", - "from": "sauce-tunnel@>=2.5.0 <2.6.0", - "resolved": "https://registry.npmjs.org/sauce-tunnel/-/sauce-tunnel-2.5.0.tgz", - "dev": true - }, - "saucelabs": { - "version": "1.2.0", - "from": "saucelabs@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.2.0.tgz", - "dev": true - }, - "semver": { - "version": "5.3.0", - "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "dev": true - }, - "send": { - "version": "0.14.1", - "from": "send@0.14.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.14.1.tgz", - "dev": true, - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - } - } - }, - "serve-index": { - "version": "1.8.0", - "from": "serve-index@>=1.7.1 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", - "dev": true, - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - } - } - }, - "serve-static": { - "version": "1.11.1", - "from": "serve-static@>=1.10.0 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "from": "set-blocking@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "from": "set-immediate-shim@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "dev": true, - "optional": true - }, - "setprototypeof": { - "version": "1.0.2", - "from": "setprototypeof@1.0.2", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", - "dev": true - }, - "shelljs": { - "version": "0.7.5", - "from": "shelljs@>=0.7.5 <0.8.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.5.tgz", - "dev": true - }, - "shx": { - "version": "0.2.1", - "from": "shx@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.2.1.tgz", - "dev": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "dev": true - } - } - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "from": "signal-exit@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "dev": true - }, - "slash": { - "version": "1.0.0", - "from": "slash@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "dev": true - }, - "slice-ansi": { - "version": "0.0.4", - "from": "slice-ansi@0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "dev": true - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "dev": true - }, - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.6 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "dev": true - }, - "source-map-support": { - "version": "0.4.8", - "from": "source-map-support@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.8.tgz", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "from": "spdx-correct@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "dev": true - }, - "spdx-expression-parse": { - "version": "1.0.4", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "from": "spdx-license-ids@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "dev": true - }, - "split": { - "version": "1.0.0", - "from": "split@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "from": "sprintf-js@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "dev": true - }, - "sshpk": { - "version": "1.10.1", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz", - "dev": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "dev": true - } - } - }, - "statuses": { - "version": "1.3.1", - "from": "statuses@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "dev": true - }, - "stdout-stream": { - "version": "1.4.0", - "from": "stdout-stream@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", - "dev": true - }, - "stream-buffers": { - "version": "2.2.0", - "from": "stream-buffers@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "from": "string-width@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "dev": true - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "from": "strip-bom@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "dev": true - }, - "strip-indent": { - "version": "1.0.1", - "from": "strip-indent@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "dev": true - }, - "strip-json-comments": { - "version": "1.0.4", - "from": "strip-json-comments@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "dev": true - }, - "supports-color": { - "version": "3.1.2", - "from": "supports-color@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", - "dev": true - }, - "table": { - "version": "3.8.3", - "from": "table@>=3.7.8 <4.0.0", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "from": "is-fullwidth-code-point@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "dev": true - }, - "string-width": { - "version": "2.0.0", - "from": "string-width@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", - "dev": true - } - } - }, - "tar": { - "version": "2.2.1", - "from": "tar@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "dev": true - }, - "tar-stream": { - "version": "1.5.2", - "from": "tar-stream@>=1.5.0 <2.0.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz", - "dev": true - }, - "temporary": { - "version": "0.0.8", - "from": "temporary@>=0.0.8 <0.0.9", - "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz", - "dev": true - }, - "tether": { - "version": "1.4.0", - "from": "tether@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/tether/-/tether-1.4.0.tgz" - }, - "text-table": { - "version": "0.2.0", - "from": "text-table@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "dev": true - }, - "throttleit": { - "version": "1.0.0", - "from": "throttleit@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "dev": true - }, - "through": { - "version": "2.3.8", - "from": "through@>=2.3.6 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "dev": true - }, - "time-grunt": { - "version": "1.4.0", - "from": "time-grunt@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz", - "dev": true - }, - "time-zone": { - "version": "0.1.0", - "from": "time-zone@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz", - "dev": true - }, - "tiny-lr": { - "version": "0.2.1", - "from": "tiny-lr@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz", - "dev": true, - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dev": true - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "dev": true - }, - "qs": { - "version": "5.1.0", - "from": "qs@>=5.1.0 <5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", - "dev": true - } - } - }, - "tmp": { - "version": "0.0.28", - "from": "tmp@>=0.0.28 <0.0.29", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.2", - "from": "to-fast-properties@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz", - "dev": true - }, - "tough-cookie": { - "version": "2.3.2", - "from": "tough-cookie@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "dev": true - }, - "trim-newlines": { - "version": "1.0.0", - "from": "trim-newlines@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "dev": true - }, - "tryit": { - "version": "1.0.3", - "from": "tryit@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", - "dev": true - }, - "tunnel-agent": { - "version": "0.4.3", - "from": "tunnel-agent@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "dev": true - }, - "tweetnacl": { - "version": "0.14.5", - "from": "tweetnacl@>=0.14.0 <0.15.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "dev": true, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "from": "type-check@>=0.3.2 <0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "dev": true - }, - "type-is": { - "version": "1.6.14", - "from": "type-is@>=1.6.10 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "from": "typedarray@>=0.0.6 <0.0.7", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "dev": true - }, - "uglify-js": { - "version": "2.7.5", - "from": "uglify-js@>=2.7.5 <3.0.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "dev": true, - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "from": "cliui@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "from": "yargs@>=3.10.0 <3.11.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "dev": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "dev": true - }, - "underscore.string": { - "version": "3.2.3", - "from": "underscore.string@>=3.2.3 <3.3.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "dev": true - }, - "user-home": { - "version": "2.0.0", - "from": "user-home@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "dev": true - }, - "utils-merge": { - "version": "1.0.0", - "from": "utils-merge@1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "dev": true - }, - "uuid": { - "version": "3.0.1", - "from": "uuid@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.1", - "from": "validate-npm-package-license@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "dev": true - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "dev": true - }, - "vnu-jar": { - "version": "16.6.29", - "from": "vnu-jar@16.6.29", - "resolved": "https://registry.npmjs.org/vnu-jar/-/vnu-jar-16.6.29.tgz", - "dev": true - }, - "walkdir": { - "version": "0.0.11", - "from": "walkdir@>=0.0.11 <0.0.12", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "dev": true - }, - "websocket-driver": { - "version": "0.6.5", - "from": "websocket-driver@>=0.5.1", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "dev": true - }, - "websocket-extensions": { - "version": "0.1.1", - "from": "websocket-extensions@>=0.1.1", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", - "dev": true - }, - "when": { - "version": "3.7.7", - "from": "when@>=3.7.5 <3.8.0", - "resolved": "https://registry.npmjs.org/when/-/when-3.7.7.tgz", - "dev": true - }, - "which": { - "version": "1.2.12", - "from": "which@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.12.tgz", - "dev": true - }, - "which-module": { - "version": "1.0.0", - "from": "which-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "dev": true - }, - "wide-align": { - "version": "1.1.0", - "from": "wide-align@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", - "dev": true - }, - "window-size": { - "version": "0.2.0", - "from": "window-size@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "from": "wordwrap@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "from": "wrap-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "dev": true - }, - "write": { - "version": "0.2.1", - "from": "write@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "dev": true - }, - "xml": { - "version": "1.0.0", - "from": "xml@1.0.0", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.0.tgz", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "dev": true - }, - "y18n": { - "version": "3.2.1", - "from": "y18n@>=3.2.1 <4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "dev": true - }, - "yallist": { - "version": "2.0.0", - "from": "yallist@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz", - "dev": true - }, - "yargs": { - "version": "4.8.1", - "from": "yargs@>=4.7.1 <5.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "dev": true - }, - "yargs-parser": { - "version": "2.4.1", - "from": "yargs-parser@>=2.4.1 <3.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "from": "camelcase@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "dev": true - } - } - }, - "yauzl": { - "version": "2.4.1", - "from": "yauzl@2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "dev": true - }, - "zip-stream": { - "version": "1.1.0", - "from": "zip-stream@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.1.0.tgz", - "dev": true - } - } -} diff --git a/bower_components/bootstrap/grunt/postcss.js b/bower_components/bootstrap/grunt/postcss.js deleted file mode 100644 index a2ea78f5b..000000000 --- a/bower_components/bootstrap/grunt/postcss.js +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - use: [ - 'postcss-flexbugs-fixes', - 'autoprefixer' - ], - map: { - inline: false, - annotation: true, - sourcesContent: true - }, - autoprefixer: { - browsers: [ - // - // Official browser support policy: - // https://v4-alpha.getbootstrap.com/getting-started/browsers-devices/#supported-browsers - // - 'Chrome >= 35', // Exact version number here is kinda arbitrary - // Rather than using Autoprefixer's native "Firefox ESR" version specifier string, - // we deliberately hardcode the number. This is to avoid unwittingly severely breaking the previous ESR in the event that: - // (a) we happen to ship a new Bootstrap release soon after the release of a new ESR, - // such that folks haven't yet had a reasonable amount of time to upgrade; and - // (b) the new ESR has unprefixed CSS properties/values whose absence would severely break webpages - // (e.g. `box-sizing`, as opposed to `background: linear-gradient(...)`). - // Since they've been unprefixed, Autoprefixer will stop prefixing them, - // thus causing them to not work in the previous ESR (where the prefixes were required). - 'Firefox >= 38', // Current Firefox Extended Support Release (ESR); https://www.mozilla.org/en-US/firefox/organizations/faq/ - // Note: Edge versions in Autoprefixer & Can I Use refer to the EdgeHTML rendering engine version, - // NOT the Edge app version shown in Edge's "About" screen. - // For example, at the time of writing, Edge 20 on an up-to-date system uses EdgeHTML 12. - // See also https://github.com/Fyrd/caniuse/issues/1928 - 'Edge >= 12', - 'Explorer >= 10', - // Out of leniency, we prefix these 1 version further back than the official policy. - 'iOS >= 8', - 'Safari >= 8', - // The following remain NOT officially supported, but we're lenient and include their prefixes to avoid severely breaking in them. - 'Android 2.3', - 'Android >= 4', - 'Opera >= 12' - ] - } -} diff --git a/bower_components/bootstrap/grunt/sauce_browsers.yml b/bower_components/bootstrap/grunt/sauce_browsers.yml deleted file mode 100644 index 4d5041b9e..000000000 --- a/bower_components/bootstrap/grunt/sauce_browsers.yml +++ /dev/null @@ -1,84 +0,0 @@ -[ - # Docs: https://wiki.saucelabs.com/display/DOCS/Platform+Configurator - - { - browserName: "safari", - platform: "OS X 10.11" - }, - { - browserName: "chrome", - platform: "OS X 10.11", - version: "latest" - }, - { - browserName: "firefox", - platform: "OS X 10.11", - version: "latest" - }, - - # Mac Opera not currently supported by Sauce Labs - - { - browserName: "MicrosoftEdge", - platform: "Windows 10", - version: "latest" - }, - { - browserName: "internet explorer", - version: "11", - platform: "Windows 8.1" - }, - { - browserName: "internet explorer", - version: "10", - platform: "Windows 8" - }, - { - browserName: "internet explorer", - version: "9", - platform: "Windows 7" - }, - - { - browserName: "chrome", - platform: "Windows 10", - version: "latest" - }, - { - browserName: "firefox", - platform: "Windows 10", - version: "latest" - }, - - # Win Opera 15+ not currently supported by Sauce Labs - - { - browserName: "Safari", - deviceName: "iPhone Simulator", - platformVersion: "9.3", - platformName: "iOS" - }, - - # iOS Chrome not currently supported by Sauce Labs - - # Linux (unofficial) - { - browserName: "chrome", - platform: "Linux", - version: "latest" - }, - { - browserName: "firefox", - platform: "Linux", - version: "latest" - }, - - # Android - { - platform: "Linux", - browserName: "android", - deviceName: "Android Emulator", - version: "latest", - deviceType: "phone" - } -] diff --git a/bower_components/bootstrap/grunt/upload-preview.sh b/bower_components/bootstrap/grunt/upload-preview.sh deleted file mode 100755 index 905d716ab..000000000 --- a/bower_components/bootstrap/grunt/upload-preview.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# Upload built docs to preview.twbsapps.com - -if [ "$TRAVIS_REPO_SLUG" != twbs-savage/bootstrap ]; then exit 0; fi - -# Add build metadata to version -sed -i "/^current_version:/ s/\$/+pr.${TRAVIS_COMMIT}/" _config.yml -# Fix URLs since the site's root is now a subdirectory -echo "baseurl: /c/${TRAVIS_COMMIT}" >> _config.yml -bundle exec jekyll build --destination "$TRAVIS_COMMIT" - -# Install gcloud & gsutil -GSUTIL_VERSION=$(gsutil version | cut -d ' ' -f 3) -if [ ! -d "${HOME}/google-cloud-sdk" ] || [ "${GSUTIL_VERSION}" != '4.19' ]; then - rm -rf "${HOME}/google-cloud-sdk" # Kill Travis' outdated non-updateable preinstalled version - echo 'Installing google-cloud-sdk...' - export CLOUDSDK_CORE_DISABLE_PROMPTS=1 - time (curl -S -s https://sdk.cloud.google.com | bash &>/dev/null) - echo 'Done.' -fi -source "${HOME}/google-cloud-sdk/path.bash.inc" - -openssl aes-256-cbc -K $encrypted_2b749c8e6327_key -iv $encrypted_2b749c8e6327_iv -in grunt/gcp-key.json.enc -out grunt/gcp-key.json -d -gcloud auth activate-service-account "$GCP_SERVICE_ACCOUNT" --key-file grunt/gcp-key.json &> /dev/null || (echo 'GCP login failed!'; exit 1) - -echo "Uploading to http://preview.twbsapps.com/c/${TRAVIS_COMMIT} ..." -time gsutil -q -m cp -z html,css,js,svg -r "./${TRAVIS_COMMIT}" gs://preview.twbsapps.com/c/ -echo 'Done.' diff --git a/bower_components/bootstrap/js/.babelrc b/bower_components/bootstrap/js/.babelrc deleted file mode 100644 index ffc5e3b79..000000000 --- a/bower_components/bootstrap/js/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "presets": [ - [ - "es2015", - { - "modules": false, - "loose": true - } - ] - ], - "plugins": [ - "transform-es2015-modules-strip" - ] -} diff --git a/bower_components/bootstrap/js/.eslintrc.json b/bower_components/bootstrap/js/.eslintrc.json deleted file mode 100644 index 930e1f3c2..000000000 --- a/bower_components/bootstrap/js/.eslintrc.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "root": true, - "parser": "babel-eslint", - "env": { - "browser": true, - "es6": true, - "jquery": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": 8, - "sourceType": "module" - }, - "rules": { - // Possible Errors - "no-extra-parens": "error", - "no-prototype-builtins": "off", - "no-template-curly-in-string": "error", - "no-unsafe-negation": "error", - "valid-jsdoc": "error", - - // Best Practices - "accessor-pairs": "error", - "array-callback-return": "error", - "block-scoped-var": "error", - "class-methods-use-this": "off", - "complexity": "error", - "consistent-return": "error", - "curly": "error", - "default-case": "error", - "dot-location": ["error", "property"], - "dot-notation": "error", - "eqeqeq": "error", - "guard-for-in": "error", - "no-alert": "error", - "no-caller": "error", - "no-div-regex": "error", - "no-else-return": "error", - "no-empty-function": "error", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-floating-decimal": "error", - "no-global-assign": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-invalid-this": "off", - "no-iterator": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-loop-func": "error", - "no-magic-numbers": ["error", { - "ignore": [-1, 0, 1], - "ignoreArrayIndexes": true - } - ], - "no-multi-spaces": ["error", { - "exceptions": { - "AssignmentExpression": true, - "ArrowFunctionExpression": true, - "CallExpression": true, - "VariableDeclarator": true - } - } - ], - "no-multi-str": "error", - "no-new-func": "off", - "no-new-wrappers": "error", - "no-new": "error", - "no-octal-escape": "error", - "no-param-reassign": "off", - "no-proto": "error", - "no-restricted-properties": "error", - "no-return-assign": "off", - "no-script-url": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-throw-literal": "error", - "no-unmodified-loop-condition": "error", - "no-unused-expressions": "error", - "no-useless-call": "error", - "no-useless-concat": "error", - "no-useless-escape": "error", - "no-void": "error", - "no-warning-comments": "off", - "no-with": "error", - "radix": "error", - "vars-on-top": "error", - "wrap-iife": "error", - "yoda": "error", - - // Strict Mode - "strict": "error", - - // Variables - "init-declarations": "off", - "no-catch-shadow": "error", - "no-label-var": "error", - "no-restricted-globals": "error", - "no-shadow-restricted-names": "error", - "no-shadow": "off", - "no-undef-init": "error", - "no-undefined": "off", - "no-use-before-define": "off", - - // Node.js and CommonJS - "callback-return": "off", - "global-require": "error", - "handle-callback-err": "error", - "no-mixed-requires": "error", - "no-new-require": "error", - "no-path-concat": "error", - "no-process-env": "error", - "no-process-exit": "error", - "no-restricted-modules": "error", - "no-sync": "error", - - // Stylistic Issues - "array-bracket-spacing": "error", - "block-spacing": "error", - "brace-style": "error", - "camelcase": "error", - "comma-dangle": "error", - "comma-spacing": "error", - "comma-style": "error", - "computed-property-spacing": "error", - "consistent-this": "error", - "eol-last": "error", - "func-call-spacing": "error", - "func-names": "off", - "func-style": ["error", "declaration"], - "id-blacklist": "error", - "id-length": "off", - "id-match": "error", - "indent": ["error", 2, { "SwitchCase": 1 }], - "jsx-quotes": "error", - "key-spacing": "off", - "keyword-spacing": "error", - "line-comment-position": "off", - "linebreak-style": ["error", "unix"], - "lines-around-comment": "off", - "lines-around-directive": "error", - "max-depth": ["error", 10], - "max-len": "off", - "max-lines": "off", - "max-nested-callbacks": "error", - "max-params": "off", - "max-statements-per-line": "error", - "max-statements": "off", - "multiline-ternary": "off", - "new-cap": ["error", { "capIsNewExceptionPattern": "$.*" }], - "new-parens": "error", - "newline-after-var": "off", - "newline-before-return": "off", - "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 5 }], - "no-array-constructor": "error", - "no-bitwise": "error", - "no-continue": "off", - "no-inline-comments": "off", - "no-lonely-if": "error", - "no-mixed-operators": "off", - "no-multiple-empty-lines": "error", - "no-negated-condition": "off", - "no-nested-ternary": "error", - "no-new-object": "error", - "no-plusplus": "off", - "no-restricted-syntax": "error", - "no-tabs": "error", - "no-ternary": "off", - "no-trailing-spaces": "error", - "no-underscore-dangle": "off", - "no-unneeded-ternary": "error", - "no-whitespace-before-property": "error", - "object-curly-newline": ["error", { "minProperties": 1 }], - "object-curly-spacing": ["error", "always"], - "object-property-newline": "error", - "one-var-declaration-per-line": "error", - "one-var": ["error", "never"], - "operator-assignment": "error", - "operator-linebreak": "off", - "padded-blocks": "off", - "quote-props": ["error", "as-needed"], - "quotes": ["error", "single"], - "require-jsdoc": "off", - "semi-spacing": "error", - "semi": ["error", "never"], - "sort-keys": "off", - "sort-vars": "error", - "space-before-blocks": "error", - "space-before-function-paren": ["error", { - "anonymous": "always", - "named": "never" - }], - "space-in-parens": "error", - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": "error", - "unicode-bom": "error", - "wrap-regex": "off", - - // ECMAScript 6 - "arrow-body-style": "off", - "arrow-parens": "error", - "arrow-spacing": "error", - "generator-star-spacing": "error", - "no-confusing-arrow": "error", - "no-duplicate-imports": "error", - "no-restricted-imports": "error", - "no-useless-computed-key": "error", - "no-useless-constructor": "error", - "no-useless-rename": "error", - "no-var": "error", - "object-shorthand": "error", - "prefer-arrow-callback": "error", - "prefer-const": "error", - "prefer-numeric-literals": "error", - "prefer-reflect": "off", - "prefer-rest-params": "error", - "prefer-spread": "error", - "prefer-template": "error", - "rest-spread-spacing": "error", - "sort-imports": "error", - "symbol-description": "error", - "template-curly-spacing": "error", - "yield-star-spacing": "error" - } -} diff --git a/bower_components/bootstrap/js/src/alert.js b/bower_components/bootstrap/js/src/alert.js deleted file mode 100644 index b30d0d3a0..000000000 --- a/bower_components/bootstrap/js/src/alert.js +++ /dev/null @@ -1,193 +0,0 @@ -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): alert.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Alert = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'alert' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.alert' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - const TRANSITION_DURATION = 150 - - const Selector = { - DISMISS : '[data-dismiss="alert"]' - } - - const Event = { - CLOSE : `close${EVENT_KEY}`, - CLOSED : `closed${EVENT_KEY}`, - CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` - } - - const ClassName = { - ALERT : 'alert', - FADE : 'fade', - SHOW : 'show' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Alert { - - constructor(element) { - this._element = element - } - - - // getters - - static get VERSION() { - return VERSION - } - - - // public - - close(element) { - element = element || this._element - - const rootElement = this._getRootElement(element) - const customEvent = this._triggerCloseEvent(rootElement) - - if (customEvent.isDefaultPrevented()) { - return - } - - this._removeElement(rootElement) - } - - dispose() { - $.removeData(this._element, DATA_KEY) - this._element = null - } - - - // private - - _getRootElement(element) { - const selector = Util.getSelectorFromElement(element) - let parent = false - - if (selector) { - parent = $(selector)[0] - } - - if (!parent) { - parent = $(element).closest(`.${ClassName.ALERT}`)[0] - } - - return parent - } - - _triggerCloseEvent(element) { - const closeEvent = $.Event(Event.CLOSE) - - $(element).trigger(closeEvent) - return closeEvent - } - - _removeElement(element) { - $(element).removeClass(ClassName.SHOW) - - if (!Util.supportsTransitionEnd() || - !$(element).hasClass(ClassName.FADE)) { - this._destroyElement(element) - return - } - - $(element) - .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event)) - .emulateTransitionEnd(TRANSITION_DURATION) - } - - _destroyElement(element) { - $(element) - .detach() - .trigger(Event.CLOSED) - .remove() - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - const $element = $(this) - let data = $element.data(DATA_KEY) - - if (!data) { - data = new Alert(this) - $element.data(DATA_KEY, data) - } - - if (config === 'close') { - data[config](this) - } - }) - } - - static _handleDismiss(alertInstance) { - return function (event) { - if (event) { - event.preventDefault() - } - - alertInstance.close(this) - } - } - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(document).on( - Event.CLICK_DATA_API, - Selector.DISMISS, - Alert._handleDismiss(new Alert()) - ) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Alert._jQueryInterface - $.fn[NAME].Constructor = Alert - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Alert._jQueryInterface - } - - return Alert - -})(jQuery) - -export default Alert diff --git a/bower_components/bootstrap/js/src/button.js b/bower_components/bootstrap/js/src/button.js deleted file mode 100644 index 76c5cdd15..000000000 --- a/bower_components/bootstrap/js/src/button.js +++ /dev/null @@ -1,176 +0,0 @@ -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): button.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Button = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'button' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.button' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - - const ClassName = { - ACTIVE : 'active', - BUTTON : 'btn', - FOCUS : 'focus' - } - - const Selector = { - DATA_TOGGLE_CARROT : '[data-toggle^="button"]', - DATA_TOGGLE : '[data-toggle="buttons"]', - INPUT : 'input', - ACTIVE : '.active', - BUTTON : '.btn' - } - - const Event = { - CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`, - FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` - + `blur${EVENT_KEY}${DATA_API_KEY}` - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Button { - - constructor(element) { - this._element = element - } - - - // getters - - static get VERSION() { - return VERSION - } - - - // public - - toggle() { - let triggerChangeEvent = true - const rootElement = $(this._element).closest( - Selector.DATA_TOGGLE - )[0] - - if (rootElement) { - const input = $(this._element).find(Selector.INPUT)[0] - - if (input) { - if (input.type === 'radio') { - if (input.checked && - $(this._element).hasClass(ClassName.ACTIVE)) { - triggerChangeEvent = false - - } else { - const activeElement = $(rootElement).find(Selector.ACTIVE)[0] - - if (activeElement) { - $(activeElement).removeClass(ClassName.ACTIVE) - } - } - } - - if (triggerChangeEvent) { - input.checked = !$(this._element).hasClass(ClassName.ACTIVE) - $(input).trigger('change') - } - - input.focus() - } - - } - - this._element.setAttribute('aria-pressed', - !$(this._element).hasClass(ClassName.ACTIVE)) - - if (triggerChangeEvent) { - $(this._element).toggleClass(ClassName.ACTIVE) - } - } - - dispose() { - $.removeData(this._element, DATA_KEY) - this._element = null - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - let data = $(this).data(DATA_KEY) - - if (!data) { - data = new Button(this) - $(this).data(DATA_KEY, data) - } - - if (config === 'toggle') { - data[config]() - } - }) - } - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(document) - .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => { - event.preventDefault() - - let button = event.target - - if (!$(button).hasClass(ClassName.BUTTON)) { - button = $(button).closest(Selector.BUTTON) - } - - Button._jQueryInterface.call($(button), 'toggle') - }) - .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => { - const button = $(event.target).closest(Selector.BUTTON)[0] - $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)) - }) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Button._jQueryInterface - $.fn[NAME].Constructor = Button - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Button._jQueryInterface - } - - return Button - -})(jQuery) - -export default Button diff --git a/bower_components/bootstrap/js/src/carousel.js b/bower_components/bootstrap/js/src/carousel.js deleted file mode 100644 index d27600c40..000000000 --- a/bower_components/bootstrap/js/src/carousel.js +++ /dev/null @@ -1,497 +0,0 @@ -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): carousel.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Carousel = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'carousel' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.carousel' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - const TRANSITION_DURATION = 600 - const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key - const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key - - const Default = { - interval : 5000, - keyboard : true, - slide : false, - pause : 'hover', - wrap : true - } - - const DefaultType = { - interval : '(number|boolean)', - keyboard : 'boolean', - slide : '(boolean|string)', - pause : '(string|boolean)', - wrap : 'boolean' - } - - const Direction = { - NEXT : 'next', - PREV : 'prev', - LEFT : 'left', - RIGHT : 'right' - } - - const Event = { - SLIDE : `slide${EVENT_KEY}`, - SLID : `slid${EVENT_KEY}`, - KEYDOWN : `keydown${EVENT_KEY}`, - MOUSEENTER : `mouseenter${EVENT_KEY}`, - MOUSELEAVE : `mouseleave${EVENT_KEY}`, - LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`, - CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` - } - - const ClassName = { - CAROUSEL : 'carousel', - ACTIVE : 'active', - SLIDE : 'slide', - RIGHT : 'carousel-item-right', - LEFT : 'carousel-item-left', - NEXT : 'carousel-item-next', - PREV : 'carousel-item-prev', - ITEM : 'carousel-item' - } - - const Selector = { - ACTIVE : '.active', - ACTIVE_ITEM : '.active.carousel-item', - ITEM : '.carousel-item', - NEXT_PREV : '.carousel-item-next, .carousel-item-prev', - INDICATORS : '.carousel-indicators', - DATA_SLIDE : '[data-slide], [data-slide-to]', - DATA_RIDE : '[data-ride="carousel"]' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Carousel { - - constructor(element, config) { - this._items = null - this._interval = null - this._activeElement = null - - this._isPaused = false - this._isSliding = false - - this._config = this._getConfig(config) - this._element = $(element)[0] - this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0] - - this._addEventListeners() - } - - - // getters - - static get VERSION() { - return VERSION - } - - static get Default() { - return Default - } - - - // public - - next() { - if (this._isSliding) { - throw new Error('Carousel is sliding') - } - this._slide(Direction.NEXT) - } - - nextWhenVisible() { - // Don't call next when the page isn't visible - if (!document.hidden) { - this.next() - } - } - - prev() { - if (this._isSliding) { - throw new Error('Carousel is sliding') - } - this._slide(Direction.PREVIOUS) - } - - pause(event) { - if (!event) { - this._isPaused = true - } - - if ($(this._element).find(Selector.NEXT_PREV)[0] && - Util.supportsTransitionEnd()) { - Util.triggerTransitionEnd(this._element) - this.cycle(true) - } - - clearInterval(this._interval) - this._interval = null - } - - cycle(event) { - if (!event) { - this._isPaused = false - } - - if (this._interval) { - clearInterval(this._interval) - this._interval = null - } - - if (this._config.interval && !this._isPaused) { - this._interval = setInterval( - (document.visibilityState ? this.nextWhenVisible : this.next).bind(this), - this._config.interval - ) - } - } - - to(index) { - this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0] - - const activeIndex = this._getItemIndex(this._activeElement) - - if (index > this._items.length - 1 || index < 0) { - return - } - - if (this._isSliding) { - $(this._element).one(Event.SLID, () => this.to(index)) - return - } - - if (activeIndex === index) { - this.pause() - this.cycle() - return - } - - const direction = index > activeIndex ? - Direction.NEXT : - Direction.PREVIOUS - - this._slide(direction, this._items[index]) - } - - dispose() { - $(this._element).off(EVENT_KEY) - $.removeData(this._element, DATA_KEY) - - this._items = null - this._config = null - this._element = null - this._interval = null - this._isPaused = null - this._isSliding = null - this._activeElement = null - this._indicatorsElement = null - } - - - // private - - _getConfig(config) { - config = $.extend({}, Default, config) - Util.typeCheckConfig(NAME, config, DefaultType) - return config - } - - _addEventListeners() { - if (this._config.keyboard) { - $(this._element) - .on(Event.KEYDOWN, (event) => this._keydown(event)) - } - - if (this._config.pause === 'hover' && - !('ontouchstart' in document.documentElement)) { - $(this._element) - .on(Event.MOUSEENTER, (event) => this.pause(event)) - .on(Event.MOUSELEAVE, (event) => this.cycle(event)) - } - } - - _keydown(event) { - if (/input|textarea/i.test(event.target.tagName)) { - return - } - - switch (event.which) { - case ARROW_LEFT_KEYCODE: - event.preventDefault() - this.prev() - break - case ARROW_RIGHT_KEYCODE: - event.preventDefault() - this.next() - break - default: - return - } - } - - _getItemIndex(element) { - this._items = $.makeArray($(element).parent().find(Selector.ITEM)) - return this._items.indexOf(element) - } - - _getItemByDirection(direction, activeElement) { - const isNextDirection = direction === Direction.NEXT - const isPrevDirection = direction === Direction.PREVIOUS - const activeIndex = this._getItemIndex(activeElement) - const lastItemIndex = this._items.length - 1 - const isGoingToWrap = isPrevDirection && activeIndex === 0 || - isNextDirection && activeIndex === lastItemIndex - - if (isGoingToWrap && !this._config.wrap) { - return activeElement - } - - const delta = direction === Direction.PREVIOUS ? -1 : 1 - const itemIndex = (activeIndex + delta) % this._items.length - - return itemIndex === -1 ? - this._items[this._items.length - 1] : this._items[itemIndex] - } - - - _triggerSlideEvent(relatedTarget, eventDirectionName) { - const slideEvent = $.Event(Event.SLIDE, { - relatedTarget, - direction: eventDirectionName - }) - - $(this._element).trigger(slideEvent) - - return slideEvent - } - - _setActiveIndicatorElement(element) { - if (this._indicatorsElement) { - $(this._indicatorsElement) - .find(Selector.ACTIVE) - .removeClass(ClassName.ACTIVE) - - const nextIndicator = this._indicatorsElement.children[ - this._getItemIndex(element) - ] - - if (nextIndicator) { - $(nextIndicator).addClass(ClassName.ACTIVE) - } - } - } - - _slide(direction, element) { - const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0] - const nextElement = element || activeElement && - this._getItemByDirection(direction, activeElement) - - const isCycling = Boolean(this._interval) - - let directionalClassName - let orderClassName - let eventDirectionName - - if (direction === Direction.NEXT) { - directionalClassName = ClassName.LEFT - orderClassName = ClassName.NEXT - eventDirectionName = Direction.LEFT - } else { - directionalClassName = ClassName.RIGHT - orderClassName = ClassName.PREV - eventDirectionName = Direction.RIGHT - } - - if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { - this._isSliding = false - return - } - - const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName) - if (slideEvent.isDefaultPrevented()) { - return - } - - if (!activeElement || !nextElement) { - // some weirdness is happening, so we bail - return - } - - this._isSliding = true - - if (isCycling) { - this.pause() - } - - this._setActiveIndicatorElement(nextElement) - - const slidEvent = $.Event(Event.SLID, { - relatedTarget: nextElement, - direction: eventDirectionName - }) - - if (Util.supportsTransitionEnd() && - $(this._element).hasClass(ClassName.SLIDE)) { - - $(nextElement).addClass(orderClassName) - - Util.reflow(nextElement) - - $(activeElement).addClass(directionalClassName) - $(nextElement).addClass(directionalClassName) - - $(activeElement) - .one(Util.TRANSITION_END, () => { - $(nextElement) - .removeClass(`${directionalClassName} ${orderClassName}`) - .addClass(ClassName.ACTIVE) - - $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`) - - this._isSliding = false - - setTimeout(() => $(this._element).trigger(slidEvent), 0) - - }) - .emulateTransitionEnd(TRANSITION_DURATION) - - } else { - $(activeElement).removeClass(ClassName.ACTIVE) - $(nextElement).addClass(ClassName.ACTIVE) - - this._isSliding = false - $(this._element).trigger(slidEvent) - } - - if (isCycling) { - this.cycle() - } - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - let data = $(this).data(DATA_KEY) - const _config = $.extend({}, Default, $(this).data()) - - if (typeof config === 'object') { - $.extend(_config, config) - } - - const action = typeof config === 'string' ? config : _config.slide - - if (!data) { - data = new Carousel(this, _config) - $(this).data(DATA_KEY, data) - } - - if (typeof config === 'number') { - data.to(config) - } else if (typeof action === 'string') { - if (data[action] === undefined) { - throw new Error(`No method named "${action}"`) - } - data[action]() - } else if (_config.interval) { - data.pause() - data.cycle() - } - }) - } - - static _dataApiClickHandler(event) { - const selector = Util.getSelectorFromElement(this) - - if (!selector) { - return - } - - const target = $(selector)[0] - - if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { - return - } - - const config = $.extend({}, $(target).data(), $(this).data()) - const slideIndex = this.getAttribute('data-slide-to') - - if (slideIndex) { - config.interval = false - } - - Carousel._jQueryInterface.call($(target), config) - - if (slideIndex) { - $(target).data(DATA_KEY).to(slideIndex) - } - - event.preventDefault() - } - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(document) - .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler) - - $(window).on(Event.LOAD_DATA_API, () => { - $(Selector.DATA_RIDE).each(function () { - const $carousel = $(this) - Carousel._jQueryInterface.call($carousel, $carousel.data()) - }) - }) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Carousel._jQueryInterface - $.fn[NAME].Constructor = Carousel - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Carousel._jQueryInterface - } - - return Carousel - -})(jQuery) - -export default Carousel diff --git a/bower_components/bootstrap/js/src/collapse.js b/bower_components/bootstrap/js/src/collapse.js deleted file mode 100644 index 28c4493cc..000000000 --- a/bower_components/bootstrap/js/src/collapse.js +++ /dev/null @@ -1,387 +0,0 @@ -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): collapse.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Collapse = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'collapse' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.collapse' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - const TRANSITION_DURATION = 600 - - const Default = { - toggle : true, - parent : '' - } - - const DefaultType = { - toggle : 'boolean', - parent : 'string' - } - - const Event = { - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` - } - - const ClassName = { - SHOW : 'show', - COLLAPSE : 'collapse', - COLLAPSING : 'collapsing', - COLLAPSED : 'collapsed' - } - - const Dimension = { - WIDTH : 'width', - HEIGHT : 'height' - } - - const Selector = { - ACTIVES : '.card > .show, .card > .collapsing', - DATA_TOGGLE : '[data-toggle="collapse"]' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Collapse { - - constructor(element, config) { - this._isTransitioning = false - this._element = element - this._config = this._getConfig(config) - this._triggerArray = $.makeArray($( - `[data-toggle="collapse"][href="#${element.id}"],` + - `[data-toggle="collapse"][data-target="#${element.id}"]` - )) - - this._parent = this._config.parent ? this._getParent() : null - - if (!this._config.parent) { - this._addAriaAndCollapsedClass(this._element, this._triggerArray) - } - - if (this._config.toggle) { - this.toggle() - } - } - - - // getters - - static get VERSION() { - return VERSION - } - - static get Default() { - return Default - } - - - // public - - toggle() { - if ($(this._element).hasClass(ClassName.SHOW)) { - this.hide() - } else { - this.show() - } - } - - show() { - if (this._isTransitioning) { - throw new Error('Collapse is transitioning') - } - - if ($(this._element).hasClass(ClassName.SHOW)) { - return - } - - let actives - let activesData - - if (this._parent) { - actives = $.makeArray($(this._parent).find(Selector.ACTIVES)) - if (!actives.length) { - actives = null - } - } - - if (actives) { - activesData = $(actives).data(DATA_KEY) - if (activesData && activesData._isTransitioning) { - return - } - } - - const startEvent = $.Event(Event.SHOW) - $(this._element).trigger(startEvent) - if (startEvent.isDefaultPrevented()) { - return - } - - if (actives) { - Collapse._jQueryInterface.call($(actives), 'hide') - if (!activesData) { - $(actives).data(DATA_KEY, null) - } - } - - const dimension = this._getDimension() - - $(this._element) - .removeClass(ClassName.COLLAPSE) - .addClass(ClassName.COLLAPSING) - - this._element.style[dimension] = 0 - this._element.setAttribute('aria-expanded', true) - - if (this._triggerArray.length) { - $(this._triggerArray) - .removeClass(ClassName.COLLAPSED) - .attr('aria-expanded', true) - } - - this.setTransitioning(true) - - const complete = () => { - $(this._element) - .removeClass(ClassName.COLLAPSING) - .addClass(ClassName.COLLAPSE) - .addClass(ClassName.SHOW) - - this._element.style[dimension] = '' - - this.setTransitioning(false) - - $(this._element).trigger(Event.SHOWN) - } - - if (!Util.supportsTransitionEnd()) { - complete() - return - } - - const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1) - const scrollSize = `scroll${capitalizedDimension}` - - $(this._element) - .one(Util.TRANSITION_END, complete) - .emulateTransitionEnd(TRANSITION_DURATION) - - this._element.style[dimension] = `${this._element[scrollSize]}px` - } - - hide() { - if (this._isTransitioning) { - throw new Error('Collapse is transitioning') - } - - if (!$(this._element).hasClass(ClassName.SHOW)) { - return - } - - const startEvent = $.Event(Event.HIDE) - $(this._element).trigger(startEvent) - if (startEvent.isDefaultPrevented()) { - return - } - - const dimension = this._getDimension() - const offsetDimension = dimension === Dimension.WIDTH ? - 'offsetWidth' : 'offsetHeight' - - this._element.style[dimension] = `${this._element[offsetDimension]}px` - - Util.reflow(this._element) - - $(this._element) - .addClass(ClassName.COLLAPSING) - .removeClass(ClassName.COLLAPSE) - .removeClass(ClassName.SHOW) - - this._element.setAttribute('aria-expanded', false) - - if (this._triggerArray.length) { - $(this._triggerArray) - .addClass(ClassName.COLLAPSED) - .attr('aria-expanded', false) - } - - this.setTransitioning(true) - - const complete = () => { - this.setTransitioning(false) - $(this._element) - .removeClass(ClassName.COLLAPSING) - .addClass(ClassName.COLLAPSE) - .trigger(Event.HIDDEN) - } - - this._element.style[dimension] = '' - - if (!Util.supportsTransitionEnd()) { - complete() - return - } - - $(this._element) - .one(Util.TRANSITION_END, complete) - .emulateTransitionEnd(TRANSITION_DURATION) - } - - setTransitioning(isTransitioning) { - this._isTransitioning = isTransitioning - } - - dispose() { - $.removeData(this._element, DATA_KEY) - - this._config = null - this._parent = null - this._element = null - this._triggerArray = null - this._isTransitioning = null - } - - - // private - - _getConfig(config) { - config = $.extend({}, Default, config) - config.toggle = Boolean(config.toggle) // coerce string values - Util.typeCheckConfig(NAME, config, DefaultType) - return config - } - - _getDimension() { - const hasWidth = $(this._element).hasClass(Dimension.WIDTH) - return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT - } - - _getParent() { - const parent = $(this._config.parent)[0] - const selector = - `[data-toggle="collapse"][data-parent="${this._config.parent}"]` - - $(parent).find(selector).each((i, element) => { - this._addAriaAndCollapsedClass( - Collapse._getTargetFromElement(element), - [element] - ) - }) - - return parent - } - - _addAriaAndCollapsedClass(element, triggerArray) { - if (element) { - const isOpen = $(element).hasClass(ClassName.SHOW) - element.setAttribute('aria-expanded', isOpen) - - if (triggerArray.length) { - $(triggerArray) - .toggleClass(ClassName.COLLAPSED, !isOpen) - .attr('aria-expanded', isOpen) - } - } - } - - - // static - - static _getTargetFromElement(element) { - const selector = Util.getSelectorFromElement(element) - return selector ? $(selector)[0] : null - } - - static _jQueryInterface(config) { - return this.each(function () { - const $this = $(this) - let data = $this.data(DATA_KEY) - const _config = $.extend( - {}, - Default, - $this.data(), - typeof config === 'object' && config - ) - - if (!data && _config.toggle && /show|hide/.test(config)) { - _config.toggle = false - } - - if (!data) { - data = new Collapse(this, _config) - $this.data(DATA_KEY, data) - } - - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error(`No method named "${config}"`) - } - data[config]() - } - }) - } - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - event.preventDefault() - - const target = Collapse._getTargetFromElement(this) - const data = $(target).data(DATA_KEY) - const config = data ? 'toggle' : $(this).data() - - Collapse._jQueryInterface.call($(target), config) - }) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Collapse._jQueryInterface - $.fn[NAME].Constructor = Collapse - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Collapse._jQueryInterface - } - - return Collapse - -})(jQuery) - -export default Collapse diff --git a/bower_components/bootstrap/js/src/dropdown.js b/bower_components/bootstrap/js/src/dropdown.js deleted file mode 100644 index 36305df46..000000000 --- a/bower_components/bootstrap/js/src/dropdown.js +++ /dev/null @@ -1,303 +0,0 @@ -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): dropdown.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Dropdown = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'dropdown' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.dropdown' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key - const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key - const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key - const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse) - - const Event = { - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - CLICK : `click${EVENT_KEY}`, - CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`, - FOCUSIN_DATA_API : `focusin${EVENT_KEY}${DATA_API_KEY}`, - KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}` - } - - const ClassName = { - BACKDROP : 'dropdown-backdrop', - DISABLED : 'disabled', - SHOW : 'show' - } - - const Selector = { - BACKDROP : '.dropdown-backdrop', - DATA_TOGGLE : '[data-toggle="dropdown"]', - FORM_CHILD : '.dropdown form', - ROLE_MENU : '[role="menu"]', - ROLE_LISTBOX : '[role="listbox"]', - NAVBAR_NAV : '.navbar-nav', - VISIBLE_ITEMS : '[role="menu"] li:not(.disabled) a, ' - + '[role="listbox"] li:not(.disabled) a' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Dropdown { - - constructor(element) { - this._element = element - - this._addEventListeners() - } - - - // getters - - static get VERSION() { - return VERSION - } - - - // public - - toggle() { - if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { - return false - } - - const parent = Dropdown._getParentFromElement(this) - const isActive = $(parent).hasClass(ClassName.SHOW) - - Dropdown._clearMenus() - - if (isActive) { - return false - } - - if ('ontouchstart' in document.documentElement && - !$(parent).closest(Selector.NAVBAR_NAV).length) { - - // if mobile we use a backdrop because click events don't delegate - const dropdown = document.createElement('div') - dropdown.className = ClassName.BACKDROP - $(dropdown).insertBefore(this) - $(dropdown).on('click', Dropdown._clearMenus) - } - - const relatedTarget = { - relatedTarget : this - } - const showEvent = $.Event(Event.SHOW, relatedTarget) - - $(parent).trigger(showEvent) - - if (showEvent.isDefaultPrevented()) { - return false - } - - this.focus() - this.setAttribute('aria-expanded', true) - - $(parent).toggleClass(ClassName.SHOW) - $(parent).trigger($.Event(Event.SHOWN, relatedTarget)) - - return false - } - - dispose() { - $.removeData(this._element, DATA_KEY) - $(this._element).off(EVENT_KEY) - this._element = null - } - - - // private - - _addEventListeners() { - $(this._element).on(Event.CLICK, this.toggle) - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - let data = $(this).data(DATA_KEY) - - if (!data) { - data = new Dropdown(this) - $(this).data(DATA_KEY, data) - } - - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error(`No method named "${config}"`) - } - data[config].call(this) - } - }) - } - - static _clearMenus(event) { - if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) { - return - } - - const backdrop = $(Selector.BACKDROP)[0] - if (backdrop) { - backdrop.parentNode.removeChild(backdrop) - } - - const toggles = $.makeArray($(Selector.DATA_TOGGLE)) - - for (let i = 0; i < toggles.length; i++) { - const parent = Dropdown._getParentFromElement(toggles[i]) - const relatedTarget = { - relatedTarget : toggles[i] - } - - if (!$(parent).hasClass(ClassName.SHOW)) { - continue - } - - if (event && (event.type === 'click' && - /input|textarea/i.test(event.target.tagName) || event.type === 'focusin') - && $.contains(parent, event.target)) { - continue - } - - const hideEvent = $.Event(Event.HIDE, relatedTarget) - $(parent).trigger(hideEvent) - if (hideEvent.isDefaultPrevented()) { - continue - } - - toggles[i].setAttribute('aria-expanded', 'false') - - $(parent) - .removeClass(ClassName.SHOW) - .trigger($.Event(Event.HIDDEN, relatedTarget)) - } - } - - static _getParentFromElement(element) { - let parent - const selector = Util.getSelectorFromElement(element) - - if (selector) { - parent = $(selector)[0] - } - - return parent || element.parentNode - } - - static _dataApiKeydownHandler(event) { - if (!/(38|40|27|32)/.test(event.which) || - /input|textarea/i.test(event.target.tagName)) { - return - } - - event.preventDefault() - event.stopPropagation() - - if (this.disabled || $(this).hasClass(ClassName.DISABLED)) { - return - } - - const parent = Dropdown._getParentFromElement(this) - const isActive = $(parent).hasClass(ClassName.SHOW) - - if (!isActive && event.which !== ESCAPE_KEYCODE || - isActive && event.which === ESCAPE_KEYCODE) { - - if (event.which === ESCAPE_KEYCODE) { - const toggle = $(parent).find(Selector.DATA_TOGGLE)[0] - $(toggle).trigger('focus') - } - - $(this).trigger('click') - return - } - - const items = $(parent).find(Selector.VISIBLE_ITEMS).get() - - if (!items.length) { - return - } - - let index = items.indexOf(event.target) - - if (event.which === ARROW_UP_KEYCODE && index > 0) { // up - index-- - } - - if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down - index++ - } - - if (index < 0) { - index = 0 - } - - items[index].focus() - } - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(document) - .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler) - .on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler) - .on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler) - .on(`${Event.CLICK_DATA_API} ${Event.FOCUSIN_DATA_API}`, Dropdown._clearMenus) - .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle) - .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => { - e.stopPropagation() - }) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Dropdown._jQueryInterface - $.fn[NAME].Constructor = Dropdown - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Dropdown._jQueryInterface - } - - return Dropdown - -})(jQuery) - -export default Dropdown diff --git a/bower_components/bootstrap/js/src/modal.js b/bower_components/bootstrap/js/src/modal.js deleted file mode 100644 index 213434f77..000000000 --- a/bower_components/bootstrap/js/src/modal.js +++ /dev/null @@ -1,545 +0,0 @@ -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): modal.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Modal = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'modal' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.modal' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - const TRANSITION_DURATION = 300 - const BACKDROP_TRANSITION_DURATION = 150 - const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key - - const Default = { - backdrop : true, - keyboard : true, - focus : true, - show : true - } - - const DefaultType = { - backdrop : '(boolean|string)', - keyboard : 'boolean', - focus : 'boolean', - show : 'boolean' - } - - const Event = { - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - FOCUSIN : `focusin${EVENT_KEY}`, - RESIZE : `resize${EVENT_KEY}`, - CLICK_DISMISS : `click.dismiss${EVENT_KEY}`, - KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`, - MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`, - MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`, - CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` - } - - const ClassName = { - SCROLLBAR_MEASURER : 'modal-scrollbar-measure', - BACKDROP : 'modal-backdrop', - OPEN : 'modal-open', - FADE : 'fade', - SHOW : 'show' - } - - const Selector = { - DIALOG : '.modal-dialog', - DATA_TOGGLE : '[data-toggle="modal"]', - DATA_DISMISS : '[data-dismiss="modal"]', - FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Modal { - - constructor(element, config) { - this._config = this._getConfig(config) - this._element = element - this._dialog = $(element).find(Selector.DIALOG)[0] - this._backdrop = null - this._isShown = false - this._isBodyOverflowing = false - this._ignoreBackdropClick = false - this._isTransitioning = false - this._originalBodyPadding = 0 - this._scrollbarWidth = 0 - } - - - // getters - - static get VERSION() { - return VERSION - } - - static get Default() { - return Default - } - - - // public - - toggle(relatedTarget) { - return this._isShown ? this.hide() : this.show(relatedTarget) - } - - show(relatedTarget) { - if (this._isTransitioning) { - throw new Error('Modal is transitioning') - } - - if (Util.supportsTransitionEnd() && - $(this._element).hasClass(ClassName.FADE)) { - this._isTransitioning = true - } - const showEvent = $.Event(Event.SHOW, { - relatedTarget - }) - - $(this._element).trigger(showEvent) - - if (this._isShown || showEvent.isDefaultPrevented()) { - return - } - - this._isShown = true - - this._checkScrollbar() - this._setScrollbar() - - $(document.body).addClass(ClassName.OPEN) - - this._setEscapeEvent() - this._setResizeEvent() - - $(this._element).on( - Event.CLICK_DISMISS, - Selector.DATA_DISMISS, - (event) => this.hide(event) - ) - - $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => { - $(this._element).one(Event.MOUSEUP_DISMISS, (event) => { - if ($(event.target).is(this._element)) { - this._ignoreBackdropClick = true - } - }) - }) - - this._showBackdrop(() => this._showElement(relatedTarget)) - } - - hide(event) { - if (event) { - event.preventDefault() - } - - if (this._isTransitioning) { - throw new Error('Modal is transitioning') - } - - const transition = Util.supportsTransitionEnd() && - $(this._element).hasClass(ClassName.FADE) - if (transition) { - this._isTransitioning = true - } - - const hideEvent = $.Event(Event.HIDE) - $(this._element).trigger(hideEvent) - - if (!this._isShown || hideEvent.isDefaultPrevented()) { - return - } - - this._isShown = false - - this._setEscapeEvent() - this._setResizeEvent() - - $(document).off(Event.FOCUSIN) - - $(this._element).removeClass(ClassName.SHOW) - - $(this._element).off(Event.CLICK_DISMISS) - $(this._dialog).off(Event.MOUSEDOWN_DISMISS) - - if (transition) { - $(this._element) - .one(Util.TRANSITION_END, (event) => this._hideModal(event)) - .emulateTransitionEnd(TRANSITION_DURATION) - } else { - this._hideModal() - } - } - - dispose() { - $.removeData(this._element, DATA_KEY) - - $(window, document, this._element, this._backdrop).off(EVENT_KEY) - - this._config = null - this._element = null - this._dialog = null - this._backdrop = null - this._isShown = null - this._isBodyOverflowing = null - this._ignoreBackdropClick = null - this._originalBodyPadding = null - this._scrollbarWidth = null - } - - - // private - - _getConfig(config) { - config = $.extend({}, Default, config) - Util.typeCheckConfig(NAME, config, DefaultType) - return config - } - - _showElement(relatedTarget) { - const transition = Util.supportsTransitionEnd() && - $(this._element).hasClass(ClassName.FADE) - - if (!this._element.parentNode || - this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { - // don't move modals dom position - document.body.appendChild(this._element) - } - - this._element.style.display = 'block' - this._element.removeAttribute('aria-hidden') - this._element.scrollTop = 0 - - if (transition) { - Util.reflow(this._element) - } - - $(this._element).addClass(ClassName.SHOW) - - if (this._config.focus) { - this._enforceFocus() - } - - const shownEvent = $.Event(Event.SHOWN, { - relatedTarget - }) - - const transitionComplete = () => { - if (this._config.focus) { - this._element.focus() - } - this._isTransitioning = false - $(this._element).trigger(shownEvent) - } - - if (transition) { - $(this._dialog) - .one(Util.TRANSITION_END, transitionComplete) - .emulateTransitionEnd(TRANSITION_DURATION) - } else { - transitionComplete() - } - } - - _enforceFocus() { - $(document) - .off(Event.FOCUSIN) // guard against infinite focus loop - .on(Event.FOCUSIN, (event) => { - if (document !== event.target && - this._element !== event.target && - !$(this._element).has(event.target).length) { - this._element.focus() - } - }) - } - - _setEscapeEvent() { - if (this._isShown && this._config.keyboard) { - $(this._element).on(Event.KEYDOWN_DISMISS, (event) => { - if (event.which === ESCAPE_KEYCODE) { - this.hide() - } - }) - - } else if (!this._isShown) { - $(this._element).off(Event.KEYDOWN_DISMISS) - } - } - - _setResizeEvent() { - if (this._isShown) { - $(window).on(Event.RESIZE, (event) => this._handleUpdate(event)) - } else { - $(window).off(Event.RESIZE) - } - } - - _hideModal() { - this._element.style.display = 'none' - this._element.setAttribute('aria-hidden', 'true') - this._isTransitioning = false - this._showBackdrop(() => { - $(document.body).removeClass(ClassName.OPEN) - this._resetAdjustments() - this._resetScrollbar() - $(this._element).trigger(Event.HIDDEN) - }) - } - - _removeBackdrop() { - if (this._backdrop) { - $(this._backdrop).remove() - this._backdrop = null - } - } - - _showBackdrop(callback) { - const animate = $(this._element).hasClass(ClassName.FADE) ? - ClassName.FADE : '' - - if (this._isShown && this._config.backdrop) { - const doAnimate = Util.supportsTransitionEnd() && animate - - this._backdrop = document.createElement('div') - this._backdrop.className = ClassName.BACKDROP - - if (animate) { - $(this._backdrop).addClass(animate) - } - - $(this._backdrop).appendTo(document.body) - - $(this._element).on(Event.CLICK_DISMISS, (event) => { - if (this._ignoreBackdropClick) { - this._ignoreBackdropClick = false - return - } - if (event.target !== event.currentTarget) { - return - } - if (this._config.backdrop === 'static') { - this._element.focus() - } else { - this.hide() - } - }) - - if (doAnimate) { - Util.reflow(this._backdrop) - } - - $(this._backdrop).addClass(ClassName.SHOW) - - if (!callback) { - return - } - - if (!doAnimate) { - callback() - return - } - - $(this._backdrop) - .one(Util.TRANSITION_END, callback) - .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION) - - } else if (!this._isShown && this._backdrop) { - $(this._backdrop).removeClass(ClassName.SHOW) - - const callbackRemove = () => { - this._removeBackdrop() - if (callback) { - callback() - } - } - - if (Util.supportsTransitionEnd() && - $(this._element).hasClass(ClassName.FADE)) { - $(this._backdrop) - .one(Util.TRANSITION_END, callbackRemove) - .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION) - } else { - callbackRemove() - } - - } else if (callback) { - callback() - } - } - - - // ---------------------------------------------------------------------- - // the following methods are used to handle overflowing modals - // todo (fat): these should probably be refactored out of modal.js - // ---------------------------------------------------------------------- - - _handleUpdate() { - this._adjustDialog() - } - - _adjustDialog() { - const isModalOverflowing = - this._element.scrollHeight > document.documentElement.clientHeight - - if (!this._isBodyOverflowing && isModalOverflowing) { - this._element.style.paddingLeft = `${this._scrollbarWidth}px` - } - - if (this._isBodyOverflowing && !isModalOverflowing) { - this._element.style.paddingRight = `${this._scrollbarWidth}px` - } - } - - _resetAdjustments() { - this._element.style.paddingLeft = '' - this._element.style.paddingRight = '' - } - - _checkScrollbar() { - this._isBodyOverflowing = document.body.clientWidth < window.innerWidth - this._scrollbarWidth = this._getScrollbarWidth() - } - - _setScrollbar() { - const bodyPadding = parseInt( - $(Selector.FIXED_CONTENT).css('padding-right') || 0, - 10 - ) - - this._originalBodyPadding = document.body.style.paddingRight || '' - - if (this._isBodyOverflowing) { - document.body.style.paddingRight = - `${bodyPadding + this._scrollbarWidth}px` - } - } - - _resetScrollbar() { - document.body.style.paddingRight = this._originalBodyPadding - } - - _getScrollbarWidth() { // thx d.walsh - const scrollDiv = document.createElement('div') - scrollDiv.className = ClassName.SCROLLBAR_MEASURER - document.body.appendChild(scrollDiv) - const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - document.body.removeChild(scrollDiv) - return scrollbarWidth - } - - - // static - - static _jQueryInterface(config, relatedTarget) { - return this.each(function () { - let data = $(this).data(DATA_KEY) - const _config = $.extend( - {}, - Modal.Default, - $(this).data(), - typeof config === 'object' && config - ) - - if (!data) { - data = new Modal(this, _config) - $(this).data(DATA_KEY, data) - } - - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error(`No method named "${config}"`) - } - data[config](relatedTarget) - } else if (_config.show) { - data.show(relatedTarget) - } - }) - } - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - let target - const selector = Util.getSelectorFromElement(this) - - if (selector) { - target = $(selector)[0] - } - - const config = $(target).data(DATA_KEY) ? - 'toggle' : $.extend({}, $(target).data(), $(this).data()) - - if (this.tagName === 'A' || this.tagName === 'AREA') { - event.preventDefault() - } - - const $target = $(target).one(Event.SHOW, (showEvent) => { - if (showEvent.isDefaultPrevented()) { - // only register focus restorer if modal will actually get shown - return - } - - $target.one(Event.HIDDEN, () => { - if ($(this).is(':visible')) { - this.focus() - } - }) - }) - - Modal._jQueryInterface.call($(target), config, this) - }) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Modal._jQueryInterface - $.fn[NAME].Constructor = Modal - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Modal._jQueryInterface - } - - return Modal - -})(jQuery) - -export default Modal diff --git a/bower_components/bootstrap/js/src/popover.js b/bower_components/bootstrap/js/src/popover.js deleted file mode 100644 index b68b47998..000000000 --- a/bower_components/bootstrap/js/src/popover.js +++ /dev/null @@ -1,179 +0,0 @@ -import Tooltip from './tooltip' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): popover.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Popover = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'popover' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.popover' - const EVENT_KEY = `.${DATA_KEY}` - const JQUERY_NO_CONFLICT = $.fn[NAME] - - const Default = $.extend({}, Tooltip.Default, { - placement : 'right', - trigger : 'click', - content : '', - template : '' - }) - - const DefaultType = $.extend({}, Tooltip.DefaultType, { - content : '(string|element|function)' - }) - - const ClassName = { - FADE : 'fade', - SHOW : 'show' - } - - const Selector = { - TITLE : '.popover-title', - CONTENT : '.popover-content' - } - - const Event = { - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - INSERTED : `inserted${EVENT_KEY}`, - CLICK : `click${EVENT_KEY}`, - FOCUSIN : `focusin${EVENT_KEY}`, - FOCUSOUT : `focusout${EVENT_KEY}`, - MOUSEENTER : `mouseenter${EVENT_KEY}`, - MOUSELEAVE : `mouseleave${EVENT_KEY}` - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Popover extends Tooltip { - - - // getters - - static get VERSION() { - return VERSION - } - - static get Default() { - return Default - } - - static get NAME() { - return NAME - } - - static get DATA_KEY() { - return DATA_KEY - } - - static get Event() { - return Event - } - - static get EVENT_KEY() { - return EVENT_KEY - } - - static get DefaultType() { - return DefaultType - } - - - // overrides - - isWithContent() { - return this.getTitle() || this._getContent() - } - - getTipElement() { - return this.tip = this.tip || $(this.config.template)[0] - } - - setContent() { - const $tip = $(this.getTipElement()) - - // we use append for html objects to maintain js events - this.setElementContent($tip.find(Selector.TITLE), this.getTitle()) - this.setElementContent($tip.find(Selector.CONTENT), this._getContent()) - - $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`) - - this.cleanupTether() - } - - // private - - _getContent() { - return this.element.getAttribute('data-content') - || (typeof this.config.content === 'function' ? - this.config.content.call(this.element) : - this.config.content) - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - let data = $(this).data(DATA_KEY) - const _config = typeof config === 'object' ? config : null - - if (!data && /destroy|hide/.test(config)) { - return - } - - if (!data) { - data = new Popover(this, _config) - $(this).data(DATA_KEY, data) - } - - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error(`No method named "${config}"`) - } - data[config]() - } - }) - } - } - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Popover._jQueryInterface - $.fn[NAME].Constructor = Popover - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Popover._jQueryInterface - } - - return Popover - -})(jQuery) - -export default Popover diff --git a/bower_components/bootstrap/js/src/scrollspy.js b/bower_components/bootstrap/js/src/scrollspy.js deleted file mode 100644 index 66b6080c8..000000000 --- a/bower_components/bootstrap/js/src/scrollspy.js +++ /dev/null @@ -1,332 +0,0 @@ -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): scrollspy.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const ScrollSpy = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'scrollspy' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.scrollspy' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - - const Default = { - offset : 10, - method : 'auto', - target : '' - } - - const DefaultType = { - offset : 'number', - method : 'string', - target : '(string|element)' - } - - const Event = { - ACTIVATE : `activate${EVENT_KEY}`, - SCROLL : `scroll${EVENT_KEY}`, - LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}` - } - - const ClassName = { - DROPDOWN_ITEM : 'dropdown-item', - DROPDOWN_MENU : 'dropdown-menu', - NAV_LINK : 'nav-link', - NAV : 'nav', - ACTIVE : 'active' - } - - const Selector = { - DATA_SPY : '[data-spy="scroll"]', - ACTIVE : '.active', - LIST_ITEM : '.list-item', - LI : 'li', - LI_DROPDOWN : 'li.dropdown', - NAV_LINKS : '.nav-link', - DROPDOWN : '.dropdown', - DROPDOWN_ITEMS : '.dropdown-item', - DROPDOWN_TOGGLE : '.dropdown-toggle' - } - - const OffsetMethod = { - OFFSET : 'offset', - POSITION : 'position' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class ScrollSpy { - - constructor(element, config) { - this._element = element - this._scrollElement = element.tagName === 'BODY' ? window : element - this._config = this._getConfig(config) - this._selector = `${this._config.target} ${Selector.NAV_LINKS},` - + `${this._config.target} ${Selector.DROPDOWN_ITEMS}` - this._offsets = [] - this._targets = [] - this._activeTarget = null - this._scrollHeight = 0 - - $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event)) - - this.refresh() - this._process() - } - - - // getters - - static get VERSION() { - return VERSION - } - - static get Default() { - return Default - } - - - // public - - refresh() { - const autoMethod = this._scrollElement !== this._scrollElement.window ? - OffsetMethod.POSITION : OffsetMethod.OFFSET - - const offsetMethod = this._config.method === 'auto' ? - autoMethod : this._config.method - - const offsetBase = offsetMethod === OffsetMethod.POSITION ? - this._getScrollTop() : 0 - - this._offsets = [] - this._targets = [] - - this._scrollHeight = this._getScrollHeight() - - const targets = $.makeArray($(this._selector)) - - targets - .map((element) => { - let target - const targetSelector = Util.getSelectorFromElement(element) - - if (targetSelector) { - target = $(targetSelector)[0] - } - - if (target && (target.offsetWidth || target.offsetHeight)) { - // todo (fat): remove sketch reliance on jQuery position/offset - return [ - $(target)[offsetMethod]().top + offsetBase, - targetSelector - ] - } - return null - }) - .filter((item) => item) - .sort((a, b) => a[0] - b[0]) - .forEach((item) => { - this._offsets.push(item[0]) - this._targets.push(item[1]) - }) - } - - dispose() { - $.removeData(this._element, DATA_KEY) - $(this._scrollElement).off(EVENT_KEY) - - this._element = null - this._scrollElement = null - this._config = null - this._selector = null - this._offsets = null - this._targets = null - this._activeTarget = null - this._scrollHeight = null - } - - - // private - - _getConfig(config) { - config = $.extend({}, Default, config) - - if (typeof config.target !== 'string') { - let id = $(config.target).attr('id') - if (!id) { - id = Util.getUID(NAME) - $(config.target).attr('id', id) - } - config.target = `#${id}` - } - - Util.typeCheckConfig(NAME, config, DefaultType) - - return config - } - - _getScrollTop() { - return this._scrollElement === window ? - this._scrollElement.pageYOffset : this._scrollElement.scrollTop - } - - _getScrollHeight() { - return this._scrollElement.scrollHeight || Math.max( - document.body.scrollHeight, - document.documentElement.scrollHeight - ) - } - - _getOffsetHeight() { - return this._scrollElement === window ? - window.innerHeight : this._scrollElement.offsetHeight - } - - _process() { - const scrollTop = this._getScrollTop() + this._config.offset - const scrollHeight = this._getScrollHeight() - const maxScroll = this._config.offset - + scrollHeight - - this._getOffsetHeight() - - if (this._scrollHeight !== scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - const target = this._targets[this._targets.length - 1] - - if (this._activeTarget !== target) { - this._activate(target) - } - return - } - - if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { - this._activeTarget = null - this._clear() - return - } - - for (let i = this._offsets.length; i--;) { - const isActiveTarget = this._activeTarget !== this._targets[i] - && scrollTop >= this._offsets[i] - && (this._offsets[i + 1] === undefined || - scrollTop < this._offsets[i + 1]) - - if (isActiveTarget) { - this._activate(this._targets[i]) - } - } - } - - _activate(target) { - this._activeTarget = target - - this._clear() - - let queries = this._selector.split(',') - queries = queries.map((selector) => { - return `${selector}[data-target="${target}"],` + - `${selector}[href="${target}"]` - }) - - const $link = $(queries.join(',')) - - if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { - $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE) - $link.addClass(ClassName.ACTIVE) - } else { - // todo (fat) this is kinda sus... - // recursively add actives to tested nav-links - $link.parents(Selector.LI).find(`> ${Selector.NAV_LINKS}`).addClass(ClassName.ACTIVE) - } - - $(this._scrollElement).trigger(Event.ACTIVATE, { - relatedTarget: target - }) - } - - _clear() { - $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE) - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - let data = $(this).data(DATA_KEY) - const _config = typeof config === 'object' && config - - if (!data) { - data = new ScrollSpy(this, _config) - $(this).data(DATA_KEY, data) - } - - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error(`No method named "${config}"`) - } - data[config]() - } - }) - } - - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(window).on(Event.LOAD_DATA_API, () => { - const scrollSpys = $.makeArray($(Selector.DATA_SPY)) - - for (let i = scrollSpys.length; i--;) { - const $spy = $(scrollSpys[i]) - ScrollSpy._jQueryInterface.call($spy, $spy.data()) - } - }) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = ScrollSpy._jQueryInterface - $.fn[NAME].Constructor = ScrollSpy - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return ScrollSpy._jQueryInterface - } - - return ScrollSpy - -})(jQuery) - -export default ScrollSpy diff --git a/bower_components/bootstrap/js/src/tab.js b/bower_components/bootstrap/js/src/tab.js deleted file mode 100644 index c069b0a9a..000000000 --- a/bower_components/bootstrap/js/src/tab.js +++ /dev/null @@ -1,278 +0,0 @@ -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): tab.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Tab = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'tab' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.tab' - const EVENT_KEY = `.${DATA_KEY}` - const DATA_API_KEY = '.data-api' - const JQUERY_NO_CONFLICT = $.fn[NAME] - const TRANSITION_DURATION = 150 - - const Event = { - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` - } - - const ClassName = { - DROPDOWN_MENU : 'dropdown-menu', - ACTIVE : 'active', - DISABLED : 'disabled', - FADE : 'fade', - SHOW : 'show' - } - - const Selector = { - A : 'a', - LI : 'li', - DROPDOWN : '.dropdown', - LIST : 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)', - FADE_CHILD : '> .nav-item .fade, > .fade', - ACTIVE : '.active', - ACTIVE_CHILD : '> .nav-item > .active, > .active', - DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"]', - DROPDOWN_TOGGLE : '.dropdown-toggle', - DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Tab { - - constructor(element) { - this._element = element - } - - - // getters - - static get VERSION() { - return VERSION - } - - - // public - - show() { - if (this._element.parentNode && - this._element.parentNode.nodeType === Node.ELEMENT_NODE && - $(this._element).hasClass(ClassName.ACTIVE) || - $(this._element).hasClass(ClassName.DISABLED)) { - return - } - - let target - let previous - const listElement = $(this._element).closest(Selector.LIST)[0] - const selector = Util.getSelectorFromElement(this._element) - - if (listElement) { - previous = $.makeArray($(listElement).find(Selector.ACTIVE)) - previous = previous[previous.length - 1] - } - - const hideEvent = $.Event(Event.HIDE, { - relatedTarget: this._element - }) - - const showEvent = $.Event(Event.SHOW, { - relatedTarget: previous - }) - - if (previous) { - $(previous).trigger(hideEvent) - } - - $(this._element).trigger(showEvent) - - if (showEvent.isDefaultPrevented() || - hideEvent.isDefaultPrevented()) { - return - } - - if (selector) { - target = $(selector)[0] - } - - this._activate( - this._element, - listElement - ) - - const complete = () => { - const hiddenEvent = $.Event(Event.HIDDEN, { - relatedTarget: this._element - }) - - const shownEvent = $.Event(Event.SHOWN, { - relatedTarget: previous - }) - - $(previous).trigger(hiddenEvent) - $(this._element).trigger(shownEvent) - } - - if (target) { - this._activate(target, target.parentNode, complete) - } else { - complete() - } - } - - dispose() { - $.removeClass(this._element, DATA_KEY) - this._element = null - } - - - // private - - _activate(element, container, callback) { - const active = $(container).find(Selector.ACTIVE_CHILD)[0] - const isTransitioning = callback - && Util.supportsTransitionEnd() - && (active && $(active).hasClass(ClassName.FADE) - || Boolean($(container).find(Selector.FADE_CHILD)[0])) - - const complete = () => this._transitionComplete( - element, - active, - isTransitioning, - callback - ) - - if (active && isTransitioning) { - $(active) - .one(Util.TRANSITION_END, complete) - .emulateTransitionEnd(TRANSITION_DURATION) - - } else { - complete() - } - - if (active) { - $(active).removeClass(ClassName.SHOW) - } - } - - _transitionComplete(element, active, isTransitioning, callback) { - if (active) { - $(active).removeClass(ClassName.ACTIVE) - - const dropdownChild = $(active.parentNode).find( - Selector.DROPDOWN_ACTIVE_CHILD - )[0] - - if (dropdownChild) { - $(dropdownChild).removeClass(ClassName.ACTIVE) - } - - active.setAttribute('aria-expanded', false) - } - - $(element).addClass(ClassName.ACTIVE) - element.setAttribute('aria-expanded', true) - - if (isTransitioning) { - Util.reflow(element) - $(element).addClass(ClassName.SHOW) - } else { - $(element).removeClass(ClassName.FADE) - } - - if (element.parentNode && - $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { - - const dropdownElement = $(element).closest(Selector.DROPDOWN)[0] - if (dropdownElement) { - $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE) - } - - element.setAttribute('aria-expanded', true) - } - - if (callback) { - callback() - } - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - const $this = $(this) - let data = $this.data(DATA_KEY) - - if (!data) { - data = new Tab(this) - $this.data(DATA_KEY, data) - } - - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error(`No method named "${config}"`) - } - data[config]() - } - }) - } - - } - - - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - $(document) - .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - event.preventDefault() - Tab._jQueryInterface.call($(this), 'show') - }) - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Tab._jQueryInterface - $.fn[NAME].Constructor = Tab - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Tab._jQueryInterface - } - - return Tab - -})(jQuery) - -export default Tab diff --git a/bower_components/bootstrap/js/src/tooltip.js b/bower_components/bootstrap/js/src/tooltip.js deleted file mode 100644 index e750dcecc..000000000 --- a/bower_components/bootstrap/js/src/tooltip.js +++ /dev/null @@ -1,675 +0,0 @@ -/* global Tether */ - -import Util from './util' - - -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): tooltip.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Tooltip = (($) => { - - /** - * Check for Tether dependency - * Tether - http://tether.io/ - */ - if (typeof Tether === 'undefined') { - throw new Error('Bootstrap tooltips require Tether (http://tether.io/)') - } - - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - const NAME = 'tooltip' - const VERSION = '4.0.0-alpha.6' - const DATA_KEY = 'bs.tooltip' - const EVENT_KEY = `.${DATA_KEY}` - const JQUERY_NO_CONFLICT = $.fn[NAME] - const TRANSITION_DURATION = 150 - const CLASS_PREFIX = 'bs-tether' - - const Default = { - animation : true, - template : '', - trigger : 'hover focus', - title : '', - delay : 0, - html : false, - selector : false, - placement : 'top', - offset : '0 0', - constraints : [], - container : false - } - - const DefaultType = { - animation : 'boolean', - template : 'string', - title : '(string|element|function)', - trigger : 'string', - delay : '(number|object)', - html : 'boolean', - selector : '(string|boolean)', - placement : '(string|function)', - offset : 'string', - constraints : 'array', - container : '(string|element|boolean)' - } - - const AttachmentMap = { - TOP : 'bottom center', - RIGHT : 'middle left', - BOTTOM : 'top center', - LEFT : 'middle right' - } - - const HoverState = { - SHOW : 'show', - OUT : 'out' - } - - const Event = { - HIDE : `hide${EVENT_KEY}`, - HIDDEN : `hidden${EVENT_KEY}`, - SHOW : `show${EVENT_KEY}`, - SHOWN : `shown${EVENT_KEY}`, - INSERTED : `inserted${EVENT_KEY}`, - CLICK : `click${EVENT_KEY}`, - FOCUSIN : `focusin${EVENT_KEY}`, - FOCUSOUT : `focusout${EVENT_KEY}`, - MOUSEENTER : `mouseenter${EVENT_KEY}`, - MOUSELEAVE : `mouseleave${EVENT_KEY}` - } - - const ClassName = { - FADE : 'fade', - SHOW : 'show' - } - - const Selector = { - TOOLTIP : '.tooltip', - TOOLTIP_INNER : '.tooltip-inner' - } - - const TetherClass = { - element : false, - enabled : false - } - - const Trigger = { - HOVER : 'hover', - FOCUS : 'focus', - CLICK : 'click', - MANUAL : 'manual' - } - - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - class Tooltip { - - constructor(element, config) { - - // private - this._isEnabled = true - this._timeout = 0 - this._hoverState = '' - this._activeTrigger = {} - this._isTransitioning = false - this._tether = null - - // protected - this.element = element - this.config = this._getConfig(config) - this.tip = null - - this._setListeners() - - } - - - // getters - - static get VERSION() { - return VERSION - } - - static get Default() { - return Default - } - - static get NAME() { - return NAME - } - - static get DATA_KEY() { - return DATA_KEY - } - - static get Event() { - return Event - } - - static get EVENT_KEY() { - return EVENT_KEY - } - - static get DefaultType() { - return DefaultType - } - - - // public - - enable() { - this._isEnabled = true - } - - disable() { - this._isEnabled = false - } - - toggleEnabled() { - this._isEnabled = !this._isEnabled - } - - toggle(event) { - if (event) { - const dataKey = this.constructor.DATA_KEY - let context = $(event.currentTarget).data(dataKey) - - if (!context) { - context = new this.constructor( - event.currentTarget, - this._getDelegateConfig() - ) - $(event.currentTarget).data(dataKey, context) - } - - context._activeTrigger.click = !context._activeTrigger.click - - if (context._isWithActiveTrigger()) { - context._enter(null, context) - } else { - context._leave(null, context) - } - - } else { - - if ($(this.getTipElement()).hasClass(ClassName.SHOW)) { - this._leave(null, this) - return - } - - this._enter(null, this) - } - } - - dispose() { - clearTimeout(this._timeout) - - this.cleanupTether() - - $.removeData(this.element, this.constructor.DATA_KEY) - - $(this.element).off(this.constructor.EVENT_KEY) - $(this.element).closest('.modal').off('hide.bs.modal') - - if (this.tip) { - $(this.tip).remove() - } - - this._isEnabled = null - this._timeout = null - this._hoverState = null - this._activeTrigger = null - this._tether = null - - this.element = null - this.config = null - this.tip = null - } - - show() { - if ($(this.element).css('display') === 'none') { - throw new Error('Please use show on visible elements') - } - - const showEvent = $.Event(this.constructor.Event.SHOW) - if (this.isWithContent() && this._isEnabled) { - if (this._isTransitioning) { - throw new Error('Tooltip is transitioning') - } - $(this.element).trigger(showEvent) - - const isInTheDom = $.contains( - this.element.ownerDocument.documentElement, - this.element - ) - - if (showEvent.isDefaultPrevented() || !isInTheDom) { - return - } - - const tip = this.getTipElement() - const tipId = Util.getUID(this.constructor.NAME) - - tip.setAttribute('id', tipId) - this.element.setAttribute('aria-describedby', tipId) - - this.setContent() - - if (this.config.animation) { - $(tip).addClass(ClassName.FADE) - } - - const placement = typeof this.config.placement === 'function' ? - this.config.placement.call(this, tip, this.element) : - this.config.placement - - const attachment = this._getAttachment(placement) - - const container = this.config.container === false ? document.body : $(this.config.container) - - $(tip) - .data(this.constructor.DATA_KEY, this) - .appendTo(container) - - $(this.element).trigger(this.constructor.Event.INSERTED) - - this._tether = new Tether({ - attachment, - element : tip, - target : this.element, - classes : TetherClass, - classPrefix : CLASS_PREFIX, - offset : this.config.offset, - constraints : this.config.constraints, - addTargetClasses: false - }) - - Util.reflow(tip) - this._tether.position() - - $(tip).addClass(ClassName.SHOW) - - const complete = () => { - const prevHoverState = this._hoverState - this._hoverState = null - this._isTransitioning = false - - $(this.element).trigger(this.constructor.Event.SHOWN) - - if (prevHoverState === HoverState.OUT) { - this._leave(null, this) - } - } - - if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { - this._isTransitioning = true - $(this.tip) - .one(Util.TRANSITION_END, complete) - .emulateTransitionEnd(Tooltip._TRANSITION_DURATION) - return - } - - complete() - } - } - - hide(callback) { - const tip = this.getTipElement() - const hideEvent = $.Event(this.constructor.Event.HIDE) - if (this._isTransitioning) { - throw new Error('Tooltip is transitioning') - } - const complete = () => { - if (this._hoverState !== HoverState.SHOW && tip.parentNode) { - tip.parentNode.removeChild(tip) - } - - this.element.removeAttribute('aria-describedby') - $(this.element).trigger(this.constructor.Event.HIDDEN) - this._isTransitioning = false - this.cleanupTether() - - if (callback) { - callback() - } - } - - $(this.element).trigger(hideEvent) - - if (hideEvent.isDefaultPrevented()) { - return - } - - $(tip).removeClass(ClassName.SHOW) - - this._activeTrigger[Trigger.CLICK] = false - this._activeTrigger[Trigger.FOCUS] = false - this._activeTrigger[Trigger.HOVER] = false - - if (Util.supportsTransitionEnd() && - $(this.tip).hasClass(ClassName.FADE)) { - this._isTransitioning = true - $(tip) - .one(Util.TRANSITION_END, complete) - .emulateTransitionEnd(TRANSITION_DURATION) - - } else { - complete() - } - - this._hoverState = '' - } - - - // protected - - isWithContent() { - return Boolean(this.getTitle()) - } - - getTipElement() { - return this.tip = this.tip || $(this.config.template)[0] - } - - setContent() { - const $tip = $(this.getTipElement()) - - this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()) - - $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`) - - this.cleanupTether() - } - - setElementContent($element, content) { - const html = this.config.html - if (typeof content === 'object' && (content.nodeType || content.jquery)) { - // content is a DOM node or a jQuery - if (html) { - if (!$(content).parent().is($element)) { - $element.empty().append(content) - } - } else { - $element.text($(content).text()) - } - } else { - $element[html ? 'html' : 'text'](content) - } - } - - getTitle() { - let title = this.element.getAttribute('data-original-title') - - if (!title) { - title = typeof this.config.title === 'function' ? - this.config.title.call(this.element) : - this.config.title - } - - return title - } - - cleanupTether() { - if (this._tether) { - this._tether.destroy() - } - } - - - // private - - _getAttachment(placement) { - return AttachmentMap[placement.toUpperCase()] - } - - _setListeners() { - const triggers = this.config.trigger.split(' ') - - triggers.forEach((trigger) => { - if (trigger === 'click') { - $(this.element).on( - this.constructor.Event.CLICK, - this.config.selector, - (event) => this.toggle(event) - ) - - } else if (trigger !== Trigger.MANUAL) { - const eventIn = trigger === Trigger.HOVER ? - this.constructor.Event.MOUSEENTER : - this.constructor.Event.FOCUSIN - const eventOut = trigger === Trigger.HOVER ? - this.constructor.Event.MOUSELEAVE : - this.constructor.Event.FOCUSOUT - - $(this.element) - .on( - eventIn, - this.config.selector, - (event) => this._enter(event) - ) - .on( - eventOut, - this.config.selector, - (event) => this._leave(event) - ) - } - - $(this.element).closest('.modal').on( - 'hide.bs.modal', - () => this.hide() - ) - }) - - if (this.config.selector) { - this.config = $.extend({}, this.config, { - trigger : 'manual', - selector : '' - }) - } else { - this._fixTitle() - } - } - - _fixTitle() { - const titleType = typeof this.element.getAttribute('data-original-title') - if (this.element.getAttribute('title') || - titleType !== 'string') { - this.element.setAttribute( - 'data-original-title', - this.element.getAttribute('title') || '' - ) - this.element.setAttribute('title', '') - } - } - - _enter(event, context) { - const dataKey = this.constructor.DATA_KEY - - context = context || $(event.currentTarget).data(dataKey) - - if (!context) { - context = new this.constructor( - event.currentTarget, - this._getDelegateConfig() - ) - $(event.currentTarget).data(dataKey, context) - } - - if (event) { - context._activeTrigger[ - event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER - ] = true - } - - if ($(context.getTipElement()).hasClass(ClassName.SHOW) || - context._hoverState === HoverState.SHOW) { - context._hoverState = HoverState.SHOW - return - } - - clearTimeout(context._timeout) - - context._hoverState = HoverState.SHOW - - if (!context.config.delay || !context.config.delay.show) { - context.show() - return - } - - context._timeout = setTimeout(() => { - if (context._hoverState === HoverState.SHOW) { - context.show() - } - }, context.config.delay.show) - } - - _leave(event, context) { - const dataKey = this.constructor.DATA_KEY - - context = context || $(event.currentTarget).data(dataKey) - - if (!context) { - context = new this.constructor( - event.currentTarget, - this._getDelegateConfig() - ) - $(event.currentTarget).data(dataKey, context) - } - - if (event) { - context._activeTrigger[ - event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER - ] = false - } - - if (context._isWithActiveTrigger()) { - return - } - - clearTimeout(context._timeout) - - context._hoverState = HoverState.OUT - - if (!context.config.delay || !context.config.delay.hide) { - context.hide() - return - } - - context._timeout = setTimeout(() => { - if (context._hoverState === HoverState.OUT) { - context.hide() - } - }, context.config.delay.hide) - } - - _isWithActiveTrigger() { - for (const trigger in this._activeTrigger) { - if (this._activeTrigger[trigger]) { - return true - } - } - - return false - } - - _getConfig(config) { - config = $.extend( - {}, - this.constructor.Default, - $(this.element).data(), - config - ) - - if (config.delay && typeof config.delay === 'number') { - config.delay = { - show : config.delay, - hide : config.delay - } - } - - Util.typeCheckConfig( - NAME, - config, - this.constructor.DefaultType - ) - - return config - } - - _getDelegateConfig() { - const config = {} - - if (this.config) { - for (const key in this.config) { - if (this.constructor.Default[key] !== this.config[key]) { - config[key] = this.config[key] - } - } - } - - return config - } - - - // static - - static _jQueryInterface(config) { - return this.each(function () { - let data = $(this).data(DATA_KEY) - const _config = typeof config === 'object' && config - - if (!data && /dispose|hide/.test(config)) { - return - } - - if (!data) { - data = new Tooltip(this, _config) - $(this).data(DATA_KEY, data) - } - - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error(`No method named "${config}"`) - } - data[config]() - } - }) - } - - } - - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $.fn[NAME] = Tooltip._jQueryInterface - $.fn[NAME].Constructor = Tooltip - $.fn[NAME].noConflict = function () { - $.fn[NAME] = JQUERY_NO_CONFLICT - return Tooltip._jQueryInterface - } - - return Tooltip - -})(jQuery) - -export default Tooltip diff --git a/bower_components/bootstrap/js/src/util.js b/bower_components/bootstrap/js/src/util.js deleted file mode 100644 index 515eba6d9..000000000 --- a/bower_components/bootstrap/js/src/util.js +++ /dev/null @@ -1,161 +0,0 @@ -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.6): util.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - -const Util = (($) => { - - - /** - * ------------------------------------------------------------------------ - * Private TransitionEnd Helpers - * ------------------------------------------------------------------------ - */ - - let transition = false - - const MAX_UID = 1000000 - - const TransitionEndEvent = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' - } - - // shoutout AngusCroll (https://goo.gl/pxwQGp) - function toType(obj) { - return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase() - } - - function isElement(obj) { - return (obj[0] || obj).nodeType - } - - function getSpecialTransitionEndEvent() { - return { - bindType: transition.end, - delegateType: transition.end, - handle(event) { - if ($(event.target).is(this)) { - return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params - } - return undefined - } - } - } - - function transitionEndTest() { - if (window.QUnit) { - return false - } - - const el = document.createElement('bootstrap') - - for (const name in TransitionEndEvent) { - if (el.style[name] !== undefined) { - return { - end: TransitionEndEvent[name] - } - } - } - - return false - } - - function transitionEndEmulator(duration) { - let called = false - - $(this).one(Util.TRANSITION_END, () => { - called = true - }) - - setTimeout(() => { - if (!called) { - Util.triggerTransitionEnd(this) - } - }, duration) - - return this - } - - function setTransitionEndSupport() { - transition = transitionEndTest() - - $.fn.emulateTransitionEnd = transitionEndEmulator - - if (Util.supportsTransitionEnd()) { - $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent() - } - } - - - /** - * -------------------------------------------------------------------------- - * Public Util Api - * -------------------------------------------------------------------------- - */ - - const Util = { - - TRANSITION_END: 'bsTransitionEnd', - - getUID(prefix) { - do { - // eslint-disable-next-line no-bitwise - prefix += ~~(Math.random() * MAX_UID) // "~~" acts like a faster Math.floor() here - } while (document.getElementById(prefix)) - return prefix - }, - - getSelectorFromElement(element) { - let selector = element.getAttribute('data-target') - - if (!selector) { - selector = element.getAttribute('href') || '' - selector = /^#[a-z]/i.test(selector) ? selector : null - } - - return selector - }, - - reflow(element) { - return element.offsetHeight - }, - - triggerTransitionEnd(element) { - $(element).trigger(transition.end) - }, - - supportsTransitionEnd() { - return Boolean(transition) - }, - - typeCheckConfig(componentName, config, configTypes) { - for (const property in configTypes) { - if (configTypes.hasOwnProperty(property)) { - const expectedTypes = configTypes[property] - const value = config[property] - const valueType = value && isElement(value) ? - 'element' : toType(value) - - if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error( - `${componentName.toUpperCase()}: ` + - `Option "${property}" provided type "${valueType}" ` + - `but expected type "${expectedTypes}".`) - } - } - } - } - } - - setTransitionEndSupport() - - return Util - -})(jQuery) - -export default Util diff --git a/bower_components/bootstrap/nuget/MyGet.ps1 b/bower_components/bootstrap/nuget/MyGet.ps1 deleted file mode 100644 index 71110b5c1..000000000 --- a/bower_components/bootstrap/nuget/MyGet.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -# set env vars usually set by MyGet (enable for local testing) -#$env:SourcesPath = '..' -#$env:NuGet = "./nuget.exe" #https://dist.nuget.org/win-x86-commandline/latest/nuget.exe - -$nuget = $env:NuGet - -# parse the version number out of package.json -$bsversionParts = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version.split('-', 2) # split the version on the '-' -$bsversion = $bsversionParts[0] - -if ($bsversionParts.Length -gt 1) -{ - $bsversion += '-' + $bsversionParts[1].replace('.', '').replace('-', '_') # strip out invalid chars from the PreRelease part -} - -# create packages -& $nuget pack "$env:SourcesPath\nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion -& $nuget pack "$env:SourcesPath\nuget\bootstrap.sass.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion diff --git a/bower_components/bootstrap/nuget/bootstrap.nuspec b/bower_components/bootstrap/nuget/bootstrap.nuspec deleted file mode 100644 index bbb458263..000000000 --- a/bower_components/bootstrap/nuget/bootstrap.nuspec +++ /dev/null @@ -1,27 +0,0 @@ - - - - bootstrap - 4.0.0 - Bootstrap CSS - The Bootstrap Authors, Twitter Inc. - bootstrap - The most popular front-end framework for developing responsive, mobile first projects on the web. - https://blog.getbootstrap.com - Bootstrap framework in CSS. Includes fonts and JavaScript - en-us - https://getbootstrap.com - https://getbootstrap.com/apple-touch-icon.png - https://github.com/twbs/bootstrap/blob/master/LICENSE - Copyright 2017 - false - - - - css mobile-first responsive front-end framework web - - - - - - diff --git a/bower_components/bootstrap/nuget/bootstrap.sass.nuspec b/bower_components/bootstrap/nuget/bootstrap.sass.nuspec deleted file mode 100644 index aba443c2a..000000000 --- a/bower_components/bootstrap/nuget/bootstrap.sass.nuspec +++ /dev/null @@ -1,27 +0,0 @@ - - - - bootstrap.sass - 4.0.0 - Bootstrap Sass - The Bootstrap Authors, Twitter Inc. - bootstrap - The most popular front-end framework for developing responsive, mobile first projects on the web. - https://blog.getbootstrap.com - Bootstrap framework in Sass. Includes fonts and JavaScript - en-us - https://getbootstrap.com - https://getbootstrap.com/apple-touch-icon.png - https://github.com/twbs/bootstrap/blob/master/LICENSE - Copyright 2017 - false - - - - css sass mobile-first responsive front-end framework web - - - - - - diff --git a/bower_components/bootstrap/package.js b/bower_components/bootstrap/package.js deleted file mode 100644 index ce21bad9e..000000000 --- a/bower_components/bootstrap/package.js +++ /dev/null @@ -1,19 +0,0 @@ -// package metadata file for Meteor.js - -/* global Package:true */ - -Package.describe({ - name: 'twbs:bootstrap', // https://atmospherejs.com/twbs/bootstrap - summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.', - version: '4.0.0-alpha.6', - git: 'https://github.com/twbs/bootstrap.git' -}); - -Package.onUse(function (api) { - api.versionsFrom('METEOR@1.0'); - api.use('jquery', 'client'); - api.addFiles([ - 'dist/css/bootstrap.css', - 'dist/js/bootstrap.js' - ], 'client'); -}); diff --git a/bower_components/bootstrap/package.json b/bower_components/bootstrap/package.json deleted file mode 100644 index 4773a3ffe..000000000 --- a/bower_components/bootstrap/package.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", - "version": "4.0.0-alpha.6", - "keywords": [ - "css", - "sass", - "mobile-first", - "responsive", - "front-end", - "framework", - "web" - ], - "homepage": "https://getbootstrap.com", - "author": "The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)", - "contributors": [ - "Twitter, Inc." - ], - "scripts": { - "change-version": "node grunt/change-version.js", - "clean-css": "cleancss --skip-advanced --source-map --output dist/css/bootstrap.min.css dist/css/bootstrap.css && cleancss --skip-advanced --source-map --output dist/css/bootstrap-grid.min.css dist/css/bootstrap-grid.css && cleancss --skip-advanced --source-map --output dist/css/bootstrap-reboot.min.css dist/css/bootstrap-reboot.css", - "clean-css-docs": "cleancss --skip-advanced --source-map --output docs/assets/css/docs.min.css docs/assets/css/docs.min.css", - "eslint": "eslint --ignore-path .eslintignore js && eslint --config js/tests/.eslintrc.json --env node grunt Gruntfile.js && eslint --config js/tests/.eslintrc.json docs/assets/js/src docs/assets/js/ie-emulation-modes-warning.js docs/assets/js/ie10-viewport-bug-workaround.js", - "htmlhint": "htmlhint --config docs/.htmlhintrc _gh_pages/", - "postcss": "postcss --config grunt/postcss.js --replace dist/css/*.css", - "postcss-docs": "postcss --config grunt/postcss.js --no-map --replace docs/assets/css/docs.min.css && postcss --config grunt/postcss.js --no-map --replace docs/examples/**/*.css", - "sass": "node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap.scss dist/css/bootstrap.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-grid.scss dist/css/bootstrap-grid.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-reboot.scss dist/css/bootstrap-reboot.css", - "sass-docs": "node-sass --output-style expanded --source-map true --precision 6 docs/assets/scss/docs.scss docs/assets/css/docs.min.css", - "scss-lint": "bundle exec scss-lint --config scss/.scss-lint.yml --exclude scss/_normalize.scss scss/*.scss", - "scss-lint-docs": "bundle exec scss-lint --config scss/.scss-lint.yml --exclude docs/assets/scss/docs.scss docs/assets/scss/*.scss", - "uglify": "uglifyjs --compress warnings=false --mangle --comments '/^!/' --output dist/js/bootstrap.min.js dist/js/bootstrap.js", - "uglify-docs": "uglifyjs --compress warnings=false --mangle --comments '/^!/' --output docs/assets/js/docs.min.js docs/assets/js/vendor/*.js docs/assets/js/src/application.js", - "update-shrinkwrap": "npm shrinkwrap --dev && shx mv ./npm-shrinkwrap.json ./grunt/npm-shrinkwrap.json", - "test": "npm run eslint && grunt test" - }, - "style": "dist/css/bootstrap.css", - "sass": "scss/bootstrap.scss", - "main": "dist/js/bootstrap", - "repository": { - "type": "git", - "url": "https://github.com/twbs/bootstrap.git" - }, - "bugs": { - "url": "https://github.com/twbs/bootstrap/issues" - }, - "license": "MIT", - "dependencies": { - "jquery": ">=1.9.1", - "tether": "^1.4.0" - }, - "devDependencies": { - "autoprefixer": "^6.6.1", - "babel-eslint": "^7.1.1", - "babel-plugin-transform-es2015-modules-strip": "^0.1.0", - "babel-preset-es2015": "^6.18.0", - "clean-css": "^3.4.23", - "eslint": "^3.12.2", - "grunt": "^1.0.1", - "grunt-babel": "^6.0.0", - "grunt-build-control": "^0.7.1", - "grunt-contrib-clean": "^1.0.0", - "grunt-contrib-compress": "^1.3.0", - "grunt-contrib-concat": "^1.0.1", - "grunt-contrib-connect": "^1.0.2", - "grunt-contrib-copy": "^1.0.0", - "grunt-contrib-qunit": "^1.2.0", - "grunt-contrib-watch": "^1.0.0", - "grunt-exec": "^1.0.1", - "grunt-html": "^8.1.0", - "grunt-jekyll": "^0.4.4", - "grunt-saucelabs": "^9.0.0", - "grunt-stamp": "^0.3.0", - "htmlhint": "^0.9.13", - "is-travis": "^1.0.0", - "load-grunt-tasks": "^3.5.2", - "node-sass": "^4.1.1", - "postcss-cli": "^2.6.0", - "postcss-flexbugs-fixes": "^2.1.0", - "shelljs": "^0.7.5", - "shx": "^0.2.1", - "time-grunt": "^1.4.0", - "uglify-js": "^2.7.5" - }, - "engines": { - "node": ">=4" - }, - "files": [ - "dist", - "grunt", - "js/**/*.js", - "scss/**/*.scss", - "Gruntfile.js", - "LICENSE" - ], - "jspm": { - "main": "js/bootstrap", - "directories": { - "lib": "dist" - }, - "shim": { - "js/bootstrap": { - "deps": [ - "jquery" - ], - "exports": "$" - } - }, - "dependencies": { - "jquery": "3" - } - } -} diff --git a/bower_components/bootstrap/sache.json b/bower_components/bootstrap/sache.json deleted file mode 100644 index cd1a8c44f..000000000 --- a/bower_components/bootstrap/sache.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "bootstrap", - "description": "The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.", - "tags": ["bootstrap", "grid", "typography", "buttons", "ui", "responsive-web-design"] -} diff --git a/bower_components/bootstrap/scss/.scss-lint.yml b/bower_components/bootstrap/scss/.scss-lint.yml deleted file mode 100644 index 9d6e7ec4e..000000000 --- a/bower_components/bootstrap/scss/.scss-lint.yml +++ /dev/null @@ -1,548 +0,0 @@ -# Default application configuration that all configurations inherit from. -scss_files: - - "**/*.scss" - - "docs/assets/scss/**/*.scss" - -exclude: - - "scss/_normalize.scss" - -plugin_directories: ['.scss-linters'] - -# List of gem names to load custom linters from (make sure they are already -# installed) -plugin_gems: [] - -# Default severity of all linters. -severity: warning - -linters: - BangFormat: - enabled: true - space_before_bang: true - space_after_bang: false - - BemDepth: - enabled: false - max_elements: 1 - - BorderZero: - enabled: true - convention: zero # or `none` - exclude: - - _normalize.scss - - ChainedClasses: - enabled: false - - ColorKeyword: - enabled: true - - ColorVariable: - enabled: false - - Comment: - enabled: true - exclude: - - _normalize.scss - - bootstrap.scss - style: silent - - DebugStatement: - enabled: true - - DeclarationOrder: - enabled: false - - DisableLinterReason: - enabled: false - - DuplicateProperty: - enabled: true - - ElsePlacement: - enabled: true - style: same_line # or 'new_line' - - EmptyLineBetweenBlocks: - enabled: false - ignore_single_line_blocks: true - - EmptyRule: - enabled: true - - ExtendDirective: - enabled: false - - FinalNewline: - enabled: true - present: true - - HexLength: - enabled: true - style: short # or 'long' - - HexNotation: - enabled: true - style: lowercase # or 'uppercase' - - HexValidation: - enabled: true - - IdSelector: - enabled: true - - ImportantRule: - enabled: false - - ImportPath: - enabled: true - leading_underscore: false - filename_extension: false - - Indentation: - enabled: true - allow_non_nested_indentation: false - character: space # or 'tab' - width: 2 - - LeadingZero: - enabled: true - style: exclude_zero # or 'include_zero' - exclude: - - _normalize.scss - - MergeableSelector: - enabled: false - force_nesting: true - - NameFormat: - enabled: true - allow_leading_underscore: true - convention: hyphenated_lowercase # or 'camel_case', or 'snake_case', or a regex pattern - - NestingDepth: - enabled: true - max_depth: 4 - ignore_parent_selectors: false - - PlaceholderInExtend: - enabled: false - - PropertyCount: - enabled: false - include_nested: false - max_properties: 10 - - PropertySortOrder: - enabled: true - ignore_unspecified: false - min_properties: 2 - separate_groups: false - exclude: - - _normalize.scss - order: - - position - - top - - right - - bottom - - left - - z-index - - -webkit-box-sizing - - -moz-box-sizing - - box-sizing - - display - - flex - - flex-align - - flex-basis - - flex-direction - - flex-wrap - - flex-flow - - flex-grow - - flex-order - - flex-pack - - align-items - - align-self - - justify-content - - float - - width - - min-width - - max-width - - height - - min-height - - max-height - - padding - - padding-top - - padding-right - - padding-bottom - - padding-left - - margin - - margin-top - - margin-right - - margin-bottom - - margin-left - - overflow - - overflow-x - - overflow-y - - -webkit-overflow-scrolling - - -ms-overflow-x - - -ms-overflow-y - - -ms-overflow-style - - clip - - clear - - font - - font-family - - font-size - - font-style - - font-weight - - font-variant - - font-size-adjust - - font-stretch - - font-effect - - font-emphasize - - font-emphasize-position - - font-emphasize-style - - font-smooth - - -webkit-hyphens - - -moz-hyphens - - hyphens - - line-height - - color - - text-align - - -webkit-text-align-last - - -moz-text-align-last - - -ms-text-align-last - - text-align-last - - text-emphasis - - text-emphasis-color - - text-emphasis-style - - text-emphasis-position - - text-decoration - - text-indent - - text-justify - - text-outline - - -ms-text-overflow - - text-overflow - - text-overflow-ellipsis - - text-overflow-mode - - text-shadow - - text-transform - - text-wrap - - -webkit-text-size-adjust - - -ms-text-size-adjust - - letter-spacing - - -ms-word-break - - word-break - - word-spacing - - -ms-word-wrap - - word-wrap - - overflow-wrap - - -moz-tab-size - - -o-tab-size - - tab-size - - white-space - - vertical-align - - list-style - - list-style-position - - list-style-type - - list-style-image - - pointer-events - - -ms-touch-action - - touch-action - - cursor - - visibility - - zoom - - table-layout - - empty-cells - - caption-side - - border-spacing - - border-collapse - - content - - quotes - - counter-reset - - counter-increment - - resize - - -webkit-user-select - - -moz-user-select - - -ms-user-select - - -o-user-select - - user-select - - nav-index - - nav-up - - nav-right - - nav-down - - nav-left - - background - - background-color - - background-image - - -ms-filter:\\'progid:DXImageTransform.Microsoft.gradient - - filter:progid:DXImageTransform.Microsoft.gradient - - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader - - filter - - background-repeat - - background-attachment - - background-position - - background-position-x - - background-position-y - - -webkit-background-clip - - -moz-background-clip - - background-clip - - background-origin - - -webkit-background-size - - -moz-background-size - - -o-background-size - - background-size - - border - - border-color - - border-style - - border-width - - border-top - - border-top-color - - border-top-style - - border-top-width - - border-right - - border-right-color - - border-right-style - - border-right-width - - border-bottom - - border-bottom-color - - border-bottom-style - - border-bottom-width - - border-left - - border-left-color - - border-left-style - - border-left-width - - border-radius - - border-top-left-radius - - border-top-right-radius - - border-bottom-right-radius - - border-bottom-left-radius - - -webkit-border-image - - -moz-border-image - - -o-border-image - - border-image - - -webkit-border-image-source - - -moz-border-image-source - - -o-border-image-source - - border-image-source - - -webkit-border-image-slice - - -moz-border-image-slice - - -o-border-image-slice - - border-image-slice - - -webkit-border-image-width - - -moz-border-image-width - - -o-border-image-width - - border-image-width - - -webkit-border-image-outset - - -moz-border-image-outset - - -o-border-image-outset - - border-image-outset - - -webkit-border-image-repeat - - -moz-border-image-repeat - - -o-border-image-repeat - - border-image-repeat - - outline - - outline-width - - outline-style - - outline-color - - outline-offset - - -webkit-box-shadow - - -moz-box-shadow - - box-shadow - - filter:progid:DXImageTransform.Microsoft.Alpha(Opacity - - -ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha - - opacity - - -ms-interpolation-mode - - -webkit-transition - - -moz-transition - - -ms-transition - - -o-transition - - transition - - -webkit-transition-delay - - -moz-transition-delay - - -ms-transition-delay - - -o-transition-delay - - transition-delay - - -webkit-transition-timing-function - - -moz-transition-timing-function - - -ms-transition-timing-function - - -o-transition-timing-function - - transition-timing-function - - -webkit-transition-duration - - -moz-transition-duration - - -ms-transition-duration - - -o-transition-duration - - transition-duration - - -webkit-transition-property - - -moz-transition-property - - -ms-transition-property - - -o-transition-property - - transition-property - - -webkit-transform - - -moz-transform - - -ms-transform - - -o-transform - - transform - - -webkit-transform-origin - - -moz-transform-origin - - -ms-transform-origin - - -o-transform-origin - - transform-origin - - -webkit-animation - - -moz-animation - - -ms-animation - - -o-animation - - animation - - -webkit-animation-name - - -moz-animation-name - - -ms-animation-name - - -o-animation-name - - animation-name - - -webkit-animation-duration - - -moz-animation-duration - - -ms-animation-duration - - -o-animation-duration - - animation-duration - - -webkit-animation-play-state - - -moz-animation-play-state - - -ms-animation-play-state - - -o-animation-play-state - - animation-play-state - - -webkit-animation-timing-function - - -moz-animation-timing-function - - -ms-animation-timing-function - - -o-animation-timing-function - - animation-timing-function - - -webkit-animation-delay - - -moz-animation-delay - - -ms-animation-delay - - -o-animation-delay - - animation-delay - - -webkit-animation-iteration-count - - -moz-animation-iteration-count - - -ms-animation-iteration-count - - -o-animation-iteration-count - - animation-iteration-count - - -webkit-animation-direction - - -moz-animation-direction - - -ms-animation-direction - - -o-animation-direction - - - PropertySpelling: - enabled: true - extra_properties: [] - disabled_properties: [] - - PropertyUnits: - enabled: true - global: [ - 'ch', 'em', 'ex', 'rem', # Font-relative lengths - 'cm', 'in', 'mm', 'pc', 'pt', 'px', 'q', # Absolute lengths - 'vh', 'vw', 'vmin', 'vmax', # Viewport-percentage lengths - 'deg', 'grad', 'rad', 'turn', # Angle - 'ms', 's', # Duration - 'Hz', 'kHz', # Frequency - 'dpi', 'dpcm', 'dppx', # Resolution - '%'] # Other - properties: {} - - PseudoElement: - enabled: true - - QualifyingElement: - enabled: true - allow_element_with_attribute: false - allow_element_with_class: false - allow_element_with_id: false - - SelectorDepth: - enabled: true - max_depth: 4 - - SelectorFormat: - enabled: false - convention: hyphenated_lowercase # or 'strict_BEM', or 'hyphenated_BEM', or 'snake_case', or 'camel_case', or a regex pattern - - Shorthand: - enabled: true - allowed_shorthands: [1, 2, 3, 4] - - SingleLinePerProperty: - enabled: false - allow_single_line_rule_sets: true - - SingleLinePerSelector: - enabled: false - - SpaceAfterComma: - enabled: false - style: one_space # or 'no_space', or 'at_least_one_space' - - SpaceAfterPropertyColon: - enabled: true - style: at_least_one_space # or 'no_space', or 'at_least_one_space', or 'aligned' - - SpaceAfterPropertyName: - enabled: true - - SpaceAfterVariableName: - enabled: true - - SpaceAroundOperator: - enabled: true - style: one_space # or 'at_least_one_space', or 'no_space' - - SpaceBeforeBrace: - enabled: true - style: space # or 'new_line' - allow_single_line_padding: true - - SpaceBetweenParens: - enabled: true - spaces: 0 - - StringQuotes: - enabled: true - style: double_quotes # or double_quotes - - TrailingSemicolon: - enabled: true - - TrailingWhitespace: - enabled: true - - TrailingZero: - enabled: false - - TransitionAll: - enabled: false - - UnnecessaryMantissa: - enabled: true - - UnnecessaryParentReference: - enabled: true - - UrlFormat: - enabled: true - - UrlQuotes: - enabled: true - - VariableForProperty: - enabled: false - properties: [] - - VendorPrefix: - enabled: true - identifier_list: base - additional_identifiers: [] - excluded_identifiers: [] - exclude: - - _normalize.scss - - ZeroUnit: - enabled: true - - Compass::*: - enabled: false diff --git a/bower_components/bootstrap/scss/_alert.scss b/bower_components/bootstrap/scss/_alert.scss deleted file mode 100644 index d9b4e9b27..000000000 --- a/bower_components/bootstrap/scss/_alert.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// Base styles -// - -.alert { - padding: $alert-padding-y $alert-padding-x; - margin-bottom: $alert-margin-bottom; - border: $alert-border-width solid transparent; - @include border-radius($alert-border-radius); -} - -// Headings for larger alerts -.alert-heading { - // Specified to prevent conflicts of changing $headings-color - color: inherit; -} - -// Provide class for links that match alerts -.alert-link { - font-weight: $alert-link-font-weight; -} - - -// Dismissible alerts -// -// Expand the right padding and account for the close button's positioning. - -.alert-dismissible { - // Adjust close link position - .close { - position: relative; - top: -$alert-padding-y; - right: -$alert-padding-x; - padding: $alert-padding-y $alert-padding-x; - color: inherit; - } -} - - -// Alternate styles -// -// Generate contextual modifier classes for colorizing the alert. - -.alert-success { - @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); -} -.alert-info { - @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); -} -.alert-warning { - @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); -} -.alert-danger { - @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); -} diff --git a/bower_components/bootstrap/scss/_badge.scss b/bower_components/bootstrap/scss/_badge.scss deleted file mode 100644 index e5a329893..000000000 --- a/bower_components/bootstrap/scss/_badge.scss +++ /dev/null @@ -1,77 +0,0 @@ -// Base class -// -// Requires one of the contextual, color modifier classes for `color` and -// `background-color`. - -.badge { - display: inline-block; - padding: $badge-padding-y $badge-padding-x; - font-size: $badge-font-size; - font-weight: $badge-font-weight; - line-height: 1; - color: $badge-color; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - @include border-radius(); - - // Empty badges collapse automatically - &:empty { - display: none; - } -} - -// Quick fix for badges in buttons -.btn .badge { - position: relative; - top: -1px; -} - -// scss-lint:disable QualifyingElement -// Add hover effects, but only for links -a.badge { - @include hover-focus { - color: $badge-link-hover-color; - text-decoration: none; - cursor: pointer; - } -} -// scss-lint:enable QualifyingElement - -// Pill badges -// -// Make them extra rounded with a modifier to replace v3's badges. - -.badge-pill { - padding-right: $badge-pill-padding-x; - padding-left: $badge-pill-padding-x; - @include border-radius($badge-pill-border-radius); -} - -// Colors -// -// Contextual variations (linked badges get darker on :hover). - -.badge-default { - @include badge-variant($badge-default-bg); -} - -.badge-primary { - @include badge-variant($badge-primary-bg); -} - -.badge-success { - @include badge-variant($badge-success-bg); -} - -.badge-info { - @include badge-variant($badge-info-bg); -} - -.badge-warning { - @include badge-variant($badge-warning-bg); -} - -.badge-danger { - @include badge-variant($badge-danger-bg); -} diff --git a/bower_components/bootstrap/scss/_breadcrumb.scss b/bower_components/bootstrap/scss/_breadcrumb.scss deleted file mode 100644 index 1a09bba20..000000000 --- a/bower_components/bootstrap/scss/_breadcrumb.scss +++ /dev/null @@ -1,38 +0,0 @@ -.breadcrumb { - padding: $breadcrumb-padding-y $breadcrumb-padding-x; - margin-bottom: $spacer-y; - list-style: none; - background-color: $breadcrumb-bg; - @include border-radius($border-radius); - @include clearfix; -} - -.breadcrumb-item { - float: left; - - // The separator between breadcrumbs (by default, a forward-slash: "/") - + .breadcrumb-item::before { - display: inline-block; // Suppress underlining of the separator in modern browsers - padding-right: $breadcrumb-item-padding; - padding-left: $breadcrumb-item-padding; - color: $breadcrumb-divider-color; - content: "#{$breadcrumb-divider}"; - } - - // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built - // without `
    `s. The `::before` pseudo-element generates an element - // *within* the .breadcrumb-item and thereby inherits the `text-decoration`. - // - // To trick IE into suppressing the underline, we give the pseudo-element an - // underline and then immediately remove it. - + .breadcrumb-item:hover::before { - text-decoration: underline; - } - + .breadcrumb-item:hover::before { - text-decoration: none; - } - - &.active { - color: $breadcrumb-active-color; - } -} diff --git a/bower_components/bootstrap/scss/_button-group.scss b/bower_components/bootstrap/scss/_button-group.scss deleted file mode 100644 index 584ed1513..000000000 --- a/bower_components/bootstrap/scss/_button-group.scss +++ /dev/null @@ -1,202 +0,0 @@ -// scss-lint:disable QualifyingElement - -// Make the div behave like a button -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; // match .btn alignment given font-size hack above - - > .btn { - position: relative; - flex: 0 1 auto; - - // Bring the hover, focused, and "active" buttons to the fron to overlay - // the borders properly - @include hover { - z-index: 2; - } - &:focus, - &:active, - &.active { - z-index: 2; - } - } - - // Prevent double borders when buttons are next to each other - .btn + .btn, - .btn + .btn-group, - .btn-group + .btn, - .btn-group + .btn-group { - margin-left: -$input-btn-border-width; - } -} - -// Optional: Group multiple button groups together for a toolbar -.btn-toolbar { - display: flex; - justify-content: flex-start; - - .input-group { - width: auto; - } -} - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} - -// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match -.btn-group > .btn:first-child { - margin-left: 0; - - &:not(:last-child):not(.dropdown-toggle) { - @include border-right-radius(0); - } -} -// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - @include border-left-radius(0); -} - -// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - @include border-right-radius(0); - } -} -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - @include border-left-radius(0); -} - -// On active and open, don't show outline -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} - - -// Sizing -// -// Remix the default button sizing classes into new ones for easier manipulation. - -.btn-group-sm > .btn { @extend .btn-sm; } -.btn-group-lg > .btn { @extend .btn-lg; } - - -// -// Split button dropdowns -// - -.btn + .dropdown-toggle-split { - padding-right: $btn-padding-x * .75; - padding-left: $btn-padding-x * .75; - - &::after { - margin-left: 0; - } -} - -.btn-sm + .dropdown-toggle-split { - padding-right: $btn-padding-x-sm * .75; - padding-left: $btn-padding-x-sm * .75; -} - -.btn-lg + .dropdown-toggle-split { - padding-right: $btn-padding-x-lg * .75; - padding-left: $btn-padding-x-lg * .75; -} - - -// The clickable button for toggling the menu -// Remove the gradient and set the same inset shadow as the :active state -.btn-group.open .dropdown-toggle { - @include box-shadow($btn-active-box-shadow); - - // Show no shadow for `.btn-link` since it has no other button styles. - &.btn-link { - @include box-shadow(none); - } -} - - -// -// Vertical button groups -// - -.btn-group-vertical { - display: inline-flex; - flex-direction: column; - align-items: flex-start; - justify-content: center; - - .btn, - .btn-group { - width: 100%; - } - - > .btn + .btn, - > .btn + .btn-group, - > .btn-group + .btn, - > .btn-group + .btn-group { - margin-top: -$input-btn-border-width; - margin-left: 0; - } -} - -.btn-group-vertical > .btn { - &:not(:first-child):not(:last-child) { - border-radius: 0; - } - &:first-child:not(:last-child) { - @include border-bottom-radius(0); - } - &:last-child:not(:first-child) { - @include border-top-radius(0); - } -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) { - > .btn:last-child, - > .dropdown-toggle { - @include border-bottom-radius(0); - } -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - @include border-top-radius(0); -} - - -// Checkbox and radio options -// -// In order to support the browser's form validation feedback, powered by the -// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use -// `display: none;` or `visibility: hidden;` as that also hides the popover. -// Simply visually hiding the inputs via `opacity` would leave them clickable in -// certain cases which is prevented by using `clip` and `pointer-events`. -// This way, we ensure a DOM element is visible to position the popover from. -// -// See https://github.com/twbs/bootstrap/pull/12794 and -// https://github.com/twbs/bootstrap/pull/14559 for more information. - -[data-toggle="buttons"] { - > .btn, - > .btn-group > .btn { - input[type="radio"], - input[type="checkbox"] { - position: absolute; - clip: rect(0,0,0,0); - pointer-events: none; - } - } -} diff --git a/bower_components/bootstrap/scss/_buttons.scss b/bower_components/bootstrap/scss/_buttons.scss deleted file mode 100644 index e36ff0f1f..000000000 --- a/bower_components/bootstrap/scss/_buttons.scss +++ /dev/null @@ -1,170 +0,0 @@ -// scss-lint:disable QualifyingElement - -// -// Base styles -// - -.btn { - display: inline-block; - font-weight: $btn-font-weight; - line-height: $btn-line-height; - text-align: center; - white-space: nowrap; - vertical-align: middle; - user-select: none; - border: $input-btn-border-width solid transparent; - @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-border-radius); - @include transition($btn-transition); - - // Share hover and focus styles - @include hover-focus { - text-decoration: none; - } - &:focus, - &.focus { - outline: 0; - box-shadow: $btn-focus-box-shadow; - } - - // Disabled comes first so active can properly restyle - &.disabled, - &:disabled { - cursor: $cursor-disabled; - opacity: .65; - @include box-shadow(none); - } - - &:active, - &.active { - background-image: none; - @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow); - } -} - -// Future-proof disabling of clicks on `` elements -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; -} - - -// -// Alternate buttons -// - -.btn-primary { - @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); -} -.btn-secondary { - @include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border); -} -.btn-info { - @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); -} -.btn-success { - @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); -} -.btn-warning { - @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); -} -.btn-danger { - @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); -} - -// Remove all backgrounds -.btn-outline-primary { - @include button-outline-variant($btn-primary-bg); -} -.btn-outline-secondary { - @include button-outline-variant($btn-secondary-border); -} -.btn-outline-info { - @include button-outline-variant($btn-info-bg); -} -.btn-outline-success { - @include button-outline-variant($btn-success-bg); -} -.btn-outline-warning { - @include button-outline-variant($btn-warning-bg); -} -.btn-outline-danger { - @include button-outline-variant($btn-danger-bg); -} - - -// -// Link buttons -// - -// Make a button look and behave like a link -.btn-link { - font-weight: $font-weight-normal; - color: $link-color; - border-radius: 0; - - &, - &:active, - &.active, - &:disabled { - background-color: transparent; - @include box-shadow(none); - } - &, - &:focus, - &:active { - border-color: transparent; - } - @include hover { - border-color: transparent; - } - @include hover-focus { - color: $link-hover-color; - text-decoration: $link-hover-decoration; - background-color: transparent; - } - &:disabled { - color: $btn-link-disabled-color; - - @include hover-focus { - text-decoration: none; - } - } -} - - -// -// Button Sizes -// - -.btn-lg { - // line-height: ensure even-numbered height of button next to large input - @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-border-radius-lg); -} -.btn-sm { - // line-height: ensure proper height of button next to small input - @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-border-radius-sm); -} - - -// -// Block button -// - -.btn-block { - display: block; - width: 100%; -} - -// Vertically space out multiple block buttons -.btn-block + .btn-block { - margin-top: $btn-block-spacing-y; -} - -// Specificity overrides -input[type="submit"], -input[type="reset"], -input[type="button"] { - &.btn-block { - width: 100%; - } -} diff --git a/bower_components/bootstrap/scss/_card.scss b/bower_components/bootstrap/scss/_card.scss deleted file mode 100644 index 9fe70e8cf..000000000 --- a/bower_components/bootstrap/scss/_card.scss +++ /dev/null @@ -1,276 +0,0 @@ -// -// Base styles -// - -.card { - position: relative; - display: flex; - flex-direction: column; - background-color: $card-bg; - border: $card-border-width solid $card-border-color; - @include border-radius($card-border-radius); -} - -.card-block { - // Enable `flex-grow: 1` for decks and groups so that card blocks take up - // as much space as possible, ensuring footers are aligned to the bottom. - flex: 1 1 auto; - padding: $card-spacer-x; -} - -.card-title { - margin-bottom: $card-spacer-y; -} - -.card-subtitle { - margin-top: -($card-spacer-y / 2); - margin-bottom: 0; -} - -.card-text:last-child { - margin-bottom: 0; -} - -.card-link { - @include hover { - text-decoration: none; - } - - + .card-link { - margin-left: $card-spacer-x; - } -} - -.card { - > .list-group:first-child { - .list-group-item:first-child { - @include border-top-radius($card-border-radius); - } - } - - > .list-group:last-child { - .list-group-item:last-child { - @include border-bottom-radius($card-border-radius); - } - } -} - - -// -// Optional textual caps -// - -.card-header { - padding: $card-spacer-y $card-spacer-x; - margin-bottom: 0; // Removes the default margin-bottom of - background-color: $card-cap-bg; - border-bottom: $card-border-width solid $card-border-color; - - &:first-child { - @include border-radius($card-border-radius-inner $card-border-radius-inner 0 0); - } -} - -.card-footer { - padding: $card-spacer-y $card-spacer-x; - background-color: $card-cap-bg; - border-top: $card-border-width solid $card-border-color; - - &:last-child { - @include border-radius(0 0 $card-border-radius-inner $card-border-radius-inner); - } -} - - -// -// Header navs -// - -.card-header-tabs { - margin-right: -($card-spacer-x / 2); - margin-bottom: -$card-spacer-y; - margin-left: -($card-spacer-x / 2); - border-bottom: 0; -} - -.card-header-pills { - margin-right: -($card-spacer-x / 2); - margin-left: -($card-spacer-x / 2); -} - - -// -// Background variations -// - -.card-primary { - @include card-variant($brand-primary, $brand-primary); -} -.card-success { - @include card-variant($brand-success, $brand-success); -} -.card-info { - @include card-variant($brand-info, $brand-info); -} -.card-warning { - @include card-variant($brand-warning, $brand-warning); -} -.card-danger { - @include card-variant($brand-danger, $brand-danger); -} - -// Remove all backgrounds -.card-outline-primary { - @include card-outline-variant($btn-primary-bg); -} -.card-outline-secondary { - @include card-outline-variant($btn-secondary-border); -} -.card-outline-info { - @include card-outline-variant($btn-info-bg); -} -.card-outline-success { - @include card-outline-variant($btn-success-bg); -} -.card-outline-warning { - @include card-outline-variant($btn-warning-bg); -} -.card-outline-danger { - @include card-outline-variant($btn-danger-bg); -} - -// -// Inverse text within a card for use with dark backgrounds -// - -.card-inverse { - @include card-inverse; -} - -// -// Blockquote -// - -.card-blockquote { - padding: 0; - margin-bottom: 0; - border-left: 0; -} - -// Card image -.card-img { - // margin: -1.325rem; - @include border-radius($card-border-radius-inner); -} -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: $card-img-overlay-padding; -} - - - -// Card image caps -.card-img-top { - @include border-top-radius($card-border-radius-inner); -} -.card-img-bottom { - @include border-bottom-radius($card-border-radius-inner); -} - - -// Card deck - -@include media-breakpoint-up(sm) { - .card-deck { - display: flex; - flex-flow: row wrap; - - .card { - display: flex; - flex: 1 0 0; - flex-direction: column; - - // Selectively apply horizontal margins to cards to avoid doing the - // negative margin dance like our grid. This differs from the grid - // due to the use of margins as gutters instead of padding. - &:not(:first-child) { margin-left: $card-deck-margin; } - &:not(:last-child) { margin-right: $card-deck-margin; } - } - } -} - - -// -// Card groups -// - -@include media-breakpoint-up(sm) { - .card-group { - display: flex; - flex-flow: row wrap; - - .card { - flex: 1 0 0; - - + .card { - margin-left: 0; - border-left: 0; - } - - // Handle rounded corners - @if $enable-rounded { - &:first-child { - @include border-right-radius(0); - - .card-img-top { - border-top-right-radius: 0; - } - .card-img-bottom { - border-bottom-right-radius: 0; - } - } - &:last-child { - @include border-left-radius(0); - - .card-img-top { - border-top-left-radius: 0; - } - .card-img-bottom { - border-bottom-left-radius: 0; - } - } - - &:not(:first-child):not(:last-child) { - border-radius: 0; - - .card-img-top, - .card-img-bottom { - border-radius: 0; - } - } - } - } - } -} - - -// -// Columns -// - -@include media-breakpoint-up(sm) { - .card-columns { - column-count: $card-columns-count; - column-gap: $card-columns-gap; - - .card { - display: inline-block; // Don't let them vertically span multiple columns - width: 100%; // Don't let their width change - margin-bottom: $card-columns-margin; - } - } -} diff --git a/bower_components/bootstrap/scss/_carousel.scss b/bower_components/bootstrap/scss/_carousel.scss deleted file mode 100644 index 54478e450..000000000 --- a/bower_components/bootstrap/scss/_carousel.scss +++ /dev/null @@ -1,178 +0,0 @@ -// Wrapper for the slide container and indicators -.carousel { - position: relative; -} - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} - -.carousel-item { - position: relative; - display: none; - width: 100%; - - @include if-supports-3d-transforms() { - @include transition($carousel-transition); - backface-visibility: hidden; - perspective: 1000px; - } -} - -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: flex; -} - -.carousel-item-next, -.carousel-item-prev { - position: absolute; - top: 0; -} - -// CSS3 transforms when supported by the browser -@include if-supports-3d-transforms() { - .carousel-item-next.carousel-item-left, - .carousel-item-prev.carousel-item-right { - transform: translate3d(0, 0, 0); - } - - .carousel-item-next, - .active.carousel-item-right { - transform: translate3d(100%, 0, 0); - } - - .carousel-item-prev, - .active.carousel-item-left { - transform: translate3d(-100%, 0, 0); - } -} - - -// -// Left/right controls for nav -// - -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - // Use flex for alignment (1-3) - display: flex; // 1. allow flex styles - align-items: center; // 2. vertically center contents - justify-content: center; // 3. horizontally center contents - width: $carousel-control-width; - color: $carousel-control-color; - text-align: center; - opacity: $carousel-control-opacity; - // We can't have a transition here because WebKit cancels the carousel - // animation if you trip this while in the middle of another animation. - - // Hover/focus state - @include hover-focus { - color: $carousel-control-color; - text-decoration: none; - outline: 0; - opacity: .9; - } -} -.carousel-control-prev { - left: 0; -} -.carousel-control-next { - right: 0; -} - -// Icons for within -.carousel-control-prev-icon, -.carousel-control-next-icon { - display: inline-block; - width: $carousel-control-icon-width; - height: $carousel-control-icon-width; - background: transparent no-repeat center center; - background-size: 100% 100%; -} -.carousel-control-prev-icon { - background-image: $carousel-control-prev-icon-bg; -} -.carousel-control-next-icon { - background-image: $carousel-control-next-icon-bg; -} - - -// Optional indicator pips -// -// Add an ordered list with the following class and add a list item for each -// slide your carousel holds. - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 10px; - left: 0; - z-index: 15; - display: flex; - justify-content: center; - padding-left: 0; // override
      default - // Use the .carousel-control's width as margin so we don't overlay those - margin-right: $carousel-control-width; - margin-left: $carousel-control-width; - list-style: none; - - li { - position: relative; - flex: 1 0 auto; - max-width: $carousel-indicator-width; - height: $carousel-indicator-height; - margin-right: $carousel-indicator-spacer; - margin-left: $carousel-indicator-spacer; - text-indent: -999px; - cursor: pointer; - background-color: rgba($carousel-indicator-active-bg, .5); - - // Use pseudo classes to increase the hit area by 10px on top and bottom. - &::before { - position: absolute; - top: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; - } - &::after { - position: absolute; - bottom: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; - } - } - - .active { - background-color: $carousel-indicator-active-bg; - } -} - - -// Optional captions -// -// - -.carousel-caption { - position: absolute; - right: ((100% - $carousel-caption-width) / 2); - bottom: 20px; - left: ((100% - $carousel-caption-width) / 2); - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: $carousel-caption-color; - text-align: center; -} diff --git a/bower_components/bootstrap/scss/_close.scss b/bower_components/bootstrap/scss/_close.scss deleted file mode 100644 index 859990e31..000000000 --- a/bower_components/bootstrap/scss/_close.scss +++ /dev/null @@ -1,31 +0,0 @@ -.close { - float: right; - font-size: $close-font-size; - font-weight: $close-font-weight; - line-height: 1; - color: $close-color; - text-shadow: $close-text-shadow; - opacity: .5; - - @include hover-focus { - color: $close-color; - text-decoration: none; - cursor: pointer; - opacity: .75; - } -} - -// Additional properties for button version -// iOS requires the button element instead of an anchor tag. -// If you want the anchor version, it requires `href="#"`. -// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile - -// scss-lint:disable QualifyingElement -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -// scss-lint:enable QualifyingElement diff --git a/bower_components/bootstrap/scss/_code.scss b/bower_components/bootstrap/scss/_code.scss deleted file mode 100644 index 759da15b7..000000000 --- a/bower_components/bootstrap/scss/_code.scss +++ /dev/null @@ -1,64 +0,0 @@ -// Inline and block code styles -code, -kbd, -pre, -samp { - font-family: $font-family-monospace; -} - -// Inline code -code { - padding: $code-padding-y $code-padding-x; - font-size: $code-font-size; - color: $code-color; - background-color: $code-bg; - @include border-radius($border-radius); - - // Streamline the style when inside anchors to avoid broken underline and more - a > & { - padding: 0; - color: inherit; - background-color: inherit; - } -} - -// User input typically entered via keyboard -kbd { - padding: $code-padding-y $code-padding-x; - font-size: $code-font-size; - color: $kbd-color; - background-color: $kbd-bg; - @include border-radius($border-radius-sm); - @include box-shadow($kbd-box-shadow); - - kbd { - padding: 0; - font-size: 100%; - font-weight: $nested-kbd-font-weight; - @include box-shadow(none); - } -} - -// Blocks of code -pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - font-size: $code-font-size; - color: $pre-color; - - // Account for some code outputs that place code tags in pre tags - code { - padding: 0; - font-size: inherit; - color: inherit; - background-color: transparent; - border-radius: 0; - } -} - -// Enable scrollable blocks of code -.pre-scrollable { - max-height: $pre-scrollable-max-height; - overflow-y: scroll; -} diff --git a/bower_components/bootstrap/scss/_custom-forms.scss b/bower_components/bootstrap/scss/_custom-forms.scss deleted file mode 100644 index ef2aab354..000000000 --- a/bower_components/bootstrap/scss/_custom-forms.scss +++ /dev/null @@ -1,263 +0,0 @@ -// scss-lint:disable PropertyCount - -// Embedded icons from Open Iconic. -// Released under MIT and copyright 2014 Waybury. -// https://useiconic.com/open - - -// Checkboxes and radios -// -// Base class takes care of all the key behavioral aspects. - -.custom-control { - position: relative; - display: inline-flex; - min-height: (1rem * $line-height-base); - padding-left: $custom-control-gutter; - margin-right: $custom-control-spacer-x; - cursor: pointer; -} - -.custom-control-input { - position: absolute; - z-index: -1; // Put the input behind the label so it doesn't overlay text - opacity: 0; - - &:checked ~ .custom-control-indicator { - color: $custom-control-checked-indicator-color; - background-color: $custom-control-checked-indicator-bg; - @include box-shadow($custom-control-checked-indicator-box-shadow); - } - - &:focus ~ .custom-control-indicator { - // the mixin is not used here to make sure there is feedback - box-shadow: $custom-control-focus-indicator-box-shadow; - } - - &:active ~ .custom-control-indicator { - color: $custom-control-active-indicator-color; - background-color: $custom-control-active-indicator-bg; - @include box-shadow($custom-control-active-indicator-box-shadow); - } - - &:disabled { - ~ .custom-control-indicator { - cursor: $custom-control-disabled-cursor; - background-color: $custom-control-disabled-indicator-bg; - } - - ~ .custom-control-description { - color: $custom-control-disabled-description-color; - cursor: $custom-control-disabled-cursor; - } - } -} - -// Custom indicator -// -// Generates a shadow element to create our makeshift checkbox/radio background. - -.custom-control-indicator { - position: absolute; - top: (($line-height-base - $custom-control-indicator-size) / 2); - left: 0; - display: block; - width: $custom-control-indicator-size; - height: $custom-control-indicator-size; - pointer-events: none; - user-select: none; - background-color: $custom-control-indicator-bg; - background-repeat: no-repeat; - background-position: center center; - background-size: $custom-control-indicator-bg-size; - @include box-shadow($custom-control-indicator-box-shadow); -} - -// Checkboxes -// -// Tweak just a few things for checkboxes. - -.custom-checkbox { - .custom-control-indicator { - @include border-radius($custom-checkbox-radius); - } - - .custom-control-input:checked ~ .custom-control-indicator { - background-image: $custom-checkbox-checked-icon; - } - - .custom-control-input:indeterminate ~ .custom-control-indicator { - background-color: $custom-checkbox-indeterminate-bg; - background-image: $custom-checkbox-indeterminate-icon; - @include box-shadow($custom-checkbox-indeterminate-box-shadow); - } -} - -// Radios -// -// Tweak just a few things for radios. - -.custom-radio { - .custom-control-indicator { - border-radius: $custom-radio-radius; - } - - .custom-control-input:checked ~ .custom-control-indicator { - background-image: $custom-radio-checked-icon; - } -} - - -// Layout options -// -// By default radios and checkboxes are `inline-block` with no additional spacing -// set. Use these optional classes to tweak the layout. - -.custom-controls-stacked { - display: flex; - flex-direction: column; - - .custom-control { - margin-bottom: $custom-control-spacer-y; - - + .custom-control { - margin-left: 0; - } - } -} - - -// Select -// -// Replaces the browser default select with a custom one, mostly pulled from -// http://primercss.io. -// - -.custom-select { - display: inline-block; - max-width: 100%; - $select-border-width: ($border-width * 2); - height: calc(#{$input-height} + #{$select-border-width}); - padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x; - line-height: $custom-select-line-height; - color: $custom-select-color; - vertical-align: middle; - background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center; - background-size: $custom-select-bg-size; - border: $custom-select-border-width solid $custom-select-border-color; - @include border-radius($custom-select-border-radius); - // Use vendor prefixes as `appearance` isn't part of the CSS spec. - -moz-appearance: none; - -webkit-appearance: none; - - &:focus { - border-color: $custom-select-focus-border-color; - outline: none; - @include box-shadow($custom-select-focus-box-shadow); - - &::-ms-value { - // For visual consistency with other platforms/browsers, - // supress the default white text on blue background highlight given to - // the selected option text when the (still closed) s in some browsers, due to the limited stylability of ``s in IE10+. - &::-ms-expand { - background-color: transparent; - border: 0; - } - - // Customize the `:focus` state to imitate native WebKit styles. - @include form-control-focus(); - - // Placeholder - &::placeholder { - color: $input-color-placeholder; - // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526. - opacity: 1; - } - - // Disabled and read-only inputs - // - // HTML5 says that controls under a fieldset > legend:first-child won't be - // disabled if the fieldset is disabled. Due to implementation difficulty, we - // don't honor that edge case; we style them as disabled anyway. - &:disabled, - &[readonly] { - background-color: $input-bg-disabled; - // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655. - opacity: 1; - } - - &:disabled { - cursor: $cursor-disabled; - } -} - -select.form-control { - &:not([size]):not([multiple]) { - $select-border-width: ($border-width * 2); - height: calc(#{$input-height} + #{$select-border-width}); - } - - &:focus::-ms-value { - // Suppress the nested default white text on blue background highlight given to - // the selected option text when the (still closed) ` -// element gets special love because it's special, and that's a fact! - -@mixin input-size($parent, $input-height, $padding-y, $padding-x, $font-size, $line-height, $border-radius) { - #{$parent} { - height: $input-height; - padding: $padding-y $padding-x; - font-size: $font-size; - line-height: $line-height; - @include border-radius($border-radius); - } - - select#{$parent} { - height: $input-height; - line-height: $input-height; - } - - textarea#{$parent}, - select[multiple]#{$parent} { - height: auto; - } -} diff --git a/bower_components/bootstrap/scss/mixins/_gradients.scss b/bower_components/bootstrap/scss/mixins/_gradients.scss deleted file mode 100644 index 8bfd97c4d..000000000 --- a/bower_components/bootstrap/scss/mixins/_gradients.scss +++ /dev/null @@ -1,37 +0,0 @@ -// Gradients - -// Horizontal gradient, from left to right -// -// Creates two color stops, start and end, by specifying a color and position for each color stop. -@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) { - background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); - background-repeat: repeat-x; -} - -// Vertical gradient, from top to bottom -// -// Creates two color stops, start and end, by specifying a color and position for each color stop. -@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) { - background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); - background-repeat: repeat-x; -} - -@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) { - background-repeat: repeat-x; - background-image: linear-gradient($deg, $start-color, $end-color); -} -@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) { - background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color); - background-repeat: no-repeat; -} -@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) { - background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color); - background-repeat: no-repeat; -} -@mixin gradient-radial($inner-color: #555, $outer-color: #333) { - background-image: radial-gradient(circle, $inner-color, $outer-color); - background-repeat: no-repeat; -} -@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) { - background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent); -} diff --git a/bower_components/bootstrap/scss/mixins/_grid-framework.scss b/bower_components/bootstrap/scss/mixins/_grid-framework.scss deleted file mode 100644 index 0aa814ab2..000000000 --- a/bower_components/bootstrap/scss/mixins/_grid-framework.scss +++ /dev/null @@ -1,65 +0,0 @@ -// Framework grid generation -// -// Used only by Bootstrap to generate the correct number of grid classes given -// any value of `$grid-columns`. - -@mixin make-grid-columns($columns: $grid-columns, $gutters: $grid-gutter-widths, $breakpoints: $grid-breakpoints) { - // Common properties for all breakpoints - %grid-column { - position: relative; - width: 100%; - min-height: 1px; // Prevent columns from collapsing when empty - - @include make-gutters($gutters); - } - - @each $breakpoint in map-keys($breakpoints) { - $infix: breakpoint-infix($breakpoint, $breakpoints); - - // Allow columns to stretch full width below their breakpoints - @for $i from 1 through $columns { - .col#{$infix}-#{$i} { - @extend %grid-column; - } - } - .col#{$infix} { - @extend %grid-column; - } - - @include media-breakpoint-up($breakpoint, $breakpoints) { - // Provide basic `.col-{bp}` classes for equal-width flexbox columns - .col#{$infix} { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col#{$infix}-auto { - flex: 0 0 auto; - width: auto; - } - - @for $i from 1 through $columns { - .col#{$infix}-#{$i} { - @include make-col($i, $columns); - } - } - - @each $modifier in (pull, push) { - @for $i from 0 through $columns { - .#{$modifier}#{$infix}-#{$i} { - @include make-col-modifier($modifier, $i, $columns) - } - } - } - - // `$columns - 1` because offsetting by the width of an entire row isn't possible - @for $i from 0 through ($columns - 1) { - @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-xs-0 - .offset#{$infix}-#{$i} { - @include make-col-modifier(offset, $i, $columns) - } - } - } - } - } -} diff --git a/bower_components/bootstrap/scss/mixins/_grid.scss b/bower_components/bootstrap/scss/mixins/_grid.scss deleted file mode 100644 index 9cd8c7bbb..000000000 --- a/bower_components/bootstrap/scss/mixins/_grid.scss +++ /dev/null @@ -1,100 +0,0 @@ -/// Grid system -// -// Generate semantic grid columns with these mixins. - -@mixin make-container($gutters: $grid-gutter-widths) { - position: relative; - margin-left: auto; - margin-right: auto; - - @each $breakpoint in map-keys($gutters) { - @include media-breakpoint-up($breakpoint) { - $gutter: map-get($gutters, $breakpoint); - padding-right: ($gutter / 2); - padding-left: ($gutter / 2); - } - } -} - - -// For each breakpoint, define the maximum width of the container in a media query -@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { - @each $breakpoint, $container-max-width in $max-widths { - @include media-breakpoint-up($breakpoint, $breakpoints) { - width: $container-max-width; - max-width: 100%; - } - } -} - -@mixin make-gutters($gutters: $grid-gutter-widths) { - @each $breakpoint in map-keys($gutters) { - @include media-breakpoint-up($breakpoint) { - $gutter: map-get($gutters, $breakpoint); - padding-right: ($gutter / 2); - padding-left: ($gutter / 2); - } - } -} - -@mixin make-row($gutters: $grid-gutter-widths) { - display: flex; - flex-wrap: wrap; - - @each $breakpoint in map-keys($gutters) { - @include media-breakpoint-up($breakpoint) { - $gutter: map-get($gutters, $breakpoint); - margin-right: ($gutter / -2); - margin-left: ($gutter / -2); - } - } -} - -@mixin make-col-ready($gutters: $grid-gutter-widths) { - position: relative; - // Prevent columns from becoming too narrow when at smaller grid tiers by - // always setting `width: 100%;`. This works because we use `flex` values - // later on to override this initial width. - width: 100%; - min-height: 1px; // Prevent collapsing - - @each $breakpoint in map-keys($gutters) { - @include media-breakpoint-up($breakpoint) { - $gutter: map-get($gutters, $breakpoint); - padding-right: ($gutter / 2); - padding-left: ($gutter / 2); - } - } -} - -@mixin make-col($size, $columns: $grid-columns) { - flex: 0 0 percentage($size / $columns); - // width: percentage($size / $columns); - // Add a `max-width` to ensure content within each column does not blow out - // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari - // do not appear to require this. - max-width: percentage($size / $columns); -} - -@mixin make-col-offset($size, $columns: $grid-columns) { - margin-left: percentage($size / $columns); -} - -@mixin make-col-push($size, $columns: $grid-columns) { - left: if($size > 0, percentage($size / $columns), auto); -} - -@mixin make-col-pull($size, $columns: $grid-columns) { - right: if($size > 0, percentage($size / $columns), auto); -} - -@mixin make-col-modifier($type, $size, $columns) { - // Work around the lack of dynamic mixin @include support (https://github.com/sass/sass/issues/626) - @if $type == push { - @include make-col-push($size, $columns); - } @else if $type == pull { - @include make-col-pull($size, $columns); - } @else if $type == offset { - @include make-col-offset($size, $columns); - } -} diff --git a/bower_components/bootstrap/scss/mixins/_hover.scss b/bower_components/bootstrap/scss/mixins/_hover.scss deleted file mode 100644 index 6dd55e705..000000000 --- a/bower_components/bootstrap/scss/mixins/_hover.scss +++ /dev/null @@ -1,60 +0,0 @@ -@mixin hover { - // TODO: re-enable along with mq4-hover-shim -// @if $enable-hover-media-query { -// // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover -// // Currently shimmed by https://github.com/twbs/mq4-hover-shim -// @media (hover: hover) { -// &:hover { @content } -// } -// } -// @else { - &:hover { @content } -// } -} - -@mixin hover-focus { - @if $enable-hover-media-query { - &:focus { @content } - @include hover { @content } - } - @else { - &:focus, - &:hover { - @content - } - } -} - -@mixin plain-hover-focus { - @if $enable-hover-media-query { - &, - &:focus { - @content - } - @include hover { @content } - } - @else { - &, - &:focus, - &:hover { - @content - } - } -} - -@mixin hover-focus-active { - @if $enable-hover-media-query { - &:focus, - &:active { - @content - } - @include hover { @content } - } - @else { - &:focus, - &:active, - &:hover { - @content - } - } -} diff --git a/bower_components/bootstrap/scss/mixins/_image.scss b/bower_components/bootstrap/scss/mixins/_image.scss deleted file mode 100644 index c2b45f2ce..000000000 --- a/bower_components/bootstrap/scss/mixins/_image.scss +++ /dev/null @@ -1,36 +0,0 @@ -// Image Mixins -// - Responsive image -// - Retina image - - -// Responsive image -// -// Keep images from scaling beyond the width of their parents. - -@mixin img-fluid { - // Part 1: Set a maximum relative to the parent - max-width: 100%; - // Part 2: Override the height to auto, otherwise images will be stretched - // when setting a width and height attribute on the img element. - height: auto; -} - - -// Retina image -// -// Short retina mixin for setting background-image and -size. - -@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { - background-image: url($file-1x); - - // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio, - // but doesn't convert dppx=>dpi. - // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard. - // Compatibility info: http://caniuse.com/#feat=css-media-resolution - @media - only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx - only screen and (min-resolution: 2dppx) { // Standardized - background-image: url($file-2x); - background-size: $width-1x $height-1x; - } -} diff --git a/bower_components/bootstrap/scss/mixins/_list-group.scss b/bower_components/bootstrap/scss/mixins/_list-group.scss deleted file mode 100644 index 3db5b096a..000000000 --- a/bower_components/bootstrap/scss/mixins/_list-group.scss +++ /dev/null @@ -1,28 +0,0 @@ -// List Groups - -@mixin list-group-item-variant($state, $background, $color) { - .list-group-item-#{$state} { - color: $color; - background-color: $background; - } - - a.list-group-item-#{$state}, - button.list-group-item-#{$state} { - color: $color; - - .list-group-item-heading { - color: inherit; - } - - @include hover-focus { - color: $color; - background-color: darken($background, 5%); - } - - &.active { - color: #fff; - background-color: $color; - border-color: $color; - } - } -} diff --git a/bower_components/bootstrap/scss/mixins/_lists.scss b/bower_components/bootstrap/scss/mixins/_lists.scss deleted file mode 100644 index 251856266..000000000 --- a/bower_components/bootstrap/scss/mixins/_lists.scss +++ /dev/null @@ -1,7 +0,0 @@ -// Lists - -// Unstyled keeps list items block level, just removes default browser padding and list-style -@mixin list-unstyled { - padding-left: 0; - list-style: none; -} diff --git a/bower_components/bootstrap/scss/mixins/_nav-divider.scss b/bower_components/bootstrap/scss/mixins/_nav-divider.scss deleted file mode 100644 index fb3d12e9f..000000000 --- a/bower_components/bootstrap/scss/mixins/_nav-divider.scss +++ /dev/null @@ -1,10 +0,0 @@ -// Horizontal dividers -// -// Dividers (basically an hr) within dropdowns and nav lists - -@mixin nav-divider($color: #e5e5e5) { - height: 1px; - margin: ($spacer-y / 2) 0; - overflow: hidden; - background-color: $color; -} diff --git a/bower_components/bootstrap/scss/mixins/_navbar-align.scss b/bower_components/bootstrap/scss/mixins/_navbar-align.scss deleted file mode 100644 index c454a4ffe..000000000 --- a/bower_components/bootstrap/scss/mixins/_navbar-align.scss +++ /dev/null @@ -1,9 +0,0 @@ -// Navbar vertical align -// -// Vertically center elements in the navbar. -// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. - -// @mixin navbar-vertical-align($element-height) { -// margin-top: (($navbar-height - $element-height) / 2); -// margin-bottom: (($navbar-height - $element-height) / 2); -// } diff --git a/bower_components/bootstrap/scss/mixins/_pagination.scss b/bower_components/bootstrap/scss/mixins/_pagination.scss deleted file mode 100644 index 8cd9317cf..000000000 --- a/bower_components/bootstrap/scss/mixins/_pagination.scss +++ /dev/null @@ -1,21 +0,0 @@ -// Pagination - -@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { - .page-link { - padding: $padding-y $padding-x; - font-size: $font-size; - } - - .page-item { - &:first-child { - .page-link { - @include border-left-radius($border-radius); - } - } - &:last-child { - .page-link { - @include border-right-radius($border-radius); - } - } - } -} diff --git a/bower_components/bootstrap/scss/mixins/_reset-text.scss b/bower_components/bootstrap/scss/mixins/_reset-text.scss deleted file mode 100644 index b95273097..000000000 --- a/bower_components/bootstrap/scss/mixins/_reset-text.scss +++ /dev/null @@ -1,17 +0,0 @@ -@mixin reset-text { - font-family: $font-family-base; - // We deliberately do NOT reset font-size or word-wrap. - font-style: normal; - font-weight: $font-weight-normal; - letter-spacing: normal; - line-break: auto; - line-height: $line-height-base; - text-align: left; // Fallback for where `start` is not supported - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; -} diff --git a/bower_components/bootstrap/scss/mixins/_resize.scss b/bower_components/bootstrap/scss/mixins/_resize.scss deleted file mode 100644 index 83fa63791..000000000 --- a/bower_components/bootstrap/scss/mixins/_resize.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Resize anything - -@mixin resizable($direction) { - resize: $direction; // Options: horizontal, vertical, both - overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` -} diff --git a/bower_components/bootstrap/scss/mixins/_screen-reader.scss b/bower_components/bootstrap/scss/mixins/_screen-reader.scss deleted file mode 100644 index c20858324..000000000 --- a/bower_components/bootstrap/scss/mixins/_screen-reader.scss +++ /dev/null @@ -1,32 +0,0 @@ -// Only display content to screen readers -// -// See: http://a11yproject.com/posts/how-to-hide-content - -@mixin sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -@mixin sr-only-focusable { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/bower_components/bootstrap/scss/mixins/_size.scss b/bower_components/bootstrap/scss/mixins/_size.scss deleted file mode 100644 index b9dd48e8d..000000000 --- a/bower_components/bootstrap/scss/mixins/_size.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Sizing shortcuts - -@mixin size($width, $height: $width) { - width: $width; - height: $height; -} diff --git a/bower_components/bootstrap/scss/mixins/_table-row.scss b/bower_components/bootstrap/scss/mixins/_table-row.scss deleted file mode 100644 index 84f1d305a..000000000 --- a/bower_components/bootstrap/scss/mixins/_table-row.scss +++ /dev/null @@ -1,30 +0,0 @@ -// Tables - -@mixin table-row-variant($state, $background) { - // Exact selectors below required to override `.table-striped` and prevent - // inheritance to nested tables. - .table-#{$state} { - &, - > th, - > td { - background-color: $background; - } - } - - // Hover states for `.table-hover` - // Note: this is not available for cells or rows within `thead` or `tfoot`. - .table-hover { - $hover-background: darken($background, 5%); - - .table-#{$state} { - @include hover { - background-color: $hover-background; - - > td, - > th { - background-color: $hover-background; - } - } - } - } -} diff --git a/bower_components/bootstrap/scss/mixins/_text-emphasis.scss b/bower_components/bootstrap/scss/mixins/_text-emphasis.scss deleted file mode 100644 index 9cd4b6a4f..000000000 --- a/bower_components/bootstrap/scss/mixins/_text-emphasis.scss +++ /dev/null @@ -1,12 +0,0 @@ -// Typography - -@mixin text-emphasis-variant($parent, $color) { - #{$parent} { - color: $color !important; - } - a#{$parent} { - @include hover-focus { - color: darken($color, 10%) !important; - } - } -} diff --git a/bower_components/bootstrap/scss/mixins/_text-hide.scss b/bower_components/bootstrap/scss/mixins/_text-hide.scss deleted file mode 100644 index 52a38a906..000000000 --- a/bower_components/bootstrap/scss/mixins/_text-hide.scss +++ /dev/null @@ -1,8 +0,0 @@ -// CSS image replacement -@mixin text-hide() { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} diff --git a/bower_components/bootstrap/scss/mixins/_text-truncate.scss b/bower_components/bootstrap/scss/mixins/_text-truncate.scss deleted file mode 100644 index 5a40bf533..000000000 --- a/bower_components/bootstrap/scss/mixins/_text-truncate.scss +++ /dev/null @@ -1,8 +0,0 @@ -// Text truncate -// Requires inline-block or block for proper styling - -@mixin text-truncate() { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} \ No newline at end of file diff --git a/bower_components/bootstrap/scss/mixins/_transforms.scss b/bower_components/bootstrap/scss/mixins/_transforms.scss deleted file mode 100644 index 4005c9d02..000000000 --- a/bower_components/bootstrap/scss/mixins/_transforms.scss +++ /dev/null @@ -1,14 +0,0 @@ -// Applies the given styles only when the browser support CSS3 3D transforms. -@mixin if-supports-3d-transforms() { - @media (-webkit-transform-3d) { - // Old Safari, Old Android - // http://caniuse.com/#feat=css-featurequeries - // https://developer.mozilla.org/en-US/docs/Web/CSS/@media/-webkit-transform-3d - @content; - } - - @supports (transform: translate3d(0,0,0)) { - // The Proper Way: Using a CSS feature query - @content; - } -} diff --git a/bower_components/bootstrap/scss/mixins/_visibility.scss b/bower_components/bootstrap/scss/mixins/_visibility.scss deleted file mode 100644 index 88c50b05d..000000000 --- a/bower_components/bootstrap/scss/mixins/_visibility.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Visibility - -@mixin invisible { - visibility: hidden !important; -} diff --git a/bower_components/bootstrap/scss/utilities/_align.scss b/bower_components/bootstrap/scss/utilities/_align.scss deleted file mode 100644 index 4dbbbc2db..000000000 --- a/bower_components/bootstrap/scss/utilities/_align.scss +++ /dev/null @@ -1,6 +0,0 @@ -.align-baseline { vertical-align: baseline !important; } // Browser default -.align-top { vertical-align: top !important; } -.align-middle { vertical-align: middle !important; } -.align-bottom { vertical-align: bottom !important; } -.align-text-bottom { vertical-align: text-bottom !important; } -.align-text-top { vertical-align: text-top !important; } diff --git a/bower_components/bootstrap/scss/utilities/_background.scss b/bower_components/bootstrap/scss/utilities/_background.scss deleted file mode 100644 index b9ac29523..000000000 --- a/bower_components/bootstrap/scss/utilities/_background.scss +++ /dev/null @@ -1,19 +0,0 @@ -// -// Contextual backgrounds -// - -.bg-faded { - background-color: darken($body-bg, 3%); -} - -@include bg-variant('.bg-primary', $brand-primary); - -@include bg-variant('.bg-success', $brand-success); - -@include bg-variant('.bg-info', $brand-info); - -@include bg-variant('.bg-warning', $brand-warning); - -@include bg-variant('.bg-danger', $brand-danger); - -@include bg-variant('.bg-inverse', $brand-inverse); diff --git a/bower_components/bootstrap/scss/utilities/_borders.scss b/bower_components/bootstrap/scss/utilities/_borders.scss deleted file mode 100644 index b256881e5..000000000 --- a/bower_components/bootstrap/scss/utilities/_borders.scss +++ /dev/null @@ -1,37 +0,0 @@ -// -// Border -// - -.border-0 { border: 0 !important; } -.border-top-0 { border-top: 0 !important; } -.border-right-0 { border-right: 0 !important; } -.border-bottom-0 { border-bottom: 0 !important; } -.border-left-0 { border-left: 0 !important; } - -// -// Border-radius -// - -.rounded { - @include border-radius($border-radius); -} -.rounded-top { - @include border-top-radius($border-radius); -} -.rounded-right { - @include border-right-radius($border-radius); -} -.rounded-bottom { - @include border-bottom-radius($border-radius); -} -.rounded-left { - @include border-left-radius($border-radius); -} - -.rounded-circle { - border-radius: 50%; -} - -.rounded-0 { - border-radius: 0; -} diff --git a/bower_components/bootstrap/scss/utilities/_clearfix.scss b/bower_components/bootstrap/scss/utilities/_clearfix.scss deleted file mode 100644 index e92522a94..000000000 --- a/bower_components/bootstrap/scss/utilities/_clearfix.scss +++ /dev/null @@ -1,3 +0,0 @@ -.clearfix { - @include clearfix(); -} diff --git a/bower_components/bootstrap/scss/utilities/_display.scss b/bower_components/bootstrap/scss/utilities/_display.scss deleted file mode 100644 index ae942a6fb..000000000 --- a/bower_components/bootstrap/scss/utilities/_display.scss +++ /dev/null @@ -1,18 +0,0 @@ -// -// Display utilities -// - -@each $breakpoint in map-keys($grid-breakpoints) { - @include media-breakpoint-up($breakpoint) { - $infix: breakpoint-infix($breakpoint, $grid-breakpoints); - - .d#{$infix}-none { display: none !important; } - .d#{$infix}-inline { display: inline !important; } - .d#{$infix}-inline-block { display: inline-block !important; } - .d#{$infix}-block { display: block !important; } - .d#{$infix}-table { display: table !important; } - .d#{$infix}-table-cell { display: table-cell !important; } - .d#{$infix}-flex { display: flex !important; } - .d#{$infix}-inline-flex { display: inline-flex !important; } - } -} diff --git a/bower_components/bootstrap/scss/utilities/_flex.scss b/bower_components/bootstrap/scss/utilities/_flex.scss deleted file mode 100644 index 1b98aaa3f..000000000 --- a/bower_components/bootstrap/scss/utilities/_flex.scss +++ /dev/null @@ -1,48 +0,0 @@ -// Flex variation -// -// Custom styles for additional flex alignment options. - -@each $breakpoint in map-keys($grid-breakpoints) { - @include media-breakpoint-up($breakpoint) { - $infix: breakpoint-infix($breakpoint, $grid-breakpoints); - - .flex#{$infix}-first { order: -1; } - .flex#{$infix}-last { order: 1; } - .flex#{$infix}-unordered { order: 0; } - - .flex#{$infix}-row { flex-direction: row !important; } - .flex#{$infix}-column { flex-direction: column !important; } - .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; } - .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; } - - .flex#{$infix}-wrap { flex-wrap: wrap !important; } - .flex#{$infix}-nowrap { flex-wrap: nowrap !important; } - .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; } - - .justify-content#{$infix}-start { justify-content: flex-start !important; } - .justify-content#{$infix}-end { justify-content: flex-end !important; } - .justify-content#{$infix}-center { justify-content: center !important; } - .justify-content#{$infix}-between { justify-content: space-between !important; } - .justify-content#{$infix}-around { justify-content: space-around !important; } - - .align-items#{$infix}-start { align-items: flex-start !important; } - .align-items#{$infix}-end { align-items: flex-end !important; } - .align-items#{$infix}-center { align-items: center !important; } - .align-items#{$infix}-baseline { align-items: baseline !important; } - .align-items#{$infix}-stretch { align-items: stretch !important; } - - .align-content#{$infix}-start { align-content: flex-start !important; } - .align-content#{$infix}-end { align-content: flex-end !important; } - .align-content#{$infix}-center { align-content: center !important; } - .align-content#{$infix}-between { align-content: space-between !important; } - .align-content#{$infix}-around { align-content: space-around !important; } - .align-content#{$infix}-stretch { align-content: stretch !important; } - - .align-self#{$infix}-auto { align-self: auto !important; } - .align-self#{$infix}-start { align-self: flex-start !important; } - .align-self#{$infix}-end { align-self: flex-end !important; } - .align-self#{$infix}-center { align-self: center !important; } - .align-self#{$infix}-baseline { align-self: baseline !important; } - .align-self#{$infix}-stretch { align-self: stretch !important; } - } -} diff --git a/bower_components/bootstrap/scss/utilities/_float.scss b/bower_components/bootstrap/scss/utilities/_float.scss deleted file mode 100644 index 01655e9a5..000000000 --- a/bower_components/bootstrap/scss/utilities/_float.scss +++ /dev/null @@ -1,9 +0,0 @@ -@each $breakpoint in map-keys($grid-breakpoints) { - @include media-breakpoint-up($breakpoint) { - $infix: breakpoint-infix($breakpoint, $grid-breakpoints); - - .float#{$infix}-left { @include float-left; } - .float#{$infix}-right { @include float-right; } - .float#{$infix}-none { @include float-none; } - } -} diff --git a/bower_components/bootstrap/scss/utilities/_position.scss b/bower_components/bootstrap/scss/utilities/_position.scss deleted file mode 100644 index 2cf08bfa0..000000000 --- a/bower_components/bootstrap/scss/utilities/_position.scss +++ /dev/null @@ -1,23 +0,0 @@ -// Positioning - -.fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: $zindex-fixed; -} - -.fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: $zindex-fixed; -} - -.sticky-top { - position: sticky; - top: 0; - z-index: $zindex-sticky; -} diff --git a/bower_components/bootstrap/scss/utilities/_screenreaders.scss b/bower_components/bootstrap/scss/utilities/_screenreaders.scss deleted file mode 100644 index 9f26fde03..000000000 --- a/bower_components/bootstrap/scss/utilities/_screenreaders.scss +++ /dev/null @@ -1,11 +0,0 @@ -// -// Screenreaders -// - -.sr-only { - @include sr-only(); -} - -.sr-only-focusable { - @include sr-only-focusable(); -} diff --git a/bower_components/bootstrap/scss/utilities/_sizing.scss b/bower_components/bootstrap/scss/utilities/_sizing.scss deleted file mode 100644 index a7dc3e49b..000000000 --- a/bower_components/bootstrap/scss/utilities/_sizing.scss +++ /dev/null @@ -1,10 +0,0 @@ -// Width and height - -@each $prop, $abbrev in (width: w, height: h) { - @each $size, $length in $sizes { - .#{$abbrev}-#{$size} { #{$prop}: $length !important; } - } -} - -.mw-100 { max-width: 100% !important; } -.mh-100 { max-height: 100% !important; } diff --git a/bower_components/bootstrap/scss/utilities/_spacing.scss b/bower_components/bootstrap/scss/utilities/_spacing.scss deleted file mode 100644 index 6056e2b7e..000000000 --- a/bower_components/bootstrap/scss/utilities/_spacing.scss +++ /dev/null @@ -1,43 +0,0 @@ -// Margin and Padding - -@each $breakpoint in map-keys($grid-breakpoints) { - @include media-breakpoint-up($breakpoint) { - $infix: breakpoint-infix($breakpoint, $grid-breakpoints); - - @each $prop, $abbrev in (margin: m, padding: p) { - @each $size, $lengths in $spacers { - $length-x: map-get($lengths, x); - $length-y: map-get($lengths, y); - - .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length-y $length-x !important; } - .#{$abbrev}t#{$infix}-#{$size} { #{$prop}-top: $length-y !important; } - .#{$abbrev}r#{$infix}-#{$size} { #{$prop}-right: $length-x !important; } - .#{$abbrev}b#{$infix}-#{$size} { #{$prop}-bottom: $length-y !important; } - .#{$abbrev}l#{$infix}-#{$size} { #{$prop}-left: $length-x !important; } - .#{$abbrev}x#{$infix}-#{$size} { - #{$prop}-right: $length-x !important; - #{$prop}-left: $length-x !important; - } - .#{$abbrev}y#{$infix}-#{$size} { - #{$prop}-top: $length-y !important; - #{$prop}-bottom: $length-y !important; - } - } - } - - // Some special margin utils - .m#{$infix}-auto { margin: auto !important; } - .mt#{$infix}-auto { margin-top: auto !important; } - .mr#{$infix}-auto { margin-right: auto !important; } - .mb#{$infix}-auto { margin-bottom: auto !important; } - .ml#{$infix}-auto { margin-left: auto !important; } - .mx#{$infix}-auto { - margin-right: auto !important; - margin-left: auto !important; - } - .my#{$infix}-auto { - margin-top: auto !important; - margin-bottom: auto !important; - } - } -} diff --git a/bower_components/bootstrap/scss/utilities/_text.scss b/bower_components/bootstrap/scss/utilities/_text.scss deleted file mode 100644 index 4ac90533a..000000000 --- a/bower_components/bootstrap/scss/utilities/_text.scss +++ /dev/null @@ -1,61 +0,0 @@ -// -// Text -// - -// Alignment - -.text-justify { text-align: justify !important; } -.text-nowrap { white-space: nowrap !important; } -.text-truncate { @include text-truncate; } - -// Responsive alignment - -@each $breakpoint in map-keys($grid-breakpoints) { - @include media-breakpoint-up($breakpoint) { - $infix: breakpoint-infix($breakpoint, $grid-breakpoints); - - .text#{$infix}-left { text-align: left !important; } - .text#{$infix}-right { text-align: right !important; } - .text#{$infix}-center { text-align: center !important; } - } -} - -// Transformation - -.text-lowercase { text-transform: lowercase !important; } -.text-uppercase { text-transform: uppercase !important; } -.text-capitalize { text-transform: capitalize !important; } - -// Weight and italics - -.font-weight-normal { font-weight: $font-weight-normal; } -.font-weight-bold { font-weight: $font-weight-bold; } -.font-italic { font-style: italic; } - -// Contextual colors - -.text-white { - color: #fff !important; -} - -@include text-emphasis-variant('.text-muted', $text-muted); - -@include text-emphasis-variant('.text-primary', $brand-primary); - -@include text-emphasis-variant('.text-success', $brand-success); - -@include text-emphasis-variant('.text-info', $brand-info); - -@include text-emphasis-variant('.text-warning', $brand-warning); - -@include text-emphasis-variant('.text-danger', $brand-danger); - -// Font color - -@include text-emphasis-variant('.text-gray-dark', $gray-dark); - -// Misc - -.text-hide { - @include text-hide(); -} diff --git a/bower_components/bootstrap/scss/utilities/_visibility.scss b/bower_components/bootstrap/scss/utilities/_visibility.scss deleted file mode 100644 index fcedc9cb9..000000000 --- a/bower_components/bootstrap/scss/utilities/_visibility.scss +++ /dev/null @@ -1,55 +0,0 @@ -// -// Visibility utilities -// - -.invisible { - @include invisible(); -} - -// Responsive visibility utilities - -@each $bp in map-keys($grid-breakpoints) { - .hidden-#{$bp}-up { - @include media-breakpoint-up($bp) { - display: none !important; - } - } - .hidden-#{$bp}-down { - @include media-breakpoint-down($bp) { - display: none !important; - } - } -} - - -// Print utilities -// -// Media queries are placed on the inside to be mixin-friendly. - -.visible-print-block { - display: none !important; - - @media print { - display: block !important; - } -} -.visible-print-inline { - display: none !important; - - @media print { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; - - @media print { - display: inline-block !important; - } -} - -.hidden-print { - @media print { - display: none !important; - } -} diff --git a/bower_components/font-awesome/.bower.json b/bower_components/font-awesome/.bower.json deleted file mode 100644 index 50238b3d5..000000000 --- a/bower_components/font-awesome/.bower.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "font-awesome", - "description": "Font Awesome", - "keywords": [], - "homepage": "http://fontawesome.io", - "dependencies": {}, - "devDependencies": {}, - "license": [ - "OFL-1.1", - "MIT", - "CC-BY-3.0" - ], - "main": [ - "less/font-awesome.less", - "scss/font-awesome.scss" - ], - "ignore": [ - "*/.*", - "*.json", - "src", - "*.yml", - "Gemfile", - "Gemfile.lock", - "*.md" - ], - "version": "4.7.0", - "_release": "4.7.0", - "_resolution": { - "type": "version", - "tag": "v4.7.0", - "commit": "a3fe90fa5f6fac55d197f9cbd18e3f57dafb716c" - }, - "_source": "https://github.com/FortAwesome/Font-Awesome.git", - "_target": "^4.7.0", - "_originalSource": "fontawesome" -} \ No newline at end of file diff --git a/bower_components/font-awesome/.gitignore b/bower_components/font-awesome/.gitignore deleted file mode 100644 index 39c4f20b7..000000000 --- a/bower_components/font-awesome/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -*.pyc -*.egg-info -*.db -*.db.old -*.swp -*.db-journal - -.coverage -.DS_Store -.installed.cfg -_gh_pages/* - -.idea/* -.svn/* -src/website/static/* -src/website/media/* - -bin -cfcache -develop-eggs -dist -downloads -eggs -parts -tmp -.sass-cache -node_modules - -src/website/settingslocal.py -stunnel.log - -.ruby-version -.bundle diff --git a/bower_components/font-awesome/HELP-US-OUT.txt b/bower_components/font-awesome/HELP-US-OUT.txt deleted file mode 100644 index 83d083dd7..000000000 --- a/bower_components/font-awesome/HELP-US-OUT.txt +++ /dev/null @@ -1,7 +0,0 @@ -I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, -Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, -comprehensive icon sets or copy and paste your own. - -Please. Check it out. - --Dave Gandy diff --git a/bower_components/font-awesome/bower.json b/bower_components/font-awesome/bower.json deleted file mode 100644 index 9e2112659..000000000 --- a/bower_components/font-awesome/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "font-awesome", - "description": "Font Awesome", - "keywords": [], - "homepage": "http://fontawesome.io", - "dependencies": {}, - "devDependencies": {}, - "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], - "main": [ - "less/font-awesome.less", - "scss/font-awesome.scss" - ], - "ignore": [ - "*/.*", - "*.json", - "src", - "*.yml", - "Gemfile", - "Gemfile.lock", - "*.md" - ] -} diff --git a/bower_components/font-awesome/css/font-awesome.css b/bower_components/font-awesome/css/font-awesome.css deleted file mode 100644 index ee906a819..000000000 --- a/bower_components/font-awesome/css/font-awesome.css +++ /dev/null @@ -1,2337 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; -} -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-fw { - width: 1.28571429em; - text-align: center; -} -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} -.fa-ul > li { - position: relative; -} -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} -.fa-li.fa-lg { - left: -1.85714286em; -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} -.fa-pull-left { - float: left; -} -.fa-pull-right { - float: right; -} -.fa.fa-pull-left { - margin-right: .3em; -} -.fa.fa-pull-right { - margin-left: .3em; -} -/* Deprecated as of 4.4.0 */ -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.fa.pull-left { - margin-right: .3em; -} -.fa.pull-right { - margin-left: .3em; -} -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #ffffff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\f000"; -} -.fa-music:before { - content: "\f001"; -} -.fa-search:before { - content: "\f002"; -} -.fa-envelope-o:before { - content: "\f003"; -} -.fa-heart:before { - content: "\f004"; -} -.fa-star:before { - content: "\f005"; -} -.fa-star-o:before { - content: "\f006"; -} -.fa-user:before { - content: "\f007"; -} -.fa-film:before { - content: "\f008"; -} -.fa-th-large:before { - content: "\f009"; -} -.fa-th:before { - content: "\f00a"; -} -.fa-th-list:before { - content: "\f00b"; -} -.fa-check:before { - content: "\f00c"; -} -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\f00d"; -} -.fa-search-plus:before { - content: "\f00e"; -} -.fa-search-minus:before { - content: "\f010"; -} -.fa-power-off:before { - content: "\f011"; -} -.fa-signal:before { - content: "\f012"; -} -.fa-gear:before, -.fa-cog:before { - content: "\f013"; -} -.fa-trash-o:before { - content: "\f014"; -} -.fa-home:before { - content: "\f015"; -} -.fa-file-o:before { - content: "\f016"; -} -.fa-clock-o:before { - content: "\f017"; -} -.fa-road:before { - content: "\f018"; -} -.fa-download:before { - content: "\f019"; -} -.fa-arrow-circle-o-down:before { - content: "\f01a"; -} -.fa-arrow-circle-o-up:before { - content: "\f01b"; -} -.fa-inbox:before { - content: "\f01c"; -} -.fa-play-circle-o:before { - content: "\f01d"; -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e"; -} -.fa-refresh:before { - content: "\f021"; -} -.fa-list-alt:before { - content: "\f022"; -} -.fa-lock:before { - content: "\f023"; -} -.fa-flag:before { - content: "\f024"; -} -.fa-headphones:before { - content: "\f025"; -} -.fa-volume-off:before { - content: "\f026"; -} -.fa-volume-down:before { - content: "\f027"; -} -.fa-volume-up:before { - content: "\f028"; -} -.fa-qrcode:before { - content: "\f029"; -} -.fa-barcode:before { - content: "\f02a"; -} -.fa-tag:before { - content: "\f02b"; -} -.fa-tags:before { - content: "\f02c"; -} -.fa-book:before { - content: "\f02d"; -} -.fa-bookmark:before { - content: "\f02e"; -} -.fa-print:before { - content: "\f02f"; -} -.fa-camera:before { - content: "\f030"; -} -.fa-font:before { - content: "\f031"; -} -.fa-bold:before { - content: "\f032"; -} -.fa-italic:before { - content: "\f033"; -} -.fa-text-height:before { - content: "\f034"; -} -.fa-text-width:before { - content: "\f035"; -} -.fa-align-left:before { - content: "\f036"; -} -.fa-align-center:before { - content: "\f037"; -} -.fa-align-right:before { - content: "\f038"; -} -.fa-align-justify:before { - content: "\f039"; -} -.fa-list:before { - content: "\f03a"; -} -.fa-dedent:before, -.fa-outdent:before { - content: "\f03b"; -} -.fa-indent:before { - content: "\f03c"; -} -.fa-video-camera:before { - content: "\f03d"; -} -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\f03e"; -} -.fa-pencil:before { - content: "\f040"; -} -.fa-map-marker:before { - content: "\f041"; -} -.fa-adjust:before { - content: "\f042"; -} -.fa-tint:before { - content: "\f043"; -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\f044"; -} -.fa-share-square-o:before { - content: "\f045"; -} -.fa-check-square-o:before { - content: "\f046"; -} -.fa-arrows:before { - content: "\f047"; -} -.fa-step-backward:before { - content: "\f048"; -} -.fa-fast-backward:before { - content: "\f049"; -} -.fa-backward:before { - content: "\f04a"; -} -.fa-play:before { - content: "\f04b"; -} -.fa-pause:before { - content: "\f04c"; -} -.fa-stop:before { - content: "\f04d"; -} -.fa-forward:before { - content: "\f04e"; -} -.fa-fast-forward:before { - content: "\f050"; -} -.fa-step-forward:before { - content: "\f051"; -} -.fa-eject:before { - content: "\f052"; -} -.fa-chevron-left:before { - content: "\f053"; -} -.fa-chevron-right:before { - content: "\f054"; -} -.fa-plus-circle:before { - content: "\f055"; -} -.fa-minus-circle:before { - content: "\f056"; -} -.fa-times-circle:before { - content: "\f057"; -} -.fa-check-circle:before { - content: "\f058"; -} -.fa-question-circle:before { - content: "\f059"; -} -.fa-info-circle:before { - content: "\f05a"; -} -.fa-crosshairs:before { - content: "\f05b"; -} -.fa-times-circle-o:before { - content: "\f05c"; -} -.fa-check-circle-o:before { - content: "\f05d"; -} -.fa-ban:before { - content: "\f05e"; -} -.fa-arrow-left:before { - content: "\f060"; -} -.fa-arrow-right:before { - content: "\f061"; -} -.fa-arrow-up:before { - content: "\f062"; -} -.fa-arrow-down:before { - content: "\f063"; -} -.fa-mail-forward:before, -.fa-share:before { - content: "\f064"; -} -.fa-expand:before { - content: "\f065"; -} -.fa-compress:before { - content: "\f066"; -} -.fa-plus:before { - content: "\f067"; -} -.fa-minus:before { - content: "\f068"; -} -.fa-asterisk:before { - content: "\f069"; -} -.fa-exclamation-circle:before { - content: "\f06a"; -} -.fa-gift:before { - content: "\f06b"; -} -.fa-leaf:before { - content: "\f06c"; -} -.fa-fire:before { - content: "\f06d"; -} -.fa-eye:before { - content: "\f06e"; -} -.fa-eye-slash:before { - content: "\f070"; -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\f071"; -} -.fa-plane:before { - content: "\f072"; -} -.fa-calendar:before { - content: "\f073"; -} -.fa-random:before { - content: "\f074"; -} -.fa-comment:before { - content: "\f075"; -} -.fa-magnet:before { - content: "\f076"; -} -.fa-chevron-up:before { - content: "\f077"; -} -.fa-chevron-down:before { - content: "\f078"; -} -.fa-retweet:before { - content: "\f079"; -} -.fa-shopping-cart:before { - content: "\f07a"; -} -.fa-folder:before { - content: "\f07b"; -} -.fa-folder-open:before { - content: "\f07c"; -} -.fa-arrows-v:before { - content: "\f07d"; -} -.fa-arrows-h:before { - content: "\f07e"; -} -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\f080"; -} -.fa-twitter-square:before { - content: "\f081"; -} -.fa-facebook-square:before { - content: "\f082"; -} -.fa-camera-retro:before { - content: "\f083"; -} -.fa-key:before { - content: "\f084"; -} -.fa-gears:before, -.fa-cogs:before { - content: "\f085"; -} -.fa-comments:before { - content: "\f086"; -} -.fa-thumbs-o-up:before { - content: "\f087"; -} -.fa-thumbs-o-down:before { - content: "\f088"; -} -.fa-star-half:before { - content: "\f089"; -} -.fa-heart-o:before { - content: "\f08a"; -} -.fa-sign-out:before { - content: "\f08b"; -} -.fa-linkedin-square:before { - content: "\f08c"; -} -.fa-thumb-tack:before { - content: "\f08d"; -} -.fa-external-link:before { - content: "\f08e"; -} -.fa-sign-in:before { - content: "\f090"; -} -.fa-trophy:before { - content: "\f091"; -} -.fa-github-square:before { - content: "\f092"; -} -.fa-upload:before { - content: "\f093"; -} -.fa-lemon-o:before { - content: "\f094"; -} -.fa-phone:before { - content: "\f095"; -} -.fa-square-o:before { - content: "\f096"; -} -.fa-bookmark-o:before { - content: "\f097"; -} -.fa-phone-square:before { - content: "\f098"; -} -.fa-twitter:before { - content: "\f099"; -} -.fa-facebook-f:before, -.fa-facebook:before { - content: "\f09a"; -} -.fa-github:before { - content: "\f09b"; -} -.fa-unlock:before { - content: "\f09c"; -} -.fa-credit-card:before { - content: "\f09d"; -} -.fa-feed:before, -.fa-rss:before { - content: "\f09e"; -} -.fa-hdd-o:before { - content: "\f0a0"; -} -.fa-bullhorn:before { - content: "\f0a1"; -} -.fa-bell:before { - content: "\f0f3"; -} -.fa-certificate:before { - content: "\f0a3"; -} -.fa-hand-o-right:before { - content: "\f0a4"; -} -.fa-hand-o-left:before { - content: "\f0a5"; -} -.fa-hand-o-up:before { - content: "\f0a6"; -} -.fa-hand-o-down:before { - content: "\f0a7"; -} -.fa-arrow-circle-left:before { - content: "\f0a8"; -} -.fa-arrow-circle-right:before { - content: "\f0a9"; -} -.fa-arrow-circle-up:before { - content: "\f0aa"; -} -.fa-arrow-circle-down:before { - content: "\f0ab"; -} -.fa-globe:before { - content: "\f0ac"; -} -.fa-wrench:before { - content: "\f0ad"; -} -.fa-tasks:before { - content: "\f0ae"; -} -.fa-filter:before { - content: "\f0b0"; -} -.fa-briefcase:before { - content: "\f0b1"; -} -.fa-arrows-alt:before { - content: "\f0b2"; -} -.fa-group:before, -.fa-users:before { - content: "\f0c0"; -} -.fa-chain:before, -.fa-link:before { - content: "\f0c1"; -} -.fa-cloud:before { - content: "\f0c2"; -} -.fa-flask:before { - content: "\f0c3"; -} -.fa-cut:before, -.fa-scissors:before { - content: "\f0c4"; -} -.fa-copy:before, -.fa-files-o:before { - content: "\f0c5"; -} -.fa-paperclip:before { - content: "\f0c6"; -} -.fa-save:before, -.fa-floppy-o:before { - content: "\f0c7"; -} -.fa-square:before { - content: "\f0c8"; -} -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\f0c9"; -} -.fa-list-ul:before { - content: "\f0ca"; -} -.fa-list-ol:before { - content: "\f0cb"; -} -.fa-strikethrough:before { - content: "\f0cc"; -} -.fa-underline:before { - content: "\f0cd"; -} -.fa-table:before { - content: "\f0ce"; -} -.fa-magic:before { - content: "\f0d0"; -} -.fa-truck:before { - content: "\f0d1"; -} -.fa-pinterest:before { - content: "\f0d2"; -} -.fa-pinterest-square:before { - content: "\f0d3"; -} -.fa-google-plus-square:before { - content: "\f0d4"; -} -.fa-google-plus:before { - content: "\f0d5"; -} -.fa-money:before { - content: "\f0d6"; -} -.fa-caret-down:before { - content: "\f0d7"; -} -.fa-caret-up:before { - content: "\f0d8"; -} -.fa-caret-left:before { - content: "\f0d9"; -} -.fa-caret-right:before { - content: "\f0da"; -} -.fa-columns:before { - content: "\f0db"; -} -.fa-unsorted:before, -.fa-sort:before { - content: "\f0dc"; -} -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\f0dd"; -} -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\f0de"; -} -.fa-envelope:before { - content: "\f0e0"; -} -.fa-linkedin:before { - content: "\f0e1"; -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\f0e2"; -} -.fa-legal:before, -.fa-gavel:before { - content: "\f0e3"; -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\f0e4"; -} -.fa-comment-o:before { - content: "\f0e5"; -} -.fa-comments-o:before { - content: "\f0e6"; -} -.fa-flash:before, -.fa-bolt:before { - content: "\f0e7"; -} -.fa-sitemap:before { - content: "\f0e8"; -} -.fa-umbrella:before { - content: "\f0e9"; -} -.fa-paste:before, -.fa-clipboard:before { - content: "\f0ea"; -} -.fa-lightbulb-o:before { - content: "\f0eb"; -} -.fa-exchange:before { - content: "\f0ec"; -} -.fa-cloud-download:before { - content: "\f0ed"; -} -.fa-cloud-upload:before { - content: "\f0ee"; -} -.fa-user-md:before { - content: "\f0f0"; -} -.fa-stethoscope:before { - content: "\f0f1"; -} -.fa-suitcase:before { - content: "\f0f2"; -} -.fa-bell-o:before { - content: "\f0a2"; -} -.fa-coffee:before { - content: "\f0f4"; -} -.fa-cutlery:before { - content: "\f0f5"; -} -.fa-file-text-o:before { - content: "\f0f6"; -} -.fa-building-o:before { - content: "\f0f7"; -} -.fa-hospital-o:before { - content: "\f0f8"; -} -.fa-ambulance:before { - content: "\f0f9"; -} -.fa-medkit:before { - content: "\f0fa"; -} -.fa-fighter-jet:before { - content: "\f0fb"; -} -.fa-beer:before { - content: "\f0fc"; -} -.fa-h-square:before { - content: "\f0fd"; -} -.fa-plus-square:before { - content: "\f0fe"; -} -.fa-angle-double-left:before { - content: "\f100"; -} -.fa-angle-double-right:before { - content: "\f101"; -} -.fa-angle-double-up:before { - content: "\f102"; -} -.fa-angle-double-down:before { - content: "\f103"; -} -.fa-angle-left:before { - content: "\f104"; -} -.fa-angle-right:before { - content: "\f105"; -} -.fa-angle-up:before { - content: "\f106"; -} -.fa-angle-down:before { - content: "\f107"; -} -.fa-desktop:before { - content: "\f108"; -} -.fa-laptop:before { - content: "\f109"; -} -.fa-tablet:before { - content: "\f10a"; -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\f10b"; -} -.fa-circle-o:before { - content: "\f10c"; -} -.fa-quote-left:before { - content: "\f10d"; -} -.fa-quote-right:before { - content: "\f10e"; -} -.fa-spinner:before { - content: "\f110"; -} -.fa-circle:before { - content: "\f111"; -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\f112"; -} -.fa-github-alt:before { - content: "\f113"; -} -.fa-folder-o:before { - content: "\f114"; -} -.fa-folder-open-o:before { - content: "\f115"; -} -.fa-smile-o:before { - content: "\f118"; -} -.fa-frown-o:before { - content: "\f119"; -} -.fa-meh-o:before { - content: "\f11a"; -} -.fa-gamepad:before { - content: "\f11b"; -} -.fa-keyboard-o:before { - content: "\f11c"; -} -.fa-flag-o:before { - content: "\f11d"; -} -.fa-flag-checkered:before { - content: "\f11e"; -} -.fa-terminal:before { - content: "\f120"; -} -.fa-code:before { - content: "\f121"; -} -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\f122"; -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\f123"; -} -.fa-location-arrow:before { - content: "\f124"; -} -.fa-crop:before { - content: "\f125"; -} -.fa-code-fork:before { - content: "\f126"; -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\f127"; -} -.fa-question:before { - content: "\f128"; -} -.fa-info:before { - content: "\f129"; -} -.fa-exclamation:before { - content: "\f12a"; -} -.fa-superscript:before { - content: "\f12b"; -} -.fa-subscript:before { - content: "\f12c"; -} -.fa-eraser:before { - content: "\f12d"; -} -.fa-puzzle-piece:before { - content: "\f12e"; -} -.fa-microphone:before { - content: "\f130"; -} -.fa-microphone-slash:before { - content: "\f131"; -} -.fa-shield:before { - content: "\f132"; -} -.fa-calendar-o:before { - content: "\f133"; -} -.fa-fire-extinguisher:before { - content: "\f134"; -} -.fa-rocket:before { - content: "\f135"; -} -.fa-maxcdn:before { - content: "\f136"; -} -.fa-chevron-circle-left:before { - content: "\f137"; -} -.fa-chevron-circle-right:before { - content: "\f138"; -} -.fa-chevron-circle-up:before { - content: "\f139"; -} -.fa-chevron-circle-down:before { - content: "\f13a"; -} -.fa-html5:before { - content: "\f13b"; -} -.fa-css3:before { - content: "\f13c"; -} -.fa-anchor:before { - content: "\f13d"; -} -.fa-unlock-alt:before { - content: "\f13e"; -} -.fa-bullseye:before { - content: "\f140"; -} -.fa-ellipsis-h:before { - content: "\f141"; -} -.fa-ellipsis-v:before { - content: "\f142"; -} -.fa-rss-square:before { - content: "\f143"; -} -.fa-play-circle:before { - content: "\f144"; -} -.fa-ticket:before { - content: "\f145"; -} -.fa-minus-square:before { - content: "\f146"; -} -.fa-minus-square-o:before { - content: "\f147"; -} -.fa-level-up:before { - content: "\f148"; -} -.fa-level-down:before { - content: "\f149"; -} -.fa-check-square:before { - content: "\f14a"; -} -.fa-pencil-square:before { - content: "\f14b"; -} -.fa-external-link-square:before { - content: "\f14c"; -} -.fa-share-square:before { - content: "\f14d"; -} -.fa-compass:before { - content: "\f14e"; -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\f150"; -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\f151"; -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\f152"; -} -.fa-euro:before, -.fa-eur:before { - content: "\f153"; -} -.fa-gbp:before { - content: "\f154"; -} -.fa-dollar:before, -.fa-usd:before { - content: "\f155"; -} -.fa-rupee:before, -.fa-inr:before { - content: "\f156"; -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\f157"; -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\f158"; -} -.fa-won:before, -.fa-krw:before { - content: "\f159"; -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\f15a"; -} -.fa-file:before { - content: "\f15b"; -} -.fa-file-text:before { - content: "\f15c"; -} -.fa-sort-alpha-asc:before { - content: "\f15d"; -} -.fa-sort-alpha-desc:before { - content: "\f15e"; -} -.fa-sort-amount-asc:before { - content: "\f160"; -} -.fa-sort-amount-desc:before { - content: "\f161"; -} -.fa-sort-numeric-asc:before { - content: "\f162"; -} -.fa-sort-numeric-desc:before { - content: "\f163"; -} -.fa-thumbs-up:before { - content: "\f164"; -} -.fa-thumbs-down:before { - content: "\f165"; -} -.fa-youtube-square:before { - content: "\f166"; -} -.fa-youtube:before { - content: "\f167"; -} -.fa-xing:before { - content: "\f168"; -} -.fa-xing-square:before { - content: "\f169"; -} -.fa-youtube-play:before { - content: "\f16a"; -} -.fa-dropbox:before { - content: "\f16b"; -} -.fa-stack-overflow:before { - content: "\f16c"; -} -.fa-instagram:before { - content: "\f16d"; -} -.fa-flickr:before { - content: "\f16e"; -} -.fa-adn:before { - content: "\f170"; -} -.fa-bitbucket:before { - content: "\f171"; -} -.fa-bitbucket-square:before { - content: "\f172"; -} -.fa-tumblr:before { - content: "\f173"; -} -.fa-tumblr-square:before { - content: "\f174"; -} -.fa-long-arrow-down:before { - content: "\f175"; -} -.fa-long-arrow-up:before { - content: "\f176"; -} -.fa-long-arrow-left:before { - content: "\f177"; -} -.fa-long-arrow-right:before { - content: "\f178"; -} -.fa-apple:before { - content: "\f179"; -} -.fa-windows:before { - content: "\f17a"; -} -.fa-android:before { - content: "\f17b"; -} -.fa-linux:before { - content: "\f17c"; -} -.fa-dribbble:before { - content: "\f17d"; -} -.fa-skype:before { - content: "\f17e"; -} -.fa-foursquare:before { - content: "\f180"; -} -.fa-trello:before { - content: "\f181"; -} -.fa-female:before { - content: "\f182"; -} -.fa-male:before { - content: "\f183"; -} -.fa-gittip:before, -.fa-gratipay:before { - content: "\f184"; -} -.fa-sun-o:before { - content: "\f185"; -} -.fa-moon-o:before { - content: "\f186"; -} -.fa-archive:before { - content: "\f187"; -} -.fa-bug:before { - content: "\f188"; -} -.fa-vk:before { - content: "\f189"; -} -.fa-weibo:before { - content: "\f18a"; -} -.fa-renren:before { - content: "\f18b"; -} -.fa-pagelines:before { - content: "\f18c"; -} -.fa-stack-exchange:before { - content: "\f18d"; -} -.fa-arrow-circle-o-right:before { - content: "\f18e"; -} -.fa-arrow-circle-o-left:before { - content: "\f190"; -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\f191"; -} -.fa-dot-circle-o:before { - content: "\f192"; -} -.fa-wheelchair:before { - content: "\f193"; -} -.fa-vimeo-square:before { - content: "\f194"; -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\f195"; -} -.fa-plus-square-o:before { - content: "\f196"; -} -.fa-space-shuttle:before { - content: "\f197"; -} -.fa-slack:before { - content: "\f198"; -} -.fa-envelope-square:before { - content: "\f199"; -} -.fa-wordpress:before { - content: "\f19a"; -} -.fa-openid:before { - content: "\f19b"; -} -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\f19c"; -} -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\f19d"; -} -.fa-yahoo:before { - content: "\f19e"; -} -.fa-google:before { - content: "\f1a0"; -} -.fa-reddit:before { - content: "\f1a1"; -} -.fa-reddit-square:before { - content: "\f1a2"; -} -.fa-stumbleupon-circle:before { - content: "\f1a3"; -} -.fa-stumbleupon:before { - content: "\f1a4"; -} -.fa-delicious:before { - content: "\f1a5"; -} -.fa-digg:before { - content: "\f1a6"; -} -.fa-pied-piper-pp:before { - content: "\f1a7"; -} -.fa-pied-piper-alt:before { - content: "\f1a8"; -} -.fa-drupal:before { - content: "\f1a9"; -} -.fa-joomla:before { - content: "\f1aa"; -} -.fa-language:before { - content: "\f1ab"; -} -.fa-fax:before { - content: "\f1ac"; -} -.fa-building:before { - content: "\f1ad"; -} -.fa-child:before { - content: "\f1ae"; -} -.fa-paw:before { - content: "\f1b0"; -} -.fa-spoon:before { - content: "\f1b1"; -} -.fa-cube:before { - content: "\f1b2"; -} -.fa-cubes:before { - content: "\f1b3"; -} -.fa-behance:before { - content: "\f1b4"; -} -.fa-behance-square:before { - content: "\f1b5"; -} -.fa-steam:before { - content: "\f1b6"; -} -.fa-steam-square:before { - content: "\f1b7"; -} -.fa-recycle:before { - content: "\f1b8"; -} -.fa-automobile:before, -.fa-car:before { - content: "\f1b9"; -} -.fa-cab:before, -.fa-taxi:before { - content: "\f1ba"; -} -.fa-tree:before { - content: "\f1bb"; -} -.fa-spotify:before { - content: "\f1bc"; -} -.fa-deviantart:before { - content: "\f1bd"; -} -.fa-soundcloud:before { - content: "\f1be"; -} -.fa-database:before { - content: "\f1c0"; -} -.fa-file-pdf-o:before { - content: "\f1c1"; -} -.fa-file-word-o:before { - content: "\f1c2"; -} -.fa-file-excel-o:before { - content: "\f1c3"; -} -.fa-file-powerpoint-o:before { - content: "\f1c4"; -} -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\f1c5"; -} -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\f1c6"; -} -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\f1c7"; -} -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\f1c8"; -} -.fa-file-code-o:before { - content: "\f1c9"; -} -.fa-vine:before { - content: "\f1ca"; -} -.fa-codepen:before { - content: "\f1cb"; -} -.fa-jsfiddle:before { - content: "\f1cc"; -} -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\f1cd"; -} -.fa-circle-o-notch:before { - content: "\f1ce"; -} -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "\f1d0"; -} -.fa-ge:before, -.fa-empire:before { - content: "\f1d1"; -} -.fa-git-square:before { - content: "\f1d2"; -} -.fa-git:before { - content: "\f1d3"; -} -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "\f1d4"; -} -.fa-tencent-weibo:before { - content: "\f1d5"; -} -.fa-qq:before { - content: "\f1d6"; -} -.fa-wechat:before, -.fa-weixin:before { - content: "\f1d7"; -} -.fa-send:before, -.fa-paper-plane:before { - content: "\f1d8"; -} -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\f1d9"; -} -.fa-history:before { - content: "\f1da"; -} -.fa-circle-thin:before { - content: "\f1db"; -} -.fa-header:before { - content: "\f1dc"; -} -.fa-paragraph:before { - content: "\f1dd"; -} -.fa-sliders:before { - content: "\f1de"; -} -.fa-share-alt:before { - content: "\f1e0"; -} -.fa-share-alt-square:before { - content: "\f1e1"; -} -.fa-bomb:before { - content: "\f1e2"; -} -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\f1e3"; -} -.fa-tty:before { - content: "\f1e4"; -} -.fa-binoculars:before { - content: "\f1e5"; -} -.fa-plug:before { - content: "\f1e6"; -} -.fa-slideshare:before { - content: "\f1e7"; -} -.fa-twitch:before { - content: "\f1e8"; -} -.fa-yelp:before { - content: "\f1e9"; -} -.fa-newspaper-o:before { - content: "\f1ea"; -} -.fa-wifi:before { - content: "\f1eb"; -} -.fa-calculator:before { - content: "\f1ec"; -} -.fa-paypal:before { - content: "\f1ed"; -} -.fa-google-wallet:before { - content: "\f1ee"; -} -.fa-cc-visa:before { - content: "\f1f0"; -} -.fa-cc-mastercard:before { - content: "\f1f1"; -} -.fa-cc-discover:before { - content: "\f1f2"; -} -.fa-cc-amex:before { - content: "\f1f3"; -} -.fa-cc-paypal:before { - content: "\f1f4"; -} -.fa-cc-stripe:before { - content: "\f1f5"; -} -.fa-bell-slash:before { - content: "\f1f6"; -} -.fa-bell-slash-o:before { - content: "\f1f7"; -} -.fa-trash:before { - content: "\f1f8"; -} -.fa-copyright:before { - content: "\f1f9"; -} -.fa-at:before { - content: "\f1fa"; -} -.fa-eyedropper:before { - content: "\f1fb"; -} -.fa-paint-brush:before { - content: "\f1fc"; -} -.fa-birthday-cake:before { - content: "\f1fd"; -} -.fa-area-chart:before { - content: "\f1fe"; -} -.fa-pie-chart:before { - content: "\f200"; -} -.fa-line-chart:before { - content: "\f201"; -} -.fa-lastfm:before { - content: "\f202"; -} -.fa-lastfm-square:before { - content: "\f203"; -} -.fa-toggle-off:before { - content: "\f204"; -} -.fa-toggle-on:before { - content: "\f205"; -} -.fa-bicycle:before { - content: "\f206"; -} -.fa-bus:before { - content: "\f207"; -} -.fa-ioxhost:before { - content: "\f208"; -} -.fa-angellist:before { - content: "\f209"; -} -.fa-cc:before { - content: "\f20a"; -} -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\f20b"; -} -.fa-meanpath:before { - content: "\f20c"; -} -.fa-buysellads:before { - content: "\f20d"; -} -.fa-connectdevelop:before { - content: "\f20e"; -} -.fa-dashcube:before { - content: "\f210"; -} -.fa-forumbee:before { - content: "\f211"; -} -.fa-leanpub:before { - content: "\f212"; -} -.fa-sellsy:before { - content: "\f213"; -} -.fa-shirtsinbulk:before { - content: "\f214"; -} -.fa-simplybuilt:before { - content: "\f215"; -} -.fa-skyatlas:before { - content: "\f216"; -} -.fa-cart-plus:before { - content: "\f217"; -} -.fa-cart-arrow-down:before { - content: "\f218"; -} -.fa-diamond:before { - content: "\f219"; -} -.fa-ship:before { - content: "\f21a"; -} -.fa-user-secret:before { - content: "\f21b"; -} -.fa-motorcycle:before { - content: "\f21c"; -} -.fa-street-view:before { - content: "\f21d"; -} -.fa-heartbeat:before { - content: "\f21e"; -} -.fa-venus:before { - content: "\f221"; -} -.fa-mars:before { - content: "\f222"; -} -.fa-mercury:before { - content: "\f223"; -} -.fa-intersex:before, -.fa-transgender:before { - content: "\f224"; -} -.fa-transgender-alt:before { - content: "\f225"; -} -.fa-venus-double:before { - content: "\f226"; -} -.fa-mars-double:before { - content: "\f227"; -} -.fa-venus-mars:before { - content: "\f228"; -} -.fa-mars-stroke:before { - content: "\f229"; -} -.fa-mars-stroke-v:before { - content: "\f22a"; -} -.fa-mars-stroke-h:before { - content: "\f22b"; -} -.fa-neuter:before { - content: "\f22c"; -} -.fa-genderless:before { - content: "\f22d"; -} -.fa-facebook-official:before { - content: "\f230"; -} -.fa-pinterest-p:before { - content: "\f231"; -} -.fa-whatsapp:before { - content: "\f232"; -} -.fa-server:before { - content: "\f233"; -} -.fa-user-plus:before { - content: "\f234"; -} -.fa-user-times:before { - content: "\f235"; -} -.fa-hotel:before, -.fa-bed:before { - content: "\f236"; -} -.fa-viacoin:before { - content: "\f237"; -} -.fa-train:before { - content: "\f238"; -} -.fa-subway:before { - content: "\f239"; -} -.fa-medium:before { - content: "\f23a"; -} -.fa-yc:before, -.fa-y-combinator:before { - content: "\f23b"; -} -.fa-optin-monster:before { - content: "\f23c"; -} -.fa-opencart:before { - content: "\f23d"; -} -.fa-expeditedssl:before { - content: "\f23e"; -} -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "\f240"; -} -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "\f241"; -} -.fa-battery-2:before, -.fa-battery-half:before { - content: "\f242"; -} -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "\f243"; -} -.fa-battery-0:before, -.fa-battery-empty:before { - content: "\f244"; -} -.fa-mouse-pointer:before { - content: "\f245"; -} -.fa-i-cursor:before { - content: "\f246"; -} -.fa-object-group:before { - content: "\f247"; -} -.fa-object-ungroup:before { - content: "\f248"; -} -.fa-sticky-note:before { - content: "\f249"; -} -.fa-sticky-note-o:before { - content: "\f24a"; -} -.fa-cc-jcb:before { - content: "\f24b"; -} -.fa-cc-diners-club:before { - content: "\f24c"; -} -.fa-clone:before { - content: "\f24d"; -} -.fa-balance-scale:before { - content: "\f24e"; -} -.fa-hourglass-o:before { - content: "\f250"; -} -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "\f251"; -} -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "\f252"; -} -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "\f253"; -} -.fa-hourglass:before { - content: "\f254"; -} -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "\f255"; -} -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "\f256"; -} -.fa-hand-scissors-o:before { - content: "\f257"; -} -.fa-hand-lizard-o:before { - content: "\f258"; -} -.fa-hand-spock-o:before { - content: "\f259"; -} -.fa-hand-pointer-o:before { - content: "\f25a"; -} -.fa-hand-peace-o:before { - content: "\f25b"; -} -.fa-trademark:before { - content: "\f25c"; -} -.fa-registered:before { - content: "\f25d"; -} -.fa-creative-commons:before { - content: "\f25e"; -} -.fa-gg:before { - content: "\f260"; -} -.fa-gg-circle:before { - content: "\f261"; -} -.fa-tripadvisor:before { - content: "\f262"; -} -.fa-odnoklassniki:before { - content: "\f263"; -} -.fa-odnoklassniki-square:before { - content: "\f264"; -} -.fa-get-pocket:before { - content: "\f265"; -} -.fa-wikipedia-w:before { - content: "\f266"; -} -.fa-safari:before { - content: "\f267"; -} -.fa-chrome:before { - content: "\f268"; -} -.fa-firefox:before { - content: "\f269"; -} -.fa-opera:before { - content: "\f26a"; -} -.fa-internet-explorer:before { - content: "\f26b"; -} -.fa-tv:before, -.fa-television:before { - content: "\f26c"; -} -.fa-contao:before { - content: "\f26d"; -} -.fa-500px:before { - content: "\f26e"; -} -.fa-amazon:before { - content: "\f270"; -} -.fa-calendar-plus-o:before { - content: "\f271"; -} -.fa-calendar-minus-o:before { - content: "\f272"; -} -.fa-calendar-times-o:before { - content: "\f273"; -} -.fa-calendar-check-o:before { - content: "\f274"; -} -.fa-industry:before { - content: "\f275"; -} -.fa-map-pin:before { - content: "\f276"; -} -.fa-map-signs:before { - content: "\f277"; -} -.fa-map-o:before { - content: "\f278"; -} -.fa-map:before { - content: "\f279"; -} -.fa-commenting:before { - content: "\f27a"; -} -.fa-commenting-o:before { - content: "\f27b"; -} -.fa-houzz:before { - content: "\f27c"; -} -.fa-vimeo:before { - content: "\f27d"; -} -.fa-black-tie:before { - content: "\f27e"; -} -.fa-fonticons:before { - content: "\f280"; -} -.fa-reddit-alien:before { - content: "\f281"; -} -.fa-edge:before { - content: "\f282"; -} -.fa-credit-card-alt:before { - content: "\f283"; -} -.fa-codiepie:before { - content: "\f284"; -} -.fa-modx:before { - content: "\f285"; -} -.fa-fort-awesome:before { - content: "\f286"; -} -.fa-usb:before { - content: "\f287"; -} -.fa-product-hunt:before { - content: "\f288"; -} -.fa-mixcloud:before { - content: "\f289"; -} -.fa-scribd:before { - content: "\f28a"; -} -.fa-pause-circle:before { - content: "\f28b"; -} -.fa-pause-circle-o:before { - content: "\f28c"; -} -.fa-stop-circle:before { - content: "\f28d"; -} -.fa-stop-circle-o:before { - content: "\f28e"; -} -.fa-shopping-bag:before { - content: "\f290"; -} -.fa-shopping-basket:before { - content: "\f291"; -} -.fa-hashtag:before { - content: "\f292"; -} -.fa-bluetooth:before { - content: "\f293"; -} -.fa-bluetooth-b:before { - content: "\f294"; -} -.fa-percent:before { - content: "\f295"; -} -.fa-gitlab:before { - content: "\f296"; -} -.fa-wpbeginner:before { - content: "\f297"; -} -.fa-wpforms:before { - content: "\f298"; -} -.fa-envira:before { - content: "\f299"; -} -.fa-universal-access:before { - content: "\f29a"; -} -.fa-wheelchair-alt:before { - content: "\f29b"; -} -.fa-question-circle-o:before { - content: "\f29c"; -} -.fa-blind:before { - content: "\f29d"; -} -.fa-audio-description:before { - content: "\f29e"; -} -.fa-volume-control-phone:before { - content: "\f2a0"; -} -.fa-braille:before { - content: "\f2a1"; -} -.fa-assistive-listening-systems:before { - content: "\f2a2"; -} -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\f2a3"; -} -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\f2a4"; -} -.fa-glide:before { - content: "\f2a5"; -} -.fa-glide-g:before { - content: "\f2a6"; -} -.fa-signing:before, -.fa-sign-language:before { - content: "\f2a7"; -} -.fa-low-vision:before { - content: "\f2a8"; -} -.fa-viadeo:before { - content: "\f2a9"; -} -.fa-viadeo-square:before { - content: "\f2aa"; -} -.fa-snapchat:before { - content: "\f2ab"; -} -.fa-snapchat-ghost:before { - content: "\f2ac"; -} -.fa-snapchat-square:before { - content: "\f2ad"; -} -.fa-pied-piper:before { - content: "\f2ae"; -} -.fa-first-order:before { - content: "\f2b0"; -} -.fa-yoast:before { - content: "\f2b1"; -} -.fa-themeisle:before { - content: "\f2b2"; -} -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\f2b3"; -} -.fa-fa:before, -.fa-font-awesome:before { - content: "\f2b4"; -} -.fa-handshake-o:before { - content: "\f2b5"; -} -.fa-envelope-open:before { - content: "\f2b6"; -} -.fa-envelope-open-o:before { - content: "\f2b7"; -} -.fa-linode:before { - content: "\f2b8"; -} -.fa-address-book:before { - content: "\f2b9"; -} -.fa-address-book-o:before { - content: "\f2ba"; -} -.fa-vcard:before, -.fa-address-card:before { - content: "\f2bb"; -} -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\f2bc"; -} -.fa-user-circle:before { - content: "\f2bd"; -} -.fa-user-circle-o:before { - content: "\f2be"; -} -.fa-user-o:before { - content: "\f2c0"; -} -.fa-id-badge:before { - content: "\f2c1"; -} -.fa-drivers-license:before, -.fa-id-card:before { - content: "\f2c2"; -} -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\f2c3"; -} -.fa-quora:before { - content: "\f2c4"; -} -.fa-free-code-camp:before { - content: "\f2c5"; -} -.fa-telegram:before { - content: "\f2c6"; -} -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\f2c7"; -} -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\f2c8"; -} -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\f2c9"; -} -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\f2ca"; -} -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\f2cb"; -} -.fa-shower:before { - content: "\f2cc"; -} -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\f2cd"; -} -.fa-podcast:before { - content: "\f2ce"; -} -.fa-window-maximize:before { - content: "\f2d0"; -} -.fa-window-minimize:before { - content: "\f2d1"; -} -.fa-window-restore:before { - content: "\f2d2"; -} -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\f2d3"; -} -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\f2d4"; -} -.fa-bandcamp:before { - content: "\f2d5"; -} -.fa-grav:before { - content: "\f2d6"; -} -.fa-etsy:before { - content: "\f2d7"; -} -.fa-imdb:before { - content: "\f2d8"; -} -.fa-ravelry:before { - content: "\f2d9"; -} -.fa-eercast:before { - content: "\f2da"; -} -.fa-microchip:before { - content: "\f2db"; -} -.fa-snowflake-o:before { - content: "\f2dc"; -} -.fa-superpowers:before { - content: "\f2dd"; -} -.fa-wpexplorer:before { - content: "\f2de"; -} -.fa-meetup:before { - content: "\f2e0"; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} diff --git a/bower_components/font-awesome/css/font-awesome.css.map b/bower_components/font-awesome/css/font-awesome.css.map deleted file mode 100644 index 60763a864..000000000 --- a/bower_components/font-awesome/css/font-awesome.css.map +++ /dev/null @@ -1,7 +0,0 @@ -{ -"version": 3, -"mappings": "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", -"sources": ["../scss/_path.scss","../scss/_core.scss","../scss/_larger.scss","../scss/_fixed-width.scss","../scss/_list.scss","../scss/_variables.scss","../scss/_bordered-pulled.scss","../scss/_animated.scss","../scss/_rotated-flipped.scss","../scss/_mixins.scss","../scss/_stacked.scss","../scss/_icons.scss"], -"names": [], -"file": "font-awesome.css" -} diff --git a/bower_components/font-awesome/css/font-awesome.min.css b/bower_components/font-awesome/css/font-awesome.min.css deleted file mode 100644 index 540440ce8..000000000 --- a/bower_components/font-awesome/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/bower_components/font-awesome/fonts/FontAwesome.otf b/bower_components/font-awesome/fonts/FontAwesome.otf deleted file mode 100644 index 401ec0f36..000000000 Binary files a/bower_components/font-awesome/fonts/FontAwesome.otf and /dev/null differ diff --git a/bower_components/font-awesome/fonts/fontawesome-webfont.eot b/bower_components/font-awesome/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca95..000000000 Binary files a/bower_components/font-awesome/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/bower_components/font-awesome/fonts/fontawesome-webfont.svg b/bower_components/font-awesome/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845e5..000000000 --- a/bower_components/font-awesome/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/font-awesome/fonts/fontawesome-webfont.ttf b/bower_components/font-awesome/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2fa..000000000 Binary files a/bower_components/font-awesome/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/bower_components/font-awesome/fonts/fontawesome-webfont.woff b/bower_components/font-awesome/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a4b..000000000 Binary files a/bower_components/font-awesome/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 b/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc604..000000000 Binary files a/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/bower_components/font-awesome/less/animated.less b/bower_components/font-awesome/less/animated.less deleted file mode 100644 index 66ad52a5b..000000000 --- a/bower_components/font-awesome/less/animated.less +++ /dev/null @@ -1,34 +0,0 @@ -// Animated Icons -// -------------------------- - -.@{fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.@{fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/bower_components/font-awesome/less/bordered-pulled.less b/bower_components/font-awesome/less/bordered-pulled.less deleted file mode 100644 index f1c8ad75f..000000000 --- a/bower_components/font-awesome/less/bordered-pulled.less +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.@{fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em @fa-border-color; - border-radius: .1em; -} - -.@{fa-css-prefix}-pull-left { float: left; } -.@{fa-css-prefix}-pull-right { float: right; } - -.@{fa-css-prefix} { - &.@{fa-css-prefix}-pull-left { margin-right: .3em; } - &.@{fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.@{fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/bower_components/font-awesome/less/core.less b/bower_components/font-awesome/less/core.less deleted file mode 100644 index c577ac84a..000000000 --- a/bower_components/font-awesome/less/core.less +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.@{fa-css-prefix} { - display: inline-block; - font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/bower_components/font-awesome/less/fixed-width.less b/bower_components/font-awesome/less/fixed-width.less deleted file mode 100644 index 110289f2f..000000000 --- a/bower_components/font-awesome/less/fixed-width.less +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.@{fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/bower_components/font-awesome/less/font-awesome.less b/bower_components/font-awesome/less/font-awesome.less deleted file mode 100644 index c3677def3..000000000 --- a/bower_components/font-awesome/less/font-awesome.less +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables.less"; -@import "mixins.less"; -@import "path.less"; -@import "core.less"; -@import "larger.less"; -@import "fixed-width.less"; -@import "list.less"; -@import "bordered-pulled.less"; -@import "animated.less"; -@import "rotated-flipped.less"; -@import "stacked.less"; -@import "icons.less"; -@import "screen-reader.less"; diff --git a/bower_components/font-awesome/less/icons.less b/bower_components/font-awesome/less/icons.less deleted file mode 100644 index 159d60042..000000000 --- a/bower_components/font-awesome/less/icons.less +++ /dev/null @@ -1,789 +0,0 @@ -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.@{fa-css-prefix}-glass:before { content: @fa-var-glass; } -.@{fa-css-prefix}-music:before { content: @fa-var-music; } -.@{fa-css-prefix}-search:before { content: @fa-var-search; } -.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; } -.@{fa-css-prefix}-heart:before { content: @fa-var-heart; } -.@{fa-css-prefix}-star:before { content: @fa-var-star; } -.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; } -.@{fa-css-prefix}-user:before { content: @fa-var-user; } -.@{fa-css-prefix}-film:before { content: @fa-var-film; } -.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; } -.@{fa-css-prefix}-th:before { content: @fa-var-th; } -.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } -.@{fa-css-prefix}-check:before { content: @fa-var-check; } -.@{fa-css-prefix}-remove:before, -.@{fa-css-prefix}-close:before, -.@{fa-css-prefix}-times:before { content: @fa-var-times; } -.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } -.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } -.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; } -.@{fa-css-prefix}-signal:before { content: @fa-var-signal; } -.@{fa-css-prefix}-gear:before, -.@{fa-css-prefix}-cog:before { content: @fa-var-cog; } -.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; } -.@{fa-css-prefix}-home:before { content: @fa-var-home; } -.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; } -.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; } -.@{fa-css-prefix}-road:before { content: @fa-var-road; } -.@{fa-css-prefix}-download:before { content: @fa-var-download; } -.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; } -.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; } -.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; } -.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; } -.@{fa-css-prefix}-rotate-right:before, -.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; } -.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; } -.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; } -.@{fa-css-prefix}-lock:before { content: @fa-var-lock; } -.@{fa-css-prefix}-flag:before { content: @fa-var-flag; } -.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; } -.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; } -.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; } -.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; } -.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; } -.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; } -.@{fa-css-prefix}-tag:before { content: @fa-var-tag; } -.@{fa-css-prefix}-tags:before { content: @fa-var-tags; } -.@{fa-css-prefix}-book:before { content: @fa-var-book; } -.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; } -.@{fa-css-prefix}-print:before { content: @fa-var-print; } -.@{fa-css-prefix}-camera:before { content: @fa-var-camera; } -.@{fa-css-prefix}-font:before { content: @fa-var-font; } -.@{fa-css-prefix}-bold:before { content: @fa-var-bold; } -.@{fa-css-prefix}-italic:before { content: @fa-var-italic; } -.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; } -.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; } -.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; } -.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; } -.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; } -.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; } -.@{fa-css-prefix}-list:before { content: @fa-var-list; } -.@{fa-css-prefix}-dedent:before, -.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } -.@{fa-css-prefix}-indent:before { content: @fa-var-indent; } -.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } -.@{fa-css-prefix}-photo:before, -.@{fa-css-prefix}-image:before, -.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } -.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } -.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } -.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; } -.@{fa-css-prefix}-tint:before { content: @fa-var-tint; } -.@{fa-css-prefix}-edit:before, -.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } -.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } -.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } -.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } -.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } -.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } -.@{fa-css-prefix}-backward:before { content: @fa-var-backward; } -.@{fa-css-prefix}-play:before { content: @fa-var-play; } -.@{fa-css-prefix}-pause:before { content: @fa-var-pause; } -.@{fa-css-prefix}-stop:before { content: @fa-var-stop; } -.@{fa-css-prefix}-forward:before { content: @fa-var-forward; } -.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; } -.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; } -.@{fa-css-prefix}-eject:before { content: @fa-var-eject; } -.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; } -.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; } -.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; } -.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; } -.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; } -.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; } -.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; } -.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; } -.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; } -.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; } -.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; } -.@{fa-css-prefix}-ban:before { content: @fa-var-ban; } -.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; } -.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; } -.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; } -.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } -.@{fa-css-prefix}-mail-forward:before, -.@{fa-css-prefix}-share:before { content: @fa-var-share; } -.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } -.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } -.@{fa-css-prefix}-plus:before { content: @fa-var-plus; } -.@{fa-css-prefix}-minus:before { content: @fa-var-minus; } -.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } -.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; } -.@{fa-css-prefix}-gift:before { content: @fa-var-gift; } -.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; } -.@{fa-css-prefix}-fire:before { content: @fa-var-fire; } -.@{fa-css-prefix}-eye:before { content: @fa-var-eye; } -.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; } -.@{fa-css-prefix}-warning:before, -.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; } -.@{fa-css-prefix}-plane:before { content: @fa-var-plane; } -.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; } -.@{fa-css-prefix}-random:before { content: @fa-var-random; } -.@{fa-css-prefix}-comment:before { content: @fa-var-comment; } -.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; } -.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; } -.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; } -.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; } -.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } -.@{fa-css-prefix}-folder:before { content: @fa-var-folder; } -.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } -.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } -.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } -.@{fa-css-prefix}-bar-chart-o:before, -.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } -.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } -.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } -.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } -.@{fa-css-prefix}-key:before { content: @fa-var-key; } -.@{fa-css-prefix}-gears:before, -.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; } -.@{fa-css-prefix}-comments:before { content: @fa-var-comments; } -.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; } -.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; } -.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; } -.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; } -.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; } -.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; } -.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; } -.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; } -.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; } -.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; } -.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; } -.@{fa-css-prefix}-upload:before { content: @fa-var-upload; } -.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; } -.@{fa-css-prefix}-phone:before { content: @fa-var-phone; } -.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; } -.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } -.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } -.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } -.@{fa-css-prefix}-facebook-f:before, -.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } -.@{fa-css-prefix}-github:before { content: @fa-var-github; } -.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } -.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } -.@{fa-css-prefix}-feed:before, -.@{fa-css-prefix}-rss:before { content: @fa-var-rss; } -.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } -.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } -.@{fa-css-prefix}-bell:before { content: @fa-var-bell; } -.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; } -.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; } -.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; } -.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; } -.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; } -.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; } -.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; } -.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; } -.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; } -.@{fa-css-prefix}-globe:before { content: @fa-var-globe; } -.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; } -.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } -.@{fa-css-prefix}-filter:before { content: @fa-var-filter; } -.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } -.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } -.@{fa-css-prefix}-group:before, -.@{fa-css-prefix}-users:before { content: @fa-var-users; } -.@{fa-css-prefix}-chain:before, -.@{fa-css-prefix}-link:before { content: @fa-var-link; } -.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } -.@{fa-css-prefix}-flask:before { content: @fa-var-flask; } -.@{fa-css-prefix}-cut:before, -.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; } -.@{fa-css-prefix}-copy:before, -.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; } -.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; } -.@{fa-css-prefix}-save:before, -.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } -.@{fa-css-prefix}-square:before { content: @fa-var-square; } -.@{fa-css-prefix}-navicon:before, -.@{fa-css-prefix}-reorder:before, -.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } -.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } -.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } -.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } -.@{fa-css-prefix}-underline:before { content: @fa-var-underline; } -.@{fa-css-prefix}-table:before { content: @fa-var-table; } -.@{fa-css-prefix}-magic:before { content: @fa-var-magic; } -.@{fa-css-prefix}-truck:before { content: @fa-var-truck; } -.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; } -.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; } -.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; } -.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; } -.@{fa-css-prefix}-money:before { content: @fa-var-money; } -.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; } -.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; } -.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; } -.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; } -.@{fa-css-prefix}-columns:before { content: @fa-var-columns; } -.@{fa-css-prefix}-unsorted:before, -.@{fa-css-prefix}-sort:before { content: @fa-var-sort; } -.@{fa-css-prefix}-sort-down:before, -.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } -.@{fa-css-prefix}-sort-up:before, -.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } -.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } -.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } -.@{fa-css-prefix}-rotate-left:before, -.@{fa-css-prefix}-undo:before { content: @fa-var-undo; } -.@{fa-css-prefix}-legal:before, -.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; } -.@{fa-css-prefix}-dashboard:before, -.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; } -.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; } -.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; } -.@{fa-css-prefix}-flash:before, -.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; } -.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; } -.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; } -.@{fa-css-prefix}-paste:before, -.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; } -.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; } -.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; } -.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; } -.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; } -.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; } -.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; } -.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; } -.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; } -.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } -.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } -.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } -.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } -.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } -.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } -.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } -.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } -.@{fa-css-prefix}-beer:before { content: @fa-var-beer; } -.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; } -.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; } -.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; } -.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; } -.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; } -.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; } -.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; } -.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; } -.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; } -.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; } -.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; } -.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; } -.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; } -.@{fa-css-prefix}-mobile-phone:before, -.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; } -.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; } -.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; } -.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; } -.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; } -.@{fa-css-prefix}-circle:before { content: @fa-var-circle; } -.@{fa-css-prefix}-mail-reply:before, -.@{fa-css-prefix}-reply:before { content: @fa-var-reply; } -.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } -.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } -.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } -.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } -.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } -.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } -.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; } -.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; } -.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; } -.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } -.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } -.@{fa-css-prefix}-code:before { content: @fa-var-code; } -.@{fa-css-prefix}-mail-reply-all:before, -.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } -.@{fa-css-prefix}-star-half-empty:before, -.@{fa-css-prefix}-star-half-full:before, -.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } -.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; } -.@{fa-css-prefix}-crop:before { content: @fa-var-crop; } -.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; } -.@{fa-css-prefix}-unlink:before, -.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; } -.@{fa-css-prefix}-question:before { content: @fa-var-question; } -.@{fa-css-prefix}-info:before { content: @fa-var-info; } -.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; } -.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; } -.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; } -.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; } -.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; } -.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; } -.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; } -.@{fa-css-prefix}-shield:before { content: @fa-var-shield; } -.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; } -.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; } -.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; } -.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; } -.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; } -.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; } -.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; } -.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; } -.@{fa-css-prefix}-html5:before { content: @fa-var-html5; } -.@{fa-css-prefix}-css3:before { content: @fa-var-css3; } -.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } -.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } -.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } -.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } -.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } -.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } -.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } -.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } -.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; } -.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; } -.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; } -.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; } -.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; } -.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; } -.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; } -.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; } -.@{fa-css-prefix}-compass:before { content: @fa-var-compass; } -.@{fa-css-prefix}-toggle-down:before, -.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; } -.@{fa-css-prefix}-toggle-up:before, -.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; } -.@{fa-css-prefix}-toggle-right:before, -.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; } -.@{fa-css-prefix}-euro:before, -.@{fa-css-prefix}-eur:before { content: @fa-var-eur; } -.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; } -.@{fa-css-prefix}-dollar:before, -.@{fa-css-prefix}-usd:before { content: @fa-var-usd; } -.@{fa-css-prefix}-rupee:before, -.@{fa-css-prefix}-inr:before { content: @fa-var-inr; } -.@{fa-css-prefix}-cny:before, -.@{fa-css-prefix}-rmb:before, -.@{fa-css-prefix}-yen:before, -.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; } -.@{fa-css-prefix}-ruble:before, -.@{fa-css-prefix}-rouble:before, -.@{fa-css-prefix}-rub:before { content: @fa-var-rub; } -.@{fa-css-prefix}-won:before, -.@{fa-css-prefix}-krw:before { content: @fa-var-krw; } -.@{fa-css-prefix}-bitcoin:before, -.@{fa-css-prefix}-btc:before { content: @fa-var-btc; } -.@{fa-css-prefix}-file:before { content: @fa-var-file; } -.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; } -.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; } -.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; } -.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; } -.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; } -.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; } -.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; } -.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; } -.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; } -.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; } -.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; } -.@{fa-css-prefix}-xing:before { content: @fa-var-xing; } -.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; } -.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; } -.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; } -.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; } -.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; } -.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; } -.@{fa-css-prefix}-adn:before { content: @fa-var-adn; } -.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; } -.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; } -.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; } -.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; } -.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; } -.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; } -.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; } -.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; } -.@{fa-css-prefix}-apple:before { content: @fa-var-apple; } -.@{fa-css-prefix}-windows:before { content: @fa-var-windows; } -.@{fa-css-prefix}-android:before { content: @fa-var-android; } -.@{fa-css-prefix}-linux:before { content: @fa-var-linux; } -.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; } -.@{fa-css-prefix}-skype:before { content: @fa-var-skype; } -.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; } -.@{fa-css-prefix}-trello:before { content: @fa-var-trello; } -.@{fa-css-prefix}-female:before { content: @fa-var-female; } -.@{fa-css-prefix}-male:before { content: @fa-var-male; } -.@{fa-css-prefix}-gittip:before, -.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } -.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } -.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } -.@{fa-css-prefix}-archive:before { content: @fa-var-archive; } -.@{fa-css-prefix}-bug:before { content: @fa-var-bug; } -.@{fa-css-prefix}-vk:before { content: @fa-var-vk; } -.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; } -.@{fa-css-prefix}-renren:before { content: @fa-var-renren; } -.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; } -.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; } -.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; } -.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; } -.@{fa-css-prefix}-toggle-left:before, -.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; } -.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; } -.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; } -.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } -.@{fa-css-prefix}-turkish-lira:before, -.@{fa-css-prefix}-try:before { content: @fa-var-try; } -.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } -.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } -.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } -.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } -.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } -.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } -.@{fa-css-prefix}-institution:before, -.@{fa-css-prefix}-bank:before, -.@{fa-css-prefix}-university:before { content: @fa-var-university; } -.@{fa-css-prefix}-mortar-board:before, -.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } -.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } -.@{fa-css-prefix}-google:before { content: @fa-var-google; } -.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } -.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } -.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } -.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } -.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } -.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } -.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } -.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } -.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } -.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } -.@{fa-css-prefix}-language:before { content: @fa-var-language; } -.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } -.@{fa-css-prefix}-building:before { content: @fa-var-building; } -.@{fa-css-prefix}-child:before { content: @fa-var-child; } -.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } -.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } -.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } -.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } -.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } -.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } -.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } -.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } -.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } -.@{fa-css-prefix}-automobile:before, -.@{fa-css-prefix}-car:before { content: @fa-var-car; } -.@{fa-css-prefix}-cab:before, -.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } -.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } -.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } -.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } -.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } -.@{fa-css-prefix}-database:before { content: @fa-var-database; } -.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } -.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } -.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } -.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } -.@{fa-css-prefix}-file-photo-o:before, -.@{fa-css-prefix}-file-picture-o:before, -.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } -.@{fa-css-prefix}-file-zip-o:before, -.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } -.@{fa-css-prefix}-file-sound-o:before, -.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } -.@{fa-css-prefix}-file-movie-o:before, -.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } -.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } -.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } -.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } -.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } -.@{fa-css-prefix}-life-bouy:before, -.@{fa-css-prefix}-life-buoy:before, -.@{fa-css-prefix}-life-saver:before, -.@{fa-css-prefix}-support:before, -.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } -.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } -.@{fa-css-prefix}-ra:before, -.@{fa-css-prefix}-resistance:before, -.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } -.@{fa-css-prefix}-ge:before, -.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } -.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } -.@{fa-css-prefix}-git:before { content: @fa-var-git; } -.@{fa-css-prefix}-y-combinator-square:before, -.@{fa-css-prefix}-yc-square:before, -.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } -.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } -.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } -.@{fa-css-prefix}-wechat:before, -.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } -.@{fa-css-prefix}-send:before, -.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } -.@{fa-css-prefix}-send-o:before, -.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } -.@{fa-css-prefix}-history:before { content: @fa-var-history; } -.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } -.@{fa-css-prefix}-header:before { content: @fa-var-header; } -.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } -.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } -.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } -.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } -.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } -.@{fa-css-prefix}-soccer-ball-o:before, -.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } -.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } -.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } -.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } -.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } -.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } -.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } -.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } -.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } -.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } -.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } -.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } -.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } -.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } -.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } -.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } -.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } -.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } -.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } -.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } -.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } -.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } -.@{fa-css-prefix}-at:before { content: @fa-var-at; } -.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } -.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } -.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } -.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } -.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } -.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } -.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } -.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } -.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } -.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } -.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } -.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } -.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } -.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } -.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } -.@{fa-css-prefix}-shekel:before, -.@{fa-css-prefix}-sheqel:before, -.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } -.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } -.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } -.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } -.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } -.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } -.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } -.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } -.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } -.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } -.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } -.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } -.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } -.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } -.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } -.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } -.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } -.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } -.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } -.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } -.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } -.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } -.@{fa-css-prefix}-intersex:before, -.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } -.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } -.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } -.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } -.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } -.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } -.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } -.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } -.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } -.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } -.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } -.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } -.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } -.@{fa-css-prefix}-server:before { content: @fa-var-server; } -.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } -.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } -.@{fa-css-prefix}-hotel:before, -.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } -.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } -.@{fa-css-prefix}-train:before { content: @fa-var-train; } -.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } -.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } -.@{fa-css-prefix}-yc:before, -.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } -.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } -.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } -.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } -.@{fa-css-prefix}-battery-4:before, -.@{fa-css-prefix}-battery:before, -.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } -.@{fa-css-prefix}-battery-3:before, -.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } -.@{fa-css-prefix}-battery-2:before, -.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } -.@{fa-css-prefix}-battery-1:before, -.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } -.@{fa-css-prefix}-battery-0:before, -.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } -.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } -.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } -.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } -.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } -.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } -.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } -.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } -.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } -.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } -.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } -.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } -.@{fa-css-prefix}-hourglass-1:before, -.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } -.@{fa-css-prefix}-hourglass-2:before, -.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } -.@{fa-css-prefix}-hourglass-3:before, -.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } -.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } -.@{fa-css-prefix}-hand-grab-o:before, -.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } -.@{fa-css-prefix}-hand-stop-o:before, -.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } -.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } -.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } -.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } -.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } -.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } -.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } -.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } -.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } -.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } -.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } -.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } -.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } -.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } -.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } -.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } -.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } -.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } -.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } -.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } -.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } -.@{fa-css-prefix}-tv:before, -.@{fa-css-prefix}-television:before { content: @fa-var-television; } -.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } -.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } -.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } -.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } -.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } -.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } -.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } -.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } -.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } -.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } -.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } -.@{fa-css-prefix}-map:before { content: @fa-var-map; } -.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } -.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } -.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } -.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } -.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } -.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } -.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } -.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } -.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } -.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } -.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } -.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } -.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } -.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } -.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } -.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } -.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } -.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } -.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } -.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } -.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } -.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } -.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } -.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } -.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } -.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } -.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } -.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } -.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } -.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } -.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } -.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } -.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } -.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } -.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } -.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } -.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } -.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } -.@{fa-css-prefix}-asl-interpreting:before, -.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } -.@{fa-css-prefix}-deafness:before, -.@{fa-css-prefix}-hard-of-hearing:before, -.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } -.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } -.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } -.@{fa-css-prefix}-signing:before, -.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } -.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } -.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } -.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } -.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } -.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } -.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } -.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } -.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } -.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } -.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } -.@{fa-css-prefix}-google-plus-circle:before, -.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } -.@{fa-css-prefix}-fa:before, -.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } -.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; } -.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; } -.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; } -.@{fa-css-prefix}-linode:before { content: @fa-var-linode; } -.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; } -.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; } -.@{fa-css-prefix}-vcard:before, -.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; } -.@{fa-css-prefix}-vcard-o:before, -.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; } -.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; } -.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; } -.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; } -.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; } -.@{fa-css-prefix}-drivers-license:before, -.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; } -.@{fa-css-prefix}-drivers-license-o:before, -.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; } -.@{fa-css-prefix}-quora:before { content: @fa-var-quora; } -.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; } -.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; } -.@{fa-css-prefix}-thermometer-4:before, -.@{fa-css-prefix}-thermometer:before, -.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; } -.@{fa-css-prefix}-thermometer-3:before, -.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; } -.@{fa-css-prefix}-thermometer-2:before, -.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; } -.@{fa-css-prefix}-thermometer-1:before, -.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; } -.@{fa-css-prefix}-thermometer-0:before, -.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; } -.@{fa-css-prefix}-shower:before { content: @fa-var-shower; } -.@{fa-css-prefix}-bathtub:before, -.@{fa-css-prefix}-s15:before, -.@{fa-css-prefix}-bath:before { content: @fa-var-bath; } -.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; } -.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; } -.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; } -.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; } -.@{fa-css-prefix}-times-rectangle:before, -.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; } -.@{fa-css-prefix}-times-rectangle-o:before, -.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; } -.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; } -.@{fa-css-prefix}-grav:before { content: @fa-var-grav; } -.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; } -.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; } -.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; } -.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; } -.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; } -.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; } -.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; } -.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; } -.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; } diff --git a/bower_components/font-awesome/less/larger.less b/bower_components/font-awesome/less/larger.less deleted file mode 100644 index c9d646770..000000000 --- a/bower_components/font-awesome/less/larger.less +++ /dev/null @@ -1,13 +0,0 @@ -// Icon Sizes -// ------------------------- - -/* makes the font 33% larger relative to the icon container */ -.@{fa-css-prefix}-lg { - font-size: (4em / 3); - line-height: (3em / 4); - vertical-align: -15%; -} -.@{fa-css-prefix}-2x { font-size: 2em; } -.@{fa-css-prefix}-3x { font-size: 3em; } -.@{fa-css-prefix}-4x { font-size: 4em; } -.@{fa-css-prefix}-5x { font-size: 5em; } diff --git a/bower_components/font-awesome/less/list.less b/bower_components/font-awesome/less/list.less deleted file mode 100644 index 0b440382f..000000000 --- a/bower_components/font-awesome/less/list.less +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.@{fa-css-prefix}-ul { - padding-left: 0; - margin-left: @fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.@{fa-css-prefix}-li { - position: absolute; - left: -@fa-li-width; - width: @fa-li-width; - top: (2em / 14); - text-align: center; - &.@{fa-css-prefix}-lg { - left: (-@fa-li-width + (4em / 14)); - } -} diff --git a/bower_components/font-awesome/less/mixins.less b/bower_components/font-awesome/less/mixins.less deleted file mode 100644 index beef231d0..000000000 --- a/bower_components/font-awesome/less/mixins.less +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -.fa-icon() { - display: inline-block; - font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -.fa-icon-rotate(@degrees, @rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; - -webkit-transform: rotate(@degrees); - -ms-transform: rotate(@degrees); - transform: rotate(@degrees); -} - -.fa-icon-flip(@horiz, @vert, @rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; - -webkit-transform: scale(@horiz, @vert); - -ms-transform: scale(@horiz, @vert); - transform: scale(@horiz, @vert); -} - - -// Only display content to screen readers. A la Bootstrap 4. -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -.sr-only() { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -.sr-only-focusable() { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/bower_components/font-awesome/less/path.less b/bower_components/font-awesome/less/path.less deleted file mode 100644 index 835be41f8..000000000 --- a/bower_components/font-awesome/less/path.less +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); - src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), - url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), - url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), - url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), - url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); - // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/bower_components/font-awesome/less/rotated-flipped.less b/bower_components/font-awesome/less/rotated-flipped.less deleted file mode 100644 index f6ba81475..000000000 --- a/bower_components/font-awesome/less/rotated-flipped.less +++ /dev/null @@ -1,20 +0,0 @@ -// Rotated & Flipped Icons -// ------------------------- - -.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } -.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } -.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } - -.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } -.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } - -// Hook for IE8-9 -// ------------------------- - -:root .@{fa-css-prefix}-rotate-90, -:root .@{fa-css-prefix}-rotate-180, -:root .@{fa-css-prefix}-rotate-270, -:root .@{fa-css-prefix}-flip-horizontal, -:root .@{fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/bower_components/font-awesome/less/screen-reader.less b/bower_components/font-awesome/less/screen-reader.less deleted file mode 100644 index 11c188196..000000000 --- a/bower_components/font-awesome/less/screen-reader.less +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { .sr-only(); } -.sr-only-focusable { .sr-only-focusable(); } diff --git a/bower_components/font-awesome/less/stacked.less b/bower_components/font-awesome/less/stacked.less deleted file mode 100644 index fc53fb0e7..000000000 --- a/bower_components/font-awesome/less/stacked.less +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.@{fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.@{fa-css-prefix}-stack-1x { line-height: inherit; } -.@{fa-css-prefix}-stack-2x { font-size: 2em; } -.@{fa-css-prefix}-inverse { color: @fa-inverse; } diff --git a/bower_components/font-awesome/less/variables.less b/bower_components/font-awesome/less/variables.less deleted file mode 100644 index 7ddbbc011..000000000 --- a/bower_components/font-awesome/less/variables.less +++ /dev/null @@ -1,800 +0,0 @@ -// Variables -// -------------------------- - -@fa-font-path: "../fonts"; -@fa-font-size-base: 14px; -@fa-line-height-base: 1; -//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly -@fa-css-prefix: fa; -@fa-version: "4.7.0"; -@fa-border-color: #eee; -@fa-inverse: #fff; -@fa-li-width: (30em / 14); - -@fa-var-500px: "\f26e"; -@fa-var-address-book: "\f2b9"; -@fa-var-address-book-o: "\f2ba"; -@fa-var-address-card: "\f2bb"; -@fa-var-address-card-o: "\f2bc"; -@fa-var-adjust: "\f042"; -@fa-var-adn: "\f170"; -@fa-var-align-center: "\f037"; -@fa-var-align-justify: "\f039"; -@fa-var-align-left: "\f036"; -@fa-var-align-right: "\f038"; -@fa-var-amazon: "\f270"; -@fa-var-ambulance: "\f0f9"; -@fa-var-american-sign-language-interpreting: "\f2a3"; -@fa-var-anchor: "\f13d"; -@fa-var-android: "\f17b"; -@fa-var-angellist: "\f209"; -@fa-var-angle-double-down: "\f103"; -@fa-var-angle-double-left: "\f100"; -@fa-var-angle-double-right: "\f101"; -@fa-var-angle-double-up: "\f102"; -@fa-var-angle-down: "\f107"; -@fa-var-angle-left: "\f104"; -@fa-var-angle-right: "\f105"; -@fa-var-angle-up: "\f106"; -@fa-var-apple: "\f179"; -@fa-var-archive: "\f187"; -@fa-var-area-chart: "\f1fe"; -@fa-var-arrow-circle-down: "\f0ab"; -@fa-var-arrow-circle-left: "\f0a8"; -@fa-var-arrow-circle-o-down: "\f01a"; -@fa-var-arrow-circle-o-left: "\f190"; -@fa-var-arrow-circle-o-right: "\f18e"; -@fa-var-arrow-circle-o-up: "\f01b"; -@fa-var-arrow-circle-right: "\f0a9"; -@fa-var-arrow-circle-up: "\f0aa"; -@fa-var-arrow-down: "\f063"; -@fa-var-arrow-left: "\f060"; -@fa-var-arrow-right: "\f061"; -@fa-var-arrow-up: "\f062"; -@fa-var-arrows: "\f047"; -@fa-var-arrows-alt: "\f0b2"; -@fa-var-arrows-h: "\f07e"; -@fa-var-arrows-v: "\f07d"; -@fa-var-asl-interpreting: "\f2a3"; -@fa-var-assistive-listening-systems: "\f2a2"; -@fa-var-asterisk: "\f069"; -@fa-var-at: "\f1fa"; -@fa-var-audio-description: "\f29e"; -@fa-var-automobile: "\f1b9"; -@fa-var-backward: "\f04a"; -@fa-var-balance-scale: "\f24e"; -@fa-var-ban: "\f05e"; -@fa-var-bandcamp: "\f2d5"; -@fa-var-bank: "\f19c"; -@fa-var-bar-chart: "\f080"; -@fa-var-bar-chart-o: "\f080"; -@fa-var-barcode: "\f02a"; -@fa-var-bars: "\f0c9"; -@fa-var-bath: "\f2cd"; -@fa-var-bathtub: "\f2cd"; -@fa-var-battery: "\f240"; -@fa-var-battery-0: "\f244"; -@fa-var-battery-1: "\f243"; -@fa-var-battery-2: "\f242"; -@fa-var-battery-3: "\f241"; -@fa-var-battery-4: "\f240"; -@fa-var-battery-empty: "\f244"; -@fa-var-battery-full: "\f240"; -@fa-var-battery-half: "\f242"; -@fa-var-battery-quarter: "\f243"; -@fa-var-battery-three-quarters: "\f241"; -@fa-var-bed: "\f236"; -@fa-var-beer: "\f0fc"; -@fa-var-behance: "\f1b4"; -@fa-var-behance-square: "\f1b5"; -@fa-var-bell: "\f0f3"; -@fa-var-bell-o: "\f0a2"; -@fa-var-bell-slash: "\f1f6"; -@fa-var-bell-slash-o: "\f1f7"; -@fa-var-bicycle: "\f206"; -@fa-var-binoculars: "\f1e5"; -@fa-var-birthday-cake: "\f1fd"; -@fa-var-bitbucket: "\f171"; -@fa-var-bitbucket-square: "\f172"; -@fa-var-bitcoin: "\f15a"; -@fa-var-black-tie: "\f27e"; -@fa-var-blind: "\f29d"; -@fa-var-bluetooth: "\f293"; -@fa-var-bluetooth-b: "\f294"; -@fa-var-bold: "\f032"; -@fa-var-bolt: "\f0e7"; -@fa-var-bomb: "\f1e2"; -@fa-var-book: "\f02d"; -@fa-var-bookmark: "\f02e"; -@fa-var-bookmark-o: "\f097"; -@fa-var-braille: "\f2a1"; -@fa-var-briefcase: "\f0b1"; -@fa-var-btc: "\f15a"; -@fa-var-bug: "\f188"; -@fa-var-building: "\f1ad"; -@fa-var-building-o: "\f0f7"; -@fa-var-bullhorn: "\f0a1"; -@fa-var-bullseye: "\f140"; -@fa-var-bus: "\f207"; -@fa-var-buysellads: "\f20d"; -@fa-var-cab: "\f1ba"; -@fa-var-calculator: "\f1ec"; -@fa-var-calendar: "\f073"; -@fa-var-calendar-check-o: "\f274"; -@fa-var-calendar-minus-o: "\f272"; -@fa-var-calendar-o: "\f133"; -@fa-var-calendar-plus-o: "\f271"; -@fa-var-calendar-times-o: "\f273"; -@fa-var-camera: "\f030"; -@fa-var-camera-retro: "\f083"; -@fa-var-car: "\f1b9"; -@fa-var-caret-down: "\f0d7"; -@fa-var-caret-left: "\f0d9"; -@fa-var-caret-right: "\f0da"; -@fa-var-caret-square-o-down: "\f150"; -@fa-var-caret-square-o-left: "\f191"; -@fa-var-caret-square-o-right: "\f152"; -@fa-var-caret-square-o-up: "\f151"; -@fa-var-caret-up: "\f0d8"; -@fa-var-cart-arrow-down: "\f218"; -@fa-var-cart-plus: "\f217"; -@fa-var-cc: "\f20a"; -@fa-var-cc-amex: "\f1f3"; -@fa-var-cc-diners-club: "\f24c"; -@fa-var-cc-discover: "\f1f2"; -@fa-var-cc-jcb: "\f24b"; -@fa-var-cc-mastercard: "\f1f1"; -@fa-var-cc-paypal: "\f1f4"; -@fa-var-cc-stripe: "\f1f5"; -@fa-var-cc-visa: "\f1f0"; -@fa-var-certificate: "\f0a3"; -@fa-var-chain: "\f0c1"; -@fa-var-chain-broken: "\f127"; -@fa-var-check: "\f00c"; -@fa-var-check-circle: "\f058"; -@fa-var-check-circle-o: "\f05d"; -@fa-var-check-square: "\f14a"; -@fa-var-check-square-o: "\f046"; -@fa-var-chevron-circle-down: "\f13a"; -@fa-var-chevron-circle-left: "\f137"; -@fa-var-chevron-circle-right: "\f138"; -@fa-var-chevron-circle-up: "\f139"; -@fa-var-chevron-down: "\f078"; -@fa-var-chevron-left: "\f053"; -@fa-var-chevron-right: "\f054"; -@fa-var-chevron-up: "\f077"; -@fa-var-child: "\f1ae"; -@fa-var-chrome: "\f268"; -@fa-var-circle: "\f111"; -@fa-var-circle-o: "\f10c"; -@fa-var-circle-o-notch: "\f1ce"; -@fa-var-circle-thin: "\f1db"; -@fa-var-clipboard: "\f0ea"; -@fa-var-clock-o: "\f017"; -@fa-var-clone: "\f24d"; -@fa-var-close: "\f00d"; -@fa-var-cloud: "\f0c2"; -@fa-var-cloud-download: "\f0ed"; -@fa-var-cloud-upload: "\f0ee"; -@fa-var-cny: "\f157"; -@fa-var-code: "\f121"; -@fa-var-code-fork: "\f126"; -@fa-var-codepen: "\f1cb"; -@fa-var-codiepie: "\f284"; -@fa-var-coffee: "\f0f4"; -@fa-var-cog: "\f013"; -@fa-var-cogs: "\f085"; -@fa-var-columns: "\f0db"; -@fa-var-comment: "\f075"; -@fa-var-comment-o: "\f0e5"; -@fa-var-commenting: "\f27a"; -@fa-var-commenting-o: "\f27b"; -@fa-var-comments: "\f086"; -@fa-var-comments-o: "\f0e6"; -@fa-var-compass: "\f14e"; -@fa-var-compress: "\f066"; -@fa-var-connectdevelop: "\f20e"; -@fa-var-contao: "\f26d"; -@fa-var-copy: "\f0c5"; -@fa-var-copyright: "\f1f9"; -@fa-var-creative-commons: "\f25e"; -@fa-var-credit-card: "\f09d"; -@fa-var-credit-card-alt: "\f283"; -@fa-var-crop: "\f125"; -@fa-var-crosshairs: "\f05b"; -@fa-var-css3: "\f13c"; -@fa-var-cube: "\f1b2"; -@fa-var-cubes: "\f1b3"; -@fa-var-cut: "\f0c4"; -@fa-var-cutlery: "\f0f5"; -@fa-var-dashboard: "\f0e4"; -@fa-var-dashcube: "\f210"; -@fa-var-database: "\f1c0"; -@fa-var-deaf: "\f2a4"; -@fa-var-deafness: "\f2a4"; -@fa-var-dedent: "\f03b"; -@fa-var-delicious: "\f1a5"; -@fa-var-desktop: "\f108"; -@fa-var-deviantart: "\f1bd"; -@fa-var-diamond: "\f219"; -@fa-var-digg: "\f1a6"; -@fa-var-dollar: "\f155"; -@fa-var-dot-circle-o: "\f192"; -@fa-var-download: "\f019"; -@fa-var-dribbble: "\f17d"; -@fa-var-drivers-license: "\f2c2"; -@fa-var-drivers-license-o: "\f2c3"; -@fa-var-dropbox: "\f16b"; -@fa-var-drupal: "\f1a9"; -@fa-var-edge: "\f282"; -@fa-var-edit: "\f044"; -@fa-var-eercast: "\f2da"; -@fa-var-eject: "\f052"; -@fa-var-ellipsis-h: "\f141"; -@fa-var-ellipsis-v: "\f142"; -@fa-var-empire: "\f1d1"; -@fa-var-envelope: "\f0e0"; -@fa-var-envelope-o: "\f003"; -@fa-var-envelope-open: "\f2b6"; -@fa-var-envelope-open-o: "\f2b7"; -@fa-var-envelope-square: "\f199"; -@fa-var-envira: "\f299"; -@fa-var-eraser: "\f12d"; -@fa-var-etsy: "\f2d7"; -@fa-var-eur: "\f153"; -@fa-var-euro: "\f153"; -@fa-var-exchange: "\f0ec"; -@fa-var-exclamation: "\f12a"; -@fa-var-exclamation-circle: "\f06a"; -@fa-var-exclamation-triangle: "\f071"; -@fa-var-expand: "\f065"; -@fa-var-expeditedssl: "\f23e"; -@fa-var-external-link: "\f08e"; -@fa-var-external-link-square: "\f14c"; -@fa-var-eye: "\f06e"; -@fa-var-eye-slash: "\f070"; -@fa-var-eyedropper: "\f1fb"; -@fa-var-fa: "\f2b4"; -@fa-var-facebook: "\f09a"; -@fa-var-facebook-f: "\f09a"; -@fa-var-facebook-official: "\f230"; -@fa-var-facebook-square: "\f082"; -@fa-var-fast-backward: "\f049"; -@fa-var-fast-forward: "\f050"; -@fa-var-fax: "\f1ac"; -@fa-var-feed: "\f09e"; -@fa-var-female: "\f182"; -@fa-var-fighter-jet: "\f0fb"; -@fa-var-file: "\f15b"; -@fa-var-file-archive-o: "\f1c6"; -@fa-var-file-audio-o: "\f1c7"; -@fa-var-file-code-o: "\f1c9"; -@fa-var-file-excel-o: "\f1c3"; -@fa-var-file-image-o: "\f1c5"; -@fa-var-file-movie-o: "\f1c8"; -@fa-var-file-o: "\f016"; -@fa-var-file-pdf-o: "\f1c1"; -@fa-var-file-photo-o: "\f1c5"; -@fa-var-file-picture-o: "\f1c5"; -@fa-var-file-powerpoint-o: "\f1c4"; -@fa-var-file-sound-o: "\f1c7"; -@fa-var-file-text: "\f15c"; -@fa-var-file-text-o: "\f0f6"; -@fa-var-file-video-o: "\f1c8"; -@fa-var-file-word-o: "\f1c2"; -@fa-var-file-zip-o: "\f1c6"; -@fa-var-files-o: "\f0c5"; -@fa-var-film: "\f008"; -@fa-var-filter: "\f0b0"; -@fa-var-fire: "\f06d"; -@fa-var-fire-extinguisher: "\f134"; -@fa-var-firefox: "\f269"; -@fa-var-first-order: "\f2b0"; -@fa-var-flag: "\f024"; -@fa-var-flag-checkered: "\f11e"; -@fa-var-flag-o: "\f11d"; -@fa-var-flash: "\f0e7"; -@fa-var-flask: "\f0c3"; -@fa-var-flickr: "\f16e"; -@fa-var-floppy-o: "\f0c7"; -@fa-var-folder: "\f07b"; -@fa-var-folder-o: "\f114"; -@fa-var-folder-open: "\f07c"; -@fa-var-folder-open-o: "\f115"; -@fa-var-font: "\f031"; -@fa-var-font-awesome: "\f2b4"; -@fa-var-fonticons: "\f280"; -@fa-var-fort-awesome: "\f286"; -@fa-var-forumbee: "\f211"; -@fa-var-forward: "\f04e"; -@fa-var-foursquare: "\f180"; -@fa-var-free-code-camp: "\f2c5"; -@fa-var-frown-o: "\f119"; -@fa-var-futbol-o: "\f1e3"; -@fa-var-gamepad: "\f11b"; -@fa-var-gavel: "\f0e3"; -@fa-var-gbp: "\f154"; -@fa-var-ge: "\f1d1"; -@fa-var-gear: "\f013"; -@fa-var-gears: "\f085"; -@fa-var-genderless: "\f22d"; -@fa-var-get-pocket: "\f265"; -@fa-var-gg: "\f260"; -@fa-var-gg-circle: "\f261"; -@fa-var-gift: "\f06b"; -@fa-var-git: "\f1d3"; -@fa-var-git-square: "\f1d2"; -@fa-var-github: "\f09b"; -@fa-var-github-alt: "\f113"; -@fa-var-github-square: "\f092"; -@fa-var-gitlab: "\f296"; -@fa-var-gittip: "\f184"; -@fa-var-glass: "\f000"; -@fa-var-glide: "\f2a5"; -@fa-var-glide-g: "\f2a6"; -@fa-var-globe: "\f0ac"; -@fa-var-google: "\f1a0"; -@fa-var-google-plus: "\f0d5"; -@fa-var-google-plus-circle: "\f2b3"; -@fa-var-google-plus-official: "\f2b3"; -@fa-var-google-plus-square: "\f0d4"; -@fa-var-google-wallet: "\f1ee"; -@fa-var-graduation-cap: "\f19d"; -@fa-var-gratipay: "\f184"; -@fa-var-grav: "\f2d6"; -@fa-var-group: "\f0c0"; -@fa-var-h-square: "\f0fd"; -@fa-var-hacker-news: "\f1d4"; -@fa-var-hand-grab-o: "\f255"; -@fa-var-hand-lizard-o: "\f258"; -@fa-var-hand-o-down: "\f0a7"; -@fa-var-hand-o-left: "\f0a5"; -@fa-var-hand-o-right: "\f0a4"; -@fa-var-hand-o-up: "\f0a6"; -@fa-var-hand-paper-o: "\f256"; -@fa-var-hand-peace-o: "\f25b"; -@fa-var-hand-pointer-o: "\f25a"; -@fa-var-hand-rock-o: "\f255"; -@fa-var-hand-scissors-o: "\f257"; -@fa-var-hand-spock-o: "\f259"; -@fa-var-hand-stop-o: "\f256"; -@fa-var-handshake-o: "\f2b5"; -@fa-var-hard-of-hearing: "\f2a4"; -@fa-var-hashtag: "\f292"; -@fa-var-hdd-o: "\f0a0"; -@fa-var-header: "\f1dc"; -@fa-var-headphones: "\f025"; -@fa-var-heart: "\f004"; -@fa-var-heart-o: "\f08a"; -@fa-var-heartbeat: "\f21e"; -@fa-var-history: "\f1da"; -@fa-var-home: "\f015"; -@fa-var-hospital-o: "\f0f8"; -@fa-var-hotel: "\f236"; -@fa-var-hourglass: "\f254"; -@fa-var-hourglass-1: "\f251"; -@fa-var-hourglass-2: "\f252"; -@fa-var-hourglass-3: "\f253"; -@fa-var-hourglass-end: "\f253"; -@fa-var-hourglass-half: "\f252"; -@fa-var-hourglass-o: "\f250"; -@fa-var-hourglass-start: "\f251"; -@fa-var-houzz: "\f27c"; -@fa-var-html5: "\f13b"; -@fa-var-i-cursor: "\f246"; -@fa-var-id-badge: "\f2c1"; -@fa-var-id-card: "\f2c2"; -@fa-var-id-card-o: "\f2c3"; -@fa-var-ils: "\f20b"; -@fa-var-image: "\f03e"; -@fa-var-imdb: "\f2d8"; -@fa-var-inbox: "\f01c"; -@fa-var-indent: "\f03c"; -@fa-var-industry: "\f275"; -@fa-var-info: "\f129"; -@fa-var-info-circle: "\f05a"; -@fa-var-inr: "\f156"; -@fa-var-instagram: "\f16d"; -@fa-var-institution: "\f19c"; -@fa-var-internet-explorer: "\f26b"; -@fa-var-intersex: "\f224"; -@fa-var-ioxhost: "\f208"; -@fa-var-italic: "\f033"; -@fa-var-joomla: "\f1aa"; -@fa-var-jpy: "\f157"; -@fa-var-jsfiddle: "\f1cc"; -@fa-var-key: "\f084"; -@fa-var-keyboard-o: "\f11c"; -@fa-var-krw: "\f159"; -@fa-var-language: "\f1ab"; -@fa-var-laptop: "\f109"; -@fa-var-lastfm: "\f202"; -@fa-var-lastfm-square: "\f203"; -@fa-var-leaf: "\f06c"; -@fa-var-leanpub: "\f212"; -@fa-var-legal: "\f0e3"; -@fa-var-lemon-o: "\f094"; -@fa-var-level-down: "\f149"; -@fa-var-level-up: "\f148"; -@fa-var-life-bouy: "\f1cd"; -@fa-var-life-buoy: "\f1cd"; -@fa-var-life-ring: "\f1cd"; -@fa-var-life-saver: "\f1cd"; -@fa-var-lightbulb-o: "\f0eb"; -@fa-var-line-chart: "\f201"; -@fa-var-link: "\f0c1"; -@fa-var-linkedin: "\f0e1"; -@fa-var-linkedin-square: "\f08c"; -@fa-var-linode: "\f2b8"; -@fa-var-linux: "\f17c"; -@fa-var-list: "\f03a"; -@fa-var-list-alt: "\f022"; -@fa-var-list-ol: "\f0cb"; -@fa-var-list-ul: "\f0ca"; -@fa-var-location-arrow: "\f124"; -@fa-var-lock: "\f023"; -@fa-var-long-arrow-down: "\f175"; -@fa-var-long-arrow-left: "\f177"; -@fa-var-long-arrow-right: "\f178"; -@fa-var-long-arrow-up: "\f176"; -@fa-var-low-vision: "\f2a8"; -@fa-var-magic: "\f0d0"; -@fa-var-magnet: "\f076"; -@fa-var-mail-forward: "\f064"; -@fa-var-mail-reply: "\f112"; -@fa-var-mail-reply-all: "\f122"; -@fa-var-male: "\f183"; -@fa-var-map: "\f279"; -@fa-var-map-marker: "\f041"; -@fa-var-map-o: "\f278"; -@fa-var-map-pin: "\f276"; -@fa-var-map-signs: "\f277"; -@fa-var-mars: "\f222"; -@fa-var-mars-double: "\f227"; -@fa-var-mars-stroke: "\f229"; -@fa-var-mars-stroke-h: "\f22b"; -@fa-var-mars-stroke-v: "\f22a"; -@fa-var-maxcdn: "\f136"; -@fa-var-meanpath: "\f20c"; -@fa-var-medium: "\f23a"; -@fa-var-medkit: "\f0fa"; -@fa-var-meetup: "\f2e0"; -@fa-var-meh-o: "\f11a"; -@fa-var-mercury: "\f223"; -@fa-var-microchip: "\f2db"; -@fa-var-microphone: "\f130"; -@fa-var-microphone-slash: "\f131"; -@fa-var-minus: "\f068"; -@fa-var-minus-circle: "\f056"; -@fa-var-minus-square: "\f146"; -@fa-var-minus-square-o: "\f147"; -@fa-var-mixcloud: "\f289"; -@fa-var-mobile: "\f10b"; -@fa-var-mobile-phone: "\f10b"; -@fa-var-modx: "\f285"; -@fa-var-money: "\f0d6"; -@fa-var-moon-o: "\f186"; -@fa-var-mortar-board: "\f19d"; -@fa-var-motorcycle: "\f21c"; -@fa-var-mouse-pointer: "\f245"; -@fa-var-music: "\f001"; -@fa-var-navicon: "\f0c9"; -@fa-var-neuter: "\f22c"; -@fa-var-newspaper-o: "\f1ea"; -@fa-var-object-group: "\f247"; -@fa-var-object-ungroup: "\f248"; -@fa-var-odnoklassniki: "\f263"; -@fa-var-odnoklassniki-square: "\f264"; -@fa-var-opencart: "\f23d"; -@fa-var-openid: "\f19b"; -@fa-var-opera: "\f26a"; -@fa-var-optin-monster: "\f23c"; -@fa-var-outdent: "\f03b"; -@fa-var-pagelines: "\f18c"; -@fa-var-paint-brush: "\f1fc"; -@fa-var-paper-plane: "\f1d8"; -@fa-var-paper-plane-o: "\f1d9"; -@fa-var-paperclip: "\f0c6"; -@fa-var-paragraph: "\f1dd"; -@fa-var-paste: "\f0ea"; -@fa-var-pause: "\f04c"; -@fa-var-pause-circle: "\f28b"; -@fa-var-pause-circle-o: "\f28c"; -@fa-var-paw: "\f1b0"; -@fa-var-paypal: "\f1ed"; -@fa-var-pencil: "\f040"; -@fa-var-pencil-square: "\f14b"; -@fa-var-pencil-square-o: "\f044"; -@fa-var-percent: "\f295"; -@fa-var-phone: "\f095"; -@fa-var-phone-square: "\f098"; -@fa-var-photo: "\f03e"; -@fa-var-picture-o: "\f03e"; -@fa-var-pie-chart: "\f200"; -@fa-var-pied-piper: "\f2ae"; -@fa-var-pied-piper-alt: "\f1a8"; -@fa-var-pied-piper-pp: "\f1a7"; -@fa-var-pinterest: "\f0d2"; -@fa-var-pinterest-p: "\f231"; -@fa-var-pinterest-square: "\f0d3"; -@fa-var-plane: "\f072"; -@fa-var-play: "\f04b"; -@fa-var-play-circle: "\f144"; -@fa-var-play-circle-o: "\f01d"; -@fa-var-plug: "\f1e6"; -@fa-var-plus: "\f067"; -@fa-var-plus-circle: "\f055"; -@fa-var-plus-square: "\f0fe"; -@fa-var-plus-square-o: "\f196"; -@fa-var-podcast: "\f2ce"; -@fa-var-power-off: "\f011"; -@fa-var-print: "\f02f"; -@fa-var-product-hunt: "\f288"; -@fa-var-puzzle-piece: "\f12e"; -@fa-var-qq: "\f1d6"; -@fa-var-qrcode: "\f029"; -@fa-var-question: "\f128"; -@fa-var-question-circle: "\f059"; -@fa-var-question-circle-o: "\f29c"; -@fa-var-quora: "\f2c4"; -@fa-var-quote-left: "\f10d"; -@fa-var-quote-right: "\f10e"; -@fa-var-ra: "\f1d0"; -@fa-var-random: "\f074"; -@fa-var-ravelry: "\f2d9"; -@fa-var-rebel: "\f1d0"; -@fa-var-recycle: "\f1b8"; -@fa-var-reddit: "\f1a1"; -@fa-var-reddit-alien: "\f281"; -@fa-var-reddit-square: "\f1a2"; -@fa-var-refresh: "\f021"; -@fa-var-registered: "\f25d"; -@fa-var-remove: "\f00d"; -@fa-var-renren: "\f18b"; -@fa-var-reorder: "\f0c9"; -@fa-var-repeat: "\f01e"; -@fa-var-reply: "\f112"; -@fa-var-reply-all: "\f122"; -@fa-var-resistance: "\f1d0"; -@fa-var-retweet: "\f079"; -@fa-var-rmb: "\f157"; -@fa-var-road: "\f018"; -@fa-var-rocket: "\f135"; -@fa-var-rotate-left: "\f0e2"; -@fa-var-rotate-right: "\f01e"; -@fa-var-rouble: "\f158"; -@fa-var-rss: "\f09e"; -@fa-var-rss-square: "\f143"; -@fa-var-rub: "\f158"; -@fa-var-ruble: "\f158"; -@fa-var-rupee: "\f156"; -@fa-var-s15: "\f2cd"; -@fa-var-safari: "\f267"; -@fa-var-save: "\f0c7"; -@fa-var-scissors: "\f0c4"; -@fa-var-scribd: "\f28a"; -@fa-var-search: "\f002"; -@fa-var-search-minus: "\f010"; -@fa-var-search-plus: "\f00e"; -@fa-var-sellsy: "\f213"; -@fa-var-send: "\f1d8"; -@fa-var-send-o: "\f1d9"; -@fa-var-server: "\f233"; -@fa-var-share: "\f064"; -@fa-var-share-alt: "\f1e0"; -@fa-var-share-alt-square: "\f1e1"; -@fa-var-share-square: "\f14d"; -@fa-var-share-square-o: "\f045"; -@fa-var-shekel: "\f20b"; -@fa-var-sheqel: "\f20b"; -@fa-var-shield: "\f132"; -@fa-var-ship: "\f21a"; -@fa-var-shirtsinbulk: "\f214"; -@fa-var-shopping-bag: "\f290"; -@fa-var-shopping-basket: "\f291"; -@fa-var-shopping-cart: "\f07a"; -@fa-var-shower: "\f2cc"; -@fa-var-sign-in: "\f090"; -@fa-var-sign-language: "\f2a7"; -@fa-var-sign-out: "\f08b"; -@fa-var-signal: "\f012"; -@fa-var-signing: "\f2a7"; -@fa-var-simplybuilt: "\f215"; -@fa-var-sitemap: "\f0e8"; -@fa-var-skyatlas: "\f216"; -@fa-var-skype: "\f17e"; -@fa-var-slack: "\f198"; -@fa-var-sliders: "\f1de"; -@fa-var-slideshare: "\f1e7"; -@fa-var-smile-o: "\f118"; -@fa-var-snapchat: "\f2ab"; -@fa-var-snapchat-ghost: "\f2ac"; -@fa-var-snapchat-square: "\f2ad"; -@fa-var-snowflake-o: "\f2dc"; -@fa-var-soccer-ball-o: "\f1e3"; -@fa-var-sort: "\f0dc"; -@fa-var-sort-alpha-asc: "\f15d"; -@fa-var-sort-alpha-desc: "\f15e"; -@fa-var-sort-amount-asc: "\f160"; -@fa-var-sort-amount-desc: "\f161"; -@fa-var-sort-asc: "\f0de"; -@fa-var-sort-desc: "\f0dd"; -@fa-var-sort-down: "\f0dd"; -@fa-var-sort-numeric-asc: "\f162"; -@fa-var-sort-numeric-desc: "\f163"; -@fa-var-sort-up: "\f0de"; -@fa-var-soundcloud: "\f1be"; -@fa-var-space-shuttle: "\f197"; -@fa-var-spinner: "\f110"; -@fa-var-spoon: "\f1b1"; -@fa-var-spotify: "\f1bc"; -@fa-var-square: "\f0c8"; -@fa-var-square-o: "\f096"; -@fa-var-stack-exchange: "\f18d"; -@fa-var-stack-overflow: "\f16c"; -@fa-var-star: "\f005"; -@fa-var-star-half: "\f089"; -@fa-var-star-half-empty: "\f123"; -@fa-var-star-half-full: "\f123"; -@fa-var-star-half-o: "\f123"; -@fa-var-star-o: "\f006"; -@fa-var-steam: "\f1b6"; -@fa-var-steam-square: "\f1b7"; -@fa-var-step-backward: "\f048"; -@fa-var-step-forward: "\f051"; -@fa-var-stethoscope: "\f0f1"; -@fa-var-sticky-note: "\f249"; -@fa-var-sticky-note-o: "\f24a"; -@fa-var-stop: "\f04d"; -@fa-var-stop-circle: "\f28d"; -@fa-var-stop-circle-o: "\f28e"; -@fa-var-street-view: "\f21d"; -@fa-var-strikethrough: "\f0cc"; -@fa-var-stumbleupon: "\f1a4"; -@fa-var-stumbleupon-circle: "\f1a3"; -@fa-var-subscript: "\f12c"; -@fa-var-subway: "\f239"; -@fa-var-suitcase: "\f0f2"; -@fa-var-sun-o: "\f185"; -@fa-var-superpowers: "\f2dd"; -@fa-var-superscript: "\f12b"; -@fa-var-support: "\f1cd"; -@fa-var-table: "\f0ce"; -@fa-var-tablet: "\f10a"; -@fa-var-tachometer: "\f0e4"; -@fa-var-tag: "\f02b"; -@fa-var-tags: "\f02c"; -@fa-var-tasks: "\f0ae"; -@fa-var-taxi: "\f1ba"; -@fa-var-telegram: "\f2c6"; -@fa-var-television: "\f26c"; -@fa-var-tencent-weibo: "\f1d5"; -@fa-var-terminal: "\f120"; -@fa-var-text-height: "\f034"; -@fa-var-text-width: "\f035"; -@fa-var-th: "\f00a"; -@fa-var-th-large: "\f009"; -@fa-var-th-list: "\f00b"; -@fa-var-themeisle: "\f2b2"; -@fa-var-thermometer: "\f2c7"; -@fa-var-thermometer-0: "\f2cb"; -@fa-var-thermometer-1: "\f2ca"; -@fa-var-thermometer-2: "\f2c9"; -@fa-var-thermometer-3: "\f2c8"; -@fa-var-thermometer-4: "\f2c7"; -@fa-var-thermometer-empty: "\f2cb"; -@fa-var-thermometer-full: "\f2c7"; -@fa-var-thermometer-half: "\f2c9"; -@fa-var-thermometer-quarter: "\f2ca"; -@fa-var-thermometer-three-quarters: "\f2c8"; -@fa-var-thumb-tack: "\f08d"; -@fa-var-thumbs-down: "\f165"; -@fa-var-thumbs-o-down: "\f088"; -@fa-var-thumbs-o-up: "\f087"; -@fa-var-thumbs-up: "\f164"; -@fa-var-ticket: "\f145"; -@fa-var-times: "\f00d"; -@fa-var-times-circle: "\f057"; -@fa-var-times-circle-o: "\f05c"; -@fa-var-times-rectangle: "\f2d3"; -@fa-var-times-rectangle-o: "\f2d4"; -@fa-var-tint: "\f043"; -@fa-var-toggle-down: "\f150"; -@fa-var-toggle-left: "\f191"; -@fa-var-toggle-off: "\f204"; -@fa-var-toggle-on: "\f205"; -@fa-var-toggle-right: "\f152"; -@fa-var-toggle-up: "\f151"; -@fa-var-trademark: "\f25c"; -@fa-var-train: "\f238"; -@fa-var-transgender: "\f224"; -@fa-var-transgender-alt: "\f225"; -@fa-var-trash: "\f1f8"; -@fa-var-trash-o: "\f014"; -@fa-var-tree: "\f1bb"; -@fa-var-trello: "\f181"; -@fa-var-tripadvisor: "\f262"; -@fa-var-trophy: "\f091"; -@fa-var-truck: "\f0d1"; -@fa-var-try: "\f195"; -@fa-var-tty: "\f1e4"; -@fa-var-tumblr: "\f173"; -@fa-var-tumblr-square: "\f174"; -@fa-var-turkish-lira: "\f195"; -@fa-var-tv: "\f26c"; -@fa-var-twitch: "\f1e8"; -@fa-var-twitter: "\f099"; -@fa-var-twitter-square: "\f081"; -@fa-var-umbrella: "\f0e9"; -@fa-var-underline: "\f0cd"; -@fa-var-undo: "\f0e2"; -@fa-var-universal-access: "\f29a"; -@fa-var-university: "\f19c"; -@fa-var-unlink: "\f127"; -@fa-var-unlock: "\f09c"; -@fa-var-unlock-alt: "\f13e"; -@fa-var-unsorted: "\f0dc"; -@fa-var-upload: "\f093"; -@fa-var-usb: "\f287"; -@fa-var-usd: "\f155"; -@fa-var-user: "\f007"; -@fa-var-user-circle: "\f2bd"; -@fa-var-user-circle-o: "\f2be"; -@fa-var-user-md: "\f0f0"; -@fa-var-user-o: "\f2c0"; -@fa-var-user-plus: "\f234"; -@fa-var-user-secret: "\f21b"; -@fa-var-user-times: "\f235"; -@fa-var-users: "\f0c0"; -@fa-var-vcard: "\f2bb"; -@fa-var-vcard-o: "\f2bc"; -@fa-var-venus: "\f221"; -@fa-var-venus-double: "\f226"; -@fa-var-venus-mars: "\f228"; -@fa-var-viacoin: "\f237"; -@fa-var-viadeo: "\f2a9"; -@fa-var-viadeo-square: "\f2aa"; -@fa-var-video-camera: "\f03d"; -@fa-var-vimeo: "\f27d"; -@fa-var-vimeo-square: "\f194"; -@fa-var-vine: "\f1ca"; -@fa-var-vk: "\f189"; -@fa-var-volume-control-phone: "\f2a0"; -@fa-var-volume-down: "\f027"; -@fa-var-volume-off: "\f026"; -@fa-var-volume-up: "\f028"; -@fa-var-warning: "\f071"; -@fa-var-wechat: "\f1d7"; -@fa-var-weibo: "\f18a"; -@fa-var-weixin: "\f1d7"; -@fa-var-whatsapp: "\f232"; -@fa-var-wheelchair: "\f193"; -@fa-var-wheelchair-alt: "\f29b"; -@fa-var-wifi: "\f1eb"; -@fa-var-wikipedia-w: "\f266"; -@fa-var-window-close: "\f2d3"; -@fa-var-window-close-o: "\f2d4"; -@fa-var-window-maximize: "\f2d0"; -@fa-var-window-minimize: "\f2d1"; -@fa-var-window-restore: "\f2d2"; -@fa-var-windows: "\f17a"; -@fa-var-won: "\f159"; -@fa-var-wordpress: "\f19a"; -@fa-var-wpbeginner: "\f297"; -@fa-var-wpexplorer: "\f2de"; -@fa-var-wpforms: "\f298"; -@fa-var-wrench: "\f0ad"; -@fa-var-xing: "\f168"; -@fa-var-xing-square: "\f169"; -@fa-var-y-combinator: "\f23b"; -@fa-var-y-combinator-square: "\f1d4"; -@fa-var-yahoo: "\f19e"; -@fa-var-yc: "\f23b"; -@fa-var-yc-square: "\f1d4"; -@fa-var-yelp: "\f1e9"; -@fa-var-yen: "\f157"; -@fa-var-yoast: "\f2b1"; -@fa-var-youtube: "\f167"; -@fa-var-youtube-play: "\f16a"; -@fa-var-youtube-square: "\f166"; - diff --git a/bower_components/font-awesome/scss/_animated.scss b/bower_components/font-awesome/scss/_animated.scss deleted file mode 100644 index 8a020dbff..000000000 --- a/bower_components/font-awesome/scss/_animated.scss +++ /dev/null @@ -1,34 +0,0 @@ -// Spinning Icons -// -------------------------- - -.#{$fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.#{$fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} diff --git a/bower_components/font-awesome/scss/_bordered-pulled.scss b/bower_components/font-awesome/scss/_bordered-pulled.scss deleted file mode 100644 index d4b85a02f..000000000 --- a/bower_components/font-awesome/scss/_bordered-pulled.scss +++ /dev/null @@ -1,25 +0,0 @@ -// Bordered & Pulled -// ------------------------- - -.#{$fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em $fa-border-color; - border-radius: .1em; -} - -.#{$fa-css-prefix}-pull-left { float: left; } -.#{$fa-css-prefix}-pull-right { float: right; } - -.#{$fa-css-prefix} { - &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } - &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } -} - -/* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } - -.#{$fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } -} diff --git a/bower_components/font-awesome/scss/_core.scss b/bower_components/font-awesome/scss/_core.scss deleted file mode 100644 index 7425ef85f..000000000 --- a/bower_components/font-awesome/scss/_core.scss +++ /dev/null @@ -1,12 +0,0 @@ -// Base Class Definition -// ------------------------- - -.#{$fa-css-prefix} { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} diff --git a/bower_components/font-awesome/scss/_fixed-width.scss b/bower_components/font-awesome/scss/_fixed-width.scss deleted file mode 100644 index b221c9813..000000000 --- a/bower_components/font-awesome/scss/_fixed-width.scss +++ /dev/null @@ -1,6 +0,0 @@ -// Fixed Width Icons -// ------------------------- -.#{$fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; -} diff --git a/bower_components/font-awesome/scss/_icons.scss b/bower_components/font-awesome/scss/_icons.scss deleted file mode 100644 index e63e702c4..000000000 --- a/bower_components/font-awesome/scss/_icons.scss +++ /dev/null @@ -1,789 +0,0 @@ -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } -.#{$fa-css-prefix}-music:before { content: $fa-var-music; } -.#{$fa-css-prefix}-search:before { content: $fa-var-search; } -.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } -.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } -.#{$fa-css-prefix}-star:before { content: $fa-var-star; } -.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } -.#{$fa-css-prefix}-user:before { content: $fa-var-user; } -.#{$fa-css-prefix}-film:before { content: $fa-var-film; } -.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } -.#{$fa-css-prefix}-th:before { content: $fa-var-th; } -.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } -.#{$fa-css-prefix}-check:before { content: $fa-var-check; } -.#{$fa-css-prefix}-remove:before, -.#{$fa-css-prefix}-close:before, -.#{$fa-css-prefix}-times:before { content: $fa-var-times; } -.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } -.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } -.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } -.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } -.#{$fa-css-prefix}-gear:before, -.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } -.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } -.#{$fa-css-prefix}-home:before { content: $fa-var-home; } -.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } -.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } -.#{$fa-css-prefix}-road:before { content: $fa-var-road; } -.#{$fa-css-prefix}-download:before { content: $fa-var-download; } -.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } -.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } -.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } -.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } -.#{$fa-css-prefix}-rotate-right:before, -.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } -.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } -.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } -.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } -.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } -.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } -.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } -.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } -.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } -.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } -.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } -.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } -.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } -.#{$fa-css-prefix}-book:before { content: $fa-var-book; } -.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } -.#{$fa-css-prefix}-print:before { content: $fa-var-print; } -.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } -.#{$fa-css-prefix}-font:before { content: $fa-var-font; } -.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } -.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } -.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } -.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } -.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } -.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } -.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } -.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } -.#{$fa-css-prefix}-list:before { content: $fa-var-list; } -.#{$fa-css-prefix}-dedent:before, -.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } -.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } -.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } -.#{$fa-css-prefix}-photo:before, -.#{$fa-css-prefix}-image:before, -.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } -.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } -.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } -.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } -.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } -.#{$fa-css-prefix}-edit:before, -.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } -.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } -.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } -.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } -.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } -.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } -.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } -.#{$fa-css-prefix}-play:before { content: $fa-var-play; } -.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } -.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } -.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } -.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } -.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } -.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } -.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } -.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } -.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } -.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } -.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } -.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } -.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } -.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } -.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } -.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } -.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } -.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } -.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } -.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } -.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } -.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } -.#{$fa-css-prefix}-mail-forward:before, -.#{$fa-css-prefix}-share:before { content: $fa-var-share; } -.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } -.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } -.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } -.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } -.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } -.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } -.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } -.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } -.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } -.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } -.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } -.#{$fa-css-prefix}-warning:before, -.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } -.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } -.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } -.#{$fa-css-prefix}-random:before { content: $fa-var-random; } -.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } -.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } -.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } -.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } -.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } -.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } -.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } -.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } -.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } -.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } -.#{$fa-css-prefix}-bar-chart-o:before, -.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } -.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } -.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } -.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } -.#{$fa-css-prefix}-key:before { content: $fa-var-key; } -.#{$fa-css-prefix}-gears:before, -.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } -.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } -.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } -.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } -.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } -.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } -.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } -.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } -.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } -.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } -.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } -.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } -.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } -.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } -.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } -.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } -.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } -.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } -.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } -.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } -.#{$fa-css-prefix}-facebook-f:before, -.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } -.#{$fa-css-prefix}-github:before { content: $fa-var-github; } -.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } -.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } -.#{$fa-css-prefix}-feed:before, -.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } -.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } -.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } -.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } -.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } -.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } -.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } -.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } -.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } -.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } -.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } -.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } -.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } -.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } -.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } -.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } -.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } -.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } -.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } -.#{$fa-css-prefix}-group:before, -.#{$fa-css-prefix}-users:before { content: $fa-var-users; } -.#{$fa-css-prefix}-chain:before, -.#{$fa-css-prefix}-link:before { content: $fa-var-link; } -.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } -.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } -.#{$fa-css-prefix}-cut:before, -.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } -.#{$fa-css-prefix}-copy:before, -.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } -.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } -.#{$fa-css-prefix}-save:before, -.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } -.#{$fa-css-prefix}-square:before { content: $fa-var-square; } -.#{$fa-css-prefix}-navicon:before, -.#{$fa-css-prefix}-reorder:before, -.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } -.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } -.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } -.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } -.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } -.#{$fa-css-prefix}-table:before { content: $fa-var-table; } -.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } -.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } -.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } -.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } -.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } -.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } -.#{$fa-css-prefix}-money:before { content: $fa-var-money; } -.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } -.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } -.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } -.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } -.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } -.#{$fa-css-prefix}-unsorted:before, -.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } -.#{$fa-css-prefix}-sort-down:before, -.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } -.#{$fa-css-prefix}-sort-up:before, -.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } -.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } -.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } -.#{$fa-css-prefix}-rotate-left:before, -.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } -.#{$fa-css-prefix}-legal:before, -.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } -.#{$fa-css-prefix}-dashboard:before, -.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } -.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } -.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } -.#{$fa-css-prefix}-flash:before, -.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } -.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } -.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } -.#{$fa-css-prefix}-paste:before, -.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } -.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } -.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } -.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } -.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } -.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } -.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } -.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } -.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } -.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } -.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } -.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } -.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } -.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } -.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } -.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } -.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } -.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } -.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } -.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } -.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } -.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } -.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } -.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } -.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } -.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } -.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } -.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } -.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } -.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } -.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } -.#{$fa-css-prefix}-mobile-phone:before, -.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } -.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } -.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } -.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } -.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } -.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } -.#{$fa-css-prefix}-mail-reply:before, -.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } -.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } -.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } -.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } -.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } -.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } -.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } -.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } -.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } -.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } -.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } -.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } -.#{$fa-css-prefix}-code:before { content: $fa-var-code; } -.#{$fa-css-prefix}-mail-reply-all:before, -.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } -.#{$fa-css-prefix}-star-half-empty:before, -.#{$fa-css-prefix}-star-half-full:before, -.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } -.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } -.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } -.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } -.#{$fa-css-prefix}-unlink:before, -.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } -.#{$fa-css-prefix}-question:before { content: $fa-var-question; } -.#{$fa-css-prefix}-info:before { content: $fa-var-info; } -.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } -.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } -.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } -.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } -.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } -.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } -.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } -.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } -.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } -.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } -.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } -.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } -.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } -.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } -.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } -.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } -.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } -.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } -.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } -.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } -.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } -.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } -.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } -.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } -.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } -.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } -.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } -.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } -.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } -.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } -.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } -.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } -.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } -.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } -.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } -.#{$fa-css-prefix}-toggle-down:before, -.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } -.#{$fa-css-prefix}-toggle-up:before, -.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } -.#{$fa-css-prefix}-toggle-right:before, -.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } -.#{$fa-css-prefix}-euro:before, -.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } -.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } -.#{$fa-css-prefix}-dollar:before, -.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } -.#{$fa-css-prefix}-rupee:before, -.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } -.#{$fa-css-prefix}-cny:before, -.#{$fa-css-prefix}-rmb:before, -.#{$fa-css-prefix}-yen:before, -.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } -.#{$fa-css-prefix}-ruble:before, -.#{$fa-css-prefix}-rouble:before, -.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } -.#{$fa-css-prefix}-won:before, -.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } -.#{$fa-css-prefix}-bitcoin:before, -.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } -.#{$fa-css-prefix}-file:before { content: $fa-var-file; } -.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } -.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } -.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } -.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } -.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } -.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } -.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } -.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } -.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } -.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } -.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } -.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } -.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } -.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } -.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } -.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } -.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } -.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } -.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } -.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } -.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } -.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } -.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } -.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } -.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } -.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } -.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } -.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } -.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } -.#{$fa-css-prefix}-android:before { content: $fa-var-android; } -.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } -.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } -.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } -.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } -.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } -.#{$fa-css-prefix}-female:before { content: $fa-var-female; } -.#{$fa-css-prefix}-male:before { content: $fa-var-male; } -.#{$fa-css-prefix}-gittip:before, -.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } -.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } -.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } -.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } -.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } -.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } -.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } -.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } -.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } -.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } -.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } -.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } -.#{$fa-css-prefix}-toggle-left:before, -.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } -.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } -.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } -.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } -.#{$fa-css-prefix}-turkish-lira:before, -.#{$fa-css-prefix}-try:before { content: $fa-var-try; } -.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } -.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } -.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } -.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } -.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } -.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } -.#{$fa-css-prefix}-institution:before, -.#{$fa-css-prefix}-bank:before, -.#{$fa-css-prefix}-university:before { content: $fa-var-university; } -.#{$fa-css-prefix}-mortar-board:before, -.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } -.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } -.#{$fa-css-prefix}-google:before { content: $fa-var-google; } -.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } -.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } -.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } -.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } -.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } -.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } -.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } -.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } -.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } -.#{$fa-css-prefix}-language:before { content: $fa-var-language; } -.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } -.#{$fa-css-prefix}-building:before { content: $fa-var-building; } -.#{$fa-css-prefix}-child:before { content: $fa-var-child; } -.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } -.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } -.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } -.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } -.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } -.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } -.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } -.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } -.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } -.#{$fa-css-prefix}-automobile:before, -.#{$fa-css-prefix}-car:before { content: $fa-var-car; } -.#{$fa-css-prefix}-cab:before, -.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } -.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } -.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } -.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } -.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } -.#{$fa-css-prefix}-database:before { content: $fa-var-database; } -.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } -.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } -.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } -.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } -.#{$fa-css-prefix}-file-photo-o:before, -.#{$fa-css-prefix}-file-picture-o:before, -.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } -.#{$fa-css-prefix}-file-zip-o:before, -.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } -.#{$fa-css-prefix}-file-sound-o:before, -.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } -.#{$fa-css-prefix}-file-movie-o:before, -.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } -.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } -.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } -.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } -.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } -.#{$fa-css-prefix}-life-bouy:before, -.#{$fa-css-prefix}-life-buoy:before, -.#{$fa-css-prefix}-life-saver:before, -.#{$fa-css-prefix}-support:before, -.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } -.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } -.#{$fa-css-prefix}-ra:before, -.#{$fa-css-prefix}-resistance:before, -.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } -.#{$fa-css-prefix}-ge:before, -.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } -.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } -.#{$fa-css-prefix}-git:before { content: $fa-var-git; } -.#{$fa-css-prefix}-y-combinator-square:before, -.#{$fa-css-prefix}-yc-square:before, -.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } -.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } -.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } -.#{$fa-css-prefix}-wechat:before, -.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } -.#{$fa-css-prefix}-send:before, -.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } -.#{$fa-css-prefix}-send-o:before, -.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } -.#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } -.#{$fa-css-prefix}-header:before { content: $fa-var-header; } -.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } -.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } -.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } -.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } -.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } -.#{$fa-css-prefix}-soccer-ball-o:before, -.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } -.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } -.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } -.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } -.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } -.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } -.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } -.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } -.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } -.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } -.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } -.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } -.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } -.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } -.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } -.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } -.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } -.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } -.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } -.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } -.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } -.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } -.#{$fa-css-prefix}-at:before { content: $fa-var-at; } -.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } -.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } -.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } -.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } -.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } -.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } -.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } -.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } -.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } -.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } -.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } -.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } -.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } -.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } -.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } -.#{$fa-css-prefix}-shekel:before, -.#{$fa-css-prefix}-sheqel:before, -.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } -.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } -.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } -.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } -.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } -.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } -.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } -.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } -.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } -.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } -.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } -.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } -.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } -.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } -.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } -.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } -.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } -.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } -.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } -.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } -.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } -.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } -.#{$fa-css-prefix}-intersex:before, -.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } -.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } -.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } -.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } -.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } -.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } -.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } -.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } -.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } -.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } -.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } -.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } -.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } -.#{$fa-css-prefix}-server:before { content: $fa-var-server; } -.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } -.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } -.#{$fa-css-prefix}-hotel:before, -.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } -.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } -.#{$fa-css-prefix}-train:before { content: $fa-var-train; } -.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } -.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } -.#{$fa-css-prefix}-yc:before, -.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } -.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } -.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } -.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } -.#{$fa-css-prefix}-battery-4:before, -.#{$fa-css-prefix}-battery:before, -.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } -.#{$fa-css-prefix}-battery-3:before, -.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } -.#{$fa-css-prefix}-battery-2:before, -.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } -.#{$fa-css-prefix}-battery-1:before, -.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } -.#{$fa-css-prefix}-battery-0:before, -.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } -.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } -.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } -.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } -.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } -.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } -.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } -.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } -.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } -.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } -.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } -.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } -.#{$fa-css-prefix}-hourglass-1:before, -.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } -.#{$fa-css-prefix}-hourglass-2:before, -.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } -.#{$fa-css-prefix}-hourglass-3:before, -.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } -.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } -.#{$fa-css-prefix}-hand-grab-o:before, -.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } -.#{$fa-css-prefix}-hand-stop-o:before, -.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } -.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } -.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } -.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } -.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } -.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } -.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } -.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } -.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } -.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } -.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } -.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } -.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } -.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } -.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } -.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } -.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } -.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } -.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } -.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } -.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } -.#{$fa-css-prefix}-tv:before, -.#{$fa-css-prefix}-television:before { content: $fa-var-television; } -.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } -.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } -.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } -.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } -.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } -.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } -.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } -.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } -.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } -.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } -.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } -.#{$fa-css-prefix}-map:before { content: $fa-var-map; } -.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } -.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } -.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } -.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } -.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } -.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } -.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } -.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } -.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } -.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } -.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } -.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } -.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } -.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } -.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } -.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } -.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } -.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } -.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } -.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } -.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } -.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } -.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } -.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } -.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } -.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } -.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } -.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } -.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } -.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } -.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } -.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } -.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } -.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } -.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } -.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } -.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } -.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } -.#{$fa-css-prefix}-asl-interpreting:before, -.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } -.#{$fa-css-prefix}-deafness:before, -.#{$fa-css-prefix}-hard-of-hearing:before, -.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } -.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } -.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } -.#{$fa-css-prefix}-signing:before, -.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } -.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } -.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } -.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } -.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } -.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } -.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } -.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } -.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } -.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } -.#{$fa-css-prefix}-google-plus-circle:before, -.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } -.#{$fa-css-prefix}-fa:before, -.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } -.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } -.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } -.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } -.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } -.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } -.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } -.#{$fa-css-prefix}-vcard:before, -.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } -.#{$fa-css-prefix}-vcard-o:before, -.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } -.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } -.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } -.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } -.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } -.#{$fa-css-prefix}-drivers-license:before, -.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } -.#{$fa-css-prefix}-drivers-license-o:before, -.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } -.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } -.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } -.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } -.#{$fa-css-prefix}-thermometer-4:before, -.#{$fa-css-prefix}-thermometer:before, -.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } -.#{$fa-css-prefix}-thermometer-3:before, -.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } -.#{$fa-css-prefix}-thermometer-2:before, -.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } -.#{$fa-css-prefix}-thermometer-1:before, -.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } -.#{$fa-css-prefix}-thermometer-0:before, -.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } -.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } -.#{$fa-css-prefix}-bathtub:before, -.#{$fa-css-prefix}-s15:before, -.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } -.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } -.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } -.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } -.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } -.#{$fa-css-prefix}-times-rectangle:before, -.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } -.#{$fa-css-prefix}-times-rectangle-o:before, -.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } -.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } -.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } -.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } -.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } -.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } -.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } -.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } -.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } -.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } -.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } -.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/bower_components/font-awesome/scss/_larger.scss b/bower_components/font-awesome/scss/_larger.scss deleted file mode 100644 index 41e9a8184..000000000 --- a/bower_components/font-awesome/scss/_larger.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Icon Sizes -// ------------------------- - -/* makes the font 33% larger relative to the icon container */ -.#{$fa-css-prefix}-lg { - font-size: (4em / 3); - line-height: (3em / 4); - vertical-align: -15%; -} -.#{$fa-css-prefix}-2x { font-size: 2em; } -.#{$fa-css-prefix}-3x { font-size: 3em; } -.#{$fa-css-prefix}-4x { font-size: 4em; } -.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/bower_components/font-awesome/scss/_list.scss b/bower_components/font-awesome/scss/_list.scss deleted file mode 100644 index 7d1e4d54d..000000000 --- a/bower_components/font-awesome/scss/_list.scss +++ /dev/null @@ -1,19 +0,0 @@ -// List Icons -// ------------------------- - -.#{$fa-css-prefix}-ul { - padding-left: 0; - margin-left: $fa-li-width; - list-style-type: none; - > li { position: relative; } -} -.#{$fa-css-prefix}-li { - position: absolute; - left: -$fa-li-width; - width: $fa-li-width; - top: (2em / 14); - text-align: center; - &.#{$fa-css-prefix}-lg { - left: -$fa-li-width + (4em / 14); - } -} diff --git a/bower_components/font-awesome/scss/_mixins.scss b/bower_components/font-awesome/scss/_mixins.scss deleted file mode 100644 index c3bbd5745..000000000 --- a/bower_components/font-awesome/scss/_mixins.scss +++ /dev/null @@ -1,60 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - -} - -@mixin fa-icon-rotate($degrees, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - transform: scale($horiz, $vert); -} - - -// Only display content to screen readers. A la Bootstrap 4. -// -// See: http://a11yproject.com/posts/how-to-hide-content/ - -@mixin sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; -} - -// Use in conjunction with .sr-only to only display content when it's focused. -// -// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 -// -// Credit: HTML5 Boilerplate - -@mixin sr-only-focusable { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } -} diff --git a/bower_components/font-awesome/scss/_path.scss b/bower_components/font-awesome/scss/_path.scss deleted file mode 100644 index bb457c23a..000000000 --- a/bower_components/font-awesome/scss/_path.scss +++ /dev/null @@ -1,15 +0,0 @@ -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); - src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), - url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), - url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), - url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), - url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); -// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; -} diff --git a/bower_components/font-awesome/scss/_rotated-flipped.scss b/bower_components/font-awesome/scss/_rotated-flipped.scss deleted file mode 100644 index a3558fd09..000000000 --- a/bower_components/font-awesome/scss/_rotated-flipped.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Rotated & Flipped Icons -// ------------------------- - -.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } -.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } -.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } - -.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } -.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } - -// Hook for IE8-9 -// ------------------------- - -:root .#{$fa-css-prefix}-rotate-90, -:root .#{$fa-css-prefix}-rotate-180, -:root .#{$fa-css-prefix}-rotate-270, -:root .#{$fa-css-prefix}-flip-horizontal, -:root .#{$fa-css-prefix}-flip-vertical { - filter: none; -} diff --git a/bower_components/font-awesome/scss/_screen-reader.scss b/bower_components/font-awesome/scss/_screen-reader.scss deleted file mode 100644 index 637426f0d..000000000 --- a/bower_components/font-awesome/scss/_screen-reader.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Screen Readers -// ------------------------- - -.sr-only { @include sr-only(); } -.sr-only-focusable { @include sr-only-focusable(); } diff --git a/bower_components/font-awesome/scss/_stacked.scss b/bower_components/font-awesome/scss/_stacked.scss deleted file mode 100644 index aef740366..000000000 --- a/bower_components/font-awesome/scss/_stacked.scss +++ /dev/null @@ -1,20 +0,0 @@ -// Stacked Icons -// ------------------------- - -.#{$fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.#{$fa-css-prefix}-stack-1x { line-height: inherit; } -.#{$fa-css-prefix}-stack-2x { font-size: 2em; } -.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/bower_components/font-awesome/scss/_variables.scss b/bower_components/font-awesome/scss/_variables.scss deleted file mode 100644 index 498fc4a08..000000000 --- a/bower_components/font-awesome/scss/_variables.scss +++ /dev/null @@ -1,800 +0,0 @@ -// Variables -// -------------------------- - -$fa-font-path: "../fonts" !default; -$fa-font-size-base: 14px !default; -$fa-line-height-base: 1 !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly -$fa-css-prefix: fa !default; -$fa-version: "4.7.0" !default; -$fa-border-color: #eee !default; -$fa-inverse: #fff !default; -$fa-li-width: (30em / 14) !default; - -$fa-var-500px: "\f26e"; -$fa-var-address-book: "\f2b9"; -$fa-var-address-book-o: "\f2ba"; -$fa-var-address-card: "\f2bb"; -$fa-var-address-card-o: "\f2bc"; -$fa-var-adjust: "\f042"; -$fa-var-adn: "\f170"; -$fa-var-align-center: "\f037"; -$fa-var-align-justify: "\f039"; -$fa-var-align-left: "\f036"; -$fa-var-align-right: "\f038"; -$fa-var-amazon: "\f270"; -$fa-var-ambulance: "\f0f9"; -$fa-var-american-sign-language-interpreting: "\f2a3"; -$fa-var-anchor: "\f13d"; -$fa-var-android: "\f17b"; -$fa-var-angellist: "\f209"; -$fa-var-angle-double-down: "\f103"; -$fa-var-angle-double-left: "\f100"; -$fa-var-angle-double-right: "\f101"; -$fa-var-angle-double-up: "\f102"; -$fa-var-angle-down: "\f107"; -$fa-var-angle-left: "\f104"; -$fa-var-angle-right: "\f105"; -$fa-var-angle-up: "\f106"; -$fa-var-apple: "\f179"; -$fa-var-archive: "\f187"; -$fa-var-area-chart: "\f1fe"; -$fa-var-arrow-circle-down: "\f0ab"; -$fa-var-arrow-circle-left: "\f0a8"; -$fa-var-arrow-circle-o-down: "\f01a"; -$fa-var-arrow-circle-o-left: "\f190"; -$fa-var-arrow-circle-o-right: "\f18e"; -$fa-var-arrow-circle-o-up: "\f01b"; -$fa-var-arrow-circle-right: "\f0a9"; -$fa-var-arrow-circle-up: "\f0aa"; -$fa-var-arrow-down: "\f063"; -$fa-var-arrow-left: "\f060"; -$fa-var-arrow-right: "\f061"; -$fa-var-arrow-up: "\f062"; -$fa-var-arrows: "\f047"; -$fa-var-arrows-alt: "\f0b2"; -$fa-var-arrows-h: "\f07e"; -$fa-var-arrows-v: "\f07d"; -$fa-var-asl-interpreting: "\f2a3"; -$fa-var-assistive-listening-systems: "\f2a2"; -$fa-var-asterisk: "\f069"; -$fa-var-at: "\f1fa"; -$fa-var-audio-description: "\f29e"; -$fa-var-automobile: "\f1b9"; -$fa-var-backward: "\f04a"; -$fa-var-balance-scale: "\f24e"; -$fa-var-ban: "\f05e"; -$fa-var-bandcamp: "\f2d5"; -$fa-var-bank: "\f19c"; -$fa-var-bar-chart: "\f080"; -$fa-var-bar-chart-o: "\f080"; -$fa-var-barcode: "\f02a"; -$fa-var-bars: "\f0c9"; -$fa-var-bath: "\f2cd"; -$fa-var-bathtub: "\f2cd"; -$fa-var-battery: "\f240"; -$fa-var-battery-0: "\f244"; -$fa-var-battery-1: "\f243"; -$fa-var-battery-2: "\f242"; -$fa-var-battery-3: "\f241"; -$fa-var-battery-4: "\f240"; -$fa-var-battery-empty: "\f244"; -$fa-var-battery-full: "\f240"; -$fa-var-battery-half: "\f242"; -$fa-var-battery-quarter: "\f243"; -$fa-var-battery-three-quarters: "\f241"; -$fa-var-bed: "\f236"; -$fa-var-beer: "\f0fc"; -$fa-var-behance: "\f1b4"; -$fa-var-behance-square: "\f1b5"; -$fa-var-bell: "\f0f3"; -$fa-var-bell-o: "\f0a2"; -$fa-var-bell-slash: "\f1f6"; -$fa-var-bell-slash-o: "\f1f7"; -$fa-var-bicycle: "\f206"; -$fa-var-binoculars: "\f1e5"; -$fa-var-birthday-cake: "\f1fd"; -$fa-var-bitbucket: "\f171"; -$fa-var-bitbucket-square: "\f172"; -$fa-var-bitcoin: "\f15a"; -$fa-var-black-tie: "\f27e"; -$fa-var-blind: "\f29d"; -$fa-var-bluetooth: "\f293"; -$fa-var-bluetooth-b: "\f294"; -$fa-var-bold: "\f032"; -$fa-var-bolt: "\f0e7"; -$fa-var-bomb: "\f1e2"; -$fa-var-book: "\f02d"; -$fa-var-bookmark: "\f02e"; -$fa-var-bookmark-o: "\f097"; -$fa-var-braille: "\f2a1"; -$fa-var-briefcase: "\f0b1"; -$fa-var-btc: "\f15a"; -$fa-var-bug: "\f188"; -$fa-var-building: "\f1ad"; -$fa-var-building-o: "\f0f7"; -$fa-var-bullhorn: "\f0a1"; -$fa-var-bullseye: "\f140"; -$fa-var-bus: "\f207"; -$fa-var-buysellads: "\f20d"; -$fa-var-cab: "\f1ba"; -$fa-var-calculator: "\f1ec"; -$fa-var-calendar: "\f073"; -$fa-var-calendar-check-o: "\f274"; -$fa-var-calendar-minus-o: "\f272"; -$fa-var-calendar-o: "\f133"; -$fa-var-calendar-plus-o: "\f271"; -$fa-var-calendar-times-o: "\f273"; -$fa-var-camera: "\f030"; -$fa-var-camera-retro: "\f083"; -$fa-var-car: "\f1b9"; -$fa-var-caret-down: "\f0d7"; -$fa-var-caret-left: "\f0d9"; -$fa-var-caret-right: "\f0da"; -$fa-var-caret-square-o-down: "\f150"; -$fa-var-caret-square-o-left: "\f191"; -$fa-var-caret-square-o-right: "\f152"; -$fa-var-caret-square-o-up: "\f151"; -$fa-var-caret-up: "\f0d8"; -$fa-var-cart-arrow-down: "\f218"; -$fa-var-cart-plus: "\f217"; -$fa-var-cc: "\f20a"; -$fa-var-cc-amex: "\f1f3"; -$fa-var-cc-diners-club: "\f24c"; -$fa-var-cc-discover: "\f1f2"; -$fa-var-cc-jcb: "\f24b"; -$fa-var-cc-mastercard: "\f1f1"; -$fa-var-cc-paypal: "\f1f4"; -$fa-var-cc-stripe: "\f1f5"; -$fa-var-cc-visa: "\f1f0"; -$fa-var-certificate: "\f0a3"; -$fa-var-chain: "\f0c1"; -$fa-var-chain-broken: "\f127"; -$fa-var-check: "\f00c"; -$fa-var-check-circle: "\f058"; -$fa-var-check-circle-o: "\f05d"; -$fa-var-check-square: "\f14a"; -$fa-var-check-square-o: "\f046"; -$fa-var-chevron-circle-down: "\f13a"; -$fa-var-chevron-circle-left: "\f137"; -$fa-var-chevron-circle-right: "\f138"; -$fa-var-chevron-circle-up: "\f139"; -$fa-var-chevron-down: "\f078"; -$fa-var-chevron-left: "\f053"; -$fa-var-chevron-right: "\f054"; -$fa-var-chevron-up: "\f077"; -$fa-var-child: "\f1ae"; -$fa-var-chrome: "\f268"; -$fa-var-circle: "\f111"; -$fa-var-circle-o: "\f10c"; -$fa-var-circle-o-notch: "\f1ce"; -$fa-var-circle-thin: "\f1db"; -$fa-var-clipboard: "\f0ea"; -$fa-var-clock-o: "\f017"; -$fa-var-clone: "\f24d"; -$fa-var-close: "\f00d"; -$fa-var-cloud: "\f0c2"; -$fa-var-cloud-download: "\f0ed"; -$fa-var-cloud-upload: "\f0ee"; -$fa-var-cny: "\f157"; -$fa-var-code: "\f121"; -$fa-var-code-fork: "\f126"; -$fa-var-codepen: "\f1cb"; -$fa-var-codiepie: "\f284"; -$fa-var-coffee: "\f0f4"; -$fa-var-cog: "\f013"; -$fa-var-cogs: "\f085"; -$fa-var-columns: "\f0db"; -$fa-var-comment: "\f075"; -$fa-var-comment-o: "\f0e5"; -$fa-var-commenting: "\f27a"; -$fa-var-commenting-o: "\f27b"; -$fa-var-comments: "\f086"; -$fa-var-comments-o: "\f0e6"; -$fa-var-compass: "\f14e"; -$fa-var-compress: "\f066"; -$fa-var-connectdevelop: "\f20e"; -$fa-var-contao: "\f26d"; -$fa-var-copy: "\f0c5"; -$fa-var-copyright: "\f1f9"; -$fa-var-creative-commons: "\f25e"; -$fa-var-credit-card: "\f09d"; -$fa-var-credit-card-alt: "\f283"; -$fa-var-crop: "\f125"; -$fa-var-crosshairs: "\f05b"; -$fa-var-css3: "\f13c"; -$fa-var-cube: "\f1b2"; -$fa-var-cubes: "\f1b3"; -$fa-var-cut: "\f0c4"; -$fa-var-cutlery: "\f0f5"; -$fa-var-dashboard: "\f0e4"; -$fa-var-dashcube: "\f210"; -$fa-var-database: "\f1c0"; -$fa-var-deaf: "\f2a4"; -$fa-var-deafness: "\f2a4"; -$fa-var-dedent: "\f03b"; -$fa-var-delicious: "\f1a5"; -$fa-var-desktop: "\f108"; -$fa-var-deviantart: "\f1bd"; -$fa-var-diamond: "\f219"; -$fa-var-digg: "\f1a6"; -$fa-var-dollar: "\f155"; -$fa-var-dot-circle-o: "\f192"; -$fa-var-download: "\f019"; -$fa-var-dribbble: "\f17d"; -$fa-var-drivers-license: "\f2c2"; -$fa-var-drivers-license-o: "\f2c3"; -$fa-var-dropbox: "\f16b"; -$fa-var-drupal: "\f1a9"; -$fa-var-edge: "\f282"; -$fa-var-edit: "\f044"; -$fa-var-eercast: "\f2da"; -$fa-var-eject: "\f052"; -$fa-var-ellipsis-h: "\f141"; -$fa-var-ellipsis-v: "\f142"; -$fa-var-empire: "\f1d1"; -$fa-var-envelope: "\f0e0"; -$fa-var-envelope-o: "\f003"; -$fa-var-envelope-open: "\f2b6"; -$fa-var-envelope-open-o: "\f2b7"; -$fa-var-envelope-square: "\f199"; -$fa-var-envira: "\f299"; -$fa-var-eraser: "\f12d"; -$fa-var-etsy: "\f2d7"; -$fa-var-eur: "\f153"; -$fa-var-euro: "\f153"; -$fa-var-exchange: "\f0ec"; -$fa-var-exclamation: "\f12a"; -$fa-var-exclamation-circle: "\f06a"; -$fa-var-exclamation-triangle: "\f071"; -$fa-var-expand: "\f065"; -$fa-var-expeditedssl: "\f23e"; -$fa-var-external-link: "\f08e"; -$fa-var-external-link-square: "\f14c"; -$fa-var-eye: "\f06e"; -$fa-var-eye-slash: "\f070"; -$fa-var-eyedropper: "\f1fb"; -$fa-var-fa: "\f2b4"; -$fa-var-facebook: "\f09a"; -$fa-var-facebook-f: "\f09a"; -$fa-var-facebook-official: "\f230"; -$fa-var-facebook-square: "\f082"; -$fa-var-fast-backward: "\f049"; -$fa-var-fast-forward: "\f050"; -$fa-var-fax: "\f1ac"; -$fa-var-feed: "\f09e"; -$fa-var-female: "\f182"; -$fa-var-fighter-jet: "\f0fb"; -$fa-var-file: "\f15b"; -$fa-var-file-archive-o: "\f1c6"; -$fa-var-file-audio-o: "\f1c7"; -$fa-var-file-code-o: "\f1c9"; -$fa-var-file-excel-o: "\f1c3"; -$fa-var-file-image-o: "\f1c5"; -$fa-var-file-movie-o: "\f1c8"; -$fa-var-file-o: "\f016"; -$fa-var-file-pdf-o: "\f1c1"; -$fa-var-file-photo-o: "\f1c5"; -$fa-var-file-picture-o: "\f1c5"; -$fa-var-file-powerpoint-o: "\f1c4"; -$fa-var-file-sound-o: "\f1c7"; -$fa-var-file-text: "\f15c"; -$fa-var-file-text-o: "\f0f6"; -$fa-var-file-video-o: "\f1c8"; -$fa-var-file-word-o: "\f1c2"; -$fa-var-file-zip-o: "\f1c6"; -$fa-var-files-o: "\f0c5"; -$fa-var-film: "\f008"; -$fa-var-filter: "\f0b0"; -$fa-var-fire: "\f06d"; -$fa-var-fire-extinguisher: "\f134"; -$fa-var-firefox: "\f269"; -$fa-var-first-order: "\f2b0"; -$fa-var-flag: "\f024"; -$fa-var-flag-checkered: "\f11e"; -$fa-var-flag-o: "\f11d"; -$fa-var-flash: "\f0e7"; -$fa-var-flask: "\f0c3"; -$fa-var-flickr: "\f16e"; -$fa-var-floppy-o: "\f0c7"; -$fa-var-folder: "\f07b"; -$fa-var-folder-o: "\f114"; -$fa-var-folder-open: "\f07c"; -$fa-var-folder-open-o: "\f115"; -$fa-var-font: "\f031"; -$fa-var-font-awesome: "\f2b4"; -$fa-var-fonticons: "\f280"; -$fa-var-fort-awesome: "\f286"; -$fa-var-forumbee: "\f211"; -$fa-var-forward: "\f04e"; -$fa-var-foursquare: "\f180"; -$fa-var-free-code-camp: "\f2c5"; -$fa-var-frown-o: "\f119"; -$fa-var-futbol-o: "\f1e3"; -$fa-var-gamepad: "\f11b"; -$fa-var-gavel: "\f0e3"; -$fa-var-gbp: "\f154"; -$fa-var-ge: "\f1d1"; -$fa-var-gear: "\f013"; -$fa-var-gears: "\f085"; -$fa-var-genderless: "\f22d"; -$fa-var-get-pocket: "\f265"; -$fa-var-gg: "\f260"; -$fa-var-gg-circle: "\f261"; -$fa-var-gift: "\f06b"; -$fa-var-git: "\f1d3"; -$fa-var-git-square: "\f1d2"; -$fa-var-github: "\f09b"; -$fa-var-github-alt: "\f113"; -$fa-var-github-square: "\f092"; -$fa-var-gitlab: "\f296"; -$fa-var-gittip: "\f184"; -$fa-var-glass: "\f000"; -$fa-var-glide: "\f2a5"; -$fa-var-glide-g: "\f2a6"; -$fa-var-globe: "\f0ac"; -$fa-var-google: "\f1a0"; -$fa-var-google-plus: "\f0d5"; -$fa-var-google-plus-circle: "\f2b3"; -$fa-var-google-plus-official: "\f2b3"; -$fa-var-google-plus-square: "\f0d4"; -$fa-var-google-wallet: "\f1ee"; -$fa-var-graduation-cap: "\f19d"; -$fa-var-gratipay: "\f184"; -$fa-var-grav: "\f2d6"; -$fa-var-group: "\f0c0"; -$fa-var-h-square: "\f0fd"; -$fa-var-hacker-news: "\f1d4"; -$fa-var-hand-grab-o: "\f255"; -$fa-var-hand-lizard-o: "\f258"; -$fa-var-hand-o-down: "\f0a7"; -$fa-var-hand-o-left: "\f0a5"; -$fa-var-hand-o-right: "\f0a4"; -$fa-var-hand-o-up: "\f0a6"; -$fa-var-hand-paper-o: "\f256"; -$fa-var-hand-peace-o: "\f25b"; -$fa-var-hand-pointer-o: "\f25a"; -$fa-var-hand-rock-o: "\f255"; -$fa-var-hand-scissors-o: "\f257"; -$fa-var-hand-spock-o: "\f259"; -$fa-var-hand-stop-o: "\f256"; -$fa-var-handshake-o: "\f2b5"; -$fa-var-hard-of-hearing: "\f2a4"; -$fa-var-hashtag: "\f292"; -$fa-var-hdd-o: "\f0a0"; -$fa-var-header: "\f1dc"; -$fa-var-headphones: "\f025"; -$fa-var-heart: "\f004"; -$fa-var-heart-o: "\f08a"; -$fa-var-heartbeat: "\f21e"; -$fa-var-history: "\f1da"; -$fa-var-home: "\f015"; -$fa-var-hospital-o: "\f0f8"; -$fa-var-hotel: "\f236"; -$fa-var-hourglass: "\f254"; -$fa-var-hourglass-1: "\f251"; -$fa-var-hourglass-2: "\f252"; -$fa-var-hourglass-3: "\f253"; -$fa-var-hourglass-end: "\f253"; -$fa-var-hourglass-half: "\f252"; -$fa-var-hourglass-o: "\f250"; -$fa-var-hourglass-start: "\f251"; -$fa-var-houzz: "\f27c"; -$fa-var-html5: "\f13b"; -$fa-var-i-cursor: "\f246"; -$fa-var-id-badge: "\f2c1"; -$fa-var-id-card: "\f2c2"; -$fa-var-id-card-o: "\f2c3"; -$fa-var-ils: "\f20b"; -$fa-var-image: "\f03e"; -$fa-var-imdb: "\f2d8"; -$fa-var-inbox: "\f01c"; -$fa-var-indent: "\f03c"; -$fa-var-industry: "\f275"; -$fa-var-info: "\f129"; -$fa-var-info-circle: "\f05a"; -$fa-var-inr: "\f156"; -$fa-var-instagram: "\f16d"; -$fa-var-institution: "\f19c"; -$fa-var-internet-explorer: "\f26b"; -$fa-var-intersex: "\f224"; -$fa-var-ioxhost: "\f208"; -$fa-var-italic: "\f033"; -$fa-var-joomla: "\f1aa"; -$fa-var-jpy: "\f157"; -$fa-var-jsfiddle: "\f1cc"; -$fa-var-key: "\f084"; -$fa-var-keyboard-o: "\f11c"; -$fa-var-krw: "\f159"; -$fa-var-language: "\f1ab"; -$fa-var-laptop: "\f109"; -$fa-var-lastfm: "\f202"; -$fa-var-lastfm-square: "\f203"; -$fa-var-leaf: "\f06c"; -$fa-var-leanpub: "\f212"; -$fa-var-legal: "\f0e3"; -$fa-var-lemon-o: "\f094"; -$fa-var-level-down: "\f149"; -$fa-var-level-up: "\f148"; -$fa-var-life-bouy: "\f1cd"; -$fa-var-life-buoy: "\f1cd"; -$fa-var-life-ring: "\f1cd"; -$fa-var-life-saver: "\f1cd"; -$fa-var-lightbulb-o: "\f0eb"; -$fa-var-line-chart: "\f201"; -$fa-var-link: "\f0c1"; -$fa-var-linkedin: "\f0e1"; -$fa-var-linkedin-square: "\f08c"; -$fa-var-linode: "\f2b8"; -$fa-var-linux: "\f17c"; -$fa-var-list: "\f03a"; -$fa-var-list-alt: "\f022"; -$fa-var-list-ol: "\f0cb"; -$fa-var-list-ul: "\f0ca"; -$fa-var-location-arrow: "\f124"; -$fa-var-lock: "\f023"; -$fa-var-long-arrow-down: "\f175"; -$fa-var-long-arrow-left: "\f177"; -$fa-var-long-arrow-right: "\f178"; -$fa-var-long-arrow-up: "\f176"; -$fa-var-low-vision: "\f2a8"; -$fa-var-magic: "\f0d0"; -$fa-var-magnet: "\f076"; -$fa-var-mail-forward: "\f064"; -$fa-var-mail-reply: "\f112"; -$fa-var-mail-reply-all: "\f122"; -$fa-var-male: "\f183"; -$fa-var-map: "\f279"; -$fa-var-map-marker: "\f041"; -$fa-var-map-o: "\f278"; -$fa-var-map-pin: "\f276"; -$fa-var-map-signs: "\f277"; -$fa-var-mars: "\f222"; -$fa-var-mars-double: "\f227"; -$fa-var-mars-stroke: "\f229"; -$fa-var-mars-stroke-h: "\f22b"; -$fa-var-mars-stroke-v: "\f22a"; -$fa-var-maxcdn: "\f136"; -$fa-var-meanpath: "\f20c"; -$fa-var-medium: "\f23a"; -$fa-var-medkit: "\f0fa"; -$fa-var-meetup: "\f2e0"; -$fa-var-meh-o: "\f11a"; -$fa-var-mercury: "\f223"; -$fa-var-microchip: "\f2db"; -$fa-var-microphone: "\f130"; -$fa-var-microphone-slash: "\f131"; -$fa-var-minus: "\f068"; -$fa-var-minus-circle: "\f056"; -$fa-var-minus-square: "\f146"; -$fa-var-minus-square-o: "\f147"; -$fa-var-mixcloud: "\f289"; -$fa-var-mobile: "\f10b"; -$fa-var-mobile-phone: "\f10b"; -$fa-var-modx: "\f285"; -$fa-var-money: "\f0d6"; -$fa-var-moon-o: "\f186"; -$fa-var-mortar-board: "\f19d"; -$fa-var-motorcycle: "\f21c"; -$fa-var-mouse-pointer: "\f245"; -$fa-var-music: "\f001"; -$fa-var-navicon: "\f0c9"; -$fa-var-neuter: "\f22c"; -$fa-var-newspaper-o: "\f1ea"; -$fa-var-object-group: "\f247"; -$fa-var-object-ungroup: "\f248"; -$fa-var-odnoklassniki: "\f263"; -$fa-var-odnoklassniki-square: "\f264"; -$fa-var-opencart: "\f23d"; -$fa-var-openid: "\f19b"; -$fa-var-opera: "\f26a"; -$fa-var-optin-monster: "\f23c"; -$fa-var-outdent: "\f03b"; -$fa-var-pagelines: "\f18c"; -$fa-var-paint-brush: "\f1fc"; -$fa-var-paper-plane: "\f1d8"; -$fa-var-paper-plane-o: "\f1d9"; -$fa-var-paperclip: "\f0c6"; -$fa-var-paragraph: "\f1dd"; -$fa-var-paste: "\f0ea"; -$fa-var-pause: "\f04c"; -$fa-var-pause-circle: "\f28b"; -$fa-var-pause-circle-o: "\f28c"; -$fa-var-paw: "\f1b0"; -$fa-var-paypal: "\f1ed"; -$fa-var-pencil: "\f040"; -$fa-var-pencil-square: "\f14b"; -$fa-var-pencil-square-o: "\f044"; -$fa-var-percent: "\f295"; -$fa-var-phone: "\f095"; -$fa-var-phone-square: "\f098"; -$fa-var-photo: "\f03e"; -$fa-var-picture-o: "\f03e"; -$fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f2ae"; -$fa-var-pied-piper-alt: "\f1a8"; -$fa-var-pied-piper-pp: "\f1a7"; -$fa-var-pinterest: "\f0d2"; -$fa-var-pinterest-p: "\f231"; -$fa-var-pinterest-square: "\f0d3"; -$fa-var-plane: "\f072"; -$fa-var-play: "\f04b"; -$fa-var-play-circle: "\f144"; -$fa-var-play-circle-o: "\f01d"; -$fa-var-plug: "\f1e6"; -$fa-var-plus: "\f067"; -$fa-var-plus-circle: "\f055"; -$fa-var-plus-square: "\f0fe"; -$fa-var-plus-square-o: "\f196"; -$fa-var-podcast: "\f2ce"; -$fa-var-power-off: "\f011"; -$fa-var-print: "\f02f"; -$fa-var-product-hunt: "\f288"; -$fa-var-puzzle-piece: "\f12e"; -$fa-var-qq: "\f1d6"; -$fa-var-qrcode: "\f029"; -$fa-var-question: "\f128"; -$fa-var-question-circle: "\f059"; -$fa-var-question-circle-o: "\f29c"; -$fa-var-quora: "\f2c4"; -$fa-var-quote-left: "\f10d"; -$fa-var-quote-right: "\f10e"; -$fa-var-ra: "\f1d0"; -$fa-var-random: "\f074"; -$fa-var-ravelry: "\f2d9"; -$fa-var-rebel: "\f1d0"; -$fa-var-recycle: "\f1b8"; -$fa-var-reddit: "\f1a1"; -$fa-var-reddit-alien: "\f281"; -$fa-var-reddit-square: "\f1a2"; -$fa-var-refresh: "\f021"; -$fa-var-registered: "\f25d"; -$fa-var-remove: "\f00d"; -$fa-var-renren: "\f18b"; -$fa-var-reorder: "\f0c9"; -$fa-var-repeat: "\f01e"; -$fa-var-reply: "\f112"; -$fa-var-reply-all: "\f122"; -$fa-var-resistance: "\f1d0"; -$fa-var-retweet: "\f079"; -$fa-var-rmb: "\f157"; -$fa-var-road: "\f018"; -$fa-var-rocket: "\f135"; -$fa-var-rotate-left: "\f0e2"; -$fa-var-rotate-right: "\f01e"; -$fa-var-rouble: "\f158"; -$fa-var-rss: "\f09e"; -$fa-var-rss-square: "\f143"; -$fa-var-rub: "\f158"; -$fa-var-ruble: "\f158"; -$fa-var-rupee: "\f156"; -$fa-var-s15: "\f2cd"; -$fa-var-safari: "\f267"; -$fa-var-save: "\f0c7"; -$fa-var-scissors: "\f0c4"; -$fa-var-scribd: "\f28a"; -$fa-var-search: "\f002"; -$fa-var-search-minus: "\f010"; -$fa-var-search-plus: "\f00e"; -$fa-var-sellsy: "\f213"; -$fa-var-send: "\f1d8"; -$fa-var-send-o: "\f1d9"; -$fa-var-server: "\f233"; -$fa-var-share: "\f064"; -$fa-var-share-alt: "\f1e0"; -$fa-var-share-alt-square: "\f1e1"; -$fa-var-share-square: "\f14d"; -$fa-var-share-square-o: "\f045"; -$fa-var-shekel: "\f20b"; -$fa-var-sheqel: "\f20b"; -$fa-var-shield: "\f132"; -$fa-var-ship: "\f21a"; -$fa-var-shirtsinbulk: "\f214"; -$fa-var-shopping-bag: "\f290"; -$fa-var-shopping-basket: "\f291"; -$fa-var-shopping-cart: "\f07a"; -$fa-var-shower: "\f2cc"; -$fa-var-sign-in: "\f090"; -$fa-var-sign-language: "\f2a7"; -$fa-var-sign-out: "\f08b"; -$fa-var-signal: "\f012"; -$fa-var-signing: "\f2a7"; -$fa-var-simplybuilt: "\f215"; -$fa-var-sitemap: "\f0e8"; -$fa-var-skyatlas: "\f216"; -$fa-var-skype: "\f17e"; -$fa-var-slack: "\f198"; -$fa-var-sliders: "\f1de"; -$fa-var-slideshare: "\f1e7"; -$fa-var-smile-o: "\f118"; -$fa-var-snapchat: "\f2ab"; -$fa-var-snapchat-ghost: "\f2ac"; -$fa-var-snapchat-square: "\f2ad"; -$fa-var-snowflake-o: "\f2dc"; -$fa-var-soccer-ball-o: "\f1e3"; -$fa-var-sort: "\f0dc"; -$fa-var-sort-alpha-asc: "\f15d"; -$fa-var-sort-alpha-desc: "\f15e"; -$fa-var-sort-amount-asc: "\f160"; -$fa-var-sort-amount-desc: "\f161"; -$fa-var-sort-asc: "\f0de"; -$fa-var-sort-desc: "\f0dd"; -$fa-var-sort-down: "\f0dd"; -$fa-var-sort-numeric-asc: "\f162"; -$fa-var-sort-numeric-desc: "\f163"; -$fa-var-sort-up: "\f0de"; -$fa-var-soundcloud: "\f1be"; -$fa-var-space-shuttle: "\f197"; -$fa-var-spinner: "\f110"; -$fa-var-spoon: "\f1b1"; -$fa-var-spotify: "\f1bc"; -$fa-var-square: "\f0c8"; -$fa-var-square-o: "\f096"; -$fa-var-stack-exchange: "\f18d"; -$fa-var-stack-overflow: "\f16c"; -$fa-var-star: "\f005"; -$fa-var-star-half: "\f089"; -$fa-var-star-half-empty: "\f123"; -$fa-var-star-half-full: "\f123"; -$fa-var-star-half-o: "\f123"; -$fa-var-star-o: "\f006"; -$fa-var-steam: "\f1b6"; -$fa-var-steam-square: "\f1b7"; -$fa-var-step-backward: "\f048"; -$fa-var-step-forward: "\f051"; -$fa-var-stethoscope: "\f0f1"; -$fa-var-sticky-note: "\f249"; -$fa-var-sticky-note-o: "\f24a"; -$fa-var-stop: "\f04d"; -$fa-var-stop-circle: "\f28d"; -$fa-var-stop-circle-o: "\f28e"; -$fa-var-street-view: "\f21d"; -$fa-var-strikethrough: "\f0cc"; -$fa-var-stumbleupon: "\f1a4"; -$fa-var-stumbleupon-circle: "\f1a3"; -$fa-var-subscript: "\f12c"; -$fa-var-subway: "\f239"; -$fa-var-suitcase: "\f0f2"; -$fa-var-sun-o: "\f185"; -$fa-var-superpowers: "\f2dd"; -$fa-var-superscript: "\f12b"; -$fa-var-support: "\f1cd"; -$fa-var-table: "\f0ce"; -$fa-var-tablet: "\f10a"; -$fa-var-tachometer: "\f0e4"; -$fa-var-tag: "\f02b"; -$fa-var-tags: "\f02c"; -$fa-var-tasks: "\f0ae"; -$fa-var-taxi: "\f1ba"; -$fa-var-telegram: "\f2c6"; -$fa-var-television: "\f26c"; -$fa-var-tencent-weibo: "\f1d5"; -$fa-var-terminal: "\f120"; -$fa-var-text-height: "\f034"; -$fa-var-text-width: "\f035"; -$fa-var-th: "\f00a"; -$fa-var-th-large: "\f009"; -$fa-var-th-list: "\f00b"; -$fa-var-themeisle: "\f2b2"; -$fa-var-thermometer: "\f2c7"; -$fa-var-thermometer-0: "\f2cb"; -$fa-var-thermometer-1: "\f2ca"; -$fa-var-thermometer-2: "\f2c9"; -$fa-var-thermometer-3: "\f2c8"; -$fa-var-thermometer-4: "\f2c7"; -$fa-var-thermometer-empty: "\f2cb"; -$fa-var-thermometer-full: "\f2c7"; -$fa-var-thermometer-half: "\f2c9"; -$fa-var-thermometer-quarter: "\f2ca"; -$fa-var-thermometer-three-quarters: "\f2c8"; -$fa-var-thumb-tack: "\f08d"; -$fa-var-thumbs-down: "\f165"; -$fa-var-thumbs-o-down: "\f088"; -$fa-var-thumbs-o-up: "\f087"; -$fa-var-thumbs-up: "\f164"; -$fa-var-ticket: "\f145"; -$fa-var-times: "\f00d"; -$fa-var-times-circle: "\f057"; -$fa-var-times-circle-o: "\f05c"; -$fa-var-times-rectangle: "\f2d3"; -$fa-var-times-rectangle-o: "\f2d4"; -$fa-var-tint: "\f043"; -$fa-var-toggle-down: "\f150"; -$fa-var-toggle-left: "\f191"; -$fa-var-toggle-off: "\f204"; -$fa-var-toggle-on: "\f205"; -$fa-var-toggle-right: "\f152"; -$fa-var-toggle-up: "\f151"; -$fa-var-trademark: "\f25c"; -$fa-var-train: "\f238"; -$fa-var-transgender: "\f224"; -$fa-var-transgender-alt: "\f225"; -$fa-var-trash: "\f1f8"; -$fa-var-trash-o: "\f014"; -$fa-var-tree: "\f1bb"; -$fa-var-trello: "\f181"; -$fa-var-tripadvisor: "\f262"; -$fa-var-trophy: "\f091"; -$fa-var-truck: "\f0d1"; -$fa-var-try: "\f195"; -$fa-var-tty: "\f1e4"; -$fa-var-tumblr: "\f173"; -$fa-var-tumblr-square: "\f174"; -$fa-var-turkish-lira: "\f195"; -$fa-var-tv: "\f26c"; -$fa-var-twitch: "\f1e8"; -$fa-var-twitter: "\f099"; -$fa-var-twitter-square: "\f081"; -$fa-var-umbrella: "\f0e9"; -$fa-var-underline: "\f0cd"; -$fa-var-undo: "\f0e2"; -$fa-var-universal-access: "\f29a"; -$fa-var-university: "\f19c"; -$fa-var-unlink: "\f127"; -$fa-var-unlock: "\f09c"; -$fa-var-unlock-alt: "\f13e"; -$fa-var-unsorted: "\f0dc"; -$fa-var-upload: "\f093"; -$fa-var-usb: "\f287"; -$fa-var-usd: "\f155"; -$fa-var-user: "\f007"; -$fa-var-user-circle: "\f2bd"; -$fa-var-user-circle-o: "\f2be"; -$fa-var-user-md: "\f0f0"; -$fa-var-user-o: "\f2c0"; -$fa-var-user-plus: "\f234"; -$fa-var-user-secret: "\f21b"; -$fa-var-user-times: "\f235"; -$fa-var-users: "\f0c0"; -$fa-var-vcard: "\f2bb"; -$fa-var-vcard-o: "\f2bc"; -$fa-var-venus: "\f221"; -$fa-var-venus-double: "\f226"; -$fa-var-venus-mars: "\f228"; -$fa-var-viacoin: "\f237"; -$fa-var-viadeo: "\f2a9"; -$fa-var-viadeo-square: "\f2aa"; -$fa-var-video-camera: "\f03d"; -$fa-var-vimeo: "\f27d"; -$fa-var-vimeo-square: "\f194"; -$fa-var-vine: "\f1ca"; -$fa-var-vk: "\f189"; -$fa-var-volume-control-phone: "\f2a0"; -$fa-var-volume-down: "\f027"; -$fa-var-volume-off: "\f026"; -$fa-var-volume-up: "\f028"; -$fa-var-warning: "\f071"; -$fa-var-wechat: "\f1d7"; -$fa-var-weibo: "\f18a"; -$fa-var-weixin: "\f1d7"; -$fa-var-whatsapp: "\f232"; -$fa-var-wheelchair: "\f193"; -$fa-var-wheelchair-alt: "\f29b"; -$fa-var-wifi: "\f1eb"; -$fa-var-wikipedia-w: "\f266"; -$fa-var-window-close: "\f2d3"; -$fa-var-window-close-o: "\f2d4"; -$fa-var-window-maximize: "\f2d0"; -$fa-var-window-minimize: "\f2d1"; -$fa-var-window-restore: "\f2d2"; -$fa-var-windows: "\f17a"; -$fa-var-won: "\f159"; -$fa-var-wordpress: "\f19a"; -$fa-var-wpbeginner: "\f297"; -$fa-var-wpexplorer: "\f2de"; -$fa-var-wpforms: "\f298"; -$fa-var-wrench: "\f0ad"; -$fa-var-xing: "\f168"; -$fa-var-xing-square: "\f169"; -$fa-var-y-combinator: "\f23b"; -$fa-var-y-combinator-square: "\f1d4"; -$fa-var-yahoo: "\f19e"; -$fa-var-yc: "\f23b"; -$fa-var-yc-square: "\f1d4"; -$fa-var-yelp: "\f1e9"; -$fa-var-yen: "\f157"; -$fa-var-yoast: "\f2b1"; -$fa-var-youtube: "\f167"; -$fa-var-youtube-play: "\f16a"; -$fa-var-youtube-square: "\f166"; - diff --git a/bower_components/font-awesome/scss/font-awesome.scss b/bower_components/font-awesome/scss/font-awesome.scss deleted file mode 100644 index f1c83aaa5..000000000 --- a/bower_components/font-awesome/scss/font-awesome.scss +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@import "variables"; -@import "mixins"; -@import "path"; -@import "core"; -@import "larger"; -@import "fixed-width"; -@import "list"; -@import "bordered-pulled"; -@import "animated"; -@import "rotated-flipped"; -@import "stacked"; -@import "icons"; -@import "screen-reader"; diff --git a/bower_components/jquery-oembed-all/.bower.json b/bower_components/jquery-oembed-all/.bower.json deleted file mode 100644 index 1465ac686..000000000 --- a/bower_components/jquery-oembed-all/.bower.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "jquery-oembed-all", - "homepage": "https://github.com/nfl/jquery-oembed-all", - "authors": [ - "National Football League " - ], - "description": "Use native oEmbed services when possible.", - "main": "jquery.oembed.js", - "license": "MIT", - "ignore": [ - "examples", - "*.md", - "CHANGELOG" - ], - "dependencies": { - "jquery": ">=1.4.3" - }, - "_release": "fbc982e76c", - "_resolution": { - "type": "branch", - "branch": "master", - "commit": "fbc982e76c7fadad29a8ceee1ee32079ff1eaee0" - }, - "_source": "https://github.com/nfl/jquery-oembed-all.git", - "_target": "*", - "_originalSource": "jquery-oembed-all" -} \ No newline at end of file diff --git a/bower_components/jquery-oembed-all/.gitignore b/bower_components/jquery-oembed-all/.gitignore deleted file mode 100644 index c8f61116e..000000000 --- a/bower_components/jquery-oembed-all/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Created by .gitignore support plugin (hsz.mobi) -*.iml -.DS_Store \ No newline at end of file diff --git a/bower_components/jquery-oembed-all/bower.json b/bower_components/jquery-oembed-all/bower.json deleted file mode 100644 index 6148b6432..000000000 --- a/bower_components/jquery-oembed-all/bower.json +++ /dev/null @@ -1,20 +0,0 @@ - -{ - "name": "jquery-oembed-all", - "version": "0.9.0-rc1", - "homepage": "https://github.com/nfl/jquery-oembed-all", - "authors": [ - "National Football League " - ], - "description": "Use native oEmbed services when possible.", - "main": "jquery.oembed.js", - "license": "MIT", - "ignore": [ - "examples", - "*.md", - "CHANGELOG" - ], - "dependencies": { - "jquery": ">=1.4.3" - } -} diff --git a/bower_components/jquery-oembed-all/jquery.oembed.css b/bower_components/jquery-oembed-all/jquery.oembed.css deleted file mode 100644 index 2ec250bd3..000000000 --- a/bower_components/jquery-oembed-all/jquery.oembed.css +++ /dev/null @@ -1,422 +0,0 @@ -div.oembedall-githubrepos { - border: 1px solid #DDD; - border-radius: 4px 4px 4px 4px; - list-style-type: none; - margin: 0 0 10px; - padding: 8px 10px 0; - font: 13.34px/1.4 helvetica,arial,freesans,clean,sans-serif; - /*background: url("http://github.com/images/icons/public.png") no-repeat scroll 6px 9px transparent;*/ - width : 452px; - background-color:#fff; -} - -div.oembedall-githubrepos .oembedall-body { - background: -moz-linear-gradient(center top , #FAFAFA, #EFEFEF) repeat scroll 0 0 transparent; - background: -webkit-gradient(linear,left top,left bottom,from(#FAFAFA),to(#EFEFEF));; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-top: 1px solid #EEE; - margin-left: -10px; - margin-top: 8px; - padding: 5px 10px; - width: 100%; -} - -div.oembedall-githubrepos h3 { - font-size: 14px; - margin: 0; - padding-left: 18px; - white-space: nowrap; -} - -div.oembedall-githubrepos p.oembedall-description { - color: #444; - font-size: 12px; - margin: 0 0 3px; -} - -div.oembedall-githubrepos p.oembedall-updated-at { - color: #888; - font-size: 11px; - margin: 0; -} - -div.oembedall-githubrepos ul.oembedall-repo-stats { - /*background: url("http://github.com/images/modules/pagehead/actions_fade.png") no-repeat scroll 0 0 transparent;*/ - border: medium none; - float: right; - font-size: 11px; - font-weight: bold; - padding-left: 15px; - position: relative; - z-index: 5; - margin:0; -} -div.oembedall-githubrepos ul.oembedall-repo-stats li { - border: medium none; - color: #666; - display: inline-block; - list-style-type: none; - margin: 0 !important; -} -div.oembedall-githubrepos ul.oembedall-repo-stats li a { - background-color: transparent; - background-position: 5px -2px; - border: medium none; - color: #666 !important; - background-position: 5px -2px; - background-repeat: no-repeat; - border-left: 1px solid #DDD; - display: inline-block; - height: 21px; - line-height: 21px; - padding: 0 5px 0 23px; -} - - -div.oembedall-githubrepos ul.oembedall-repo-stats li:first-child a { - border-left: medium none; - margin-right: -3px; -} -div.oembedall-githubrepos ul.oembedall-repo-stats li a:hover { - background: none no-repeat scroll 5px -27px #4183C4; - color: #FFFFFF !important; - text-decoration: none; -} -div.oembedall-githubrepos ul.oembedall-repo-stats li:first-child a:hover { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -ul.oembedall-repo-stats li:last-child a:hover { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -div.oembedall-githubrepos ul.oembedall-repo-stats li.oembedall-watchers a { - /*background-image: url("http://github.com/images/modules/pagehead/repostat_watchers.png");*/ -} - -div.oembedall-githubrepos ul.oembedall-repo-stats li.oembedall-forks a { - /*background-image: url("http://github.com/images/modules/pagehead/repostat_forks.png");*/ -} - - -span.oembedall-closehide{ - background-color: #aaa; - border-radius: 2px; - cursor: pointer; - margin-right: 3px; -} - -div.oembedall-container { - margin-top : 5px; - text-align: left; -} - -.oembedall-ljuser { - font-weight: bold; -} - -.oembedall-ljuser img { - vertical-align: bottom; - border: 0; - padding-right: 1px; -} - -.oembedall-stoqembed { - border-bottom: 1px dotted #999999; - float: left; - overflow: hidden; - padding: 11px 0; - width: 730px; - line-height: 1; - background: none repeat scroll 0 0 #FFFFFF; - color: #000000; - font-family: Arial,Liberation Sans,DejaVu Sans,sans-serif; - font-size: 80%; - text-align: left; - margin: 0; - padding: 0; -} - -.oembedall-stoqembed a { - color: #0077CC; - text-decoration: none; - margin: 0; - padding: 0; -} -.oembedall-stoqembed a:hover { - text-decoration: underline; -} -.oembedall-stoqembed a:visited { - color: #4A6B82; -} - -.oembedall-stoqembed h3 { - font-family: Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif; - font-size: 130%; - font-weight: bold; - margin: 0; - padding: 0; -} - -.oembedall-stoqembed .oembedall-reputation-score { - color: #444444; - font-size: 120%; - font-weight: bold; - margin-right: 2px; -} - - -.oembedall-stoqembed .oembedall-user-info { - height: 35px; - width: 185px; -} -.oembedall-stoqembed .oembedall-user-info .oembedall-user-gravatar32 { - float: left; - height: 32px; - width: 32px; -} - -.oembedall-stoqembed .oembedall-user-info .oembedall-user-details { - float: left; - margin-left: 5px; - overflow: hidden; - white-space: nowrap; - width: 145px; -} - -.oembedall-stoqembed .oembedall-question-hyperlink { - font-weight: bold; -} - -.oembedall-stoqembed .oembedall-stats { - background: none repeat scroll 0 0 #EEEEEE; - margin: 0 0 0 7px; - padding: 4px 7px 6px; - width: 58px; -} -.oembedall-stoqembed .oembedall-statscontainer { - float: left; - margin-right: 8px; - width: 86px; -} - -.oembedall-stoqembed .oembedall-votes { - color: #555555; - padding: 0 0 7px; - text-align: center; -} - -.oembedall-stoqembed .oembedall-vote-count-post { - display: block; - font-size: 240%; - color: #808185; - display: block; - font-weight: bold; -} - - -.oembedall-stoqembed .oembedall-views { - color: #999999; - padding-top: 4px; - text-align: center; -} - -.oembedall-stoqembed .oembedall-status { - margin-top: -3px; - padding: 4px 0; - text-align: center; - background: none repeat scroll 0 0 #75845C; - color: #FFFFFF; -} - -.oembedall-stoqembed .oembedall-status strong { - color: #FFFFFF; - display: block; - font-size: 140%; -} - - -.oembedall-stoqembed .oembedall-summary { - float: left; - width: 635px; -} - -.oembedall-stoqembed .oembedall-excerpt { - line-height: 1.2; - margin: 0; - padding: 0 0 5px; -} - -.oembedall-stoqembed .oembedall-tags { - float: left; - line-height: 18px; -} -.oembedall-stoqembed .oembedall-tags a:hover { - text-decoration: none; -} - -.oembedall-stoqembed .oembedall-post-tag { - background-color: #E0EAF1; - border-bottom: 1px solid #3E6D8E; - border-right: 1px solid #7F9FB6; - color: #3E6D8E; - font-size: 90%; - line-height: 2.4; - margin: 2px 2px 2px 0; - padding: 3px 4px; - text-decoration: none; - white-space: nowrap; -} -.oembedall-stoqembed .oembedall-post-tag:hover { - background-color: #3E6D8E; - border-bottom: 1px solid #37607D; - border-right: 1px solid #37607D; - color: #E0EAF1; -} - - -.oembedall-stoqembed .oembedall-fr { - float: right; -} - -.oembedall-stoqembed .oembedall-statsarrow { - background-image: url("http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3"); - background-repeat: no-repeat; - overflow: hidden; - background-position: 0 -435px; - float: right; - height: 13px; - margin-top: 12px; - width: 7px; -} - -.oembedall-facebook1 { - border: #1A3C6C solid 1px; - padding:0px; - font: 13.34px/1.4 verdana; - width : 500px; - -} - -.oembedall-facebook2 { - background-color: #627add; -} -.oembedall-facebook2 a { - color: #e8e8e8; - text-decoration:none; -} - -.oembedall-facebookBody { - background-color: #fff; - vertical-align: top; - padding: 5px; -} - -.oembedall-facebookBody .contents { - display: inline-block; - width: 100%; -} - -.oembedall-facebookBody div img { - float: left; - margin-right: 5px; -} - -div.oembedall-lanyard{ --webkit-box-shadow: none; --webkit-transition-delay: 0s; --webkit-transition-duration: 0.4000000059604645s; --webkit-transition-property: width; --webkit-transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1); -background-attachment: scroll; -background-clip: border-box; -background-color: transparent; -background-image: none; -background-origin: padding-box; -border-bottom-width: 0px; -border-left-width: 0px; -border-right-width: 0px; -border-top-width: 0px; -box-shadow: none; -color: #112644; -display: block; -float: left; -font-family: 'Trebuchet MS', Trebuchet, sans-serif; -font-size: 16px; -height: 253px; -line-height: 19px; -margin-bottom: 0px; -margin-left: 0px; -margin-right: 0px; -margin-top: 0px; -max-width: none; -min-height: 0px; -outline-color: #112644; -outline-style: none; -outline-width: 0px; -overflow-x: visible; -overflow-y: visible; -padding-bottom: 0px; -padding-left: 0px; -padding-right: 0px; -padding-top: 0px; -position: relative; -text-align: left; -vertical-align: baseline; -width: 804px; -} - -div.oembedall-lanyard .tagline{ - font-size: 1.5em; -} - -div.oembedall-lanyard .wrapper{ - overflow: hidden; - clear: both; -} -div.oembedall-lanyard .split{ - float: left; -display: inline; - -} - -div.oembedall-lanyard .prominent-place .flag:link, div.oembedall-lanyard .prominent-place .flag:visited,div.oembedall-lanyard .prominent-place .flag:hover - ,div.oembedall-lanyard .prominent-place .flag:focus,div.oembedall-lanyard .prominent-place .flag:active { -float: left; -display: block; -width: 48px; -height: 48px; -position: relative; -top: -5px; -margin-right: 10px; -} - -div.oembedall-lanyard .place-context { -font-size: 0.889em; -} - -div.oembedall-lanyard .prominent-place .sub-place { -display: block; -} - -div.oembedall-lanyard .prominent-place{ - font-size: 1.125em; -line-height: 1.1em; -font-weight: normal; - -} - -div.oembedall-lanyard .main-date{ -color: #8CB4E0; -font-weight: bold; -line-height: 1.1; - -} - -div.oembedall-lanyard .first{ - margin-left: 0; - width: 48.57%; -margin: 0 0 0 2.857%; - -} diff --git a/bower_components/jquery-oembed-all/jquery.oembed.js b/bower_components/jquery-oembed-all/jquery.oembed.js deleted file mode 100644 index 07ed993a5..000000000 --- a/bower_components/jquery-oembed-all/jquery.oembed.js +++ /dev/null @@ -1,1003 +0,0 @@ -/*! - * jquery oembed plugin - * - * Copyright (c) 2009 Richard Chamorro - * Licensed under the MIT license - * - * Orignal Author: Richard Chamorro - * Forked by Andrew Mee to Provide a slightly diffent kind of embedding experience - */ -(function ($) { - $.fn.oembed = function (url, options, embedAction) { - - settings = $.extend(true, $.fn.oembed.defaults, options); - var shortURLList = ["0rz.tw", "1link.in", "1url.com", "2.gp", "2big.at", "2tu.us", "3.ly", "307.to", "4ms.me", "4sq.com", "4url.cc", "6url.com", "7.ly", "a.gg", "a.nf", "aa.cx", "abcurl.net", - "ad.vu", "adf.ly", "adjix.com", "afx.cc", "all.fuseurl.com", "alturl.com", "amzn.to", "ar.gy", "arst.ch", "atu.ca", "azc.cc", "b23.ru", "b2l.me", "bacn.me", "bcool.bz", "binged.it", - "bit.ly", "bizj.us", "bloat.me", "bravo.ly", "bsa.ly", "budurl.com", "canurl.com", "chilp.it", "chzb.gr", "cl.lk", "cl.ly", "clck.ru", "cli.gs", "cliccami.info", - "clickthru.ca", "clop.in", "conta.cc", "cort.as", "cot.ag", "crks.me", "ctvr.us", "cutt.us", "dai.ly", "decenturl.com", "dfl8.me", "digbig.com", - "http:\/\/digg\.com\/[^\/]+$", "disq.us", "dld.bz", "dlvr.it", "do.my", "doiop.com", "dopen.us", "easyuri.com", "easyurl.net", "eepurl.com", "eweri.com", - "fa.by", "fav.me", "fb.me", "fbshare.me", "ff.im", "fff.to", "fire.to", "firsturl.de", "firsturl.net", "flic.kr", "flq.us", "fly2.ws", "fon.gs", "freak.to", - "fuseurl.com", "fuzzy.to", "fwd4.me", "fwib.net", "g.ro.lt", "gizmo.do", "gl.am", "go.9nl.com", "go.ign.com", "go.usa.gov", "goo.gl", "goshrink.com", "gurl.es", - "hex.io", "hiderefer.com", "hmm.ph", "href.in", "hsblinks.com", "htxt.it", "huff.to", "hulu.com", "hurl.me", "hurl.ws", "icanhaz.com", "idek.net", "ilix.in", "is.gd", - "its.my", "ix.lt", "j.mp", "jijr.com", "kl.am", "klck.me", "korta.nu", "krunchd.com", "l9k.net", "lat.ms", "liip.to", "liltext.com", "linkbee.com", "linkbun.ch", - "liurl.cn", "ln-s.net", "ln-s.ru", "lnk.gd", "lnk.ms", "lnkd.in", "lnkurl.com", "lru.jp", "lt.tl", "lurl.no", "macte.ch", "mash.to", "merky.de", "migre.me", "miniurl.com", - "minurl.fr", "mke.me", "moby.to", "moourl.com", "mrte.ch", "myloc.me", "myurl.in", "n.pr", "nbc.co", "nblo.gs", "nn.nf", "not.my", "notlong.com", "nsfw.in", - "nutshellurl.com", "nxy.in", "nyti.ms", "o-x.fr", "oc1.us", "om.ly", "omf.gd", "omoikane.net", "on.cnn.com", "on.mktw.net", "onforb.es", "orz.se", "ow.ly", "ping.fm", - "pli.gs", "pnt.me", "politi.co", "post.ly", "pp.gg", "profile.to", "ptiturl.com", "pub.vitrue.com", "qlnk.net", "qte.me", "qu.tc", "qy.fi", "r.ebay.com", "r.im", "rb6.me", "read.bi", - "readthis.ca", "reallytinyurl.com", "redir.ec", "redirects.ca", "redirx.com", "retwt.me", "ri.ms", "rickroll.it", "riz.gd", "rt.nu", "ru.ly", "rubyurl.com", "rurl.org", - "rww.tw", "s4c.in", "s7y.us", "safe.mn", "sameurl.com", "sdut.us", "shar.es", "shink.de", "shorl.com", "short.ie", "short.to", "shortlinks.co.uk", "shorturl.com", - "shout.to", "show.my", "shrinkify.com", "shrinkr.com", "shrt.fr", "shrt.st", "shrten.com", "shrunkin.com", "simurl.com", "slate.me", "smallr.com", "smsh.me", "smurl.name", - "sn.im", "snipr.com", "snipurl.com", "snurl.com", "sp2.ro", "spedr.com", "srnk.net", "srs.li", "starturl.com", "stks.co", "su.pr", "surl.co.uk", "surl.hu", "t.cn", "t.co", "t.lh.com", - "ta.gd", "tbd.ly", "tcrn.ch", "tgr.me", "tgr.ph", "tighturl.com", "tiniuri.com", "tiny.cc", "tiny.ly", "tiny.pl", "tinylink.in", "tinyuri.ca", "tinyurl.com", "tk.", "tl.gd", - "tmi.me", "tnij.org", "tnw.to", "tny.com", "to.ly", "togoto.us", "totc.us", "toysr.us", "tpm.ly", "tr.im", "tra.kz", "trunc.it", "twhub.com", "twirl.at", - "twitclicks.com", "twitterurl.net", "twitterurl.org", "twiturl.de", "twurl.cc", "twurl.nl", "u.mavrev.com", "u.nu", "u76.org", "ub0.cc", "ulu.lu", "updating.me", "ur1.ca", - "url.az", "url.co.uk", "url.ie", "url360.me", "url4.eu", "urlborg.com", "urlbrief.com", "urlcover.com", "urlcut.com", "urlenco.de", "urli.nl", "urls.im", - "urlshorteningservicefortwitter.com", "urlx.ie", "urlzen.com", "usat.ly", "use.my", "vb.ly", "vevo.ly", "vgn.am", "vl.am", "vm.lc", "w55.de", "wapo.st", "wapurl.co.uk", "wipi.es", - "wp.me", "x.vu", "xr.com", "xrl.in", "xrl.us", "xurl.es", "xurl.jp", "y.ahoo.it", "yatuc.com", "ye.pe", "yep.it", "yfrog.com", "yhoo.it", "yiyd.com", "youtu.be", "yuarel.com", - "z0p.de", "zi.ma", "zi.mu", "zipmyurl.com", "zud.me", "zurl.ws", "zz.gd", "zzang.kr", "›.ws", "✩.ws", "✿.ws", "❥.ws", "➔.ws", "➞.ws", "➡.ws", "➨.ws", "➯.ws", "➹.ws", "➽.ws"]; - - if ($('#jqoembeddata').length === 0) $('').appendTo('body'); - - return this.each(function () { - var container = $(this), - resourceURL = (url && (!url.indexOf('http://') || !url.indexOf('https://'))) ? url : container.attr("href"), - provider; - - if (embedAction) { - settings.onEmbed = embedAction; - } - else if (!settings.onEmbed) { - settings.onEmbed = function (oembedData) { - $.fn.oembed.insertCode(this, settings.embedMethod, oembedData); - }; - } - - if (resourceURL !== null && resourceURL !== undefined) { - //Check if shorten URL - for (var j = 0, l = shortURLList.length; j < l; j++) { - var regExp = new RegExp('://' + shortURLList[j] + '/', "i"); - - if (resourceURL.match(regExp) !== null) { - //AJAX to http://api.longurl.org/v2/expand?url=http://bit.ly/JATvIs&format=json&callback=hhh - var ajaxopts = $.extend({ - url: "http://api.longurl.org/v2/expand", - dataType: 'jsonp', - data: { - url: resourceURL, - format: "json" - //callback: "?" - }, - success: function (data) { - //this = $.fn.oembed; - resourceURL = data['long-url']; - provider = $.fn.oembed.getOEmbedProvider(data['long-url']); - - //remove fallback - if (!!settings.fallback === false) { - provider = provider.name.toLowerCase() === 'opengraph' ? null : provider; - } - - if (provider !== null) { - provider.params = getNormalizedParams(settings[provider.name]) || {}; - provider.maxWidth = settings.maxWidth; - provider.maxHeight = settings.maxHeight; - embedCode(container, resourceURL, provider); - } else { - settings.onProviderNotFound.call(container, resourceURL); - } - }, - error: function () { - settings.onError.call(container, resourceURL) - } - }, settings.longUrlAjaxOptions || settings.ajaxOptions || {}); - - $.ajax(ajaxopts); - - return container; - } - } - provider = $.fn.oembed.getOEmbedProvider(resourceURL); - - //remove fallback - if (!!settings.fallback === false) { - provider = provider.name.toLowerCase() === 'opengraph' ? null : provider; - } - if (provider !== null) { - provider.params = getNormalizedParams(settings[provider.name]) || {}; - provider.maxWidth = settings.maxWidth; - provider.maxHeight = settings.maxHeight; - embedCode(container, resourceURL, provider); - } else { - settings.onProviderNotFound.call(container, resourceURL); - } - } - return container; - }); - }; - - var settings; - - // Plugin defaults - $.fn.oembed.defaults = { - fallback: true, - maxWidth: null, - maxHeight: null, - includeHandle: true, - embedMethod: 'auto', - // "auto", "append", "fill" - onProviderNotFound: function () { - }, - beforeEmbed: function () { - }, - afterEmbed: function () { - }, - onEmbed: false, - onError: function (a, b, c, d) { - console.log('err:', a, b, c, d) - }, - ajaxOptions: {}, - longUrlAjaxOptions: {} - }; - - /* Private functions */ - function rand(length, current) { //Found on http://stackoverflow.com/questions/1349404/generate-a-string-of-5-random-characters-in-javascript - current = current ? current : ''; - return length ? rand(--length, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(Math.random() * 60)) + current) : current; - } - - function getRequestUrl(provider, externalUrl) { - var url = provider.apiendpoint, - qs = "", - i; - url += (url.indexOf("?") <= 0) ? "?" : "&"; - url = url.replace('#', '%23'); - - if (provider.maxWidth !== null && (typeof provider.params.maxwidth === 'undefined' || provider.params.maxwidth === null)) { - provider.params.maxwidth = provider.maxWidth; - } - - if (provider.maxHeight !== null && (typeof provider.params.maxheight === 'undefined' || provider.params.maxheight === null)) { - provider.params.maxheight = provider.maxHeight; - } - - for (i in provider.params) { - // We don't want them to jack everything up by changing the callback parameter - if (i == provider.callbackparameter) - continue; - - // allows the options to be set to null, don't send null values to the server as parameters - if (provider.params[i] !== null) - qs += "&" + escape(i) + "=" + provider.params[i]; - } - - url += "format=" + provider.format + "&url=" + escape(externalUrl) + qs; - if (provider.dataType != 'json') - url += "&" + provider.callbackparameter + "=?"; - - return url; - } - - function success(oembedData, externalUrl, container) { - $('#jqoembeddata').data(externalUrl, oembedData.code); - settings.beforeEmbed.call(container, oembedData); - settings.onEmbed.call(container, oembedData); - settings.afterEmbed.call(container, oembedData); - } - - function embedCode(container, externalUrl, embedProvider) { - if ($('#jqoembeddata').data(externalUrl) != undefined && embedProvider.embedtag.tag != 'iframe') { - var oembedData = {code: $('#jqoembeddata').data(externalUrl)}; - success(oembedData, externalUrl, container); - } else if (embedProvider.yql) { - var from = embedProvider.yql.from || 'htmlstring'; - var url = embedProvider.yql.url ? embedProvider.yql.url(externalUrl) : externalUrl; - var query = 'SELECT * FROM ' + from - + ' WHERE url="' + (url) + '"' - + " and " + (/html/.test(from) ? 'xpath' : 'itemPath') + "='" + (embedProvider.yql.xpath || '/') + "'"; - if (from == 'html') - query += " and compat='html5'"; - var ajaxopts = $.extend({ - url: "//query.yahooapis.com/v1/public/yql", - dataType: 'jsonp', - data: { - q: query, - format: "json", - env: 'store://datatables.org/alltableswithkeys', - callback: "?" - }, - success: function (data) { - var result; - - if (embedProvider.yql.xpath && embedProvider.yql.xpath == '//meta|//title|//link') { - var meta = {}; - - if (data.query == null) { - data.query = {}; - } - if (data.query.results == null) { - data.query.results = {"meta": []}; - } - for (var i = 0, l = data.query.results.meta.length; i < l; i++) { - var name = data.query.results.meta[i].name || data.query.results.meta[i].property || null; - if (name == null)continue; - meta[name.toLowerCase()] = data.query.results.meta[i].content; - } - if (!meta.hasOwnProperty("title") || !meta.hasOwnProperty("og:title")) { - if (data.query.results.title != null) { - meta.title = data.query.results.title; - } - } - if (!meta.hasOwnProperty("og:image") && data.query.results.hasOwnProperty("link")) { - for (var i = 0, l = data.query.results.link.length; i < l; i++) { - if (data.query.results.link[i].hasOwnProperty("rel")) { - if (data.query.results.link[i].rel == "apple-touch-icon") { - if (data.query.results.link[i].href.charAt(0) == "/") { - meta["og:image"] = url.match(/^(([a-z]+:)?(\/\/)?[^\/]+\/).*$/)[1] + data.query.results.link[i].href; - } else { - meta["og:image"] = data.query.results.link[i].href; - } - } - } - } - } - result = embedProvider.yql.datareturn(meta); - } else { - result = embedProvider.yql.datareturn ? embedProvider.yql.datareturn(data.query.results) : data.query.results.result; - } - if (result === false)return; - var oembedData = $.extend({}, result); - oembedData.code = result; - success(oembedData, externalUrl, container); - }, - error: settings.onError.call(container, externalUrl, embedProvider) - }, settings.ajaxOptions || {}); - $.ajax(ajaxopts); - } else if (embedProvider.templateRegex) { - if (embedProvider.embedtag.tag !== '') { - var flashvars = embedProvider.embedtag.flashvars || ''; - var tag = embedProvider.embedtag.tag || 'embed'; - var width = embedProvider.embedtag.width || 'auto'; - var height = embedProvider.embedtag.height || 'auto'; - var src = externalUrl.replace(embedProvider.templateRegex, embedProvider.apiendpoint); - - if (!embedProvider.nocache) { - src += '&jqoemcache=' + rand(5); - } - - if (embedProvider.apikey) { - src = src.replace('_APIKEY_', settings.apikeys[embedProvider.name]); - } - - var code = $('<' + tag + '/>').attr('src', src).attr('width', width) - .attr('height', height) - .attr('allowfullscreen', embedProvider.embedtag.allowfullscreen || 'true') - .attr('allowscriptaccess', embedProvider.embedtag.allowfullscreen || 'always') - .css('max-height', settings.maxHeight || 'auto') - .css('max-width', settings.maxWidth || 'auto'); - - if (tag == 'embed') { - code.attr('type', embedProvider.embedtag.type || "application/x-shockwave-flash") - .attr('flashvars', externalUrl.replace(embedProvider.templateRegex, flashvars)); - } - - if (tag == 'iframe') { - code.attr('scrolling', embedProvider.embedtag.scrolling || "no") - .attr('frameborder', embedProvider.embedtag.frameborder || "0"); - - } - - success({code: code}, externalUrl, container); - } else if (embedProvider.apiendpoint) { - //Add APIkey if true - if (embedProvider.apikey) - embedProvider.apiendpoint = embedProvider.apiendpoint.replace('_APIKEY_', settings.apikeys[embedProvider.name]); - - ajaxopts = $.extend({ - url: externalUrl.replace(embedProvider.templateRegex, embedProvider.apiendpoint), - dataType: 'jsonp', - success: function (data) { - var oembedData = $.extend({}, data); - oembedData.code = embedProvider.templateData(data); - success(oembedData, externalUrl, container); - }, - error: settings.onError.call(container, externalUrl, embedProvider) - }, settings.ajaxOptions || {}); - $.ajax(ajaxopts); - } else { - success({code: externalUrl.replace(embedProvider.templateRegex, embedProvider.template)}, externalUrl, container); - } - } else { - - var requestUrl = getRequestUrl(embedProvider, externalUrl); - ajaxopts = $.extend({ - url: requestUrl, - dataType: embedProvider.dataType || 'jsonp', - success: function (data) { - var oembedData = $.extend({}, data); - switch (oembedData.type) { - case "file": //Deviant Art has this - case "photo": - oembedData.code = $.fn.oembed.getPhotoCode(externalUrl, oembedData); - break; - case "video": - case "rich": - oembedData.code = $.fn.oembed.getRichCode(externalUrl, oembedData); - break; - default: - oembedData.code = $.fn.oembed.getGenericCode(externalUrl, oembedData); - break; - } - success(oembedData, externalUrl, container); - }, - error: settings.onError.call(container, externalUrl, embedProvider) - }, settings.ajaxOptions || {}); - $.ajax(ajaxopts); - } - } - - function getNormalizedParams(params) { - if (params === null) return null; - var key, normalizedParams = {}; - for (key in params) { - if (key !== null) normalizedParams[key.toLowerCase()] = params[key]; - } - return normalizedParams; - } - - /* Public functions */ - $.fn.oembed.insertCode = function (container, embedMethod, oembedData) { - if (oembedData === null) - return; - - if (embedMethod === 'auto' && container.attr('href') !== null) { - embedMethod = 'append'; - } else if (embedMethod == 'auto') { - embedMethod = 'replace'; - } - - switch (embedMethod) { - case "replace": - container.replaceWith(oembedData.code); - break; - case "fill": - container.html(oembedData.code); - break; - case "append": - container.wrap('
      '); - var oembedContainer = container.parent(); - if (settings.includeHandle) { - $('').insertBefore(container).click(function () { - var encodedString = encodeURIComponent($(this).text()); - $(this).html((encodedString == '%E2%86%91') ? '↓' : '↑'); - $(this).parent().children().last().toggle(); - }); - } - oembedContainer.append('
      '); - try { - oembedData.code.clone().appendTo(oembedContainer); - } catch (e) { - oembedContainer.append(oembedData.code); - } - /* Make videos semi-responsive - * If parent div width less than embeded iframe video then iframe gets shrunk to fit smaller width - * If parent div width greater thans embed iframe use the max widht - * - works on youtubes and vimeo - */ - if (settings.maxWidth) { - var post_width = oembedContainer.parent().width(); - if (post_width < settings.maxWidth) { - var iframe_width_orig = $('iframe', oembedContainer).width(); - var iframe_height_orig = $('iframe', oembedContainer).height(); - var ratio = iframe_width_orig / post_width; - $('iframe', oembedContainer).width(iframe_width_orig / ratio); - $('iframe', oembedContainer).height(iframe_height_orig / ratio); - } else { - if (settings.maxWidth) { - $('iframe', oembedContainer).width(settings.maxWidth); - } - if (settings.maxHeight) { - $('iframe', oembedContainer).height(settings.maxHeight); - } - } - } - break; - } - }; - - $.fn.oembed.getPhotoCode = function (url, oembedData) { - var code; - var alt = oembedData.title ? oembedData.title : ''; - alt += oembedData.author_name ? ' - ' + oembedData.author_name : ''; - alt += oembedData.provider_name ? ' - ' + oembedData.provider_name : ''; - - if (oembedData.url) { - code = '
      ' + alt + '
      '; - } else if (oembedData.thumbnail_url) { - var newURL = oembedData.thumbnail_url.replace('_s', '_b'); - code = '
      ' + alt + '
      '; - } else { - code = '
      Error loading this picture
      '; - } - - if (oembedData.html) { - code += "
      " + oembedData.html + "
      "; - } - - return code; - }; - - $.fn.oembed.getRichCode = function (url, oembedData) { - return oembedData.html; - }; - - $.fn.oembed.getGenericCode = function (url, oembedData) { - var title = ((oembedData.title) && (oembedData.title !== null)) ? oembedData.title : url; - var code = '' + title + ''; - - if (oembedData.html) { - code += "
      " + oembedData.html + "
      "; - } - - return code; - }; - - $.fn.oembed.getOEmbedProvider = function (url) { - for (var i = 0; i < $.fn.oembed.providers.length; i++) { - for (var j = 0, l = $.fn.oembed.providers[i].urlschemes.length; j < l; j++) { - var regExp = new RegExp($.fn.oembed.providers[i].urlschemes[j], "i"); - - if (url.match(regExp) !== null) - return $.fn.oembed.providers[i]; - } - } - return null; - }; - - // Constructor Function for OEmbedProvider Class. - $.fn.oembed.OEmbedProvider = function (name, type, urlschemesarray, apiendpoint, extraSettings) { - this.name = name; - this.type = type; // "photo", "video", "link", "rich", null - this.urlschemes = urlschemesarray; - this.apiendpoint = apiendpoint; - this.maxWidth = 500; - this.maxHeight = 400; - extraSettings = extraSettings || {}; - - if (extraSettings.useYQL) { - - if (extraSettings.useYQL == 'xml') { - extraSettings.yql = { - xpath: "//oembed/html", - from: 'xml', - apiendpoint: this.apiendpoint, - url: function (externalurl) { - return this.apiendpoint + '?format=xml&url=' + externalurl - }, - datareturn: function (results) { - return results.html.replace(/.*\[CDATA\[(.*)\]\]>$/, '$1') || '' - } - }; - } else { - extraSettings.yql = { - from: 'json', - apiendpoint: this.apiendpoint, - url: function (externalurl) { - return this.apiendpoint + '?format=json&url=' + externalurl - }, - datareturn: function (results) { - if (results.json.type != 'video' && (results.json.url || results.json.thumbnail_url)) { - return ''; - } - return results.json.html || '' - } - }; - } - this.apiendpoint = null; - } - - - for (var property in extraSettings) { - this[property] = extraSettings[property]; - } - - this.format = this.format || 'json'; - this.callbackparameter = this.callbackparameter || "callback"; - this.embedtag = this.embedtag || {tag: ""}; - - - }; - - /* - * Function to update existing providers - * - * @param {String} name The name of the provider - * @param {String} type The type of the provider can be "file", "photo", "video", "rich" - * @param {String} urlshemesarray Array of url of the provider - * @param {String} apiendpoint The endpoint of the provider - * @param {String} extraSettings Extra settings of the provider - */ - $.fn.updateOEmbedProvider = function (name, type, urlschemesarray, apiendpoint, extraSettings) { - for (var i = 0; i < $.fn.oembed.providers.length; i++) { - if ($.fn.oembed.providers[i].name === name) { - if (type !== null) { - $.fn.oembed.providers[i].type = type; - } - if (urlschemesarray !== null) { - $.fn.oembed.providers[i].urlschemes = urlschemesarray; - } - if (apiendpoint !== null) { - $.fn.oembed.providers[i].apiendpoint = apiendpoint; - } - if (extraSettings !== null) { - $.fn.oembed.providers[i].extraSettings = extraSettings; - for (var property in extraSettings) { - if (property !== null && extraSettings[property] !== null) { - $.fn.oembed.providers[i][property] = extraSettings[property]; - } - } - } - } - } - }; - - /* Native & common providers */ - $.fn.oembed.providers = [ - - //Video - new $.fn.oembed.OEmbedProvider("youtube", "video", ["youtube\\.com/watch.+v=[\\w-]+&?", "youtu\\.be/[\\w-]+", "youtube.com/embed"], '//www.youtube.com/embed/$1?wmode=transparent', { - templateRegex: /.*(?:v\=|be\/|embed\/)([\w\-]+)&?.*/, embedtag: {tag: 'iframe', width: '425', height: '349'} - }), - - //new $.fn.oembed.OEmbedProvider("youtube", "video", ["youtube\\.com/watch.+v=[\\w-]+&?", "youtu\\.be/[\\w-]+"], 'http://www.youtube.com/oembed', {useYQL:'json'}), - //new $.fn.oembed.OEmbedProvider("youtubeiframe", "video", ["youtube.com/embed"], "$1?wmode=transparent", - // {templateRegex:/(.*)/,embedtag : {tag: 'iframe', width:'425',height: '349'}}), - new $.fn.oembed.OEmbedProvider("wistia", "video", ["wistia.com/medias/.+", "wistia.com/m/.+", "wistia.com/embed/.+", "wi.st/m/.+", "wi.st/embed/.+"], 'http://fast.wistia.com/oembed', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("xtranormal", "video", ["xtranormal\\.com/watch/.+"], "http://www.xtranormal.com/xtraplayr/$1/$2", { - templateRegex: /.*com\/watch\/([\w\-]+)\/([\w\-]+).*/, embedtag: {tag: 'iframe', width: '320', height: '269'}}), - new $.fn.oembed.OEmbedProvider("scivee", "video", ["scivee.tv/node/.+"], "http://www.scivee.tv/flash/embedCast.swf?", { - templateRegex: /.*tv\/node\/(.+)/, embedtag: {width: '480', height: '400', flashvars: "id=$1&type=3"}}), - new $.fn.oembed.OEmbedProvider("veoh", "video", ["veoh.com/watch/.+"], "http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1337&permalinkId=$1&player=videodetailsembedded&videoAutoPlay=0&id=anonymous", { - templateRegex: /.*watch\/([^\?]+).*/, embedtag: {width: '410', height: '341'}}), - new $.fn.oembed.OEmbedProvider("gametrailers", "video", ["gametrailers\\.com/video/.+"], "http://media.mtvnservices.com/mgid:moses:video:gametrailers.com:$2", { - templateRegex: /.*com\/video\/([\w\-]+)\/([\w\-]+).*/, embedtag: {width: '512', height: '288' }}), - new $.fn.oembed.OEmbedProvider("funnyordie", "video", ["funnyordie\\.com/videos/.+"], "http://player.ordienetworks.com/flash/fodplayer.swf?", { - templateRegex: /.*videos\/([^\/]+)\/([^\/]+)?/, embedtag: {width: 512, height: 328, flashvars: "key=$1"}}), - new $.fn.oembed.OEmbedProvider("colledgehumour", "video", ["collegehumor\\.com/video/.+"], "http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=$1&use_node_id=true&fullscreen=1", - {templateRegex: /.*video\/([^\/]+).*/, embedtag: {width: 600, height: 338}}), - new $.fn.oembed.OEmbedProvider("metacafe", "video", ["metacafe\\.com/watch/.+"], "http://www.metacafe.com/fplayer/$1/$2.swf", - {templateRegex: /.*watch\/(\d+)\/(\w+)\/.*/, embedtag: {width: 400, height: 345}}), - new $.fn.oembed.OEmbedProvider("bambuser", "video", ["bambuser\\.com\/channel\/.*\/broadcast\/.*"], "http://static.bambuser.com/r/player.swf?vid=$1", - {templateRegex: /.*bambuser\.com\/channel\/.*\/broadcast\/(\w+).*/, embedtag: {width: 512, height: 339 }}), - new $.fn.oembed.OEmbedProvider("twitvid", "video", ["twitvid\\.com/.+"], "http://www.twitvid.com/embed.php?guid=$1&autoplay=0", - {templateRegex: /.*twitvid\.com\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }}), - new $.fn.oembed.OEmbedProvider("aniboom", "video", ["aniboom\\.com/animation-video/.+"], "http://api.aniboom.com/e/$1", - {templateRegex: /.*animation-video\/(\d+).*/, embedtag: {width: 594, height: 334}}), - new $.fn.oembed.OEmbedProvider("vzaar", "video", ["vzaar\\.com/videos/.+", "vzaar.tv/.+"], "http://view.vzaar.com/$1/player?", - {templateRegex: /.*\/(\d+).*/, embedtag: {tag: 'iframe', width: 576, height: 324 }}), - new $.fn.oembed.OEmbedProvider("snotr", "video", ["snotr\\.com/video/.+"], "http://www.snotr.com/embed/$1", - {templateRegex: /.*\/(\d+).*/, embedtag: {tag: 'iframe', width: 400, height: 330}, nocache: 1 }), - new $.fn.oembed.OEmbedProvider("youku", "video", ["v.youku.com/v_show/id_.+"], "http://player.youku.com/player.php/sid/$1/v.swf", - {templateRegex: /.*id_(.+)\.html.*/, embedtag: {width: 480, height: 400}, nocache: 1 }), - new $.fn.oembed.OEmbedProvider("tudou", "video", ["tudou.com/programs/view/.+\/"], "http://www.tudou.com/v/$1/v.swf", - {templateRegex: /.*view\/(.+)\//, embedtag: {width: 480, height: 400}, nocache: 1 }), - new $.fn.oembed.OEmbedProvider("embedr", "video", ["embedr\\.com/playlist/.+"], "http://embedr.com/swf/slider/$1/425/520/default/false/std?", - {templateRegex: /.*playlist\/([^\/]+).*/, embedtag: {width: 425, height: 520}}), - new $.fn.oembed.OEmbedProvider("blip", "video", ["blip\\.tv/.+"], "//blip.tv/oembed/"), - new $.fn.oembed.OEmbedProvider("minoto-video", "video", ["http://api.minoto-video.com/publishers/.+/videos/.+", "http://dashboard.minoto-video.com/main/video/details/.+", "http://embed.minoto-video.com/.+"], "http://api.minoto-video.com/services/oembed.json", {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("animoto", "video", ["animoto.com/play/.+"], "http://animoto.com/services/oembed"), - new $.fn.oembed.OEmbedProvider("hulu", "video", ["hulu\\.com/watch/.*"], "//www.hulu.com/api/oembed.json"), - new $.fn.oembed.OEmbedProvider("ustream", "video", ["ustream\\.tv/recorded/.*"], "http://www.ustream.tv/oembed", {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("videojug", "video", ["videojug\\.com/(film|payer|interview).*"], "http://www.videojug.com/oembed.json", {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("sapo", "video", ["videos\\.sapo\\.pt/.*"], "http://videos.sapo.pt/oembed", {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("vodpod", "video", ["vodpod.com/watch/.*"], "http://vodpod.com/oembed.js", {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("vimeo", "video", ["www\.vimeo\.com\/groups\/.*\/videos\/.*", "www\.vimeo\.com\/.*", "vimeo\.com\/groups\/.*\/videos\/.*", "vimeo\.com\/.*"], "//vimeo.com/api/oembed.json"), - new $.fn.oembed.OEmbedProvider("dailymotion", "video", ["dailymotion\\.com/.+"], '//www.dailymotion.com/services/oembed'), - new $.fn.oembed.OEmbedProvider("5min", "video", ["www\\.5min\\.com/.+"], 'http://api.5min.com/oembed.xml', {useYQL: 'xml'}), - new $.fn.oembed.OEmbedProvider("National Film Board of Canada", "video", ["nfb\\.ca/film/.+"], 'http://www.nfb.ca/remote/services/oembed/', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("qik", "video", ["qik\\.com/\\w+"], 'http://qik.com/api/oembed.json', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("revision3", "video", ["revision3\\.com"], "http://revision3.com/api/oembed/"), - new $.fn.oembed.OEmbedProvider("dotsub", "video", ["dotsub\\.com/view/.+"], "http://dotsub.com/services/oembed", {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("clikthrough", "video", ["clikthrough\\.com/theater/video/\\d+"], "http://clikthrough.com/services/oembed"), - new $.fn.oembed.OEmbedProvider("Kinomap", "video", ["kinomap\\.com/.+"], "http://www.kinomap.com/oembed"), - new $.fn.oembed.OEmbedProvider("VHX", "video", ["vhx.tv/.+"], "http://vhx.tv/services/oembed.json"), - new $.fn.oembed.OEmbedProvider("bambuser", "video", ["bambuser.com/.+"], "http://api.bambuser.com/oembed/iframe.json"), - new $.fn.oembed.OEmbedProvider("justin.tv", "video", ["justin.tv/.+"], 'http://api.justin.tv/api/embed/from_url.json', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("vine", "video", ["vine.co/v/.*"], null, - { - templateRegex: /https?:\/\/w?w?w?.?vine\.co\/v\/([a-zA-Z0-9]*).*/, - template: '' + - '', - nocache: 1 - }), - new $.fn.oembed.OEmbedProvider("boxofficebuz", "video", ["boxofficebuz\\.com\\/embed/.+"], "http://boxofficebuz.com/embed/$1/$2", {templateRegex: [/.*boxofficebuz\.com\/embed\/(\w+)\/([\w*\-*]+)/], embedtag: {tag: 'iframe', width: 480, height: 360 }}), - new $.fn.oembed.OEmbedProvider("clipsyndicate", "video", ["clipsyndicate\\.com/video/play/.+", "clipsyndicate\\.com/embed/iframe\?.+"], "http://eplayer.clipsyndicate.com/embed/iframe?pf_id=1&show_title=0&va_id=$1&windows=1", {templateRegex: [/.*www\.clipsyndicate\.com\/video\/play\/(\w+)\/.*/, /.*eplayer\.clipsyndicate\.com\/embed\/iframe\?.*va_id=(\w+).*.*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("coub", "video", ["coub\\.com/.+"], "http://www.coub.com/embed/$1?muted=false&autostart=false&originalSize=false&hideTopBar=false&noSiteButtons=false&startWithHD=false", {templateRegex: [/.*coub\.com\/embed\/(\w+)\?*.*/, /.*coub\.com\/view\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("discoverychannel", "video", ["snagplayer\\.video\\.dp\\.discovery\\.com/.+"], "http://snagplayer.video.dp.discovery.com/$1/snag-it-player.htm?auto=no", {templateRegex: [/.*snagplayer\.video\.dp\.discovery\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }}), - new $.fn.oembed.OEmbedProvider("telly", "video", ["telly\\.com/.+"], "http://www.telly.com/embed.php?guid=$1&autoplay=0", {templateRegex: [/.*telly\.com\/embed\.php\?guid=(\w+).*/, /.*telly\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }}), - new $.fn.oembed.OEmbedProvider("minilogs", "video", ["minilogs\\.com/.+"], "http://www.minilogs.com/e/$1", {templateRegex: [/.*minilogs\.com\/e\/(\w+).*/, /.*minilogs\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("viddy", "video", ["viddy\\.com/.+"], "http://www.viddy.com/embed/video/$1", {templateRegex: [/.*viddy\.com\/embed\/video\/(\.*)/, /.*viddy\.com\/video\/(\.*)/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("worldstarhiphop", "video", ["worldstarhiphop\\.com\/embed/.+"], "http://www.worldstarhiphop.com/embed/$1", {templateRegex: /.*worldstarhiphop\.com\/embed\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("zapiks", "video", ["zapiks\\.fr\/.+"], "http://www.zapiks.fr/index.php?action=playerIframe&media_id=$1&autoStart=fals", {templateRegex: /.*zapiks\.fr\/index.php\?[\w\=\&]*media_id=(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - - //Audio - new $.fn.oembed.OEmbedProvider("official.fm", "rich", ["official.fm/.+"], 'http://official.fm/services/oembed', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("chirbit", "rich", ["chirb.it/.+"], 'http://chirb.it/oembed.json', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("chirbit", "audio", ["chirb\\.it/.+"], "http://chirb.it/wp/$1", {templateRegex: [/.*chirb\.it\/wp\/(\w+).*/, /.*chirb\.it\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("Huffduffer", "rich", ["huffduffer.com/[-.\\w@]+/\\d+"], "http://huffduffer.com/oembed"), - new $.fn.oembed.OEmbedProvider("Spotify", "rich", ["open.spotify.com/(track|album|user)/"], "https://embed.spotify.com/oembed/"), - new $.fn.oembed.OEmbedProvider("shoudio", "rich", ["shoudio.com/.+", "shoud.io/.+"], "http://shoudio.com/api/oembed"), - new $.fn.oembed.OEmbedProvider("mixcloud", "rich", ["mixcloud.com/.+"], 'http://www.mixcloud.com/oembed/', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("rdio.com", "rich", ["rd.io/.+", "rdio.com"], "http://www.rdio.com/api/oembed/"), - new $.fn.oembed.OEmbedProvider("Soundcloud", "rich", ["soundcloud.com/.+", "snd.sc/.+"], "//soundcloud.com/oembed", {format: 'js'}), - new $.fn.oembed.OEmbedProvider("bandcamp", "rich", ["bandcamp\\.com/album/.+"], null, - { - yql: { - xpath: "//meta[contains(@content, \\'EmbeddedPlayer\\')]", - from: 'html', - datareturn: function (results) { - return results.meta ? '' : false; - } - } - }), - - //Photo - new $.fn.oembed.OEmbedProvider("deviantart", "photo", ["deviantart.com/.+", "fav.me/.+", "deviantart.com/.+"], "//backend.deviantart.com/oembed", {format: 'jsonp'}), - new $.fn.oembed.OEmbedProvider("skitch", "photo", ["skitch.com/.+"], null, - { - yql: { - xpath: "json", - from: 'json', - url: function (externalurl) { - return 'http://skitch.com/oembed/?format=json&url=' + externalurl - }, - datareturn: function (data) { - return $.fn.oembed.getPhotoCode(data.json.url, data.json); - } - } - }), - new $.fn.oembed.OEmbedProvider("mobypicture", "photo", ["mobypicture.com/user/.+/view/.+", "moby.to/.+"], "http://api.mobypicture.com/oEmbed"), - new $.fn.oembed.OEmbedProvider("flickr", "photo", ["flickr\\.com/photos/.+"], "//flickr.com/services/oembed", {callbackparameter: 'jsoncallback'}), - new $.fn.oembed.OEmbedProvider("photobucket", "photo", ["photobucket\\.com/(albums|groups)/.+"], "http://photobucket.com/oembed/"), - new $.fn.oembed.OEmbedProvider("instagram", "photo", ["instagr\\.?am(\\.com)?/.+"], "//api.instagram.com/oembed"), - //new $.fn.oembed.OEmbedProvider("yfrog", "photo", ["yfrog\\.(com|ru|com\\.tr|it|fr|co\\.il|co\\.uk|com\\.pl|pl|eu|us)/.+"], "http://www.yfrog.com/api/oembed",{useYQL:"json"}), - new $.fn.oembed.OEmbedProvider("SmugMug", "photo", ["smugmug.com/[-.\\w@]+/.+"], "http://api.smugmug.com/services/oembed/"), - new $.fn.oembed.OEmbedProvider("dribbble", "photo", ["dribbble.com/shots/.+"], "http://api.dribbble.com/shots/$1?callback=?", - { - templateRegex: /.*shots\/([\d]+).*/, - templateData: function (data) { - if (!data.image_teaser_url) { - return false; - } - return ''; - } - }), - new $.fn.oembed.OEmbedProvider("chart.ly", "photo", ["chart\\.ly/[a-z0-9]{6,8}"], "http://chart.ly/uploads/large_$1.png", - {templateRegex: /.*ly\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}), - //new $.fn.oembed.OEmbedProvider("stocktwits.com", "photo", ["stocktwits\\.com/message/.+"], "http://charts.stocktwits.com/production/original_$1.png?", - // { templateRegex: /.*message\/([^\/]+).*/, embedtag: { tag: 'img'},nocache:1 }), - new $.fn.oembed.OEmbedProvider("circuitlab", "photo", ["circuitlab.com/circuit/.+"], "https://www.circuitlab.com/circuit/$1/screenshot/540x405/", - {templateRegex: /.*circuit\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}), - new $.fn.oembed.OEmbedProvider("23hq", "photo", ["23hq.com/[-.\\w@]+/photo/.+"], "http://www.23hq.com/23/oembed", {useYQL: "json"}), - new $.fn.oembed.OEmbedProvider("img.ly", "photo", ["img\\.ly/.+"], "//img.ly/show/thumb/$1", - {templateRegex: /.*ly\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}), - new $.fn.oembed.OEmbedProvider("twitgoo.com", "photo", ["twitgoo\\.com/.+"], "http://twitgoo.com/show/thumb/$1", - {templateRegex: /.*com\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}), - new $.fn.oembed.OEmbedProvider("imgur.com", "photo", ["imgur\\.com/gallery/.+"], "http://imgur.com/$1l.jpg", - {templateRegex: /.*gallery\/([^\/]+).*/, embedtag: {tag: 'img'}, nocache: 1}), - new $.fn.oembed.OEmbedProvider("visual.ly", "rich", ["visual\\.ly/.+"], null, - { - yql: { - xpath: "//a[@id=\\'gc_article_graphic_image\\']/img", - from: 'htmlstring' - } - }), - new $.fn.oembed.OEmbedProvider("achewood", "photo", ["achewood\\.com\\/index.php\\?date=.+"], "http://www.achewood.com/comic.php?date=$1", {templateRegex: /.*achewood\.com\/index.php\?date=(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("fotokritik", "photo", ["fotokritik\\.com/.+"], "http://www.fotokritik.com/embed/$1", {templateRegex: [/.*fotokritik\.com\/embed\/(\w+).*/, /.*fotokritik\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("giflike", "photo", ["giflike\\.com/.+"], "http://www.giflike.com/embed/$1", {templateRegex: [/.*giflike\.com\/embed\/(\w+).*/, /.*giflike\.com\/a\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - - //Rich - new $.fn.oembed.OEmbedProvider("twitter", "rich", ["twitter.com/.+"], "https://api.twitter.com/1/statuses/oembed.json"), - new $.fn.oembed.OEmbedProvider("gmep", "rich", ["gmep.imeducate.com/.*", "gmep.org/.*"], "http://gmep.org/oembed.json"), - new $.fn.oembed.OEmbedProvider("urtak", "rich", ["urtak.com/(u|clr)/.+"], "http://oembed.urtak.com/1/oembed"), - new $.fn.oembed.OEmbedProvider("cacoo", "rich", ["cacoo.com/.+"], "http://cacoo.com/oembed.json"), - new $.fn.oembed.OEmbedProvider("dailymile", "rich", ["dailymile.com/people/.*/entries/.*"], "http://api.dailymile.com/oembed"), - new $.fn.oembed.OEmbedProvider("documentcloud", "rich", ["documentcloud.org/documents/.+"], "https://www.documentcloud.org/api/oembed.json"), - new $.fn.oembed.OEmbedProvider("dipity", "rich", ["dipity.com/timeline/.+"], 'http://www.dipity.com/oembed/timeline/', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("sketchfab", "rich", ["sketchfab.com/show/.+"], 'http://sketchfab.com/oembed', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("speakerdeck", "rich", ["speakerdeck.com/.+"], 'http://speakerdeck.com/oembed.json', {useYQL: 'json'}), - new $.fn.oembed.OEmbedProvider("popplet", "rich", ["popplet.com/app/.*"], "http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1", - { - templateRegex: /.*#\/([^\/]+).*/, - embedtag: { - width: 460, - height: 460 - } - }), - - new $.fn.oembed.OEmbedProvider("pearltrees", "rich", ["pearltrees.com/.*"], "http://cdn.pearltrees.com/s/embed/getApp?", - { - templateRegex: /.*N-f=1_(\d+).*N-p=(\d+).*/, - embedtag: { - width: 460, - height: 460, - flashvars: "lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF" - } - }), - - new $.fn.oembed.OEmbedProvider("prezi", "rich", ["prezi.com/.*"], "//prezi.com/bin/preziloader.swf?", - { - templateRegex: /.*com\/([^\/]+)\/.*/, - embedtag: { - width: 550, - height: 400, - flashvars: "prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0" - } - }), - - new $.fn.oembed.OEmbedProvider("tourwrist", "rich", ["tourwrist.com/tours/.+"], null, - { - templateRegex: /.*tours.([\d]+).*/, - template: function (wm, tourid) { - setTimeout(function () { - if (loadEmbeds)loadEmbeds(); - }, 2000); - return "
      "; - } - }), - - new $.fn.oembed.OEmbedProvider("meetup", "rich", ["meetup\\.(com|ps)/.+"], "http://api.meetup.com/oembed"), - new $.fn.oembed.OEmbedProvider("ebay", "rich", ["ebay\\.*"], "http://togo.ebay.com/togo/togo.swf?2008013100", - { - templateRegex: /.*\/([^\/]+)\/(\d{10,13}).*/, - embedtag: { - width: 355, - height: 300, - flashvars: "base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1" - } - }), - new $.fn.oembed.OEmbedProvider("wikipedia", "rich", ["wikipedia.org/wiki/.+"], "http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json§ion=0&callback=?", { - templateRegex: /.*\/\/([\w]+).*\/wiki\/([^\/]+).*/, - templateData: function (data) { - if (!data.parse) - return false; - var text = data.parse['text']['*'].replace(/href="\/wiki/g, 'href="http://en.wikipedia.org/wiki'); - return ''; - } - }), - new $.fn.oembed.OEmbedProvider("imdb", "rich", ["imdb.com/title/.+"], "http://www.imdbapi.com/?i=$1&callback=?", - { - templateRegex: /.*\/title\/([^\/]+).*/, - templateData: function (data) { - if (!data.Title) - return false; - return '

      ' + data.Title + ' (' + data.Year + ')

      Rating: ' + data.imdbRating + '
      Genre: ' + data.Genre + '
      Starring: ' + data.Actors + '

      ' + data.Plot + '
      '; - } - }), - new $.fn.oembed.OEmbedProvider("livejournal", "rich", ["livejournal.com/"], "http://ljpic.seacrow.com/json/$2$4?jsonp=?" - , { - templateRegex: /(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/, - templateData: function (data) { - if (!data.username) - return false; - return '
      [info]' + data.username + '
      ' + data.name + '
      '; - } - }), - new $.fn.oembed.OEmbedProvider("circuitbee", "rich", ["circuitbee\\.com/circuit/view/.+"], "http://c.circuitbee.com/build/r/schematic-embed.html?id=$1", - { - templateRegex: /.*circuit\/view\/(\d+).*/, - embedtag: { - tag: 'iframe', - width: '500', - height: '350' - } - }), - - new $.fn.oembed.OEmbedProvider("googlecalendar", "rich", ["www.google.com/calendar/embed?.+"], "$1", - {templateRegex: /(.*)/, embedtag: {tag: 'iframe', width: '800', height: '600' }}), - new $.fn.oembed.OEmbedProvider("jsfiddle", "rich", ["jsfiddle.net/[^/]+/?"], "http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?", - {templateRegex: /.*net\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: '300' }}), - new $.fn.oembed.OEmbedProvider("jsbin", "rich", ["jsbin.com/.+"], "http://jsbin.com/$1/?", - {templateRegex: /.*com\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: '300' }}), - new $.fn.oembed.OEmbedProvider("jotform", "rich", ["form.jotform.co/form/.+"], "$1?", - {templateRegex: /(.*)/, embedtag: {tag: 'iframe', width: '100%', height: '507' }}), - new $.fn.oembed.OEmbedProvider("reelapp", "rich", ["reelapp\\.com/.+"], "http://www.reelapp.com/$1/embed", - {templateRegex: /.*com\/(\S{6}).*/, embedtag: {tag: 'iframe', width: '400', height: '338'}}), - new $.fn.oembed.OEmbedProvider("linkedin", "rich", ["linkedin.com/pub/.+"], "https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true", - {templateRegex: /(.*)/, embedtag: {tag: 'iframe', width: '368px', height: 'auto'}}), - new $.fn.oembed.OEmbedProvider("timetoast", "rich", ["timetoast.com/timelines/[0-9]+"], "http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1", - {templateRegex: /.*timelines\/([0-9]*)/, embedtag: { width: 550, height: 400}, nocache: 1}), - new $.fn.oembed.OEmbedProvider("pastebin", "rich", ["pastebin\\.com/[\\S]{8}"], "http://pastebin.com/embed_iframe.php?i=$1", - {templateRegex: /.*\/(\S{8}).*/, embedtag: {tag: 'iframe', width: '100%', height: 'auto'}}), - new $.fn.oembed.OEmbedProvider("mixlr", "rich", ["mixlr.com/.+"], "http://mixlr.com/embed/$1?autoplay=ae", - {templateRegex: /.*com\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: 'auto' }}), - new $.fn.oembed.OEmbedProvider("pastie", "rich", ["pastie\\.org/pastes/.+"], null, {yql: {xpath: '//pre[@class="textmate-source"]'}}), - new $.fn.oembed.OEmbedProvider("github", "rich", ["gist.github.com/.+"], "https://github.com/api/oembed"), - new $.fn.oembed.OEmbedProvider("github", "rich", ["github.com/[-.\\w@]+/[-.\\w@]+"], "https://api.github.com/repos/$1/$2?callback=?" - , {templateRegex: /.*\/([^\/]+)\/([^\/]+).*/, - templateData: function (data) { - if (!data.data.html_url)return false; - return '

      ' + data.data.name + '

      ' + data.data.description + '

      ' - + '

      Last updated: ' + data.data.pushed_at + '

      '; - } - }), - new $.fn.oembed.OEmbedProvider("facebook", "rich", ["facebook.com"], null - , {templateRegex: /.*\/([^\/]+)\/([^\/]+).*/, - template: function (url) { - // adding script directly to DOM to make sure that it is loaded correctly. - if (!$.fn.oembed.facebokScriptHasBeenAdded) { - $('
      ').appendTo('body'); - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.text = '(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";fjs.parentNode.insertBefore(js, fjs);}(document, "script", "facebook-jssdk"));'; - document.body.appendChild(script); - $.fn.oembed.facebokScriptHasBeenAdded = true; - } - - // returning template with url of facebook post. - return '
      '; - - } - }), - /* - // Saving old implementation of Facebook in case we will need it as example in the future. - new $.fn.oembed.OEmbedProvider("facebook", "rich", ["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"], "https://graph.facebook.com/$2$3/?callback=?" - ,{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/, - templateData : function(data){ if(!data.id)return false; - var out = '
      facebook '; - if(data.from) out += ''+data.from.name+''; - else if(data.link) out += ''+data.name+''; - else if(data.username) out += ''+data.name+''; - else out += ''+data.name+''; - out += '
      '; - if(data.picture) out += ''; - else out += ''; - if(data.from) out += ''+data.name+''; - if(data.founded) out += 'Founded: '+data.founded+'
      '; - if(data.category) out += 'Category: '+data.category+'
      '; - if(data.website) out += 'Website: '+data.website+'
      '; - if(data.gender) out += 'Gender: '+data.gender+'
      '; - if(data.description) out += data.description + '
      '; - out += '
      '; - return out; - } - }), - */ - new $.fn.oembed.OEmbedProvider("stackoverflow", "rich", ["stackoverflow.com/questions/[\\d]+"], "http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?" - , {templateRegex: /.*questions\/([\d]+).*/, - templateData: function (data) { - if (!data.questions) - return false; - var q = data.questions[0]; - var body = $(q.body).text(); - var out = '
      ' - + '' + (q.up_vote_count - q.down_vote_count) + '
      vote(s)
      ' - + '
      ' + q.answer_count + 'answer
      ' + q.view_count + ' view(s)
      ' - + '

      ' + q.title + '

      ' - + '
      ' + body.substring(0, 100) + '...
      '; - for (i in q.tags) { - out += ''; - } - - out += '
      '; - return out; - } - }), - new $.fn.oembed.OEmbedProvider("wordpress", "rich", ["wordpress\\.com/.+", "blogs\\.cnn\\.com/.+", "techcrunch\\.com/.+", "wp\\.me/.+"], "http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"), - new $.fn.oembed.OEmbedProvider("screenr", "rich", ["screenr\.com"], "http://www.screenr.com/embed/$1", - {templateRegex: /.*\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '650', height: 396}}) , - new $.fn.oembed.OEmbedProvider("gigpans", "rich", ["gigapan\\.org/[-.\\w@]+/\\d+"], "http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html", - {templateRegex: /.*\/(\d+)\/?.*/, embedtag: {tag: 'iframe', width: '100%', height: 400 }}), - new $.fn.oembed.OEmbedProvider("scribd", "rich", ["scribd\\.com/.+"], "http://www.scribd.com/embeds/$1/content?start_page=1&view_mode=list", - {templateRegex: /.*doc\/([^\/]+).*/, embedtag: {tag: 'iframe', width: '100%', height: 600}}), - new $.fn.oembed.OEmbedProvider("kickstarter", "rich", ["kickstarter\\.com/projects/.+"], "$1/widget/card.html", - {templateRegex: /([^\?]+).*/, embedtag: {tag: 'iframe', width: '220', height: 380}}), - new $.fn.oembed.OEmbedProvider("amazon", "rich", ["amzn.com/B+", "amazon.com.*/(B\\S+)($|\\/.*)"], "http://rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr", - { - apikey: true, - templateRegex: /.*\/(B[0-9A-Z]+)($|\/.*)/, - embedtag: { - tag: 'iframe', - width: '120px', - height: '240px'} - }), - new $.fn.oembed.OEmbedProvider("slideshare", "rich", ["slideshare\.net"], "//www.slideshare.net/api/oembed/2", {format: 'jsonp'}), - new $.fn.oembed.OEmbedProvider("roomsharejp", "rich", ["roomshare\\.jp/(en/)?post/.*"], "http://roomshare.jp/oembed.json"), - new $.fn.oembed.OEmbedProvider("lanyard", "rich", ["lanyrd.com/\\d+/.+"], null, - { - yql: { - xpath: '(//div[@class="primary"])[1]', - from: 'htmlstring', - datareturn: function (results) { - if (!results.result) - return false; - return '
      ' + results.result + '
      '; - } - } - }), - new $.fn.oembed.OEmbedProvider("asciiartfarts", "rich", ["asciiartfarts.com/\\d+.html"], null, - { - yql: { - xpath: '//pre/font', - from: 'htmlstring', - datareturn: function (results) { - if (!results.result) - return false; - return '
      ' + results.result + '
      '; - } - } - }), - new $.fn.oembed.OEmbedProvider("coveritlive", "rich", ["coveritlive.com/"], null, { - templateRegex: /(.*)/, - template: ''}), - new $.fn.oembed.OEmbedProvider("polldaddy", "rich", ["polldaddy.com/"], null, { - templateRegex: /(?:https?:\/\/w?w?w?.?polldaddy.com\/poll\/)([0-9]*)\//, - template: '', - nocache: 1 - }), - new $.fn.oembed.OEmbedProvider("360io", "rich", ["360\\.io/.+"], "http://360.io/$1", {templateRegex: /.*360\.io\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("bubbli", "rich", ["on\\.bubb\\.li/.+"], "http://on.bubb.li/$1", {templateRegex: /.*on\.bubb\.li\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360}, nocache: 1 }), - new $.fn.oembed.OEmbedProvider("cloudup", "rich", ["cloudup\\.com/.+"], "http://cloudup.com/$1?chromeless", {templateRegex: [/.*cloudup\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }}), - new $.fn.oembed.OEmbedProvider("codepen", "rich", ["codepen.io/.+"], "http://codepen.io/$1/embed/$2", {templateRegex: [/.*io\/(\w+)\/pen\/(\w+).*/, /.*io\/(\w+)\/full\/(\w+).*/], embedtag: {tag: 'iframe', width: '100%', height: '300'}, nocache: 1 }), - new $.fn.oembed.OEmbedProvider("googleviews", "rich", ["(.*maps\\.google\\.com\\/maps\\?).+(output=svembed).+(cbp=(.*)).*"], "https://maps.google.com/maps?layer=c&panoid=$3&ie=UTF8&source=embed&output=svembed&cbp=$5", {templateRegex: /(.*maps\.google\.com\/maps\?).+(panoid=(\w+)&).*(cbp=(.*)).*/, embedtag: {tag: 'iframe', width: 480, height: 360}, nocache: 1 }), - new $.fn.oembed.OEmbedProvider("googlemaps", "rich", ["google\\.com\/maps\/place/.+"], "http://maps.google.com/maps?t=m&q=$1&output=embed", {templateRegex: /.*google\.com\/maps\/place\/([\w\+]*)\/.*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("imajize", "rich", ["embed\\.imajize\\.com/.+"], "http://embed.imajize.com/$1", {templateRegex: /.*embed\.imajize\.com\/(.*)/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("mapjam", "rich", ["mapjam\\.com/.+"], "http://www.mapjam.com/$1", {templateRegex: /.*mapjam\.com\/(.*)/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("polar", "rich", ["polarb\\.com/.+"], "http://assets-polarb-com.a.ssl.fastly.net/api/v4/publishers/unknown/embedded_polls/iframe?poll_id=$1", {templateRegex: /.*polarb\.com\/polls\/(\w+).*/, embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - new $.fn.oembed.OEmbedProvider("ponga", "rich", ["ponga\\.com/.+"], "https://www.ponga.com/embedded?id=$1", {templateRegex: [/.*ponga\.com\/embedded\?id=(\w+).*/, /.*ponga\.com\/(\w+).*/], embedtag: {tag: 'iframe', width: 480, height: 360 }, nocache: 1}), - - //Use Open Graph Where applicable - new $.fn.oembed.OEmbedProvider("opengraph", "rich", [".*"], null, - { - yql: { - xpath: "//meta|//title|//link", - from: 'html', - datareturn: function (results) { - if (!results['og:title'] && results['title'] && results['description']) - results['og:title'] = results['title']; - - if (!results['og:title'] && !results['title']) - return false; - - var code = $('

      '); - if (results['og:video']) { - var embed = $(''); - embed.attr('type', results['og:video:type'] || "application/x-shockwave-flash") - .css('max-height', settings.maxHeight || 'auto') - .css('max-width', settings.maxWidth || 'auto'); - if (results['og:video:width']) - embed.attr('width', results['og:video:width']); - if (results['og:video:height']) - embed.attr('height', results['og:video:height']); - code.append(embed); - } else if (results['og:image']) { - var img = $(''); - img.css('max-height', settings.maxHeight || 'auto').css('max-width', settings.maxWidth || 'auto'); - if (results['og:image:width']) - img.attr('width', results['og:image:width']); - if (results['og:image:height']) - img.attr('height', results['og:image:height']); - code.append(img); - } - - if (results['og:title']) - code.append('' + results['og:title'] + '
      '); - - if (results['og:description']) - code.append(results['og:description'] + '
      '); - else if (results['description']) - code.append(results['description'] + '
      '); - - return code; - } - } - } - ) - - ]; -})(jQuery); -//This is needed for gravatar :( -String.prototype.md5=function(){var a=function(a,b){var c=(a&65535)+(b&65535);var d=(a>>16)+(b>>16)+(c>>16);return d<<16|c&65535};var b=function(a,b){return a<>>32-b};var c=function(c,d,e,f,g,h){return a(b(a(a(d,c),a(f,h)),g),e)};var d=function(a,b,d,e,f,g,h){return c(b&d|~b&e,a,b,f,g,h)};var e=function(a,b,d,e,f,g,h){return c(b&e|d&~e,a,b,f,g,h)};var f=function(a,b,d,e,f,g,h){return c(b^d^e,a,b,f,g,h)};var g=function(a,b,d,e,f,g,h){return c(d^(b|~e),a,b,f,g,h)};var h=function(b){var c,h,i,j,k,l=b.length;var m=1732584193;var n=-271733879;var o=-1732584194;var p=271733878;for(k=0;k>2]>>d%4*8+4&15)+b.charAt(a[d>>2]>>d%4*8&15)}return c};var j=function(a){var b=(a.length+8>>6)+1;var c=[],d,e=b*16,f,g=a.length;for(d=0;d>2]|=(a.charCodeAt(f)&255)<>2]|=128< -Gilles van den Hoven -Michael Geary -Stefan Petre -Yehuda Katz -Corey Jewett -Klaus Hartl -Franck Marcia -Jörn Zaefferer -Paul Bakaus -Brandon Aaron -Mike Alsup -Dave Methvin -Ed Engelhardt -Sean Catchpole -Paul Mclanahan -David Serduke -Richard D. Worth -Scott González -Ariel Flesler -Jon Evans -TJ Holowaychuk -Michael Bensoussan -Robert Katić -Louis-Rémi Babé -Earle Castledine -Damian Janowski -Rich Dougherty -Kim Dalsgaard -Andrea Giammarchi -Mark Gibson -Karl Swedberg -Justin Meyer -Ben Alman -James Padolsey -David Petersen -Batiste Bieler -Alexander Farkas -Rick Waldron -Filipe Fortes -Neeraj Singh -Paul Irish -Iraê Carvalho -Matt Curry -Michael Monteleone -Noah Sloan -Tom Viner -Douglas Neiner -Adam J. Sontag -Dave Reed -Ralph Whitbeck -Carl Fürstenberg -Jacob Wright -J. Ryan Stinnett -unknown -temp01 -Heungsub Lee -Colin Snover -Ryan W Tenney -Pinhook -Ron Otten -Jephte Clain -Anton Matzneller -Alex Sexton -Dan Heberden -Henri Wiechers -Russell Holbrook -Julian Aubourg -Gianni Alessandro Chiappetta -Scott Jehl -James Burke -Jonas Pfenniger -Xavi Ramirez -Jared Grippe -Sylvester Keil -Brandon Sterne -Mathias Bynens -Timmy Willison <4timmywil@gmail.com> -Corey Frang -Digitalxero -Anton Kovalyov -David Murdoch -Josh Varner -Charles McNulty -Jordan Boesch -Jess Thrysoee -Michael Murray -Lee Carpenter -Alexis Abril -Rob Morgan -John Firebaugh -Sam Bisbee -Gilmore Davidson -Brian Brennan -Xavier Montillet -Daniel Pihlstrom -Sahab Yazdani -avaly -Scott Hughes -Mike Sherov -Greg Hazel -Schalk Neethling -Denis Knauf -Timo Tijhof -Steen Nielsen -Anton Ryzhov -Shi Chuan -Berker Peksag -Toby Brain -Matt Mueller -Justin -Daniel Herman -Oleg Gaidarenko -Richard Gibson -Rafaël Blais Masson -cmc3cn <59194618@qq.com> -Joe Presbrey -Sindre Sorhus -Arne de Bree -Vladislav Zarakovsky -Andrew E Monat -Oskari -Joao Henrique de Andrade Bruni -tsinha -Matt Farmer -Trey Hunner -Jason Moon -Jeffery To -Kris Borchers -Vladimir Zhuravlev -Jacob Thornton -Chad Killingsworth -Nowres Rafid -David Benjamin -Uri Gilad -Chris Faulkner -Elijah Manor -Daniel Chatfield -Nikita Govorov -Wesley Walser -Mike Pennisi -Markus Staab -Dave Riddle -Callum Macrae -Benjamin Truyman -James Huston -Erick Ruiz de Chávez -David Bonner -Akintayo Akinwunmi -MORGAN -Ismail Khair -Carl Danley -Mike Petrovich -Greg Lavallee -Daniel Gálvez -Sai Lung Wong -Tom H Fuertes -Roland Eckl -Jay Merrifield -Allen J Schmidt Jr -Jonathan Sampson -Marcel Greter -Matthias Jäggli -David Fox -Yiming He -Devin Cooper -Paul Ramos -Rod Vagg -Bennett Sorbo -Sebastian Burkhard -Zachary Adam Kaplan -nanto_vi -nanto -Danil Somsikov -Ryunosuke SATO -Jean Boussier -Adam Coulombe -Andrew Plummer -Mark Raddatz -Isaac Z. Schlueter -Karl Sieburg -Pascal Borreli -Nguyen Phuc Lam -Dmitry Gusev -Michał Gołębiowski -Li Xudong -Steven Benner -Tom H Fuertes -Renato Oliveira dos Santos -ros3cin -Jason Bedard -Kyle Robinson Young -Chris Talkington -Eddie Monge -Terry Jones -Jason Merino -Jeremy Dunck -Chris Price -Guy Bedford -Amey Sakhadeo -Mike Sidorov -Anthony Ryan -Dominik D. Geyer -George Kats -Lihan Li -Ronny Springer -Chris Antaki -Marian Sollmann -njhamann -Ilya Kantor -David Hong -John Paul -Jakob Stoeck -Christopher Jones -Forbes Lindesay -S. Andrew Sheppard -Leonardo Balter -Roman Reiß -Benjy Cui -Rodrigo Rosenfeld Rosas -John Hoven -Philip Jägenstedt -Christian Kosmowski -Liang Peng -TJ VanToll -Senya Pugach -Aurelio De Rosa -Nazar Mokrynskyi -Amit Merchant -Jason Bedard -Arthur Verschaeve -Dan Hart -Bin Xin -David Corbacho -Veaceslav Grimalschi -Daniel Husar -Frederic Hemberger -Ben Toews -Aditya Raghavan -Victor Homyakov -Shivaji Varma -Nicolas HENRY -Anne-Gaelle Colom -George Mauer -Leonardo Braga -Stephen Edgar -Thomas Tortorini -Winston Howes -Jon Hester -Alexander O'Mara -Bastian Buchholz -Arthur Stolyar -Calvin Metcalf -Mu Haibao -Richard McDaniel -Chris Rebert -Gabriel Schulhof -Gilad Peleg -Martin Naumann -Marek Lewandowski -Bruno Pérel -Reed Loden -Daniel Nill -Yongwoo Jeon -Sean Henderson -Richard Kraaijenhagen -Connor Atherton -Gary Ye -Christian Grete -Liza Ramo -Julian Alexander Murillo -Joelle Fleurantin -Jae Sung Park -Jun Sun -Josh Soref -Henry Wong -Jon Dufresne -Martijn W. van der Lee -Devin Wilson -Steve Mao -Zack Hall -Bernhard M. Wiedemann -Todor Prikumov -Jha Naman -William Robinet -Alexander Lisianoi -Vitaliy Terziev -Joe Trumbull -Alexander K -Damian Senn -Ralin Chimev -Felipe Sateler -Christophe Tafani-Dereeper diff --git a/bower_components/jquery/LICENSE.txt b/bower_components/jquery/LICENSE.txt deleted file mode 100644 index 5312a4c86..000000000 --- a/bower_components/jquery/LICENSE.txt +++ /dev/null @@ -1,36 +0,0 @@ -Copyright jQuery Foundation and other contributors, https://jquery.org/ - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/jquery/jquery - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -All files located in the node_modules and external directories are -externally maintained libraries used by this software which have their -own licenses; we recommend you read them, as their terms may differ from -the terms above. diff --git a/bower_components/jquery/README.md b/bower_components/jquery/README.md deleted file mode 100644 index ba3174a77..000000000 --- a/bower_components/jquery/README.md +++ /dev/null @@ -1,65 +0,0 @@ -# jQuery - -> jQuery is a fast, small, and feature-rich JavaScript library. - -For information on how to get started and how to use jQuery, please see [jQuery's documentation](http://api.jquery.com/). -For source files and issues, please visit the [jQuery repo](https://github.com/jquery/jquery). - -## Including jQuery - -Below are some of the most common ways to include jQuery. - -### Browser - -#### Script tag - -```html - -``` - -#### Babel - -[Babel](http://babeljs.io/) is a next generation JavaScript compiler. One of the features is the ability to use ES6/ES2015 modules now, even though browsers do not yet support this feature natively. - -```js -import $ from "jquery"; -``` - -#### Browserify/Webpack - -There are several ways to use [Browserify](http://browserify.org/) and [Webpack](https://webpack.github.io/). For more information on using these tools, please refer to the corresponding project's documention. In the script, including jQuery will usually look like this... - -```js -var $ = require("jquery"); -``` - -#### AMD (Asynchronous Module Definition) - -AMD is a module format built for the browser. For more information, we recommend [require.js' documentation](http://requirejs.org/docs/whyamd.html). - -```js -define(["jquery"], function($) { - -}); -``` - -### Node - -To include jQuery in [Node](nodejs.org), first install with npm. - -```sh -npm install jquery -``` - -For jQuery to work in Node, a window with a document is required. Since no such window exists natively in Node, one can be mocked by tools such as [jsdom](https://github.com/tmpvar/jsdom). This can be useful for testing purposes. - -```js -require("jsdom").env("", function(err, window) { - if (err) { - console.error(err); - return; - } - - var $ = require("jquery")(window); -}); -``` diff --git a/bower_components/jquery/bower.json b/bower_components/jquery/bower.json deleted file mode 100644 index 95798d5ad..000000000 --- a/bower_components/jquery/bower.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "jquery", - "main": "dist/jquery.js", - "license": "MIT", - "ignore": [ - "package.json" - ], - "keywords": [ - "jquery", - "javascript", - "browser", - "library" - ] -} \ No newline at end of file diff --git a/bower_components/jquery/external/sizzle/LICENSE.txt b/bower_components/jquery/external/sizzle/LICENSE.txt deleted file mode 100644 index dd7ce9402..000000000 --- a/bower_components/jquery/external/sizzle/LICENSE.txt +++ /dev/null @@ -1,36 +0,0 @@ -Copyright jQuery Foundation and other contributors, https://jquery.org/ - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/jquery/sizzle - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -All files located in the node_modules and external directories are -externally maintained libraries used by this software which have their -own licenses; we recommend you read them, as their terms may differ from -the terms above. diff --git a/bower_components/jquery/src/.eslintrc.json b/bower_components/jquery/src/.eslintrc.json deleted file mode 100644 index dbf16c584..000000000 --- a/bower_components/jquery/src/.eslintrc.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - // Support: IE <=9 only, Android <=4.0 only - // The above browsers are failing a lot of tests in the ES5 - // test suite at http://test262.ecmascript.org. - "parserOptions": { - "ecmaVersion": 3 - }, - "globals": { - "window": true, - "jQuery": true, - "define": true, - "module": true, - "noGlobal": true - }, - "rules": { - "strict": ["error", "function"] - } -} diff --git a/bower_components/jquery/src/ajax.js b/bower_components/jquery/src/ajax.js deleted file mode 100644 index 36f707d7d..000000000 --- a/bower_components/jquery/src/ajax.js +++ /dev/null @@ -1,855 +0,0 @@ -define( [ - "./core", - "./var/document", - "./var/rnothtmlwhite", - "./ajax/var/location", - "./ajax/var/nonce", - "./ajax/var/rquery", - - "./core/init", - "./ajax/parseXML", - "./event/trigger", - "./deferred", - "./serialize" // jQuery.param -], function( jQuery, document, rnothtmlwhite, location, nonce, rquery ) { - -"use strict"; - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( jQuery.isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; - } - } - match = responseHeaders[ key.toLowerCase() ]; - } - return match == null ? null : match; - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 13 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available, append data to url - if ( s.data ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( jQuery.isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -return jQuery; -} ); diff --git a/bower_components/jquery/src/ajax/jsonp.js b/bower_components/jquery/src/ajax/jsonp.js deleted file mode 100644 index 8c406e722..000000000 --- a/bower_components/jquery/src/ajax/jsonp.js +++ /dev/null @@ -1,102 +0,0 @@ -define( [ - "../core", - "./var/nonce", - "./var/rquery", - "../ajax" -], function( jQuery, nonce, rquery ) { - -"use strict"; - -var oldCallbacks = [], - rjsonp = /(=)\?(?=&|$)|\?\?/; - -// Default jsonp settings -jQuery.ajaxSetup( { - jsonp: "callback", - jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); - this[ callback ] = true; - return callback; - } -} ); - -// Detect, normalize options and install callbacks for jsonp requests -jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { - - var callbackName, overwritten, responseContainer, - jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? - "url" : - typeof s.data === "string" && - ( s.contentType || "" ) - .indexOf( "application/x-www-form-urlencoded" ) === 0 && - rjsonp.test( s.data ) && "data" - ); - - // Handle iff the expected data type is "jsonp" or we have a parameter to set - if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { - - // Get callback name, remembering preexisting value associated with it - callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? - s.jsonpCallback() : - s.jsonpCallback; - - // Insert callback into url or form data - if ( jsonProp ) { - s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); - } else if ( s.jsonp !== false ) { - s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; - } - - // Use data converter to retrieve json after script execution - s.converters[ "script json" ] = function() { - if ( !responseContainer ) { - jQuery.error( callbackName + " was not called" ); - } - return responseContainer[ 0 ]; - }; - - // Force json dataType - s.dataTypes[ 0 ] = "json"; - - // Install callback - overwritten = window[ callbackName ]; - window[ callbackName ] = function() { - responseContainer = arguments; - }; - - // Clean-up function (fires after converters) - jqXHR.always( function() { - - // If previous value didn't exist - remove it - if ( overwritten === undefined ) { - jQuery( window ).removeProp( callbackName ); - - // Otherwise restore preexisting value - } else { - window[ callbackName ] = overwritten; - } - - // Save back as free - if ( s[ callbackName ] ) { - - // Make sure that re-using the options doesn't screw things around - s.jsonpCallback = originalSettings.jsonpCallback; - - // Save the callback name for future use - oldCallbacks.push( callbackName ); - } - - // Call if it was a function and we have a response - if ( responseContainer && jQuery.isFunction( overwritten ) ) { - overwritten( responseContainer[ 0 ] ); - } - - responseContainer = overwritten = undefined; - } ); - - // Delegate to script - return "script"; - } -} ); - -} ); diff --git a/bower_components/jquery/src/ajax/load.js b/bower_components/jquery/src/ajax/load.js deleted file mode 100644 index 3ce3a5aae..000000000 --- a/bower_components/jquery/src/ajax/load.js +++ /dev/null @@ -1,76 +0,0 @@ -define( [ - "../core", - "../core/stripAndCollapse", - "../core/parseHTML", - "../ajax", - "../traversing", - "../manipulation", - "../selector" -], function( jQuery, stripAndCollapse ) { - -"use strict"; - -/** - * Load a url into a page - */ -jQuery.fn.load = function( url, params, callback ) { - var selector, type, response, - self = this, - off = url.indexOf( " " ); - - if ( off > -1 ) { - selector = stripAndCollapse( url.slice( off ) ); - url = url.slice( 0, off ); - } - - // If it's a function - if ( jQuery.isFunction( params ) ) { - - // We assume that it's the callback - callback = params; - params = undefined; - - // Otherwise, build a param string - } else if ( params && typeof params === "object" ) { - type = "POST"; - } - - // If we have elements to modify, make the request - if ( self.length > 0 ) { - jQuery.ajax( { - url: url, - - // If "type" variable is undefined, then "GET" method will be used. - // Make value of this field explicit since - // user can override it through ajaxSetup method - type: type || "GET", - dataType: "html", - data: params - } ).done( function( responseText ) { - - // Save response for use in complete callback - response = arguments; - - self.html( selector ? - - // If a selector was specified, locate the right elements in a dummy div - // Exclude scripts to avoid IE 'Permission Denied' errors - jQuery( "

      " ).append( jQuery.parseHTML( responseText ) ).find( selector ) : - - // Otherwise use the full result - responseText ); - - // If the request succeeds, this function gets "data", "status", "jqXHR" - // but they are ignored because response was set above. - // If it fails, this function gets "jqXHR", "status", "error" - } ).always( callback && function( jqXHR, status ) { - self.each( function() { - callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); - } ); - } ); - } - - return this; -}; - -} ); diff --git a/bower_components/jquery/src/ajax/parseXML.js b/bower_components/jquery/src/ajax/parseXML.js deleted file mode 100644 index acf7ab259..000000000 --- a/bower_components/jquery/src/ajax/parseXML.js +++ /dev/null @@ -1,30 +0,0 @@ -define( [ - "../core" -], function( jQuery ) { - -"use strict"; - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - -return jQuery.parseXML; - -} ); diff --git a/bower_components/jquery/src/ajax/script.js b/bower_components/jquery/src/ajax/script.js deleted file mode 100644 index 6e0d21e99..000000000 --- a/bower_components/jquery/src/ajax/script.js +++ /dev/null @@ -1,77 +0,0 @@ -define( [ - "../core", - "../var/document", - "../ajax" -], function( jQuery, document ) { - -"use strict"; - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain requests - if ( s.crossDomain ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " -``` -Or just use a CDN: -``` - -``` - -The css files in the [dist/css](https://github.com/HubSpot/tether/tree/master/dist/css) folder are not required to get tether running. - -For more details jump straight in to the detailed [Usage](http://github.hubspot.com/tether/#usage) page. - -[![Tether Docs](http://i.imgur.com/YCx8cLr.png)](http://github.hubspot.com/tether/#usage) - -[Demo & API Documentation](http://github.hubspot.com/tether/) - -## Contributing - -We encourage contributions of all kinds. If you would like to contribute in some way, please review our [guidelines for contributing](CONTRIBUTING.md). - -## License -Copyright © 2014-2016 HubSpot - [MIT License](LICENSE) diff --git a/bower_components/tether/bower.json b/bower_components/tether/bower.json deleted file mode 100644 index ea9b6b759..000000000 --- a/bower_components/tether/bower.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "tether", - "version": "1.4.0", - "homepage": "http://github.hubspot.com/tether", - "authors": [ - "Zack Bloom ", - "Adam Schwartz " - ], - "maintainers": [ - "Nicholas Hwang ", - "Trevor Burnham " - ], - "description": "A client-side library to make absolutely positioned elements attach to elements in the page efficiently.", - "keywords": [ - "javascript" - ], - "license": "MIT", - "main": "dist/js/tether.js", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/bower_components/tether/component.json b/bower_components/tether/component.json deleted file mode 100644 index 1e81c50db..000000000 --- a/bower_components/tether/component.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "tether", - "repo": "HubSpot/tether", - "version": "1.3.9", - "description": "A client-side library to make absolutely positioned elements attach to elements in the page efficiently.", - "authors": [ - "Zack Bloom ", - "Adam Schwartz " - ], - "maintainers": [ - "Nicholas Hwang " - ], - "license": "MIT", - "demo": "http://github.hubspot.com/tether/docs/welcome/", - "main": "dist/js/tether.js", - "styles": [ - "dist/css/tether.css" - ], - "scripts": [ - "dist/js/tether.js" - ] -} diff --git a/bower_components/tether/docs/1-Overview/1-why_you_should_use_tether.md b/bower_components/tether/docs/1-Overview/1-why_you_should_use_tether.md deleted file mode 100644 index 6147d25fd..000000000 --- a/bower_components/tether/docs/1-Overview/1-why_you_should_use_tether.md +++ /dev/null @@ -1,43 +0,0 @@ -## Why You Should Use Tether - -Virtually every app includes some sort of overlay attached to an element on the page. -Things like [tooltips](http://github.hubspot.com/tooltip/docs/welcome), -[dropdowns](http://github.hubspot.com/select/docs/welcome), [hover-activated info boxes](http://github.hubspot.com/drop/docs/welcome), etc. - -Those elements need to be attached to something on the page. Actually placing them next to -the element in the DOM causes problems though, if any parent element is anything -but `overflow: visible`, the element gets cut off. So you need absolute positioning -in the body. - -Some of the time absolute positioning is right, but what about if the thing we're -attached to is fixed to the center of the screen? We'll have to move it every -time the user scrolls. What about if the element is in a scrollable container, -if the overlay is inside of it (so no clipping), it would be cool if the code -were smart enough to move it inside when that area is scrolled. That way we -need to reposition it even less. - -It would also be nice if the code could somehow figure out whether positioning it -from the top, bottom, left, or right would result in the fewest repositionings -as the user scrolls or resizes. - -Most of the time you're building these elements it would be nice for the element to -flip to the other side of the element if it hits the edge of the screen, or a scrollable -container it might be in. It would be nice if we could confine the element -to within some area, or even hide it when it leaves. - -It would be nice for the element to be repositioned with CSS transforms -rather than top and left when possible, to allow the positioning to be done entirely -in the GPU. - -Now that the positioning is so fancy, you're going to use it for more and more -elements. It would be cool if the library could optimize all of their repositioning -into a single repaint. - -All of that is baked into Tether. - -### tl;dr - -- Optimized GPU-accelerated repositioning for 60fps scrolling -- Reliable positioning on any possible corner, edge or point in between. -- Support for repositioning or pinning the element when it would be offscreen -- Designed to be embeddable in other libraries diff --git a/bower_components/tether/docs/1-Overview/2-repositioning.md b/bower_components/tether/docs/1-Overview/2-repositioning.md deleted file mode 100644 index 6c02483f1..000000000 --- a/bower_components/tether/docs/1-Overview/2-repositioning.md +++ /dev/null @@ -1,46 +0,0 @@ -Repositioning ------ - -Tethers will be automatically repositioned when the page is resized, and when any element containing the Tether is scrolled. -If the element moves for some other reason (e.g. with JavaScript), Tether won't know to reposition the element. - -#### Manually Repositioning - -The simplest way to reposition every Tether on the page is to call `Tether.position()`. It will efficiently reposition every -Tether in a single repaint, making it more efficient than manually repositioning many Tethers individually. - -```javascript -Tether.position() -``` - -#### Repositioning a Single Tether - -If you have many Tethers on screen, it may be more efficient to just reposition the tether that needs it. You can do this -by calling the `.position` method on the Tether instance: - -```javascript -tether = new Tether({ ... }) - -// Later: -tether.position() -``` - -#### Tethering Hidden Elements - -If you are creating a tether involving elements which are `display: none`, or not actually in the DOM, -your Tether may not be able to position itself properly. One way around this is to -ensure that a position call happens after all layouts have finished: - -```javascript -myElement.style.display = 'block' - -tether = new Tether({ ... }) - -setTimeout(function(){ - tether.position(); -}) -``` - -In general however, you shouldn't have any trouble if both the element and the target are visible and in the DOM when you -create the Tether. If that is not the case, create the Tether disabled (option `enabled`: `false`), and enable it when -the elements are ready. diff --git a/bower_components/tether/docs/1-Overview/3-why_we_dont_support_IE_8.md b/bower_components/tether/docs/1-Overview/3-why_we_dont_support_IE_8.md deleted file mode 100644 index 841de9ec5..000000000 --- a/bower_components/tether/docs/1-Overview/3-why_we_dont_support_IE_8.md +++ /dev/null @@ -1,47 +0,0 @@ -Why we don't support IE 8 -------------------------- - -We've been living in 2007 for a while now, pretending that new browser features don't -exist because they aren't in IE8. You might not even know about some of these features, -or think they are only enabled by jQuery or underscore, simply because it hasn't -been an option to rely upon them. - -Here is the list of features you don't have if you choose to support IE 8: - -- HTML5 audio and video -- SVG -- Canvas -- TrueType fonts -- Media Queries -- CSS Transforms -- Multiple Backgrounds -- CSS3 Units (vh, vw, rem) -- Custom DOM events -- Hardware accelerated graphics -- The DOMContentLoaded event -- addEventListener -- Object.create, .seal, .freeze, .defineProperty -- Array.isArray, .indexOf, .every, .some, .forEach, .map, .filter, .reduce -- A modern JavaScript engine -- A real developer tools -- A consistent box model -- jQuery 2 -- Google Apps -- Tether - -It's true that IE 8 still holds a big chunk of the browsing population, but the reasons -why they can't update are dwindling. There are two big reasons for continuing IE 8 support. - -#### Enterprises - - Microsoft is dropping support for XP in April, organizations who want security updates will have to upgrade. - -#### China uses XP - - Chrome, Firefox and Opera all support XP. Nothing prevents users from upgrading, except the inertia of - organizations who still support IE 8. - -#### The Future - -We are skating towards where the puck will be, and we hope that as you decide to drop IE 8 support, -you choose to add Tether to the list of awesome things you can do. diff --git a/bower_components/tether/docs/2-Examples/1-list_of_examples.md b/bower_components/tether/docs/2-Examples/1-list_of_examples.md deleted file mode 100644 index bbb7fd516..000000000 --- a/bower_components/tether/docs/2-Examples/1-list_of_examples.md +++ /dev/null @@ -1,27 +0,0 @@ -### Examples - -It's our goal to create a wide variety of example of how Tether -can be used. Here's what we have so far, please send a PR with -any examples you might create. - -#### Beginner - -- [simple](../../examples/simple): A simple example to get you started -- [out-of-bounds](../../examples/out-of-bounds): How to hide the element when it would -otherwise be offscreen -- [pin](../../examples/pin): How to pin the element so it never goes offscreen -- [enable-disable](../../examples/enable-disable): How to enable and disable the Tether -in JavaScript - -#### Advanced - -- [content-visible](../../examples/content-visible): Demonstrates using the `'visible'` -`targetModifier` to align an element with the visible portion of another. -- [dolls](../../examples/dolls): A performance test to show several dozen elements, -each tethered to the previous. Try dragging the top left tether. -- [element-scroll](../../examples/element-scroll): Demonstrates using the `'scroll-handle'` -`targetModifier` to align an element with the scrollbar of an element. -- [scroll](../../examples/scroll): Demonstrates using the `'scroll-handle'` `targetModifier` -to align an element with the body's scroll handle. -- [viewport](../../examples/viewport): Demonstrates aligning an element with the -viewport by using the `'visible'` `targetModifier` when tethered to the body. diff --git a/bower_components/tether/docs/2-Examples/2-projects_using_tether.md b/bower_components/tether/docs/2-Examples/2-projects_using_tether.md deleted file mode 100644 index b9086b280..000000000 --- a/bower_components/tether/docs/2-Examples/2-projects_using_tether.md +++ /dev/null @@ -1,37 +0,0 @@ -## Projects Using Tether - -Here at HubSpot we have built a bunch of libraries on top of Tether, -both because we wanted Tether-performance, and because we saw opportunities -to improve on what was available in the client-side ecosystem. - -### [Select](http://github.hubspot.com/select/docs/welcome) - -Select is a replacement for native browser select elements that is fully stylable. - -### [Shepherd](http://github.hubspot.com/shepherd/docs/welcome) - -Shepherd is a library for making tours of your app to help onboard users and show off -new features. - -### [Tooltip](http://github.hubspot.com/tooltip/docs/welcome) - -A simple, easy-to-use implementation of tooltips that works well. - -### [Drop](http://github.hubspot.com/drop/docs/welcome) - -Where Tether does general-purpose positioning, Drop assumes that you are interested -in making something which pops up next to something the user clicks or hovers on. - -If you're building something that fits that pattern, Drop can make things a little easier. - -### [React Datepicker](https://github.com/Hacker0x01/react-datepicker) - -A simple and reusable datepicker component for React - -### [ember-tether](https://github.com/yapplabs/ember-tether) - -An Ember.js-friendly interface for tether. - -### Your Project Here - -If you have a cool open-source library built on Tether, PR this doc. diff --git a/bower_components/tether/docs/3-Advanced/1-embedding_tether.md b/bower_components/tether/docs/3-Advanced/1-embedding_tether.md deleted file mode 100644 index f47be16e1..000000000 --- a/bower_components/tether/docs/3-Advanced/1-embedding_tether.md +++ /dev/null @@ -1,9 +0,0 @@ -## Embedding Tether - -Tether is designed to be embeddable in other libraries. - -There is one thing you should think about doing to create an embedded Tether: - -- Set the `classPrefix` of the tethers you create. That prefix will replace `'tether'` in -all of the classes. You can also disable classes you don't intend on using with the `classes` -option. diff --git a/bower_components/tether/docs/3-Advanced/2-extending_tether.md b/bower_components/tether/docs/3-Advanced/2-extending_tether.md deleted file mode 100644 index fa357b211..000000000 --- a/bower_components/tether/docs/3-Advanced/2-extending_tether.md +++ /dev/null @@ -1,54 +0,0 @@ -Extending Tether ------ - -Tether has a module system which can be used to modify Tether's positioning, or just do something each time the Tether is moved. - -Tether has an array called `Tether.modules`, push onto it to add a module: - -```coffeescript -Tether.modules.push - position: ({top, left}) -> - top += 10 - - {top, left} -``` - -#### Position - -Your position function can either return a new object with `top` and `left`, `null`/`undefined` to leave the coordinates unchanged, or -`false` to cancel the positioning. - -The position function is passed an object with the following elements: - -```javascript -{ - left, // The element's new position, from the top left corner of the page - top, - targetAttachment, // The targetAttachment, with 'auto' resolved to an actual attachment - targetPos, // The coordinates of the target - attachment, // The attachment, as passed in the option - elementPos, // The coordinates of the element - offset, // The offset, after it's converted into pixels and the manual offset is added - targetOffset, // The attachment is converted into an offset and is included in these values - manualOffset, // The manual offset, in pixels - manualTargetOffset -} -``` - -It is called with the Tether instance as its context (`this`). - -#### Initialize - -Modules can also have an `initialize` function which will be called when a new tether is created. The initialize function -is also called with the Tether instance as its context. - -```coffeescript -Tether.modules.push - initialize: -> - console.log "New Tether Created!", @ -``` - -#### Examples - -[Constraints](https://github.com/HubSpot/tether/blob/master/src/js/constraint.js) and [shift](https://github.com/HubSpot/tether/blob/master/src/js/shift.js) are both implemented as modules. -[Mark Attachment](https://github.com/HubSpot/tether/blob/master/src/js/markAttachment.js) is used by the docs. diff --git a/bower_components/tether/docs/coffee/intro.coffee b/bower_components/tether/docs/coffee/intro.coffee deleted file mode 100644 index 52a305df9..000000000 --- a/bower_components/tether/docs/coffee/intro.coffee +++ /dev/null @@ -1,113 +0,0 @@ -{uniqueId} = Tether.Utils - -SETUP_JS = """ -yellowBox = $('.yellow-box', $output); -greenBox = $('.green-box', $output); -scrollBox = $('.scroll-box', $output); -""" - -OUTPUT_HTML = (key) -> """ -
      -
      -
      -
      -
      -
      -""" - -tethers = {} - -getOutput = ($block) -> - key = $block.data('example') - if key and typeof key is 'string' - return $("output[data-example='#{ key }']") - else - return $block.parents('pre').nextAll('output').first() - -run = (key) -> - if typeof key is 'string' - $block = $("code[data-example='#{ key }']") - else - $block = key - - key = $block.attr('data-example') - - $output = getOutput $block - - code = $block.text() - code = SETUP_JS + code - - window.$output = $output - tethers[key] = eval code - -setupBlock = ($block) -> - key = $block.data('example') - - $output = getOutput $block - - if not key - key = uniqueId() - $block.attr('data-example', key) - $output.attr('data-example', key) - $output.find('.tether-element').attr('data-example', key) - - $output.html OUTPUT_HTML(key) - - $scrollBox = $output.find('.scroll-box') - $scrollContent = $scrollBox.find('.scroll-content') - $scrollBox.scrollTop(parseInt($scrollContent.css('height')) / 2 - $scrollBox.height() / 2) - $scrollBox.scrollLeft(parseInt($scrollContent.css('width')) / 2 - $scrollBox.width() / 2) - setTimeout -> - $scrollBox.on 'scroll', -> - $output.addClass 'scrolled' - - $scrollBox.css 'height', "#{ $block.parent().outerHeight() }px" - - if not $output.attr('deactivated')? - run $block - -$(document.body).on 'click', (e) -> - if $(e.target).is('output[deactivated]') - activate $(e.target) - false - else if $(e.target).is('output[activated]') - deactivate $(e.target) - false - -activate = ($output) -> - $block = $output.prev().find('code') - - run $block - - $output.find('.tether-element').show() - - key = $output.data('example') - $(tethers[key].element).show() - tethers[key].enable() - - $output.removeAttr('deactivated') - $output.attr('activated', true) - -deactivate = ($output) -> - $block = $output.prev().find('code') - key = $output.data('example') - - tethers[key].disable() - - $el = $(tethers[key].element) - $el.detach() - $output.find('.scroll-content').append $el - $el.hide() - - $output.removeAttr('activated') - $output.attr('deactivated', true) - -init = -> - $blocks = $('code[data-example]') - - setupBlock($ block) for block in $blocks - -window.EXECUTR_OPTIONS = - codeSelector: 'code[executable]' - -$ init diff --git a/bower_components/tether/docs/css/intro.css b/bower_components/tether/docs/css/intro.css deleted file mode 100644 index 44303fd99..000000000 --- a/bower_components/tether/docs/css/intro.css +++ /dev/null @@ -1,218 +0,0 @@ -@charset "UTF-8"; -*, *:after, *:before { - box-sizing: border-box; } - -body { - position: relative; } - -.yellow-box { - width: 100px; - height: 100px; - background-color: #fe8; - pointer-events: none; } - -.green-box { - margin-top: 65px; - margin-left: 100px; - width: 200px; - height: 50px; - background-color: #4e9; } - .no-green .green-box { - display: none; } - -.scroll-box { - height: 150px; - border: 10px solid #eee; - background: #fbfbfb; - overflow: auto; - position: relative; } - -.scroll-content { - height: 2000px; - width: 2000px; - padding: 910px 809px; } - -pre.pre-with-output { - margin: 0; - width: 50%; - float: left; } - pre.pre-with-output code mark { - background: #b8daff; - color: #000; } - -p, h2, h3 { - clear: both; } - -output { - display: block; - position: relative; - width: 50%; - float: right; - margin-bottom: 15px; } - output.scroll-page .scroll-box { - overflow: hidden; } - output.scroll-page:after { - content: "↕ scroll the page ↕"; } - output:after { - content: "↕ scroll this area ↕"; - position: absolute; - bottom: 25px; - width: 100%; - text-align: center; - font-size: 16px; - font-variant: small-caps; - color: #777; - opacity: 1; - -webkit-transition: opacity 0.2s; - transition: opacity 0.2s; } - output.scrolled:after { - opacity: 0; } - output[deactivated], output[activated] { - cursor: pointer; } - output[deactivated] .scroll-box, output[activated] .scroll-box { - pointer-events: none; } - output[deactivated]:after, output[activated]:after { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - opacity: 1; - content: "Click To Show"; - background-color: #AAA; - border-left: 10px solid #EEE; - color: white; - font-size: 24px; - font-variant: normal; - padding-top: 80px; } - output[activated]:after { - content: "Click To Hide"; } - output[activated].visible-enabled:after { - height: 35px; - padding-top: 5px; } - -.attachment-mark, .tether-marker-dot { - position: relative; } - .attachment-mark:after, .tether-marker-dot:after { - content: "A"; - width: 10px; - height: 10px; - background-color: red; - display: inline-block; - line-height: 10px; - font-size: 9px; - color: white; - text-align: center; - position: absolute; } - -span.attachment-mark:after, span.tether-marker-dot:after { - position: relative; - top: -1px; - margin-right: 1px; } - -.tether-marker-dot { - position: absolute; } - .tether-marker-dot:after { - top: -5px; - left: -5px; } - -.tether-target-marker { - position: absolute; } - div.tether-target-attached-left .tether-target-marker { - left: 0; } - div.tether-target-attached-top .tether-target-marker { - top: 0; } - div.tether-target-attached-bottom .tether-target-marker { - bottom: 0; } - div.tether-target-attached-right .tether-target-marker { - right: 0; } - div.tether-target-attached-center .tether-target-marker { - left: 50%; } - -.tether-element-marker { - position: absolute; } - div.tether-element-attached-left .tether-element-marker { - left: 0; } - div.tether-element-attached-top .tether-element-marker { - top: 0; } - div.tether-element-attached-bottom .tether-element-marker { - bottom: 0; } - div.tether-element-attached-right .tether-element-marker { - right: 0; } - div.tether-element-attached-center .tether-element-marker { - left: 50%; } - -.tether-element-attached-middle .tether-element-marker { - top: 50px; } - -.tether-target-attached-middle .tether-target-marker { - top: 25px; } - -.tether-element { - position: relative; } - .tether-element.tether-pinned-left { - box-shadow: inset 2px 0 0 0 red; } - .tether-element.tether-pinned-right { - box-shadow: inset -2px 0 0 0 red; } - .tether-element.tether-pinned-top { - box-shadow: inset 0 2px 0 0 red; } - .tether-element.tether-pinned-bottom { - box-shadow: inset 0 -2px 0 0 red; } - -.tether-target { - position: relative; } - -.tether-element.tether-out-of-bounds[data-example="hide"] { - display: none; } - -[data-example^="optimizer"].lang-javascript { - /* This should just be a `code` selector, but sass doesn't allow that with & */ - min-height: 220px; } - -[data-example^="optimizer"].tether-element:before { - margin-top: 26px; - display: block; - text-align: center; - content: "I'm in the body"; - line-height: 1.2; - font-size: 15px; - padding: 4px; - color: #666; } - -[data-example^="optimizer"] .scroll-box .tether-element:before { - content: "I'm in my scroll parent!"; } - -.tether-element[data-example="scroll-visible"] { - height: 30px; } - .tether-element[data-example="scroll-visible"] .tether-marker-dot { - display: none; } - -.hs-doc-content h2.projects-header { - text-align: center; - font-weight: 300; } - -.projects-paragraph { - text-align: center; } - .projects-paragraph a { - display: inline-block; - vertical-align: middle; - *vertical-align: auto; - *zoom: 1; - *display: inline; - text-align: center; - margin-right: 30px; - color: inherit; } - .projects-paragraph a span { - display: inline-block; - vertical-align: middle; - *vertical-align: auto; - *zoom: 1; - *display: inline; - margin-bottom: 20px; - font-size: 20px; - color: inherit; - font-weight: 300; } - .projects-paragraph a img { - display: block; - max-width: 100%; - width: 100px; } diff --git a/bower_components/tether/docs/intro.md b/bower_components/tether/docs/intro.md deleted file mode 100644 index aaf5ab5bc..000000000 --- a/bower_components/tether/docs/intro.md +++ /dev/null @@ -1,591 +0,0 @@ - - - - - -Tether -====== - -Tether is a JavaScript library for efficiently making an absolutely positioned -element stay next to another element on the page. For example, you might -want a tooltip or dialog to open, and remain, next to the relevant item -on the page. - -Tether includes the ability to constrain the element within the viewport, its -scroll parent, any other element on the page, or a fixed bounding box. When it -exceeds those constraints it can be pinned to the edge, flip to the other -side of its target, or hide itself. - -Tether optimizes its location placement to result in the minimum amount of -'jankyness' as the page is scrolled and resized. The page can maintain 60fps -scrolling even with dozens or hundreds of tethers on screen (pop open the -devtools timeline as you scroll this page). - -Tether is 5kb minified and gzipped, and supports IE9+, and all modern -browsers. - -

      Projects Built With Tether

      -

      -Select -Drop -Tooltip -Shepherd -

      - -Usage ------ - -The element to be moved is called the 'element'. -The element in the page it's to be attached to is called the 'target'. - -To use Tether, you define a point on the target and a point on the element. -Tether moves the element to keep those two points on top of each other. - -That point is called the attachment (we've marked it in the examples with -a red ). For example, if you'd like -the element to sit on the left of the target: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top right',
      -  targetAttachment: 'top left'
      -});
      -
      - -Attachment ----------- - -You can move the attachment points of both the element and the target. - -For example, lets move the element's attachment: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'bottom left',
      -  targetAttachment: 'top left'
      -});
      -
      - -We can also change the target's attachment point: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'bottom left',
      -  targetAttachment: 'bottom right'
      -});
      -
      - -There are two more attachment points we haven't seen yet, center and middle: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'middle center',
      -  targetAttachment: 'middle center'
      -});
      -
      - -All told, Tether provides six built in attachment positions: - -- left -- center -- right -- top -- middle -- bottom - -The syntax of the attachment properties is: `"vertical-attachment horizontal-attachment"`. - -You must always supply an `attachment`. If you don't supply a `target-attachment`, it is -assumed to be the mirror image of `attachment`. - -### Offset - -The six attachment points we provide are not always enough to place the element -exactly where you want it. To correct this, we provide two more properties, -`offset` and `targetOffset`. - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top right',
      -  targetAttachment: 'top left',
      -  offset: '0 10px'
      -});
      -
      - -As you can see, we've moved the attachment point of the element 10px to the right. -We can also move the attachment point of the target: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top right',
      -  targetAttachment: 'top left',
      -  offset: '0 10px',
      -  targetOffset: '20px 0'
      -});
      -
      - -The offset properties also accept percentages. Percentages in `offset` refer to -the height and width of the element, `targetOffset` the height and width of -the target. - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top right',
      -  targetAttachment: 'top left',
      -  targetOffset: '0 75%'
      -});
      -
      - -The syntax of the offset properties is `"vertical-offset horizontal-offset"` - -Tether offers a couple of special attachments, using the `targetModifier` -option: - -
      new Tether({
      -  element: yellowBox,
      -  target: scrollBox,
      -  attachment: 'middle right',
      -  targetAttachment: 'middle left',
      -  targetModifier: 'scroll-handle'
      -});
      -
      - -Set the target to `document.body` to have the element follow the page's scroll bar. - -The `targetModifier` `visible` can be used to attach an element to the visible part -of an element: - -
      new Tether({
      -  element: yellowBox,
      -  target: document.body,
      -  attachment: 'middle center',
      -  targetAttachment: 'middle center',
      -  targetModifier: 'visible'
      -});
      -
      - -
      new Tether({
      -  element: yellowBox,
      -  target: scrollBox,
      -  attachment: 'middle center',
      -  targetAttachment: 'middle center',
      -  targetModifier: 'visible'
      -});
      -
      - -Constraints ------------ - -If you have tried any of the previous examples, you'll notice that it's pretty -easy to scroll the regions in such a way that the element is hanging out on -its own, with no target in sight. - -Constraints allow you to control what happens when the tethered element would -have to fall outside of a defined region to maintain the attachment. - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'middle left',
      -  targetAttachment: 'middle left',
      -  constraints: [
      -    {
      -      to: 'scrollParent',
      -      pin: true
      -    }
      -  ]
      -});
      -
      - -We've created a constraint which will keep the element within its scroll -parent by 'pinning' it to the edges if it tries to escape. For the sake -of the example, we're also highlighting the pinned edge in red. - -Specify an array of sides if you'd only like to pin those edges: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'middle left',
      -  targetAttachment: 'middle left',
      -  constraints: [
      -    {
      -      to: 'scrollParent',
      -      pin: ['top']
      -    }
      -  ]
      -});
      -
      - -You might want to allow the element to change its attachment, if doing so -would keep more of it within its assigned region: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left',
      -  constraints: [
      -    {
      -      to: 'scrollParent',
      -      attachment: 'together'
      -    }
      -  ]
      -});
      -
      - -If you scroll the example a bit, you'll see it flip the attachment when necessary. -You can combine `pin` and `attachment` as well: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left',
      -  constraints: [
      -    {
      -      to: 'scrollParent',
      -      attachment: 'together',
      -      pin: true
      -    }
      -  ]
      -});
      -
      - -Attachment will accept any of these values: - -- `element`: Only change the element's attachment -- `target`: Only change the target's attachment -- `both`: Change either's attachment (or both), as needed -- `together`: Change both the element's and target's attachment at the same time (to -'flip' the element to the other side of the attachment) -- `none`: Don't allow changes to attachment (the default) - -Together is the option you will use most commonly: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top right',
      -  targetAttachment: 'bottom left',
      -  constraints: [
      -    {
      -      to: 'scrollParent',
      -      attachment: 'together'
      -    }
      -  ]
      -});
      -
      - -You can also provide different settings for the vertical and horizontal attachments: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left',
      -  constraints: [
      -    {
      -      to: 'scrollParent',
      -      attachment: 'together none'
      -    }
      -  ]
      -});
      -
      - -Whenever the element is out of the constrained area, we add the `tether-out-of-bounds` -class to it. If you add some CSS to make items with that class `display: none`, the -tether will hide. - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'middle center',
      -  targetAttachment: 'middle center',
      -  constraints: [
      -    {
      -      to: 'scrollParent'
      -    }
      -  ]
      -});
      -
      - -You can also constrain the element to the viewport, you'll have to scroll the -page to see this one. - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left',
      -  constraints: [
      -    {
      -      to: 'window',
      -      attachment: 'together'
      -    }
      -  ]
      -});
      -
      - -You can, of course, use pin with the window as well to -make it always visible no matter where the user scrolls: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left',
      -  constraints: [
      -    {
      -      to: 'window',
      -      attachment: 'together',
      -      pin: true
      -    }
      -  ]
      -});
      -
      - -`to` can be any of: - -- `'scrollParent'` -- `'window'` -- any DOM element -- an array of bound points relative to the body `[X1, Y1, X2, Y2]` - -You can also provide multiple constraints, keeping in mind that they are -processed in the order supplied (the last one always has the final word). - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left',
      -  constraints: [
      -    {
      -      to: 'scrollParent',
      -      pin: true
      -    },
      -    {
      -      to: 'window',
      -      attachment: 'together'
      -    }
      -  ]
      -});
      -
      - -Optimization ------------- - -### Element Moving - -The goal of Tether's optimizer is to not have to change the positioning -CSS as the page is scrolled or resized. To accomplish this it looks at the -last few positions, finds commonalities, and uses them to decide whether to -position the element absolutely or with fixed positioning. - -If the element is fully contained within its scroll parent, its DOM node -can also be moved inside the scroll parent, to avoid repaints as the -container is scrolled. - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left'
      -});
      -
      - -We are moving where the DOM node is, so if you have CSS which styles elements -within the offset parent, you may see some rendering changes. Also note -that this optimization works best if the scroll parent is the offset parent. -In other words, **the scroll parent should be made position relative, fixed or -absolute to enable this optimization.** - -If you do see stylistic changes occur when the element is moved, -you might want to disable this optimization. You can do that by -setting `optimizations.moveElement` to false. - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  targetAttachment: 'bottom left',
      -  optimizations: {
      -    moveElement: false
      -  }
      -});
      -
      - -### GPU - -By default tether positions elements using CSS transforms. These transforms allow the -tethered element to be moved as its own layer to not force a repaint of the underlying -page. - -This method of positioning can cause some issues however, including color shifts and artifacts. - -If you experience these issues, you can disable this optimization by setting `optimizations.gpu` -to false: - -
      new Tether({
      -  element: yellowBox,
      -  target: greenBox,
      -  attachment: 'top left',
      -  optimizations: {
      -    gpu: false
      -  }
      -});
      -
      - -Methods -------- - -The `Tether` constructor we've been using in these examples returns us a -`Tether` object. - -The `Tether` object has these methods: - -- `setOptions({ options })` - Update any of the options (such as attachment) -- `disable()` - Disable the tethering -- `enable()` - Enable the tethering -- `destroy()` - Disable and remove all references -- `position()` - Manually trigger a repositioning - -Options -------- - -The full list of options which can be passed to the `Tether` constructor and -`setOptions`: - -- `element`: The DOM element, jQuery element, or a selector string of an element which will be moved -- `target`: The DOM element, jQuery element, or a selector string of an element which the `element` will be attached to -- `attachment`: A string of the form `'vert-attachment horiz-attachment'` - - `vert-attachment` can be any of `'top'`, `'middle'`, `'bottom'` - - `horiz-attachment` can be any of `'left'`, `'center'`, `'right'` -- `targetAttachment`: A string similar to `attachment`. - The one difference is that, if it's not provided, targetAttachment will assume the mirror - image of `attachment`. -- `offset`: A string of the form `'vert-offset horiz-offset'` - - `vert-offset` and `horiz-offset` can be of the form `"20px"` or `"55%"` -- `targetOffset`: A string similar to `offset`, but refering to the offset of the target -- `targetModifier`: Can be set to `'visible'` or `'scroll-handle'` -- `enabled`: Should the tether be enabled initially? Defaults to `true`. -- `classes`: A hash of classes which should be changed or disabled -- `classPrefix`: The prefix placed at the beginning of the default classes, defaults to `'tether'` -- `optimizations`: A hash of optimizations, used to disable them -- `constraints`: An array of constraint definition objects. Each definition is of the form: - - `to`: A DOM element, bounding box, the string `'window'`, or the string `'scrollParent'` - - `pin`: `true` or an array of strings representing the sides of the constraint - - `attachment`: A string of the form `"vert-modifier horiz-modifier"`, or a single value - representing both - - Each modifier should be one of `"none"`, `"together"`, `"element"`, `"target"`, or `"both"`. - - `outOfBoundsClass`: An alternative to `"tether-out-of-bounds"`, useful if the class - needs to be differentiated from that of another constraint. - - `pinnedClass`: An alternative to `"tether-pinned"`, similar to `outOfBoundsClass`. - -Classes -------- - -Tether adds a variety of classes to the element and target to allow you to style -them based on their tethering. - -You can change the prefix of the classes with the `classPrefix` option. It is `'tether'` by -default, but you could, for example, change it to be `'bill'` if you were building the bill -library and all the classes would be `'bill-*'`. - -```javascript -new Tether({ - classPrefix: 'bill' -}); -``` - -The sass/css is similarily configurable, see -[tooltip](https://github.com/HubSpot/tooltip/blob/master/sass/tooltip-theme-arrows.sass#L14) for -an example of how to make your own prefixed css file. - -All classes can be changed or disabled with the `classes` option. For example, to change the -`tether-element` class to be `my-box`: - -```javascript -new Tether({ - classes: { - element: 'my-box' - } -}); -``` - -You can also disable classes you're not going to use: - -```javascript -new Tether({ - classes: { - out-of-bounds: false - } -}); -``` - -- `tether-element` is added to the element -- `tether-target` is added to the target -- `tether-enabled` is added to both elements when tether is not disabled -- `tether-element-attached-[left,right,top,bottom,middle,center]` is added to both -elements based on the elements attachment, if the element becomes detached (for -example, if it's pinned), that class is removed. The class reflects how the -element is actually attached, so if a constraint changes the attachment, that -change will be reflected in the class. -- `tether-target-attached-[left,right,top,bottom,middle,center]` is added to both -elements based on the target's attachment. All of the characteristics are the -same as for element-attached. - -### Constraint-related Classes - -- `tether-out-of-bounds`, `tether-out-of-bounds-[side]` are added to both the element and the target -when the element is placed outside of its constraint. -- `tether-pinned`, `tether-pinned-[side]` are added to both the element and target when a constraint -has pinned the element to the [side] of the container. - -Browser Support ---------------- - -Tether supports IE9+, and all modern browsers. - -Google doesn't support IE8, Microsoft is dropping support in a few months, and not supporting it saves -us a whole lot of trouble. If you are interested in adding support, get in touch, we're happy to accept -a PR. - -Contributing ------------- - -Please contribute! Tether is developed in Coffeescript, but if that's problematic for you, feel free -to submit pull requests which just change the JavaScript files, we can adapt them as needed. - -To build Tether, you need: - -- Node.js - -#### Instructions - -- Install the build tool - -```bash -npm install -g gulp -``` - -- Install the project - -```bash -# In the project directory -npm install -``` - -- Build / Watch - -```bash -gulp -``` diff --git a/bower_components/tether/docs/js/intro.js b/bower_components/tether/docs/js/intro.js deleted file mode 100644 index 47ed6e5b3..000000000 --- a/bower_components/tether/docs/js/intro.js +++ /dev/null @@ -1,117 +0,0 @@ -(function() { - var OUTPUT_HTML, SETUP_JS, activate, deactivate, getOutput, init, run, setupBlock, tethers, uniqueId; - - uniqueId = Tether.Utils.uniqueId; - - SETUP_JS = "yellowBox = $('.yellow-box', $output);\ngreenBox = $('.green-box', $output);\nscrollBox = $('.scroll-box', $output);"; - - OUTPUT_HTML = function(key) { - return "
      \n
      \n
      \n
      \n
      \n
      "; - }; - - tethers = {}; - - getOutput = function($block) { - var key; - key = $block.data('example'); - if (key && typeof key === 'string') { - return $("output[data-example='" + key + "']"); - } else { - return $block.parents('pre').nextAll('output').first(); - } - }; - - run = function(key) { - var $block, $output, code; - if (typeof key === 'string') { - $block = $("code[data-example='" + key + "']"); - } else { - $block = key; - } - key = $block.attr('data-example'); - $output = getOutput($block); - code = $block.text(); - code = SETUP_JS + code; - window.$output = $output; - return tethers[key] = eval(code); - }; - - setupBlock = function($block) { - var $output, $scrollBox, $scrollContent, key; - key = $block.data('example'); - $output = getOutput($block); - if (!key) { - key = uniqueId(); - $block.attr('data-example', key); - $output.attr('data-example', key); - $output.find('.tether-element').attr('data-example', key); - } - $output.html(OUTPUT_HTML(key)); - $scrollBox = $output.find('.scroll-box'); - $scrollContent = $scrollBox.find('.scroll-content'); - $scrollBox.scrollTop(parseInt($scrollContent.css('height')) / 2 - $scrollBox.height() / 2); - $scrollBox.scrollLeft(parseInt($scrollContent.css('width')) / 2 - $scrollBox.width() / 2); - setTimeout(function() { - return $scrollBox.on('scroll', function() { - return $output.addClass('scrolled'); - }); - }); - $scrollBox.css('height', "" + ($block.parent().outerHeight()) + "px"); - if ($output.attr('deactivated') == null) { - return run($block); - } - }; - - $(document.body).on('click', function(e) { - if ($(e.target).is('output[deactivated]')) { - activate($(e.target)); - return false; - } else if ($(e.target).is('output[activated]')) { - deactivate($(e.target)); - return false; - } - }); - - activate = function($output) { - var $block, key; - $block = $output.prev().find('code'); - run($block); - $output.find('.tether-element').show(); - key = $output.data('example'); - $(tethers[key].element).show(); - tethers[key].enable(); - $output.removeAttr('deactivated'); - return $output.attr('activated', true); - }; - - deactivate = function($output) { - var $block, $el, key; - $block = $output.prev().find('code'); - key = $output.data('example'); - tethers[key].disable(); - $el = $(tethers[key].element); - $el.detach(); - $output.find('.scroll-content').append($el); - $el.hide(); - $output.removeAttr('activated'); - return $output.attr('deactivated', true); - }; - - init = function() { - var $blocks, block, _i, _len, _results; - $blocks = $('code[data-example]'); - _results = []; - for (_i = 0, _len = $blocks.length; _i < _len; _i++) { - block = $blocks[_i]; - _results.push(setupBlock($(block))); - } - return _results; - }; - - window.EXECUTR_OPTIONS = { - codeSelector: 'code[executable]' - }; - - $(init); - -}).call(this); diff --git a/bower_components/tether/docs/js/markAttachment.js b/bower_components/tether/docs/js/markAttachment.js deleted file mode 100644 index c7d34f088..000000000 --- a/bower_components/tether/docs/js/markAttachment.js +++ /dev/null @@ -1,51 +0,0 @@ -/* globals Tether */ - -'use strict'; - -Tether.modules.push({ - initialize: function initialize() { - var _this = this; - - this.markers = {}; - - ['target', 'element'].forEach(function (type) { - var el = document.createElement('div'); - el.className = _this.getClass('' + type + '-marker'); - - var dot = document.createElement('div'); - dot.className = _this.getClass('marker-dot'); - el.appendChild(dot); - - _this[type].appendChild(el); - - _this.markers[type] = { dot: dot, el: el }; - }); - }, - - position: function position(_ref) { - var manualOffset = _ref.manualOffset; - var manualTargetOffset = _ref.manualTargetOffset; - - var offsets = { - element: manualOffset, - target: manualTargetOffset - }; - - for (var type in offsets) { - var offset = offsets[type]; - for (var side in offset) { - var val = offset[side]; - var notString = typeof val !== 'string'; - if (notString || val.indexOf('%') === -1 && val.indexOf('px') === -1) { - val += 'px'; - } - - if (this.markers[type].dot.style[side] !== val) { - this.markers[type].dot.style[side] = val; - } - } - } - - return true; - } -}); diff --git a/bower_components/tether/docs/sass/intro.sass b/bower_components/tether/docs/sass/intro.sass deleted file mode 100644 index 8456a2094..000000000 --- a/bower_components/tether/docs/sass/intro.sass +++ /dev/null @@ -1,233 +0,0 @@ -$scrollableArea: 2000px -$exampleWidth: 400px -$exampleHeight: 180px - -@mixin inline-block - display: inline-block - vertical-align: middle - *vertical-align: auto - *zoom: 1 - *display: inline - -*, *:after, *:before - box-sizing: border-box - -body - position: relative - -.yellow-box - width: 100px - height: 100px - background-color: #fe8 - pointer-events: none - -.green-box - margin-top: ($exampleHeight - 50px) / 2 - margin-left: ($exampleWidth - 200px) / 2 - width: 200px - height: 50px - background-color: #4e9 - - .no-green & - display: none - -.scroll-box - height: 150px - border: 10px solid #eee - background: #fbfbfb - overflow: auto - position: relative - -.scroll-content - height: $scrollableArea - width: $scrollableArea - padding: ($scrollableArea - $exampleHeight)/2 ($scrollableArea - $exampleWidth)/2 + 9 - -pre.pre-with-output - margin: 0 - width: 50% - float: left - - code mark - background: #b8daff - color: #000 - -p, h2, h3 - clear: both - -output - display: block - position: relative - width: 50% - float: right - margin-bottom: 15px - - &.scroll-page - .scroll-box - overflow: hidden - - &:after - content: "↕ scroll the page ↕" - - &:after - content: "↕ scroll this area ↕" - position: absolute - bottom: 25px - width: 100% - text-align: center - font-size: 16px - font-variant: small-caps - color: #777 - opacity: 1 - transition: opacity 0.2s - - &.scrolled:after - opacity: 0 - - &[deactivated], &[activated] - .scroll-box - pointer-events: none - - cursor: pointer - - &:after - position: absolute - top: 0 - left: 0 - right: 0 - bottom: 0 - opacity: 1 - content: "Click To Show" - background-color: #AAA - border-left: 10px solid #EEE - color: white - font-size: 24px - font-variant: normal - padding-top: 80px - - &[activated] - &:after - content: "Click To Hide" - - &.visible-enabled - &:after - height: 35px - padding-top: 5px - -.attachment-mark - position: relative - - &:after - content: "A" - width: 10px - height: 10px - background-color: red - display: inline-block - - line-height: 10px - font-size: 9px - color: white - text-align: center - - position: absolute - -span.attachment-mark - &:after - position: relative - top: -1px - margin-right: 1px - -.tether-marker-dot - @extend .attachment-mark - - position: absolute - - &:after - top: -5px - left: -5px - -@each $type in target, element - .tether-#{ $type }-marker - position: absolute - - @each $side in left, top, bottom, right - div.tether-#{ $type }-attached-#{ $side } & - #{ $side }: 0 - - div.tether-#{ $type }-attached-center & - left: 50% - -.tether-element-attached-middle .tether-element-marker - top: 50px - -.tether-target-attached-middle .tether-target-marker - top: 25px - -.tether-element - position: relative - - &.tether-pinned-left - box-shadow: inset 2px 0 0 0 red - &.tether-pinned-right - box-shadow: inset -2px 0 0 0 red - &.tether-pinned-top - box-shadow: inset 0 2px 0 0 red - &.tether-pinned-bottom - box-shadow: inset 0 -2px 0 0 red - -.tether-target - position: relative - -.tether-element.tether-out-of-bounds[data-example="hide"] - display: none - -[data-example^="optimizer"] - &.lang-javascript - /* This should just be a `code` selector, but sass doesn't allow that with & */ - min-height: 220px - - &.tether-element - - &:before - margin-top: 26px - display: block - text-align: center - content: "I'm in the body" - line-height: 1.2 - font-size: 15px - padding: 4px - color: #666 - - .scroll-box .tether-element:before - content: "I'm in my scroll parent!" - -.tether-element[data-example="scroll-visible"] - height: 30px - - .tether-marker-dot - display: none - -.hs-doc-content h2.projects-header - text-align: center - font-weight: 300 - -.projects-paragraph - text-align: center - - a - +inline-block - text-align: center - margin-right: 30px - color: inherit - - span - +inline-block - margin-bottom: 20px - font-size: 20px - color: inherit - font-weight: 300 - - img - display: block - max-width: 100% - width: 100px diff --git a/bower_components/tether/docs/welcome/browser-demo.html b/bower_components/tether/docs/welcome/browser-demo.html deleted file mode 100644 index 6c175bc19..000000000 --- a/bower_components/tether/docs/welcome/browser-demo.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - Drop – Browser Demo - - - - - - - - - - - - - -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -

      -

      -

      -

      -

      -

      -
      -
      -
      - - - - - - - - - - diff --git a/bower_components/tether/docs/welcome/coffee/welcome.coffee b/bower_components/tether/docs/welcome/coffee/welcome.coffee deleted file mode 100644 index a43160214..000000000 --- a/bower_components/tether/docs/welcome/coffee/welcome.coffee +++ /dev/null @@ -1,212 +0,0 @@ -_Drop = Drop.createContext classPrefix: 'tether' - -isMobile = $(window).width() < 567 - -init = -> - setupHero() - setupBrowserDemo() - -setupHero = -> - $target = $('.tether-target-demo') - - positions = [ - 'top left' - 'left top' - 'left middle' - 'left bottom' - 'bottom left' - 'bottom center' - 'bottom right' - 'right bottom' - 'right middle' - 'right top' - 'top right' - 'top center' - ] - - if isMobile - positions = [ - 'top left' - 'bottom left' - 'bottom right' - 'top right' - ] - - window.drops = {} - - for position in positions - drops[position] = new _Drop - target: $target[0] - classes: 'tether-theme-arrows-dark' - position: position - constrainToWindow: false - openOn: '' - content: '
      ' - - openIndex = 0 - frames = 0 - frameLengthMS = 10 - - openAllDrops = -> - for position, drop of drops - drop.open() - - openNextDrop = -> - for position, drop of drops - drop.close() - - drops[positions[openIndex]].open() - drops[positions[(openIndex + 6) % positions.length]].open() - - openIndex = (openIndex + 1) % positions.length - - if frames > 5 - finalDropState() - return - - frames += 1 - - setTimeout openNextDrop, frameLengthMS * frames - - finalDropState = -> - $(drops['top left'].dropContent).html('Marrying DOM elements for life.') - $(drops['bottom right'].dropContent).html('★ On Github') - drops['top left'].open() - drops['bottom right'].open() - - if true or isMobile - drops['top left'].open() - drops['top left'].tether.position() - drops['bottom right'].open() - drops['bottom right'].tether.position() - finalDropState() - - else - openNextDrop() - -setupBrowserDemo = -> - $browserDemo = $('.browser-demo.showcase') - - $startPoint = $('.browser-demo-start-point') - $stopPoint = $('.browser-demo-stop-point') - - $iframe = $('.browser-window iframe') - $browserContents = $('.browser-content .browser-demo-inner') - - $sections = $('.browser-demo-section') - - $('body').append """ - - """ - - $(window).scroll -> - scrollTop = $(window).scrollTop() - - if $startPoint.position().top < scrollTop and scrollTop + window.innerHeight < $stopPoint.position().top - $browserDemo.removeClass('fixed-bottom') - $browserDemo.addClass('fixed') - - $sections.each -> - $section = $ @ - - if $section.position().top < scrollTop < $section.position().top + $section.outerHeight() - setSection $section.data('section') - - return true - - else - $browserDemo.removeAttr('data-section') - $browserDemo.removeClass('fixed') - - if scrollTop + window.innerHeight > $stopPoint.position().top - $browserDemo.addClass('fixed-bottom') - else - $browserDemo.removeClass('fixed-bottom') - - $iframe.load -> - iframeWindow = $iframe[0].contentWindow - - $items = $iframe.contents().find('.item') - - $items.each (i) -> - $item = $(@) - - _iframeWindowDrop = iframeWindow.Drop.createContext classPrefix: 'tether' - - drop = new _iframeWindowDrop - target: $item[0] - classes: 'tether-theme-arrows-dark' - position: 'right top' - constrainToWindow: true - openOn: 'click' - content: ''' -
        -
      • Action 1
      • -
      • Action 2
      • -
      • Action 3
      • -
      - ''' - - $item.data('drop', drop) - - scrollInterval = undefined - scrollTop = 0 - scrollTopDirection = 1 - - setSection = (section) -> - $browserDemo.attr('data-section', section) - - $('.section-copy').removeClass('active') - $(""".section-copy[data-section="#{ section }"]""").addClass('active') - - openExampleItem = -> - if isMobile - $iframe.contents().find('.item:first').data().drop.open() - else - $iframe.contents().find('.item:eq(2)').data().drop.open() - - closeAllItems = -> - $iframe.contents().find('.item').each -> $(@).data().drop.close() or true - - scrollLeftSection = -> - scrollInterval = setInterval -> - $iframe.contents().find('.left').scrollTop scrollTop - scrollTop += scrollTopDirection - if scrollTop > 50 - scrollTopDirection = -1 - if scrollTop < 0 - scrollTopDirection = 1 - , 30 - - stopScrollingLeftSection = -> - clearInterval scrollInterval - - switch section - - when 'what' - closeAllItems() - openExampleItem() - stopScrollingLeftSection() - - when 'how' - closeAllItems() - openExampleItem() - stopScrollingLeftSection() - scrollLeftSection() - - when 'why' - closeAllItems() - openExampleItem() - stopScrollingLeftSection() - scrollLeftSection() - - when 'outro' - closeAllItems() - openExampleItem() - stopScrollingLeftSection() - -init() \ No newline at end of file diff --git a/bower_components/tether/docs/welcome/css/browser-demo.css b/bower_components/tether/docs/welcome/css/browser-demo.css deleted file mode 100644 index 0bd007b8f..000000000 --- a/bower_components/tether/docs/welcome/css/browser-demo.css +++ /dev/null @@ -1,86 +0,0 @@ -html, body { - height: 100%; - overflow: hidden; - font-family: "proxima-nova", sans-serif; } - -.tether.tether-theme-arrows-dark .tether-content { - -webkit-filter: none; - filter: none; - background: #000; } - .tether.tether-theme-arrows-dark .tether-content ul { - color: #fff; - list-style: none; - padding: 0; - margin: 0; } - -.tether.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content:before { - border-right-color: #000; } - -.browser-demo { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; } - .browser-demo *, .browser-demo *:after, .browser-demo *:before { - box-sizing: border-box; } - .browser-demo .top { - position: absolute; - height: 60px; - padding: 20px; - line-height: 40px; - width: 100%; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); } - .browser-demo .bottom { - position: absolute; - top: 60px; - bottom: 0; - width: 100%; } - .browser-demo .bottom .left { - border-right: 1px solid rgba(0, 0, 0, 0.1); - position: absolute; - width: 30%; - height: 100%; - overflow: auto; } - .browser-demo .bottom .left .item { - height: 64px; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - cursor: pointer; } - .browser-demo .bottom .left .item:hover, .browser-demo .bottom .left .item.tether-open { - background: rgba(0, 0, 0, 0.1); - border-bottom: 1px solid transparent; } - .browser-demo .bottom .left .item:last-child { - border-bottom: 0; } - .browser-demo .bottom .right { - position: absolute; - width: 70%; - right: 0; - height: 100%; - padding: 20px; } - .browser-demo .title { - display: inline-block; - vertical-align: middle; - *vertical-align: auto; - *zoom: 1; - *display: inline; - background: rgba(0, 0, 0, 0.1); - width: 150px; - height: 15px; - margin-bottom: 20px; } - .browser-demo .word { - display: inline-block; - vertical-align: middle; - *vertical-align: auto; - *zoom: 1; - *display: inline; - background: rgba(0, 0, 0, 0.1); - width: 50px; - height: 8px; - margin-right: 5px; - margin-bottom: 5px; } - .browser-demo .word:nth-last-child(4n+1) { - width: 73px; } - .browser-demo .word:nth-last-child(10n+1) { - width: 14px; } - .browser-demo .word:nth-last-child(9n+1) { - width: 80px; } diff --git a/bower_components/tether/docs/welcome/css/prism.css b/bower_components/tether/docs/welcome/css/prism.css deleted file mode 100644 index b86d1c2a1..000000000 --- a/bower_components/tether/docs/welcome/css/prism.css +++ /dev/null @@ -1,2 +0,0 @@ -/* Prism.js */ -code[class*="language-"], pre[class*="language-"] {color: black; font-family: Consolas, Monaco, 'Andale Mono', monospace; direction: ltr; text-align: left; white-space: pre; word-spacing: normal; -moz-tab-size: 4; -o-tab-size: 4; tab-size: 4; -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; hyphens: none; } /* Code blocks */ pre[class*="language-"] {padding: 1em; margin: .5em 0; overflow: auto; font-size: 14px; } :not(pre) > code[class*="language-"], pre[class*="language-"] {background: rgba(0, 0, 0, .05); } /* Inline code */ :not(pre) > code[class*="language-"] {padding: .1em; border-radius: .3em; } .token.comment, .token.prolog, .token.doctype, .token.cdata {color: slategray; } .token.punctuation {color: #999; } .namespace {opacity: .7; } .token.property, .token.tag, .token.boolean, .token.number, .token.constant, .token.symbol {color: #905; } .token.selector, .token.attr-name, .token.string, .token.builtin {color: #690; } .token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string, .token.variable {color: #a67f59; } .token.atrule, .token.attr-value, .token.keyword {color: #07a; } .token.regex, .token.important {color: #e90; } .token.important {font-weight: bold; } .token.entity {cursor: help; } \ No newline at end of file diff --git a/bower_components/tether/docs/welcome/css/welcome.css b/bower_components/tether/docs/welcome/css/welcome.css deleted file mode 100644 index 8b7a6ad89..000000000 --- a/bower_components/tether/docs/welcome/css/welcome.css +++ /dev/null @@ -1,247 +0,0 @@ -html, body { - height: 100%; } - -body { - margin: 0; - font-family: "proxima-nova", "Helvetica Neue", sans-serif; } - -.button { - display: inline-block; - border: 2px solid #333; - color: #333; - padding: 1em 1.25em; - font-weight: 500; - text-transform: uppercase; - letter-spacing: 3px; - text-decoration: none; - cursor: pointer; - width: 140px; - font-size: .8em; - line-height: 1.3em; - text-align: center; } - -.tether-element.tether-theme-arrows-dark .tether-content { - padding: 1em; - font-size: 1.1em; } - .tether-element.tether-theme-arrows-dark .tether-content .button { - border-color: #fff; - color: #fff; - width: 170px; - pointer-events: all; } - -.mobile-copy { - display: none; } - @media (max-width: 568px) { - .mobile-copy { - display: block; } } - -.button.dark { - background: #333; - color: #fff; } - -.hero-wrap { - height: 100%; - overflow: hidden; } - -table.showcase { - height: 100%; - width: 100%; - position: relative; } - table.showcase:after { - content: ""; - display: block; - position: absolute; - left: 0; - right: 0; - bottom: 20px; - margin: auto; - height: 0; - width: 0; - border-width: 18px; - border-style: solid; - border-color: transparent; - border-top-color: rgba(0, 0, 0, 0.2); } - table.showcase.no-next-arrow:after { - display: none; } - table.showcase .showcase-inner { - margin: 40px auto 60px; - padding: 10px; } - table.showcase .showcase-inner h1 { - font-size: 50px; - text-align: center; - font-weight: 300; } - @media (max-width: 567px) { - table.showcase .showcase-inner h1 { - font-size: 40px; } } - table.showcase .showcase-inner h2 { - font-size: 24px; - text-align: center; - font-weight: 300; - margin: 1em 0 1em; } - @media (max-width: 567px) { - table.showcase .showcase-inner h2 { - font-size: 14px; } } - table.showcase .showcase-inner p { - text-align: center; } - table.showcase.hero { - text-align: center; } - table.showcase.hero .tether-target-demo { - display: inline-block; - vertical-align: middle; - *vertical-align: auto; - *zoom: 1; - *display: inline; - border: 2px dotted #000; - margin: 5rem auto; - padding: 5rem; } - @media (max-width: 567px) { - table.showcase.hero .tether-target-demo { - padding: 1rem; } } - table.showcase.share { - background: #f3f3f3; } - table.showcase.projects-showcase .showcase-inner .projects-list { - width: 80%; - max-width: 1200px; - margin: 0 auto; } - table.showcase.projects-showcase .showcase-inner .projects-list .project { - color: inherit; - text-decoration: none; - position: relative; - width: 50%; - float: left; - text-align: center; - margin-bottom: 2rem; } - table.showcase.projects-showcase .showcase-inner .projects-list .project:nth-child(odd) { - clear: left; } - table.showcase.projects-showcase .showcase-inner .projects-list .os-icon { - width: 8rem; - height: 8rem; - margin-bottom: 1rem; - background-size: 100%; } - table.showcase.projects-showcase .showcase-inner .projects-list h1 { - font-size: 2.5rem; } - table.showcase.projects-showcase .showcase-inner .projects-list p { - font-size: 1.3rem; } - table.showcase.browser-demo { - background-image: -webkit-linear-gradient(top left, #723362 0%, #9d223c 100%); - background-image: linear-gradient(top left, #723362 0%, #9d223c 100%); - background-color: #9d223c; - position: absolute; - top: 100%; } - table.showcase.browser-demo.fixed { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 1; } - table.showcase.browser-demo.fixed .browser-demo-inner { - -webkit-transition: width 2s ease-in-out, height 2s ease-in-out; - transition: width 2s ease-in-out, height 2s ease-in-out; } - table.showcase.browser-demo.fixed[data-section="what"] { - box-shadow: 0 0 0 0; } - table.showcase.browser-demo.fixed[data-section="why"] .browser-demo-inner { - width: 70%; } - table.showcase.browser-demo.fixed[data-section="outro"] .showcase-inner { - pointer-events: all; } - table.showcase.browser-demo .showcase-inner { - pointer-events: none; - position: absolute; - left: 10%; - right: 40%; - top: 220px; - bottom: 120px; - margin: 0; - padding: 0; } - @media (max-width: 567px) { - table.showcase.browser-demo .showcase-inner { - bottom: 90px; - top: 180px; } } - table.showcase.browser-demo .browser-demo-inner { - height: 100%; - width: 100%; } - table.showcase.browser-demo .section-copy { - -webkit-transition: opacity 0.5s ease-in-out, top 0.5s ease-in-out; - transition: opacity 0.5s ease-in-out, top 0.5s ease-in-out; - opacity: 0; - position: absolute; - top: 0; - position: absolute; - height: 200px; - color: #fff; - text-align: center; - width: 100%; } - table.showcase.browser-demo .section-copy.active { - opacity: 1; - top: -150px; } - @media (max-width: 567px) { - table.showcase.browser-demo .section-copy.active { - top: -130px; } } - table.showcase.browser-demo .section-copy h2 { - font-size: 40px; - font-weight: bold; - line-height: 1; - margin: 25px 0 15px; } - @media (max-width: 567px) { - table.showcase.browser-demo .section-copy h2 { - font-size: 30px; } } - table.showcase.browser-demo .browser-window { - border-radius: 4px; - background: #fff; - position: relative; - height: 100%; - width: 100%; - max-width: 1200px; - margin: 0 auto; } - table.showcase.browser-demo .browser-window .browser-titlebar { - position: absolute; - top: 0; - left: 0; - right: 0; - border-bottom: 1px solid #eee; - height: 55px; } - table.showcase.browser-demo .browser-window .browser-titlebar .browser-dots { - padding: 16px; } - table.showcase.browser-demo .browser-window .browser-titlebar .browser-dots b { - display: inline-block; - vertical-align: middle; - *vertical-align: auto; - *zoom: 1; - *display: inline; - border-radius: 50%; - width: 10px; - height: 10px; - margin-right: 7px; - background: rgba(0, 0, 0, 0.1); } - table.showcase.browser-demo .browser-window .browser-frame { - position: absolute; - top: 55px; - left: 0; - right: 0; - bottom: 0; } - table.showcase.browser-demo .browser-window .browser-frame iframe { - border-radius: 0 0 4px 4px; - border: 0; - width: 100%; - height: 100%; } - table.showcase.browser-demo-section .section-scroll-copy { - position: relative; - z-index: 10; - color: #fff; - width: 100%; - font-size: 22px; } - table.showcase.browser-demo-section .section-scroll-copy .section-scroll-copy-inner { - position: absolute; - z-index: 10; - color: #fff; - right: 10%; - width: 23%; } - table.showcase.browser-demo-section .section-scroll-copy .section-scroll-copy-inner a { - color: inherit; } - table.showcase.browser-demo-section .section-scroll-copy .section-scroll-copy-inner .example-paragraph { - border-radius: 4px; - background: #000; - padding: 1rem; } - -.browser-content { - display: none; } diff --git a/bower_components/tether/docs/welcome/index.html b/bower_components/tether/docs/welcome/index.html deleted file mode 100644 index d70d00d5e..000000000 --- a/bower_components/tether/docs/welcome/index.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - Tether – Marrying elements for life - - - - - - - - - - - - - - - - - -
      -
      -
      -
      -

      Tether

      -
      -

      Marrying elements for life

      -

      - ★ On Github -

      -
      -
      -
      -
      -
      - -
      - -
      -
      -
      -

      What is Tether?

      -
      -
      -

      How Tether works.

      -
      -
      -

      Tether is powerful.

      -
      -
      -

      Play with Tether

      -
      -
      -
      -
      -
      -
      -
      - -
      -
      -
      -
      -
      - -
      -
      -
      -

      Tether is a low-level UI library that can be used to position any element on a page next to any other element.

      -

      It can be used for dropdown menus, tooltips, popovers, tours, help information, scroll guides, autocompletes, etc. The possibilities are endless.

      -

      In this example we're showing an action menu tethered to a list item.

      -
      -
      -
      - -
      -
      -
      -

      Tether works by creating an absolutely positioned element and meticulously tracking the movements of a target which you specify.

      -

      The target and element can be tethered together in a variety of different ways.

      -

      Notice how the tethered element stays tethered to its target list item even as the left pane is scrolled up and down.

      -
      -
      -
      - -
      -
      -
      -

      Tether can keep your element positioned properly even in some tough situations.

      -

      Tether handles all of the common pain points:

      -
        -
      • Automatically detect collisions with the edge of the page or edge of the scrollParent
      • -
      • Automatically reposition on browser resize, scroll, and other events,
      • -
      • Constrain the position to any bounding box,
      • -
      -

      ...and a lot more.

      -
      -
      -
      - -
      -
      -
      -

      Interact with this demo.

      -

       

      -

      To learn more, check out our documentation.

      -
      -
      -
      - -
      - -
      - -
      - -
      - - - - - - - - - - - - - - - - - - - diff --git a/bower_components/tether/docs/welcome/js/drop.js b/bower_components/tether/docs/welcome/js/drop.js deleted file mode 100644 index 005881940..000000000 --- a/bower_components/tether/docs/welcome/js/drop.js +++ /dev/null @@ -1,239 +0,0 @@ -(function() { - var Evented, MIRROR_ATTACH, addClass, allDrops, clickEvent, createContext, extend, hasClass, removeClass, sortAttach, touchDevice, _ref, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - _ref = Tether.Utils, extend = _ref.extend, addClass = _ref.addClass, removeClass = _ref.removeClass, hasClass = _ref.hasClass, Evented = _ref.Evented; - - touchDevice = 'ontouchstart' in document.documentElement; - - clickEvent = touchDevice ? 'touchstart' : 'click'; - - sortAttach = function(str) { - var first, second, _ref1, _ref2; - _ref1 = str.split(' '), first = _ref1[0], second = _ref1[1]; - if (first === 'left' || first === 'right') { - _ref2 = [second, first], first = _ref2[0], second = _ref2[1]; - } - return [first, second].join(' '); - }; - - MIRROR_ATTACH = { - left: 'right', - right: 'left', - top: 'bottom', - bottom: 'top', - middle: 'middle', - center: 'center' - }; - - allDrops = {}; - - createContext = function(options) { - var DropInstance, defaultOptions, drop, _name; - if (options == null) { - options = {}; - } - drop = function() { - return (function(func, args, ctor) { - ctor.prototype = func.prototype; - var child = new ctor, result = func.apply(child, args); - return Object(result) === result ? result : child; - })(DropInstance, arguments, function(){}); - }; - extend(drop, { - createContext: createContext, - drops: [], - defaults: {} - }); - defaultOptions = { - classPrefix: 'drop', - defaults: { - attach: 'bottom left', - openOn: 'click', - constrainToScrollParent: true, - constrainToWindow: true, - classes: '', - tetherOptions: {} - } - }; - extend(drop, defaultOptions, options); - extend(drop.defaults, defaultOptions.defaults, options.defaults); - if (allDrops[_name = drop.classPrefix] == null) { - allDrops[_name] = []; - } - drop.updateBodyClasses = function() { - var anyOpen, _drop, _i, _len, _ref1; - anyOpen = false; - _ref1 = allDrops[drop.classPrefix]; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - _drop = _ref1[_i]; - if (!(_drop.isOpened())) { - continue; - } - anyOpen = true; - break; - } - if (anyOpen) { - return addClass(document.body, "" + drop.classPrefix + "-open"); - } else { - return removeClass(document.body, "" + drop.classPrefix + "-open"); - } - }; - DropInstance = (function(_super) { - __extends(DropInstance, _super); - - function DropInstance(options) { - this.options = options; - this.options = extend({}, drop.defaults, this.options); - this.target = this.options.target; - if (this.target == null) { - throw new Error('Drop Error: You must provide a target.'); - } - drop.drops.push(this); - allDrops[drop.classPrefix].push(this); - this.setupElements(); - this.setupEvents(); - this.setupTether(); - } - - DropInstance.prototype.setupElements = function() { - this.drop = document.createElement('div'); - addClass(this.drop, drop.classPrefix); - if (this.options.classes) { - addClass(this.drop, this.options.classes); - } - this.dropContent = document.createElement('div'); - addClass(this.dropContent, "" + drop.classPrefix + "-content"); - if (typeof this.options.content === 'object') { - this.dropContent.appendChild(this.options.content); - } else { - this.dropContent.innerHTML = this.options.content; - } - return this.drop.appendChild(this.dropContent); - }; - - DropInstance.prototype.setupTether = function() { - var constraints, dropAttach; - dropAttach = this.options.position.split(' '); - dropAttach[0] = MIRROR_ATTACH[dropAttach[0]]; - dropAttach = dropAttach.join(' '); - constraints = []; - if (this.options.constrainToScrollParent) { - constraints.push({ - to: 'scrollParent', - pin: 'top, bottom', - attachment: 'together none' - }); - } - if (this.options.constrainToWindow !== false) { - constraints.push({ - to: 'window', - pin: true, - attachment: 'together' - }); - } - constraints.push({ - to: 'scrollParent' - }); - options = { - element: this.drop, - target: this.target, - attachment: sortAttach(dropAttach), - targetAttachment: sortAttach(this.options.position), - classPrefix: drop.classPrefix, - offset: '0 0', - targetOffset: '0 0', - enabled: false, - constraints: constraints - }; - if (this.options.tether !== false) { - return this.tether = new Tether(extend({}, options, this.options.tether)); - } - }; - - DropInstance.prototype.setupEvents = function() { - var events, - _this = this; - if (!this.options.openOn) { - return; - } - events = this.options.openOn.split(' '); - if (__indexOf.call(events, 'click') >= 0) { - this.target.addEventListener(clickEvent, function() { - return _this.toggle(); - }); - document.addEventListener(clickEvent, function(event) { - if (!_this.isOpened()) { - return; - } - if (event.target === _this.drop || _this.drop.contains(event.target)) { - return; - } - if (event.target === _this.target || _this.target.contains(event.target)) { - return; - } - return _this.close(); - }); - } - if (__indexOf.call(events, 'hover') >= 0) { - this.target.addEventListener('mouseover', function() { - return _this.open(); - }); - return this.target.addEventListener('mouseout', function() { - return _this.close(); - }); - } - }; - - DropInstance.prototype.isOpened = function() { - return hasClass(this.drop, "" + drop.classPrefix + "-open"); - }; - - DropInstance.prototype.toggle = function() { - if (this.isOpened()) { - return this.close(); - } else { - return this.open(); - } - }; - - DropInstance.prototype.open = function() { - var _ref1; - if (!this.drop.parentNode) { - document.body.appendChild(this.drop); - } - addClass(this.target, "" + drop.classPrefix + "-open"); - addClass(this.drop, "" + drop.classPrefix + "-open"); - if ((_ref1 = this.tether) != null) { - _ref1.enable(); - } - this.trigger('open'); - return drop.updateBodyClasses(); - }; - - DropInstance.prototype.close = function() { - var _ref1; - removeClass(this.target, "" + drop.classPrefix + "-open"); - removeClass(this.drop, "" + drop.classPrefix + "-open"); - this.trigger('close'); - if ((_ref1 = this.tether) != null) { - _ref1.disable(); - } - return drop.updateBodyClasses(); - }; - - return DropInstance; - - })(Evented); - return drop; - }; - - window.Drop = createContext(); - - document.addEventListener('DOMContentLoaded', function() { - return Drop.updateBodyClasses(); - }); - -}).call(this); \ No newline at end of file diff --git a/bower_components/tether/docs/welcome/js/jquery.js b/bower_components/tether/docs/welcome/js/jquery.js deleted file mode 100644 index dfdf619cc..000000000 --- a/bower_components/tether/docs/welcome/js/jquery.js +++ /dev/null @@ -1,9597 +0,0 @@ -/*! - * jQuery JavaScript Library v1.9.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2013-2-4 - */ -(function( window, undefined ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -//"use strict"; -var - // The deferred used on DOM ready - readyList, - - // A central reference to the root jQuery(document) - rootjQuery, - - // Support: IE<9 - // For `typeof node.method` instead of `node.method !== undefined` - core_strundefined = typeof undefined, - - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - location = window.location, - - // Map over jQuery in case of overwrite - _jQuery = window.jQuery, - - // Map over the $ in case of overwrite - _$ = window.$, - - // [[Class]] -> type pairs - class2type = {}, - - // List of deleted data cache ids, so we can reuse them - core_deletedIds = [], - - core_version = "1.9.1", - - // Save a reference to some core methods - core_concat = core_deletedIds.concat, - core_push = core_deletedIds.push, - core_slice = core_deletedIds.slice, - core_indexOf = core_deletedIds.indexOf, - core_toString = class2type.toString, - core_hasOwn = class2type.hasOwnProperty, - core_trim = core_version.trim, - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - return new jQuery.fn.init( selector, context, rootjQuery ); - }, - - // Used for matching numbers - core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - - // Used for splitting on whitespace - core_rnotwhite = /\S+/g, - - // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - // Match a standalone tag - rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - - // JSON RegExp - rvalidchars = /^[\],:{}\s]*$/, - rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, - rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, - rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }, - - // The ready event handler - completed = function( event ) { - - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } - }, - // Clean-up method for dom ready events - detach = function() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: core_version, - - constructor: jQuery, - init: function( selector, context, rootjQuery ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return rootjQuery.ready( selector ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - // The number of elements contained in the matched element set - size: function() { - return this.length; - }, - - toArray: function() { - return core_slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num == null ? - - // Return a 'clean' array - this.toArray() : - - // Return just the object - ( num < 0 ? this[ this.length + num ] : this[ num ] ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - ready: function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; - }, - - slice: function() { - return this.pushStack( core_slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: core_push, - sort: [].sort, - splice: [].splice -}; - -// Give the init function the jQuery prototype for later instantiation -jQuery.fn.init.prototype = jQuery.fn; - -jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( length === i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - noConflict: function( deep ) { - if ( window.$ === jQuery ) { - window.$ = _$; - } - - if ( deep && window.jQuery === jQuery ) { - window.jQuery = _jQuery; - } - - return jQuery; - }, - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.trigger ) { - jQuery( document ).trigger("ready").off("ready"); - } - }, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - return !isNaN( parseFloat(obj) ) && isFinite( obj ); - }, - - type: function( obj ) { - if ( obj == null ) { - return String( obj ); - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ core_toString.call(obj) ] || "object" : - typeof obj; - }, - - isPlainObject: function( obj ) { - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !core_hasOwn.call(obj, "constructor") && - !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - - var key; - for ( key in obj ) {} - - return key === undefined || core_hasOwn.call( obj, key ); - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - error: function( msg ) { - throw new Error( msg ); - }, - - // data: string of html - // context (optional): If specified, the fragment will be created in this context, defaults to document - // keepScripts (optional): If true, will include scripts passed in the html string - parseHTML: function( data, context, keepScripts ) { - if ( !data || typeof data !== "string" ) { - return null; - } - if ( typeof context === "boolean" ) { - keepScripts = context; - context = false; - } - context = context || document; - - var parsed = rsingleTag.exec( data ), - scripts = !keepScripts && []; - - // Single tag - if ( parsed ) { - return [ context.createElement( parsed[1] ) ]; - } - - parsed = jQuery.buildFragment( [ data ], context, scripts ); - if ( scripts ) { - jQuery( scripts ).remove(); - } - return jQuery.merge( [], parsed.childNodes ); - }, - - parseJSON: function( data ) { - // Attempt to parse using the native JSON parser first - if ( window.JSON && window.JSON.parse ) { - return window.JSON.parse( data ); - } - - if ( data === null ) { - return data; - } - - if ( typeof data === "string" ) { - - // Make sure leading/trailing whitespace is removed (IE can't handle it) - data = jQuery.trim( data ); - - if ( data ) { - // Make sure the incoming data is actual JSON - // Logic borrowed from http://json.org/json2.js - if ( rvalidchars.test( data.replace( rvalidescape, "@" ) - .replace( rvalidtokens, "]" ) - .replace( rvalidbraces, "")) ) { - - return ( new Function( "return " + data ) )(); - } - } - } - - jQuery.error( "Invalid JSON: " + data ); - }, - - // Cross-browser xml parsing - parseXML: function( data ) { - var xml, tmp; - if ( !data || typeof data !== "string" ) { - return null; - } - try { - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - } catch( e ) { - xml = undefined; - } - if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; - }, - - noop: function() {}, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Use native String.trim function wherever possible - trim: core_trim && !core_trim.call("\uFEFF\xA0") ? - function( text ) { - return text == null ? - "" : - core_trim.call( text ); - } : - - // Otherwise use our own trimming functionality - function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - core_push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( core_indexOf ) { - return core_indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var l = second.length, - i = first.length, - j = 0; - - if ( typeof l === "number" ) { - for ( ; j < l; j++ ) { - first[ i++ ] = second[ j ]; - } - } else { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, inv ) { - var retVal, - ret = [], - i = 0, - length = elems.length; - inv = !!inv; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - retVal = !!callback( elems[ i ], i ); - if ( inv !== retVal ) { - ret.push( elems[ i ] ); - } - } - - return ret; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret[ ret.length ] = value; - } - } - } - - // Flatten any nested arrays - return core_concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = core_slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - // Multifunctional method to get and set values of a collection - // The value/s can optionally be executed if it's a function - access: function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; - }, - - now: function() { - return ( new Date() ).getTime(); - } -}); - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch(e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch(e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); -}; - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || type !== "function" && - ( length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj ); -} - -// All jQuery objects should point back to these -rootjQuery = jQuery(document); -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( list && ( !fired || stack ) ) { - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var action = tuple[ 0 ], - fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = core_slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; - if( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); -jQuery.support = (function() { - - var support, all, a, - input, select, fragment, - opt, eventName, isSupported, i, - div = document.createElement("div"); - - // Setup - div.setAttribute( "className", "t" ); - div.innerHTML = "
      a"; - - // Support tests won't run in some limited or non-browser environments - all = div.getElementsByTagName("*"); - a = div.getElementsByTagName("a")[ 0 ]; - if ( !all || !a || !all.length ) { - return {}; - } - - // First batch of tests - select = document.createElement("select"); - opt = select.appendChild( document.createElement("option") ); - input = div.getElementsByTagName("input")[ 0 ]; - - a.style.cssText = "top:1px;float:left;opacity:.5"; - support = { - // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) - getSetAttribute: div.className !== "t", - - // IE strips leading whitespace when .innerHTML is used - leadingWhitespace: div.firstChild.nodeType === 3, - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - tbody: !div.getElementsByTagName("tbody").length, - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - htmlSerialize: !!div.getElementsByTagName("link").length, - - // Get the style information from getAttribute - // (IE uses .cssText instead) - style: /top/.test( a.getAttribute("style") ), - - // Make sure that URLs aren't manipulated - // (IE normalizes it by default) - hrefNormalized: a.getAttribute("href") === "/a", - - // Make sure that element opacity exists - // (IE uses filter instead) - // Use a regex to work around a WebKit issue. See #5145 - opacity: /^0.5/.test( a.style.opacity ), - - // Verify style float existence - // (IE uses styleFloat instead of cssFloat) - cssFloat: !!a.style.cssFloat, - - // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) - checkOn: !!input.value, - - // Make sure that a selected-by-default option has a working selected property. - // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: opt.selected, - - // Tests for enctype support on a form (#6743) - enctype: !!document.createElement("form").enctype, - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", - - // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode - boxModel: document.compatMode === "CSS1Compat", - - // Will be defined later - deleteExpando: true, - noCloneEvent: true, - inlineBlockNeedsLayout: false, - shrinkWrapBlocks: false, - reliableMarginRight: true, - boxSizingReliable: true, - pixelPosition: false - }; - - // Make sure checked status is properly cloned - input.checked = true; - support.noCloneChecked = input.cloneNode( true ).checked; - - // Make sure that the options inside disabled selects aren't marked as disabled - // (WebKit marks them as disabled) - select.disabled = true; - support.optDisabled = !opt.disabled; - - // Support: IE<9 - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - - // Check if we can trust getAttribute("value") - input = document.createElement("input"); - input.setAttribute( "value", "" ); - support.input = input.getAttribute( "value" ) === ""; - - // Check if an input maintains its value after becoming a radio - input.value = "t"; - input.setAttribute( "type", "radio" ); - support.radioValue = input.value === "t"; - - // #11217 - WebKit loses check when the name is after the checked attribute - input.setAttribute( "checked", "t" ); - input.setAttribute( "name", "t" ); - - fragment = document.createDocumentFragment(); - fragment.appendChild( input ); - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - support.appendChecked = input.checked; - - // WebKit doesn't clone checked state correctly in fragments - support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php - for ( i in { submit: true, change: true, focusin: true }) { - div.setAttribute( eventName = "on" + i, "t" ); - - support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; - } - - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - // Run tests that need a body at doc ready - jQuery(function() { - var container, marginDiv, tds, - divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", - body = document.getElementsByTagName("body")[0]; - - if ( !body ) { - // Return for frameset docs that don't have a body - return; - } - - container = document.createElement("div"); - container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; - - body.appendChild( container ).appendChild( div ); - - // Support: IE8 - // Check if table cells still have offsetWidth/Height when they are set - // to display:none and there are still other visible table cells in a - // table row; if so, offsetWidth/Height are not reliable for use when - // determining if an element has been hidden directly using - // display:none (it is still safe to use offsets if a parent element is - // hidden; don safety goggles and see bug #4512 for more information). - div.innerHTML = "
      t
      "; - tds = div.getElementsByTagName("td"); - tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; - isSupported = ( tds[ 0 ].offsetHeight === 0 ); - - tds[ 0 ].style.display = ""; - tds[ 1 ].style.display = "none"; - - // Support: IE8 - // Check if empty table cells still have offsetWidth/Height - support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); - - // Check box-sizing and margin behavior - div.innerHTML = ""; - div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; - support.boxSizing = ( div.offsetWidth === 4 ); - support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); - - // Use window.getComputedStyle because jsdom on node.js will break without it. - if ( window.getComputedStyle ) { - support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; - support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; - - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // Fails in WebKit before Feb 2011 nightlies - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - marginDiv = div.appendChild( document.createElement("div") ); - marginDiv.style.cssText = div.style.cssText = divReset; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - - support.reliableMarginRight = - !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); - } - - if ( typeof div.style.zoom !== core_strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.innerHTML = ""; - div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; - support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); - - // Support: IE6 - // Check if elements with layout shrink-wrap their children - div.style.display = "block"; - div.innerHTML = "
      "; - div.firstChild.style.width = "5px"; - support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); - - if ( support.inlineBlockNeedsLayout ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); - - // Null elements to avoid leaks in IE - container = div = tds = marginDiv = null; - }); - - // Null elements to avoid leaks in IE - all = select = fragment = opt = a = input = null; - - return support; -})(); - -var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, - rmultiDash = /([A-Z])/g; - -function internalData( elem, name, data, pvt /* Internal Use Only */ ){ - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, ret, - internalKey = jQuery.expando, - getByName = typeof name === "string", - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - cache[ id ] = {}; - - // Avoids exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - if ( !isNode ) { - cache[ id ].toJSON = jQuery.noop; - } - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( getByName ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; -} - -function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var i, l, thisCache, - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - for ( i = 0, l = name.length; i < l; i++ ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - } else if ( jQuery.support.deleteExpando || cache != cache.window ) { - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } -} - -jQuery.extend({ - cache: {}, - - // Unique for each copy of jQuery on the page - // Non-digits removed to match rinlinejQuery - expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), - - // The following elements throw uncatchable exceptions if you - // attempt to add expando properties to them. - noData: { - "embed": true, - // Ban all objects except for Flash (which handle expandos) - "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", - "applet": true - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - }, - - // A method for determining if a DOM node can handle the data expando - acceptData: function( elem ) { - // Do not set data on non-element because it will not be cleared (#8335). - if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { - return false; - } - - var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; - - // nodes accept data unless otherwise specified; rejection can be conditional - return !noData || noData !== true && elem.getAttribute("classid") === noData; - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var attrs, name, - elem = this[0], - i = 0, - data = null; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - attrs = elem.attributes; - for ( ; i < attrs.length; i++ ) { - name = attrs[i].name; - - if ( !name.indexOf( "data-" ) ) { - name = jQuery.camelCase( name.slice(5) ); - - dataAttr( elem, name, data[ name ] ); - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return jQuery.access( this, function( value ) { - - if ( value === undefined ) { - // Try to fetch any internally stored data first - return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; - } - - this.each(function() { - jQuery.data( this, key, value ); - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - hooks.cur = fn; - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - // Based off of the plugin by Clint Helfers, with permission. - // http://blindsignals.com/index.php/2009/07/jquery-delay/ - delay: function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = setTimeout( next, time ); - hooks.stop = function() { - clearTimeout( timeout ); - }; - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var nodeHook, boolHook, - rclass = /[\t\r\n]/g, - rreturn = /\r/g, - rfocusable = /^(?:input|select|textarea|button|object)$/i, - rclickable = /^(?:a|area)$/i, - rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, - ruseDefault = /^(?:checked|selected)$/i, - getSetAttribute = jQuery.support.getSetAttribute, - getSetInput = jQuery.support.input; - -jQuery.fn.extend({ - attr: function( name, value ) { - return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each(function() { - jQuery.removeAttr( this, name ); - }); - }, - - prop: function( name, value ) { - return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - name = jQuery.propFix[ name ] || name; - return this.each(function() { - // try/catch handles cases where IE balks (such as removing a property on window) - try { - this[ name ] = undefined; - delete this[ name ]; - } catch( e ) {} - }); - }, - - addClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).addClass( value.call( this, j, this.className ) ); - }); - } - - if ( proceed ) { - // The disjunction here is for better compressibility (see removeClass) - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - " " - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - elem.className = jQuery.trim( cur ); - - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, clazz, j, - i = 0, - len = this.length, - proceed = arguments.length === 0 || typeof value === "string" && value; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( j ) { - jQuery( this ).removeClass( value.call( this, j, this.className ) ); - }); - } - if ( proceed ) { - classes = ( value || "" ).match( core_rnotwhite ) || []; - - for ( ; i < len; i++ ) { - elem = this[ i ]; - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( elem.className ? - ( " " + elem.className + " " ).replace( rclass, " " ) : - "" - ); - - if ( cur ) { - j = 0; - while ( (clazz = classes[j++]) ) { - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - elem.className = value ? jQuery.trim( cur ) : ""; - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; - - if ( jQuery.isFunction( value ) ) { - return this.each(function( i ) { - jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); - }); - } - - return this.each(function() { - if ( type === "string" ) { - // toggle individual class names - var className, - i = 0, - self = jQuery( this ), - state = stateVal, - classNames = value.match( core_rnotwhite ) || []; - - while ( (className = classNames[ i++ ]) ) { - // check each className given, space separated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); - } - - // Toggle whole class name - } else if ( type === core_strundefined || type === "boolean" ) { - if ( this.className ) { - // store className if set - jQuery._data( this, "__className__", this.className ); - } - - // If the element has a class name or if we're passed "false", - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; - } - }); - }, - - hasClass: function( selector ) { - var className = " " + selector + " ", - i = 0, - l = this.length; - for ( ; i < l; i++ ) { - if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { - return true; - } - } - - return false; - }, - - val: function( value ) { - var ret, hooks, isFunction, - elem = this[0]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { - return ret; - } - - ret = elem.value; - - return typeof ret === "string" ? - // handle most common string cases - ret.replace(rreturn, "") : - // handle cases where value is null/undef or number - ret == null ? "" : ret; - } - - return; - } - - isFunction = jQuery.isFunction( value ); - - return this.each(function( i ) { - var val, - self = jQuery(this); - - if ( this.nodeType !== 1 ) { - return; - } - - if ( isFunction ) { - val = value.call( this, i, self.val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - } else if ( typeof val === "number" ) { - val += ""; - } else if ( jQuery.isArray( val ) ) { - val = jQuery.map(val, function ( value ) { - return value == null ? "" : value + ""; - }); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - }); - } -}); - -jQuery.extend({ - valHooks: { - option: { - get: function( elem ) { - // attributes.value is undefined in Blackberry 4.7 but - // uses .value. See #6932 - var val = elem.attributes.value; - return !val || val.specified ? elem.value : elem.text; - } - }, - select: { - get: function( elem ) { - var value, option, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one" || index < 0, - values = one ? null : [], - max = one ? index + 1 : options.length, - i = index < 0 ? - max : - one ? index : 0; - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // oldIE doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - // Don't return options that are disabled or in a disabled optgroup - ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && - ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var values = jQuery.makeArray( value ); - - jQuery(elem).find("option").each(function() { - this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; - }); - - if ( !values.length ) { - elem.selectedIndex = -1; - } - return values; - } - } - }, - - attr: function( elem, name, value ) { - var hooks, notxml, ret, - nType = elem.nodeType; - - // don't get/set attributes on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === core_strundefined ) { - return jQuery.prop( elem, name, value ); - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - // All attributes are lowercase - // Grab necessary hook if one is defined - if ( notxml ) { - name = name.toLowerCase(); - hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); - } - - if ( value !== undefined ) { - - if ( value === null ) { - jQuery.removeAttr( elem, name ); - - } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - elem.setAttribute( name, value + "" ); - return value; - } - - } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - - // In IE9+, Flash objects don't have .getAttribute (#12945) - // Support: IE9+ - if ( typeof elem.getAttribute !== core_strundefined ) { - ret = elem.getAttribute( name ); - } - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? - undefined : - ret; - } - }, - - removeAttr: function( elem, value ) { - var name, propName, - i = 0, - attrNames = value && value.match( core_rnotwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( (name = attrNames[i++]) ) { - propName = jQuery.propFix[ name ] || name; - - // Boolean attributes get special treatment (#10870) - if ( rboolean.test( name ) ) { - // Set corresponding property to false for boolean attributes - // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 - if ( !getSetAttribute && ruseDefault.test( name ) ) { - elem[ jQuery.camelCase( "default-" + name ) ] = - elem[ propName ] = false; - } else { - elem[ propName ] = false; - } - - // See #9699 for explanation of this approach (setting first, then removal) - } else { - jQuery.attr( elem, name, "" ); - } - - elem.removeAttribute( getSetAttribute ? name : propName ); - } - } - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { - // Setting the type on a radio button after the value resets the value in IE6-9 - // Reset value to default in case type is set after value during creation - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - propFix: { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - - prop: function( elem, name, value ) { - var ret, hooks, notxml, - nType = elem.nodeType; - - // don't get/set properties on text, comment and attribute nodes - if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); - - if ( notxml ) { - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { - return ret; - - } else { - return ( elem[ name ] = value ); - } - - } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { - return ret; - - } else { - return elem[ name ]; - } - } - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabindex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - } - } -}); - -// Hook for boolean attributes -boolHook = { - get: function( elem, name ) { - var - // Use .prop to determine if this attribute is understood as boolean - prop = jQuery.prop( elem, name ), - - // Fetch it accordingly - attr = typeof prop === "boolean" && elem.getAttribute( name ), - detail = typeof prop === "boolean" ? - - getSetInput && getSetAttribute ? - attr != null : - // oldIE fabricates an empty string for missing boolean attributes - // and conflates checked/selected into attroperties - ruseDefault.test( name ) ? - elem[ jQuery.camelCase( "default-" + name ) ] : - !!attr : - - // fetch an attribute node for properties not recognized as boolean - elem.getAttributeNode( name ); - - return detail && detail.value !== false ? - name.toLowerCase() : - undefined; - }, - set: function( elem, value, name ) { - if ( value === false ) { - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { - // IE<8 needs the *property* name - elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); - - // Use defaultChecked and defaultSelected for oldIE - } else { - elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; - } - - return name; - } -}; - -// fix oldIE value attroperty -if ( !getSetInput || !getSetAttribute ) { - jQuery.attrHooks.value = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return jQuery.nodeName( elem, "input" ) ? - - // Ignore the value *property* by using defaultValue - elem.defaultValue : - - ret && ret.specified ? ret.value : undefined; - }, - set: function( elem, value, name ) { - if ( jQuery.nodeName( elem, "input" ) ) { - // Does not return so that setAttribute is also used - elem.defaultValue = value; - } else { - // Use nodeHook if defined (#1954); otherwise setAttribute is fine - return nodeHook && nodeHook.set( elem, value, name ); - } - } - }; -} - -// IE6/7 do not support getting/setting some attributes with get/setAttribute -if ( !getSetAttribute ) { - - // Use this for any attribute in IE6/7 - // This fixes almost every IE6/7 issue - nodeHook = jQuery.valHooks.button = { - get: function( elem, name ) { - var ret = elem.getAttributeNode( name ); - return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? - ret.value : - undefined; - }, - set: function( elem, value, name ) { - // Set the existing or create a new attribute node - var ret = elem.getAttributeNode( name ); - if ( !ret ) { - elem.setAttributeNode( - (ret = elem.ownerDocument.createAttribute( name )) - ); - } - - ret.value = value += ""; - - // Break association with cloned elements by also using setAttribute (#9646) - return name === "value" || value === elem.getAttribute( name ) ? - value : - undefined; - } - }; - - // Set contenteditable to false on removals(#10429) - // Setting to empty string throws an error as an invalid value - jQuery.attrHooks.contenteditable = { - get: nodeHook.get, - set: function( elem, value, name ) { - nodeHook.set( elem, value === "" ? false : value, name ); - } - }; - - // Set width and height to auto instead of 0 on empty string( Bug #8150 ) - // This is for removals - jQuery.each([ "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - set: function( elem, value ) { - if ( value === "" ) { - elem.setAttribute( name, "auto" ); - return value; - } - } - }); - }); -} - - -// Some attributes require a special call on IE -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { - jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { - get: function( elem ) { - var ret = elem.getAttribute( name, 2 ); - return ret == null ? undefined : ret; - } - }); - }); - - // href/src property should get the full normalized URL (#10299/#12915) - jQuery.each([ "href", "src" ], function( i, name ) { - jQuery.propHooks[ name ] = { - get: function( elem ) { - return elem.getAttribute( name, 4 ); - } - }; - }); -} - -if ( !jQuery.support.style ) { - jQuery.attrHooks.style = { - get: function( elem ) { - // Return undefined in the case of empty string - // Note: IE uppercases css property names, but if we were to .toLowerCase() - // .cssText, that would destroy case senstitivity in URL's, like in "background" - return elem.style.cssText || undefined; - }, - set: function( elem, value ) { - return ( elem.style.cssText = value + "" ); - } - }; -} - -// Safari mis-reports the default selected property of an option -// Accessing the parent's selectedIndex property fixes it -if ( !jQuery.support.optSelected ) { - jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { - get: function( elem ) { - var parent = elem.parentNode; - - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - return null; - } - }); -} - -// IE6/7 call enctype encoding -if ( !jQuery.support.enctype ) { - jQuery.propFix.enctype = "encoding"; -} - -// Radios and checkboxes getter/setter -if ( !jQuery.support.checkOn ) { - jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - get: function( elem ) { - // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified - return elem.getAttribute("value") === null ? "on" : elem.value; - } - }; - }); -} -jQuery.each([ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { - set: function( elem, value ) { - if ( jQuery.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); - } - } - }); -}); -var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - // jQuery(...).bind("mouseover mouseout", fn); - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( core_rnotwhite ) || [""]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = core_hasOwn.call( event, "type" ) ? event.type : event, - namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - event.isTrigger = true; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { - event.preventDefault(); - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && - !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = core_slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur != this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - } - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== document.activeElement && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === document.activeElement && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - - beforeunload: { - postDispatch: function( event ) { - - // Even when returnValue equals to undefined Firefox will still show alert - if ( event.result !== undefined ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === core_strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || - src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - this.isImmediatePropagationStopped = returnTrue; - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !jQuery.support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !jQuery.support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !jQuery.support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler while someone wants focusin/focusout - var attaches = 0, - handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - if ( attaches++ === 0 ) { - document.addEventListener( orig, handler, true ); - } - }, - teardown: function() { - if ( --attaches === 0 ) { - document.removeEventListener( orig, handler, true ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - bind: function( types, data, fn ) { - return this.on( types, null, data, fn ); - }, - unbind: function( types, fn ) { - return this.off( types, null, fn ); - }, - - delegate: function( selector, types, data, fn ) { - return this.on( types, selector, data, fn ); - }, - undelegate: function( selector, types, fn ) { - // ( namespace ) or ( selector, types [, fn] ) - return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2012 jQuery Foundation and other contributors - * Released under the MIT license - * http://sizzlejs.com/ - */ -(function( window, undefined ) { - -var i, - cachedruns, - Expr, - getText, - isXML, - compile, - hasDuplicate, - outermostContext, - - // Local document vars - setDocument, - document, - docElem, - documentIsXML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - sortOrder, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - support = {}, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Array methods - arr = [], - pop = arr.pop, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors - operators = "([*^$|!~]?=)", - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + - "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", - - // Prefer arguments quoted, - // then not containing pseudos/brackets, - // then attribute selectors/non-parenthetical expressions, - // then anything else - // These preferences are here to reduce the number of selectors - // needing tokenize in the PSEUDO preFilter - pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rsibling = /[\x20\t\r\n\f]*[+~]/, - - rnative = /^[^{]+\{\s*\[native code/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rescape = /'|\\/g, - rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, - funescape = function( _, escaped ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - return high !== high ? - escaped : - // BMP codepoint - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Use a stripped-down slice if we can't use a native one -try { - slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; -} catch ( e ) { - slice = function( i ) { - var elem, - results = []; - while ( (elem = this[i++]) ) { - results.push( elem ); - } - return results; - }; -} - -/** - * For feature detection - * @param {Function} fn The function to test for native support - */ -function isNative( fn ) { - return rnative.test( fn + "" ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var cache, - keys = []; - - return (cache = function( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key += " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key ] = value); - }); -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return fn( div ); - } catch (e) { - return false; - } finally { - // release memory in IE - div = null; - } -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( !documentIsXML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { - push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); - return results; - } - } - - // QSA path - if ( support.qsa && !rbuggyQSA.test(selector) ) { - old = true; - nid = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && context.parentNode || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, slice.call( newContext.querySelectorAll( - newSelector - ), 0 ) ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Detect xml - * @param {Element|Object} elem An element or a document - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var doc = node ? node.ownerDocument || node : preferredDoc; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsXML = isXML( doc ); - - // Check if getElementsByTagName("*") returns only elements - support.tagNameNoComments = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if attributes should be retrieved by attribute nodes - support.attributes = assert(function( div ) { - div.innerHTML = ""; - var type = typeof div.lastChild.getAttribute("multiple"); - // IE8 returns a string for some attributes even when not present - return type !== "boolean" && type !== "string"; - }); - - // Check if getElementsByClassName can be trusted - support.getByClassName = assert(function( div ) { - // Opera can't find a second classname (in 9.6) - div.innerHTML = ""; - if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { - return false; - } - - // Safari 3.2 caches class attributes and doesn't catch changes - div.lastChild.className = "e"; - return div.getElementsByClassName("e").length === 2; - }); - - // Check if getElementById returns elements by name - // Check if getElementsByName privileges form controls or returns elements by ID - support.getByName = assert(function( div ) { - // Inject content - div.id = expando + 0; - div.innerHTML = "
      "; - docElem.insertBefore( div, docElem.firstChild ); - - // Test - var pass = doc.getElementsByName && - // buggy browsers will return fewer than the correct 2 - doc.getElementsByName( expando ).length === 2 + - // buggy browsers will return more than the correct 0 - doc.getElementsByName( expando + 0 ).length; - support.getIdNotName = !doc.getElementById( expando ); - - // Cleanup - docElem.removeChild( div ); - - return pass; - }); - - // IE6/7 return modified attributes - Expr.attrHandle = assert(function( div ) { - div.innerHTML = ""; - return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && - div.firstChild.getAttribute("href") === "#"; - }) ? - {} : - { - "href": function( elem ) { - return elem.getAttribute( "href", 2 ); - }, - "type": function( elem ) { - return elem.getAttribute("type"); - } - }; - - // ID find and filter - if ( support.getIdNotName ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [m] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && !documentIsXML ) { - var m = context.getElementById( id ); - - return m ? - m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? - [m] : - undefined : - []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.tagNameNoComments ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Name - Expr.find["NAME"] = support.getByName && function( tag, context ) { - if ( typeof context.getElementsByName !== strundefined ) { - return context.getElementsByName( name ); - } - }; - - // Class - Expr.find["CLASS"] = support.getByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { - return context.getElementsByClassName( className ); - } - }; - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21), - // no need to also add to buggyMatches since matches checks buggyQSA - // A support test would require too much code (would include document ready) - rbuggyQSA = [ ":focus" ]; - - if ( (support.qsa = isNative(doc.querySelectorAll)) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explictly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // IE8 - Some boolean attributes are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - - // Opera 10-12/IE8 - ^= $= *= and empty values - // Should not select anything - div.innerHTML = ""; - if ( div.querySelectorAll("[i^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || - docElem.mozMatchesSelector || - docElem.webkitMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - // Document order sorting - sortOrder = docElem.compareDocumentPosition ? - function( a, b ) { - var compare; - - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { - if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { - if ( a === doc || contains( preferredDoc, a ) ) { - return -1; - } - if ( b === doc || contains( preferredDoc, b ) ) { - return 1; - } - return 0; - } - return compare & 4 ? -1 : 1; - } - - return a.compareDocumentPosition ? -1 : 1; - } : - function( a, b ) { - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - - // Parentless nodes are either documents or disconnected - } else if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - // Always assume the presence of duplicates if sort doesn't - // pass them to our comparison function (as in Google Chrome). - hasDuplicate = false; - [0, 0].sort( sortOrder ); - support.detectDuplicates = hasDuplicate; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - // rbuggyQSA always contains :focus, so no need for an existence check - if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [elem] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - var val; - - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - if ( !documentIsXML ) { - name = name.toLowerCase(); - } - if ( (val = Expr.attrHandle[ name ]) ) { - return val( elem ); - } - if ( documentIsXML || support.attributes ) { - return elem.getAttribute( name ); - } - return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? - name : - val && val.specified ? val.value : null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -// Document sorting and removing duplicates -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - i = 1, - j = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - results.sort( sortOrder ); - - if ( hasDuplicate ) { - for ( ; (elem = results[i]); i++ ) { - if ( elem === results[ i - 1 ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - return results; -}; - -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -// Returns a function to use in pseudos for input types -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -// Returns a function to use in pseudos for buttons -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -// Returns a function to use in pseudos for positionals -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - for ( ; (node = elem[i]); i++ ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (see #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[5] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[4] ) { - match[2] = match[4]; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeName ) { - if ( nodeName === "*" ) { - return function() { return true; }; - } - - nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifider - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsXML ? - elem.getAttribute("xml:lang") || elem.getAttribute("lang") : - elem.lang) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), - // not comment, processing instructions, or others - // Thanks to Diego Perini for the nodeName shortcut - // Greater than "@" means alpha characters (specifically not starting with "#" or "?") - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) - // use getAttribute instead to test this case - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -function tokenize( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( tokens = [] ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push( { - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -} - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var data, cache, outerCache, - dirkey = dirruns + " " + doneName; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { - if ( (data = cache[1]) === true || data === cachedruns ) { - return data === true; - } - } else { - cache = outerCache[ dir ] = [ dirkey ]; - cache[1] = matcher( elem, context, xml ) || cachedruns; - if ( cache[1] === true ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - // A counter to specify which element is currently being matched - var matcherCachedRuns = 0, - bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, expandContext ) { - var elem, j, matcher, - setMatched = [], - matchedCount = 0, - i = "0", - unmatched = seed && [], - outermost = expandContext != null, - contextBackup = outermostContext, - // We must always have either seed elements or context - elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); - - if ( outermost ) { - outermostContext = context !== document && context; - cachedruns = matcherCachedRuns; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - for ( ; (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - cachedruns = ++matcherCachedRuns; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !group ) { - group = tokenize( selector ); - } - i = group.length; - while ( i-- ) { - cached = matcherFromTokens( group[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - } - return cached; -}; - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function select( selector, context, results, seed ) { - var i, tokens, token, type, find, - match = tokenize( selector ); - - if ( !seed ) { - // Try to minimize operations if there is only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && !documentIsXML && - Expr.relative[ tokens[1].type ] ) { - - context = Expr.find["ID"]( token.matches[0].replace( runescape, funescape ), context )[0]; - if ( !context ) { - return results; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && context.parentNode || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, slice.call( seed, 0 ) ); - return results; - } - - break; - } - } - } - } - } - - // Compile and execute a filtering function - // Provide `match` to avoid retokenization if we modified the selector above - compile( selector, match )( - seed, - context, - documentIsXML, - results, - rsibling.test( selector ) - ); - return results; -} - -// Deprecated -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Easy API for creating new setFilters -function setFilters() {} -Expr.filters = setFilters.prototype = Expr.pseudos; -Expr.setFilters = new setFilters(); - -// Initialize with the default document -setDocument(); - -// Override sizzle attribute retrieval -Sizzle.attr = jQuery.attr; -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - -})( window ); -var runtil = /Until$/, - rparentsprev = /^(?:parents|prev(?:Until|All))/, - isSimple = /^.[^:#\[\.,]*$/, - rneedsContext = jQuery.expr.match.needsContext, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend({ - find: function( selector ) { - var i, ret, self, - len = this.length; - - if ( typeof selector !== "string" ) { - self = this; - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - ret = []; - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, this[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; - return ret; - }, - - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - not: function( selector ) { - return this.pushStack( winnow(this, selector, false) ); - }, - - filter: function( selector ) { - return this.pushStack( winnow(this, selector, true) ); - }, - - is: function( selector ) { - return !!selector && ( - typeof selector === "string" ? - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - rneedsContext.test( selector ) ? - jQuery( selector, this.context ).index( this[0] ) >= 0 : - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - ret = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - cur = this[i]; - - while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { - if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { - ret.push( cur ); - break; - } - cur = cur.parentNode; - } - } - - return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - var set = typeof selector === "string" ? - jQuery( selector, context ) : - jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), - all = jQuery.merge( this.get(), set ); - - return this.pushStack( jQuery.unique(all) ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -jQuery.fn.andSelf = jQuery.fn.addBack; - -function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } while ( cur && cur.nodeType !== 1 ); - - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( !runtil.test( name ) ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; - - if ( this.length > 1 && rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - - return this.pushStack( ret ); - }; -}); - -jQuery.extend({ - filter: function( expr, elems, not ) { - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 ? - jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : - jQuery.find.matches(expr, elems); - }, - - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, keep ) { - - // Can't pass null or undefined to indexOf in Firefox 4 - // Set to 0 to skip string check - qualifier = qualifier || 0; - - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - var retVal = !!qualifier.call( elem, i, elem ); - return retVal === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem ) { - return ( elem === qualifier ) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; - }); -} -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
      ", "
      " ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "", "
      " ], - tr: [ 2, "", "
      " ], - col: [ 2, "", "
      " ], - td: [ 3, "", "
      " ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
      ", "
      " ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -jQuery.fn.extend({ - text: function( value ) { - return jQuery.access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - wrapAll: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapAll( html.call(this, i) ); - }); - } - - if ( this[0] ) { - // The elements to wrap the target around - var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); - - if ( this[0].parentNode ) { - wrap.insertBefore( this[0] ); - } - - wrap.map(function() { - var elem = this; - - while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { - elem = elem.firstChild; - } - - return elem; - }).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( jQuery.isFunction( html ) ) { - return this.each(function(i) { - jQuery(this).wrapInner( html.call(this, i) ); - }); - } - - return this.each(function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - }); - }, - - wrap: function( html ) { - var isFunction = jQuery.isFunction( html ); - - return this.each(function(i) { - jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); - }); - }, - - unwrap: function() { - return this.parent().each(function() { - if ( !jQuery.nodeName( this, "body" ) ) { - jQuery( this ).replaceWith( this.childNodes ); - } - }).end(); - }, - - append: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip(arguments, true, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.insertBefore( elem, this.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, false, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - // keepData is for internal use only--do not document - remove: function( selector, keepData ) { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function () { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return jQuery.access( this, function( value ) { - var elem = this[0] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function( value ) { - var isFunc = jQuery.isFunction( value ); - - // Make sure that the elements are removed from the DOM before they are inserted - // this can help fix replacing a parent with child elements - if ( !isFunc && typeof value !== "string" ) { - value = jQuery( value ).not( this ).detach(); - } - - return this.domManip( [ value ], true, function( elem ) { - var next = this.nextSibling, - parent = this.parentNode; - - if ( parent ) { - jQuery( this ).remove(); - parent.insertBefore( elem, next ); - } - }); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, table, callback ) { - - // Flatten any nested arrays - args = core_concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, table ? self.html() : undefined ); - } - self.domManip( args, table, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - table = table && jQuery.nodeName( first, "tr" ); - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( - table && jQuery.nodeName( this[i], "table" ) ? - findOrAppend( this[i], "tbody" ) : - this[i], - node, - i - ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Hope ajax is available... - jQuery.ajax({ - url: node.src, - type: "GET", - dataType: "script", - async: false, - global: false, - "throws": true - }); - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } -}); - -function findOrAppend( elem, tag ) { - return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - var attr = elem.getAttributeNode("type"); - elem.type = ( attr && attr.specified ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - core_push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - -function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; -} - -// Used in buildFragment, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( manipulation_rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - - // Ensure a safe fragment - safe = createSafeFragment( context ), - - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !jQuery.support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - - // String was a bare or - wrap[1] === "
      " && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !jQuery.support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = jQuery.support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== core_strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - core_deletedIds.push( id ); - } - } - } - } - } -}); -var iframe, getStyles, curCSS, - ralpha = /alpha\([^)]*\)/i, - ropacity = /opacity\s*=\s*([^)]*)/, - rposition = /^(top|right|bottom|left)$/, - // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" - // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rmargin = /^margin/, - rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), - rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), - rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), - elemdisplay = { BODY: "block" }, - - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: 0, - fontWeight: 400 - }, - - cssExpand = [ "Top", "Right", "Bottom", "Left" ], - cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; - -// return a css property mapped to a potentially vendor prefixed property -function vendorPropName( style, name ) { - - // shortcut for names that are not vendor prefixed - if ( name in style ) { - return name; - } - - // check for vendor prefixed names - var capName = name.charAt(0).toUpperCase() + name.slice(1), - origName = name, - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in style ) { - return name; - } - } - - return origName; -} - -function isHidden( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); -} - -function showHide( elements, show ) { - var display, elem, hidden, - values = [], - index = 0, - length = elements.length; - - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - values[ index ] = jQuery._data( elem, "olddisplay" ); - display = elem.style.display; - if ( show ) { - // Reset the inline display of this element to learn if it is - // being hidden by cascaded rules or not - if ( !values[ index ] && display === "none" ) { - elem.style.display = ""; - } - - // Set elements which have been overridden with display: none - // in a stylesheet to whatever the default browser style is - // for such an element - if ( elem.style.display === "" && isHidden( elem ) ) { - values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); - } - } else { - - if ( !values[ index ] ) { - hidden = isHidden( elem ); - - if ( display && display !== "none" || !hidden ) { - jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); - } - } - } - } - - // Set the display of most of the elements in a second loop - // to avoid the constant reflow - for ( index = 0; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - if ( !show || elem.style.display === "none" || elem.style.display === "" ) { - elem.style.display = show ? values[ index ] || "" : "none"; - } - } - - return elements; -} - -jQuery.fn.extend({ - css: function( name, value ) { - return jQuery.access( this, function( elem, name, value ) { - var len, styles, - map = {}, - i = 0; - - if ( jQuery.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - }, - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - var bool = typeof state === "boolean"; - - return this.each(function() { - if ( bool ? state : isHidden( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - }); - } -}); - -jQuery.extend({ - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Exclude the following css properties to add px - cssNumber: { - "columnCount": true, - "fillOpacity": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: { - // normalize float css property - "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" - }, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = jQuery.camelCase( name ), - style = elem.style; - - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); - // Fixes bug #9237 - type = "number"; - } - - // Make sure that NaN and null values aren't set. See: #7116 - if ( value == null || type === "number" && isNaN( value ) ) { - return; - } - - // If a number was passed in, add 'px' to the (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; - } - - // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, - // but it would mean to define eight (for every problematic property) identical functions - if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { - - // Wrapped to prevent IE from throwing errors when 'invalid' values are provided - // Fixes bug #5509 - try { - style[ name ] = value; - } catch(e) {} - } - - } else { - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var num, val, hooks, - origName = jQuery.camelCase( name ); - - // Make sure that we're working with the right name - name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); - - // gets hook for the prefixed version - // followed by the unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - //convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Return, converting to number if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; - } - return val; - }, - - // A method for quickly swapping in/out CSS properties to get correct calculations - swap: function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; - } -}); - -// NOTE: we've included the "window" in window.getComputedStyle -// because jsdom on node.js will break without it. -if ( window.getComputedStyle ) { - getStyles = function( elem ) { - return window.getComputedStyle( elem, null ); - }; - - curCSS = function( elem, name, _computed ) { - var width, minWidth, maxWidth, - computed = _computed || getStyles( elem ), - - // getPropertyValue is only needed for .css('filter') in IE9, see #12537 - ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, - style = elem.style; - - if ( computed ) { - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right - // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels - // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values - if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret; - }; -} else if ( document.documentElement.currentStyle ) { - getStyles = function( elem ) { - return elem.currentStyle; - }; - - curCSS = function( elem, name, _computed ) { - var left, rs, rsLeft, - computed = _computed || getStyles( elem ), - ret = computed ? computed[ name ] : undefined, - style = elem.style; - - // Avoid setting ret to empty string here - // so we don't default to auto - if ( ret == null && style && style[ name ] ) { - ret = style[ name ]; - } - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - // but not position css attributes, as those are proportional to the parent element instead - // and we can't measure the parent instead because it might trigger a "stacking dolls" problem - if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { - - // Remember the original values - left = style.left; - rs = elem.runtimeStyle; - rsLeft = rs && rs.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - rs.left = elem.currentStyle.left; - } - style.left = name === "fontSize" ? "1em" : ret; - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - rs.left = rsLeft; - } - } - - return ret === "" ? "auto" : ret; - }; -} - -function setPositiveNumber( elem, value, subtract ) { - var matches = rnumsplit.exec( value ); - return matches ? - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : - value; -} - -function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { - var i = extra === ( isBorderBox ? "border" : "content" ) ? - // If we already have the right measurement, avoid augmentation - 4 : - // Otherwise initialize for horizontal or vertical properties - name === "width" ? 1 : 0, - - val = 0; - - for ( ; i < 4; i += 2 ) { - // both box models exclude margin, so add it if we want it - if ( extra === "margin" ) { - val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); - } - - if ( isBorderBox ) { - // border-box includes padding, so remove it if we want content - if ( extra === "content" ) { - val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // at this point, extra isn't border nor margin, so remove border - if ( extra !== "margin" ) { - val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } else { - // at this point, extra isn't content, so add padding - val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // at this point, extra isn't content nor padding, so add border - if ( extra !== "padding" ) { - val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - return val; -} - -function getWidthOrHeight( elem, name, extra ) { - - // Start with offset property, which is equivalent to the border-box value - var valueIsBorderBox = true, - val = name === "width" ? elem.offsetWidth : elem.offsetHeight, - styles = getStyles( elem ), - isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // some non-html elements return undefined for offsetWidth, so check for null/undefined - // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 - // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 - if ( val <= 0 || val == null ) { - // Fall back to computed then uncomputed css if necessary - val = curCSS( elem, name, styles ); - if ( val < 0 || val == null ) { - val = elem.style[ name ]; - } - - // Computed unit is not pixels. Stop here and return. - if ( rnumnonpx.test(val) ) { - return val; - } - - // we need the check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); - - // Normalize "", auto, and prepare for extra - val = parseFloat( val ) || 0; - } - - // use the active box-sizing model to add/subtract irrelevant styles - return ( val + - augmentWidthOrHeight( - elem, - name, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles - ) - ) + "px"; -} - -// Try to determine the default display value of an element -function css_defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - // Use the already-created iframe if possible - iframe = ( iframe || - jQuery("',nocache:1}),new $.fn.oembed.OEmbedProvider("boxofficebuz","video",["boxofficebuz\\.com\\/embed/.+"],"http://boxofficebuz.com/embed/$1/$2",{templateRegex:[/.*boxofficebuz\.com\/embed\/(\w+)\/([\w*\-*]+)/],embedtag:{tag:"iframe",width:480,height:360}}),new $.fn.oembed.OEmbedProvider("clipsyndicate","video",["clipsyndicate\\.com/video/play/.+","clipsyndicate\\.com/embed/iframe?.+"],"http://eplayer.clipsyndicate.com/embed/iframe?pf_id=1&show_title=0&va_id=$1&windows=1",{templateRegex:[/.*www\.clipsyndicate\.com\/video\/play\/(\w+)\/.*/,/.*eplayer\.clipsyndicate\.com\/embed\/iframe\?.*va_id=(\w+).*.*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("coub","video",["coub\\.com/.+"],"http://www.coub.com/embed/$1?muted=false&autostart=false&originalSize=false&hideTopBar=false&noSiteButtons=false&startWithHD=false",{templateRegex:[/.*coub\.com\/embed\/(\w+)\?*.*/,/.*coub\.com\/view\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("discoverychannel","video",["snagplayer\\.video\\.dp\\.discovery\\.com/.+"],"http://snagplayer.video.dp.discovery.com/$1/snag-it-player.htm?auto=no",{templateRegex:[/.*snagplayer\.video\.dp\.discovery\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360}}),new $.fn.oembed.OEmbedProvider("telly","video",["telly\\.com/.+"],"http://www.telly.com/embed.php?guid=$1&autoplay=0",{templateRegex:[/.*telly\.com\/embed\.php\?guid=(\w+).*/,/.*telly\.com\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360}}),new $.fn.oembed.OEmbedProvider("minilogs","video",["minilogs\\.com/.+"],"http://www.minilogs.com/e/$1",{templateRegex:[/.*minilogs\.com\/e\/(\w+).*/,/.*minilogs\.com\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("viddy","video",["viddy\\.com/.+"],"http://www.viddy.com/embed/video/$1",{templateRegex:[/.*viddy\.com\/embed\/video\/(\.*)/,/.*viddy\.com\/video\/(\.*)/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("worldstarhiphop","video",["worldstarhiphop\\.com/embed/.+"],"http://www.worldstarhiphop.com/embed/$1",{templateRegex:/.*worldstarhiphop\.com\/embed\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("zapiks","video",["zapiks\\.fr/.+"],"http://www.zapiks.fr/index.php?action=playerIframe&media_id=$1&autoStart=fals",{templateRegex:/.*zapiks\.fr\/index.php\?[\w\=\&]*media_id=(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("official.fm","rich",["official.fm/.+"],"http://official.fm/services/oembed",{useYQL:"json"}),new $.fn.oembed.OEmbedProvider("chirbit","rich",["chirb.it/.+"],"http://chirb.it/oembed.json",{useYQL:"json"}),new $.fn.oembed.OEmbedProvider("chirbit","audio",["chirb\\.it/.+"],"http://chirb.it/wp/$1",{templateRegex:[/.*chirb\.it\/wp\/(\w+).*/,/.*chirb\.it\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("Huffduffer","rich",["huffduffer.com/[-.\\w@]+/\\d+"],"http://huffduffer.com/oembed"),new $.fn.oembed.OEmbedProvider("Spotify","rich",["open.spotify.com/(track|album|user)/"],"https://embed.spotify.com/oembed/"),new $.fn.oembed.OEmbedProvider("shoudio","rich",["shoudio.com/.+","shoud.io/.+"],"http://shoudio.com/api/oembed"),new $.fn.oembed.OEmbedProvider("mixcloud","rich",["mixcloud.com/.+"],"http://www.mixcloud.com/oembed/",{useYQL:"json"}),new $.fn.oembed.OEmbedProvider("rdio.com","rich",["rd.io/.+","rdio.com"],"http://www.rdio.com/api/oembed/"),new $.fn.oembed.OEmbedProvider("Soundcloud","rich",["soundcloud.com/.+","snd.sc/.+"],"//soundcloud.com/oembed",{format:"js"}),new $.fn.oembed.OEmbedProvider("bandcamp","rich",["bandcamp\\.com/album/.+"],null,{yql:{xpath:"//meta[contains(@content, \\'EmbeddedPlayer\\')]",from:"html",datareturn:function(e){return!!e.meta&&''}}}),new $.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"//backend.deviantart.com/oembed",{format:"jsonp"}),new $.fn.oembed.OEmbedProvider("skitch","photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(e){return"http://skitch.com/oembed/?format=json&url="+e},datareturn:function(e){return $.fn.oembed.getPhotoCode(e.json.url,e.json)}}}),new $.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new $.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"//flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new $.fn.oembed.OEmbedProvider("photobucket","photo",["photobucket\\.com/(albums|groups)/.+"],"http://photobucket.com/oembed/"),new $.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],"//api.instagram.com/oembed"),new $.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new $.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(e){return!!e.image_teaser_url&&''}}),new $.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new $.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new $.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],"http://www.23hq.com/23/oembed",{useYQL:"json"}),new $.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"//img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new $.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new $.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],"http://imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new $.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new $.fn.oembed.OEmbedProvider("achewood","photo",["achewood\\.com\\/index.php\\?date=.+"],"http://www.achewood.com/comic.php?date=$1",{templateRegex:/.*achewood\.com\/index.php\?date=(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("fotokritik","photo",["fotokritik\\.com/.+"],"http://www.fotokritik.com/embed/$1",{templateRegex:[/.*fotokritik\.com\/embed\/(\w+).*/,/.*fotokritik\.com\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("giflike","photo",["giflike\\.com/.+"],"http://www.giflike.com/embed/$1",{templateRegex:[/.*giflike\.com\/embed\/(\w+).*/,/.*giflike\.com\/a\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json"),new $.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new $.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new $.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new $.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new $.fn.oembed.OEmbedProvider("documentcloud","rich",["documentcloud.org/documents/.+"],"https://www.documentcloud.org/api/oembed.json"),new $.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new $.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new $.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new $.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),new $.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&embedId=pt-embed-$1-693&treeId=$1&pearlId=$2&treeTitle=Diagrams%2FVisualization&site=www.pearltrees.com%2FF"}}),new $.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"//prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,height:400,flashvars:"prezi_id=$1&lock_to_path=0&color=ffffff&autoplay=no&autohide_ctrls=0"}}),new $.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(e,t){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2e3),"
      "}}),new $.fn.oembed.OEmbedProvider("meetup","rich",["meetup\\.(com|ps)/.+"],"http://api.meetup.com/oembed"),new $.fn.oembed.OEmbedProvider("ebay","rich",["ebay\\.*"],"http://togo.ebay.com/togo/togo.swf?2008013100",{templateRegex:/.*\/([^\/]+)\/(\d{10,13}).*/,embedtag:{width:355,height:300,flashvars:"base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"}}),new $.fn.oembed.OEmbedProvider("wikipedia","rich",["wikipedia.org/wiki/.+"],"http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json§ion=0&callback=?",{templateRegex:/.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,templateData:function(e){if(!e.parse)return!1;var t=e.parse.text["*"].replace(/href="\/wiki/g,'href="http://en.wikipedia.org/wiki');return'"}}),new $.fn.oembed.OEmbedProvider("imdb","rich",["imdb.com/title/.+"],"http://www.imdbapi.com/?i=$1&callback=?",{templateRegex:/.*\/title\/([^\/]+).*/,templateData:function(e){return!!e.Title&&'

      '+e.Title+" ("+e.Year+")

      Rating: "+e.imdbRating+"
      Genre: "+e.Genre+"
      Starring: "+e.Actors+'

      '+e.Plot+"
      "}}),new $.fn.oembed.OEmbedProvider("livejournal","rich",["livejournal.com/"],"http://ljpic.seacrow.com/json/$2$4?jsonp=?",{templateRegex:/(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,templateData:function(e){return!!e.username&&'
      [info]'+e.username+"
      "+e.name+"
      "}}),new $.fn.oembed.OEmbedProvider("circuitbee","rich",["circuitbee\\.com/circuit/view/.+"],"http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",{templateRegex:/.*circuit\/view\/(\d+).*/,embedtag:{tag:"iframe",width:"500",height:"350"}}),new $.fn.oembed.OEmbedProvider("googlecalendar","rich",["www.google.com/calendar/embed?.+"],"$1",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"800",height:"600"}}),new $.fn.oembed.OEmbedProvider("jsfiddle","rich",["jsfiddle.net/[^/]+/?"],"http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",{templateRegex:/.*net\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new $.fn.oembed.OEmbedProvider("jsbin","rich",["jsbin.com/.+"],"http://jsbin.com/$1/?",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new $.fn.oembed.OEmbedProvider("jotform","rich",["form.jotform.co/form/.+"],"$1?",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"100%",height:"507"}}),new $.fn.oembed.OEmbedProvider("reelapp","rich",["reelapp\\.com/.+"],"http://www.reelapp.com/$1/embed",{templateRegex:/.*com\/(\S{6}).*/,embedtag:{tag:"iframe",width:"400",height:"338"}}),new $.fn.oembed.OEmbedProvider("linkedin","rich",["linkedin.com/pub/.+"],"https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"368px",height:"auto"}}),new $.fn.oembed.OEmbedProvider("timetoast","rich",["timetoast.com/timelines/[0-9]+"],"http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",{templateRegex:/.*timelines\/([0-9]*)/,embedtag:{width:550,height:400},nocache:1}),new $.fn.oembed.OEmbedProvider("pastebin","rich",["pastebin\\.com/[\\S]{8}"],"http://pastebin.com/embed_iframe.php?i=$1",{templateRegex:/.*\/(\S{8}).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new $.fn.oembed.OEmbedProvider("mixlr","rich",["mixlr.com/.+"],"http://mixlr.com/embed/$1?autoplay=ae",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new $.fn.oembed.OEmbedProvider("pastie","rich",["pastie\\.org/pastes/.+"],null,{yql:{xpath:'//pre[@class="textmate-source"]'}}),new $.fn.oembed.OEmbedProvider("github","rich",["gist.github.com/.+"],"https://github.com/api/oembed"),new $.fn.oembed.OEmbedProvider("github","rich",["github.com/[-.\\w@]+/[-.\\w@]+"],"https://api.github.com/repos/$1/$2?callback=?",{ -templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,templateData:function(e){return!!e.data.html_url&&'

      '+e.data.name+'

      '+e.data.description+'

      Last updated: '+e.data.pushed_at+"

      "}}),new $.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com"],null,{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,template:function(e){if(!$.fn.oembed.facebokScriptHasBeenAdded){$('
      ').appendTo("body");var t=document.createElement("script");t.type="text/javascript",t.text='(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";fjs.parentNode.insertBefore(js, fjs);}(document, "script", "facebook-jssdk"));',document.body.appendChild(t),$.fn.oembed.facebokScriptHasBeenAdded=!0}return'
      '}}),new $.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(e){if(!e.questions)return!1;var t=e.questions[0],n=$(t.body).text(),r='"}}),new $.fn.oembed.OEmbedProvider("wordpress","rich",["wordpress\\.com/.+","blogs\\.cnn\\.com/.+","techcrunch\\.com/.+","wp\\.me/.+"],"http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),new $.fn.oembed.OEmbedProvider("screenr","rich",["screenr.com"],"http://www.screenr.com/embed/$1",{templateRegex:/.*\/([^\/]+).*/,embedtag:{tag:"iframe",width:"650",height:396}}),new $.fn.oembed.OEmbedProvider("gigpans","rich",["gigapan\\.org/[-.\\w@]+/\\d+"],"http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",{templateRegex:/.*\/(\d+)\/?.*/,embedtag:{tag:"iframe",width:"100%",height:400}}),new $.fn.oembed.OEmbedProvider("scribd","rich",["scribd\\.com/.+"],"http://www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",{templateRegex:/.*doc\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:600}}),new $.fn.oembed.OEmbedProvider("kickstarter","rich",["kickstarter\\.com/projects/.+"],"$1/widget/card.html",{templateRegex:/([^\?]+).*/,embedtag:{tag:"iframe",width:"220",height:380}}),new $.fn.oembed.OEmbedProvider("amazon","rich",["amzn.com/B+","amazon.com.*/(B\\S+)($|\\/.*)"],"http://rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",{apikey:!0,templateRegex:/.*\/(B[0-9A-Z]+)($|\/.*)/,embedtag:{tag:"iframe",width:"120px",height:"240px"}}),new $.fn.oembed.OEmbedProvider("slideshare","rich",["slideshare.net"],"//www.slideshare.net/api/oembed/2",{format:"jsonp"}),new $.fn.oembed.OEmbedProvider("roomsharejp","rich",["roomshare\\.jp/(en/)?post/.*"],"http://roomshare.jp/oembed.json"),new $.fn.oembed.OEmbedProvider("lanyard","rich",["lanyrd.com/\\d+/.+"],null,{yql:{xpath:'(//div[@class="primary"])[1]',from:"htmlstring",datareturn:function(e){return!!e.result&&'
      '+e.result+"
      "}}}),new $.fn.oembed.OEmbedProvider("asciiartfarts","rich",["asciiartfarts.com/\\d+.html"],null,{yql:{xpath:"//pre/font",from:"htmlstring",datareturn:function(e){return!!e.result&&'
      '+e.result+""}}}),new $.fn.oembed.OEmbedProvider("coveritlive","rich",["coveritlive.com/"],null,{templateRegex:/(.*)/,template:''}),new $.fn.oembed.OEmbedProvider("polldaddy","rich",["polldaddy.com/"],null,{templateRegex:/(?:https?:\/\/w?w?w?.?polldaddy.com\/poll\/)([0-9]*)\//,template:'',nocache:1}),new $.fn.oembed.OEmbedProvider("360io","rich",["360\\.io/.+"],"http://360.io/$1",{templateRegex:/.*360\.io\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("bubbli","rich",["on\\.bubb\\.li/.+"],"http://on.bubb.li/$1",{templateRegex:/.*on\.bubb\.li\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("cloudup","rich",["cloudup\\.com/.+"],"http://cloudup.com/$1?chromeless",{templateRegex:[/.*cloudup\.com\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360}}),new $.fn.oembed.OEmbedProvider("codepen","rich",["codepen.io/.+"],"http://codepen.io/$1/embed/$2",{templateRegex:[/.*io\/(\w+)\/pen\/(\w+).*/,/.*io\/(\w+)\/full\/(\w+).*/],embedtag:{tag:"iframe",width:"100%",height:"300"},nocache:1}),new $.fn.oembed.OEmbedProvider("googleviews","rich",["(.*maps\\.google\\.com\\/maps\\?).+(output=svembed).+(cbp=(.*)).*"],"https://maps.google.com/maps?layer=c&panoid=$3&ie=UTF8&source=embed&output=svembed&cbp=$5",{templateRegex:/(.*maps\.google\.com\/maps\?).+(panoid=(\w+)&).*(cbp=(.*)).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("googlemaps","rich",["google\\.com/maps/place/.+"],"http://maps.google.com/maps?t=m&q=$1&output=embed",{templateRegex:/.*google\.com\/maps\/place\/([\w\+]*)\/.*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("imajize","rich",["embed\\.imajize\\.com/.+"],"http://embed.imajize.com/$1",{templateRegex:/.*embed\.imajize\.com\/(.*)/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("mapjam","rich",["mapjam\\.com/.+"],"http://www.mapjam.com/$1",{templateRegex:/.*mapjam\.com\/(.*)/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("polar","rich",["polarb\\.com/.+"],"http://assets-polarb-com.a.ssl.fastly.net/api/v4/publishers/unknown/embedded_polls/iframe?poll_id=$1",{templateRegex:/.*polarb\.com\/polls\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("ponga","rich",["ponga\\.com/.+"],"https://www.ponga.com/embedded?id=$1",{templateRegex:[/.*ponga\.com\/embedded\?id=(\w+).*/,/.*ponga\.com\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("opengraph","rich",[".*"],null,{yql:{xpath:"//meta|//title|//link",from:"html",datareturn:function(e){if(!e["og:title"]&&e.title&&e.description&&(e["og:title"]=e.title),!e["og:title"]&&!e.title)return!1;var t=$("

      ");if(e["og:video"]){var n=$('');n.attr("type",e["og:video:type"]||"application/x-shockwave-flash").css("max-height",a.maxHeight||"auto").css("max-width",a.maxWidth||"auto"),e["og:video:width"]&&n.attr("width",e["og:video:width"]),e["og:video:height"]&&n.attr("height",e["og:video:height"]),t.append(n)}else if(e["og:image"]){var i=$('');i.css("max-height",a.maxHeight||"auto").css("max-width",a.maxWidth||"auto"),e["og:image:width"]&&i.attr("width",e["og:image:width"]),e["og:image:height"]&&i.attr("height",e["og:image:height"]),t.append(i)}return e["og:title"]&&t.append(""+e["og:title"]+"
      "),e["og:description"]?t.append(e["og:description"]+"
      "):e.description&&t.append(e.description+"
      "),t}}})]}(jQuery),String.prototype.md5=function(){var e=function(e,t){var n=(65535&e)+(65535&t),i=(e>>16)+(t>>16)+(n>>16);return i<<16|65535&n},t=function(e,t){return e<>>32-t},n=function(n,i,r,o,a,s){return e(t(e(e(i,n),e(o,s)),a),r)},i=function(e,t,i,r,o,a,s){return n(t&i|~t&r,e,t,o,a,s)},r=function(e,t,i,r,o,a,s){return n(t&r|i&~r,e,t,o,a,s)},o=function(e,t,i,r,o,a,s){return n(t^i^r,e,t,o,a,s)},a=function(e,t,i,r,o,a,s){return n(i^(t|~r),e,t,o,a,s)},s=function(t){var n,s,l,u,c,d=t.length,h=1732584193,f=-271733879,p=-1732584194,m=271733878;for(c=0;c>2]>>i%4*8+4&15)+t.charAt(e[i>>2]>>i%4*8&15);return n},u=function(e){var t=(e.length+8>>6)+1,n=[],i,r=16*t,o,a=e.length;for(i=0;i>2]|=(255&e.charCodeAt(o))<>2]|=128<0)for(n in bi)i=bi[n],r=t[i],m(r)||(e[i]=r);return e}function v(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),wi===!1&&(wi=!0,e.updateOffset(this),wi=!1)}function y(e){return e instanceof v||null!=e&&null!=e._isAMomentObject}function b(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function w(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=b(t)),n}function _(e,t,n){var i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),o=0,a;for(a=0;a0?"future":"past"];return C(n)?n(t):n.replace(/%s/i,t)}function L(e,t){var n=e.toLowerCase();Ai[n]=Ai[n+"s"]=Ai[t]=e}function M(e){return"string"==typeof e?Ai[e]||Ai[e.toLowerCase()]:void 0}function R(e){var t={},n,i;for(i in e)l(e,i)&&(n=M(i),n&&(t[n]=e[i]));return t}function H(e,t){Ii[e]=t}function W(e){var t=[];for(var n in e)t.push({unit:n,priority:Ii[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}function Y(t,n){return function(i){return null!=i?(U(this,t,i),e.updateOffset(this,n),this):F(this,t)}}function F(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function U(e,t,n){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](n)}function q(e){return e=M(e),C(this[e])?this[e]():this}function V(e,t){if("object"==typeof e){e=R(e);for(var n=W(e),i=0;i=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function z(e,t,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),e&&(Li[e]=r),t&&(Li[t[0]]=function(){return B(r.apply(this,arguments),t[1],t[2])}),n&&(Li[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function G(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function Q(e){var t=e.match(Pi),n,i;for(n=0,i=t.length;n=0&&Ni.test(e);)e=e.replace(Ni,n),Ni.lastIndex=0,i-=1;return e}function Z(e,t,n){Ji[e]=C(t)?t:function(e,i){return e&&n?n:t}}function J(e,t){return l(Ji,e)?Ji[e](t._strict,t._locale):new RegExp(ee(e))}function ee(e){return te(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,i,r){return t||n||i||r}))}function te(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ne(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),o(t)&&(i=function(e,n){n[t]=w(e)}),n=0;n=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function we(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function _e(e,t,n){var i=7+t-n,r=(7+we(e,0,i).getUTCDay()-t)%7;return-r+i-1}function Ee(e,t,n,i,r){var o=(7+n-i)%7,a=_e(e,i,r),s=1+7*(t-1)+o+a,l,u;return s<=0?(l=e-1,u=ge(l)+s):s>ge(e)?(l=e+1,u=s-ge(e)):(l=e,u=s),{year:l,dayOfYear:u}}function xe(e,t,n){var i=_e(e.year(),t,n),r=Math.floor((e.dayOfYear()-i-1)/7)+1,o,a;return r<1?(a=e.year()-1,o=r+Te(a,t,n)):r>Te(e.year(),t,n)?(o=r-Te(e.year(),t,n),a=e.year()+1):(a=e.year(),o=r),{week:o,year:a}}function Te(e,t,n){var i=_e(e,t,n),r=_e(e+1,t,n);return(ge(e)-i+r)/7}function Ce(e){return xe(e,this._week.dow,this._week.doy).week}function Se(){return this._week.dow}function Oe(){return this._week.doy}function ke(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function De(e){var t=xe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Ae(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Ie(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Pe(e,t){return e?n(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:this._weekdays}function Ne(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function je(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Le(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=c([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?(r=dr.call(this._weekdaysParse,a),r!==-1?r:null):"ddd"===t?(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:null):(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:null):"dddd"===t?(r=dr.call(this._weekdaysParse,a),r!==-1?r:(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:null))):"ddd"===t?(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:(r=dr.call(this._weekdaysParse,a),r!==-1?r:(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:null))):(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:(r=dr.call(this._weekdaysParse,a),r!==-1?r:(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:null)))}function Me(e,t,n){var i,r,o;if(this._weekdaysParseExact)return Le.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=c([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}}function Re(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Ae(e,this.localeData()),this.add(e-t,"d")):t}function He(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function We(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ie(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Ye(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Er),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Fe(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=xr),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ue(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Tr),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function qe(){function e(e,t){return t.length-e.length}var t=[],n=[],i=[],r=[],o,a,s,l,u;for(o=0;o<7;o++)a=c([2e3,1]).day(o),s=this.weekdaysMin(a,""),l=this.weekdaysShort(a,""),u=this.weekdays(a,""),t.push(s),n.push(l),i.push(u),r.push(s),r.push(l),r.push(u);for(t.sort(e),n.sort(e),i.sort(e),r.sort(e),o=0;o<7;o++)n[o]=te(n[o]),i[o]=te(i[o]),r[o]=te(r[o]);this._weekdaysRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function $e(){return this.hours()%12||12}function Ve(){return this.hours()||24}function Be(e,t){z(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function ze(e,t){return t._meridiemParse}function Ge(e){return"p"===(e+"").toLowerCase().charAt(0)}function Qe(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function Ke(e){return e?e.toLowerCase().replace("_","-"):e}function Xe(e){for(var t=0,n,i,r,o;t0;){if(r=Ze(o.slice(0,n).join("-")))return r;if(i&&i.length>=n&&_(o,i,!0)>=n-1)break;n--}t++}return null}function Ze(e){var t=null;if(!kr[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=Ar._abbr,require("./locale/"+e),Je(t)}catch(e){}return kr[e]}function Je(e,t){var n;return e&&(n=m(t)?nt(e):et(e,t),n&&(Ar=n)),Ar._abbr}function et(e,t){if(null!==t){var n=Or;if(t.abbr=e,null!=kr[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=kr[e]._config;else if(null!=t.parentLocale){if(null==kr[t.parentLocale])return Dr[t.parentLocale]||(Dr[t.parentLocale]=[]),Dr[t.parentLocale].push({name:e,config:t}),null;n=kr[t.parentLocale]._config}return kr[e]=new k(O(n,t)),Dr[e]&&Dr[e].forEach(function(e){et(e.name,e.config)}),Je(e),kr[e]}return delete kr[e],null}function tt(e,t){if(null!=t){var n,i=Or;null!=kr[e]&&(i=kr[e]._config),t=O(i,t),n=new k(t),n.parentLocale=kr[e],kr[e]=n,Je(e)}else null!=kr[e]&&(null!=kr[e].parentLocale?kr[e]=kr[e].parentLocale:null!=kr[e]&&delete kr[e]);return kr[e]}function nt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ar;if(!n(e)){if(t=Ze(e))return t;e=[e]}return Xe(e)}function it(){return xi(kr)}function rt(e){var t,n=e._a;return n&&h(e).overflow===-2&&(t=n[nr]<0||n[nr]>11?nr:n[ir]<1||n[ir]>oe(n[tr],n[nr])?ir:n[rr]<0||n[rr]>24||24===n[rr]&&(0!==n[or]||0!==n[ar]||0!==n[sr])?rr:n[or]<0||n[or]>59?or:n[ar]<0||n[ar]>59?ar:n[sr]<0||n[sr]>999?sr:-1,h(e)._overflowDayOfYear&&(tir)&&(t=ir),h(e)._overflowWeeks&&t===-1&&(t=lr),h(e)._overflowWeekday&&t===-1&&(t=ur),h(e).overflow=t),e}function ot(e){var t,n,i=e._i,r=Ir.exec(i)||Pr.exec(i),o,a,s,l;if(r){for(h(e).iso=!0,t=0,n=jr.length;tge(o)&&(h(e)._overflowDayOfYear=!0),n=we(o,0,e._dayOfYear),e._a[nr]=n.getUTCMonth(),e._a[ir]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=i[t]=r[t];for(;t<7;t++)e._a[t]=i[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[rr]&&0===e._a[or]&&0===e._a[ar]&&0===e._a[sr]&&(e._nextDay=!0,e._a[rr]=0),e._d=(e._useUTC?we:be).apply(null,i),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[rr]=24)}}function ct(e){var t,n,i,r,o,a,s,l;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)o=1,a=4,n=st(t.GG,e._a[tr],xe(bt(),1,4).year),i=st(t.W,1),r=st(t.E,1),(r<1||r>7)&&(l=!0);else{o=e._locale._week.dow,a=e._locale._week.doy;var u=xe(bt(),o,a);n=st(t.gg,e._a[tr],u.year),i=st(t.w,u.week), -null!=t.d?(r=t.d,(r<0||r>6)&&(l=!0)):null!=t.e?(r=t.e+o,(t.e<0||t.e>6)&&(l=!0)):r=o}i<1||i>Te(n,o,a)?h(e)._overflowWeeks=!0:null!=l?h(e)._overflowWeekday=!0:(s=Ee(n,i,r,o,a),e._a[tr]=s.year,e._dayOfYear=s.dayOfYear)}function dt(t){if(t._f===e.ISO_8601)return void ot(t);t._a=[],h(t).empty=!0;var n=""+t._i,i,r,o,a,s,l=n.length,u=0;for(o=X(t._f,t._locale).match(Pi)||[],i=0;i0&&h(t).unusedInput.push(s),n=n.slice(n.indexOf(r)+r.length),u+=r.length),Li[a]?(r?h(t).empty=!1:h(t).unusedTokens.push(a),re(a,r,t)):t._strict&&!r&&h(t).unusedTokens.push(a);h(t).charsLeftOver=l-u,n.length>0&&h(t).unusedInput.push(n),t._a[rr]<=12&&h(t).bigHour===!0&&t._a[rr]>0&&(h(t).bigHour=void 0),h(t).parsedDateParts=t._a.slice(0),h(t).meridiem=t._meridiem,t._a[rr]=ht(t._locale,t._a[rr],t._meridiem),ut(t),rt(t)}function ht(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(i=e.isPM(n),i&&t<12&&(t+=12),i||12!==t||(t=0),t):t}function ft(e){var t,n,i,r,o;if(0===e._f.length)return h(e).invalidFormat=!0,void(e._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Rt(){if(!m(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),e=gt(e),e._a){var t=e._isUTC?c(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&_(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Ht(){return!!this.isValid()&&!this._isUTC}function Wt(){return!!this.isValid()&&this._isUTC}function Yt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ft(e,t){var n=e,i=null,r,a,s;return Tt(e)?n={ms:e._milliseconds,d:e._days,M:e._months}:o(e)?(n={},t?n[t]=e:n.milliseconds=e):(i=Fr.exec(e))?(r="-"===i[1]?-1:1,n={y:0,d:w(i[ir])*r,h:w(i[rr])*r,m:w(i[or])*r,s:w(i[ar])*r,ms:w(Ct(1e3*i[sr]))*r}):(i=Ur.exec(e))?(r="-"===i[1]?-1:1,n={y:Ut(i[2],r),M:Ut(i[3],r),w:Ut(i[4],r),d:Ut(i[5],r),h:Ut(i[6],r),m:Ut(i[7],r),s:Ut(i[8],r)}):null==n?n={}:"object"==typeof n&&("from"in n||"to"in n)&&(s=$t(bt(n.from),bt(n.to)),n={},n.ms=s.milliseconds,n.M=s.months),a=new xt(n),Tt(e)&&l(e,"_locale")&&(a._locale=e._locale),a}function Ut(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function qt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function $t(e,t){var n;return e.isValid()&&t.isValid()?(t=kt(t,e),e.isBefore(t)?n=qt(e,t):(n=qt(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Vt(e,t){return function(n,i){var r,o;return null===i||isNaN(+i)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=i,i=o),n="string"==typeof n?+n:n,r=Ft(n,i),Bt(this,r,e),this}}function Bt(t,n,i,r){var o=n._milliseconds,a=Ct(n._days),s=Ct(n._months);t.isValid()&&(r=null==r||r,o&&t._d.setTime(t._d.valueOf()+o*i),a&&U(t,"Date",F(t,"Date")+a*i),s&&ce(t,F(t,"Month")+s*i),r&&e.updateOffset(t,a||s))}function zt(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Gt(t,n){var i=t||bt(),r=kt(i,this).startOf("day"),o=e.calendarFormat(this,r)||"sameElse",a=n&&(C(n[o])?n[o].call(this,i):n[o]);return this.format(a||this.localeData().calendar(o,this,bt(i)))}function Qt(){return new v(this)}function Kt(e,t){var n=y(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&(t=M(m(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()o&&(t=o),Nn.call(this,e,t,n,i,r))}function Nn(e,t,n,i,r){var o=Ee(e,t,n,i,r),a=we(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function jn(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Ln(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function Mn(e,t){t[sr]=w(1e3*("0."+e))}function Rn(){return this._isUTC?"UTC":""}function Hn(){return this._isUTC?"Coordinated Universal Time":""}function Wn(e){return bt(1e3*e)}function Yn(){return bt.apply(null,arguments).parseZone()}function Fn(e){return e}function Un(e,t,n,i){var r=nt(),o=c().set(i,t);return r[n](o,e)}function qn(e,t,n){if(o(e)&&(t=e,e=void 0),e=e||"",null!=t)return Un(e,t,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=Un(e,i,n,"month");return r}function $n(e,t,n,i){"boolean"==typeof e?(o(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,o(t)&&(n=t,t=void 0),t=t||"");var r=nt(),a=e?r._week.dow:0;if(null!=n)return Un(t,(n+a)%7,i,"day");var s,l=[];for(s=0;s<7;s++)l[s]=Un(t,(s+a)%7,i,"day");return l}function Vn(e,t){return qn(e,t,"months")}function Bn(e,t){return qn(e,t,"monthsShort")}function zn(e,t,n){return $n(e,t,n,"weekdays")}function Gn(e,t,n){return $n(e,t,n,"weekdaysShort")}function Qn(e,t,n){return $n(e,t,n,"weekdaysMin")}function Kn(){var e=this._data;return this._milliseconds=Jr(this._milliseconds),this._days=Jr(this._days),this._months=Jr(this._months),e.milliseconds=Jr(e.milliseconds),e.seconds=Jr(e.seconds),e.minutes=Jr(e.minutes),e.hours=Jr(e.hours),e.months=Jr(e.months),e.years=Jr(e.years),this}function Xn(e,t,n,i){var r=Ft(t,n);return e._milliseconds+=i*r._milliseconds,e._days+=i*r._days,e._months+=i*r._months,e._bubble()}function Zn(e,t){return Xn(this,e,t,1)}function Jn(e,t){return Xn(this,e,t,-1)}function ei(e){return e<0?Math.floor(e):Math.ceil(e)}function ti(){var e=this._milliseconds,t=this._days,n=this._months,i=this._data,r,o,a,s,l;return e>=0&&t>=0&&n>=0||e<=0&&t<=0&&n<=0||(e+=864e5*ei(ii(n)+t),t=0,n=0),i.milliseconds=e%1e3,r=b(e/1e3),i.seconds=r%60,o=b(r/60),i.minutes=o%60,a=b(o/60),i.hours=a%24,t+=b(a/24),l=b(ni(t)),n+=l,t-=ei(ii(l)),s=b(n/12),n%=12,i.days=t,i.months=n,i.years=s,this}function ni(e){return 4800*e/146097}function ii(e){return 146097*e/4800}function ri(e){var t,n,i=this._milliseconds;if(e=M(e),"month"===e||"year"===e)return t=this._days+i/864e5,n=this._months+ni(t),"month"===e?n:n/12;switch(t=this._days+Math.round(ii(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}}function oi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12)}function ai(e){return function(){return this.as(e)}}function si(e){return e=M(e),this[e+"s"]()}function li(e){return function(){return this._data[e]}}function ui(){return b(this.days()/7)}function ci(e,t,n,i,r){return r.relativeTime(t||1,!!n,e,i)}function di(e,t,n){var i=Ft(e).abs(),r=go(i.as("s")),o=go(i.as("m")),a=go(i.as("h")),s=go(i.as("d")),l=go(i.as("M")),u=go(i.as("y")),c=r0,c[4]=n,ci.apply(null,c)}function hi(e){return void 0===e?go:"function"==typeof e&&(go=e,!0)}function fi(e,t){return void 0!==vo[e]&&(void 0===t?vo[e]:(vo[e]=t,!0))}function pi(e){var t=this.localeData(),n=di(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function mi(){var e=yo(this._milliseconds)/1e3,t=yo(this._days),n=yo(this._months),i,r,o;i=b(e/60),r=b(i/60),e%=60,i%=60,o=b(n/12),n%=12;var a=o,s=n,l=t,u=r,c=i,d=e,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(a?a+"Y":"")+(s?s+"M":"")+(l?l+"D":"")+(u||c||d?"T":"")+(u?u+"H":"")+(c?c+"M":"")+(d?d+"S":""):"P0D"}var gi,vi;vi=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,i=0;i68?1900:2e3)};var vr=Y("FullYear",!0);z("w",["ww",2],"wo","week"),z("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),H("week",5),H("isoWeek",5),Z("w",Fi),Z("ww",Fi,Ri),Z("W",Fi),Z("WW",Fi,Ri),ie(["w","ww","W","WW"],function(e,t,n,i){t[i.substr(0,1)]=w(e)});var yr={dow:0,doy:6};z("d",0,"do","day"),z("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),z("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),z("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),z("e",0,0,"weekday"),z("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),Z("d",Fi),Z("e",Fi),Z("E",Fi),Z("dd",function(e,t){return t.weekdaysMinRegex(e)}),Z("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Z("dddd",function(e,t){return t.weekdaysRegex(e)}),ie(["dd","ddd","dddd"],function(e,t,n,i){var r=n._locale.weekdaysParse(e,i,n._strict);null!=r?t.d=r:h(n).invalidWeekday=e}),ie(["d","e","E"],function(e,t,n,i){t[i]=w(e)});var br="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),wr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),_r="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Er=Zi,xr=Zi,Tr=Zi;z("H",["HH",2],0,"hour"),z("h",["hh",2],0,$e),z("k",["kk",2],0,Ve),z("hmm",0,0,function(){return""+$e.apply(this)+B(this.minutes(),2)}),z("hmmss",0,0,function(){return""+$e.apply(this)+B(this.minutes(),2)+B(this.seconds(),2)}),z("Hmm",0,0,function(){return""+this.hours()+B(this.minutes(),2)}),z("Hmmss",0,0,function(){return""+this.hours()+B(this.minutes(),2)+B(this.seconds(),2)}),Be("a",!0),Be("A",!1),L("hour","h"),H("hour",13),Z("a",ze),Z("A",ze),Z("H",Fi),Z("h",Fi),Z("HH",Fi,Ri),Z("hh",Fi,Ri),Z("hmm",Ui),Z("hmmss",qi),Z("Hmm",Ui),Z("Hmmss",qi),ne(["H","HH"],rr),ne(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ne(["h","hh"],function(e,t,n){t[rr]=w(e),h(n).bigHour=!0}),ne("hmm",function(e,t,n){var i=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i)),h(n).bigHour=!0}),ne("hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i,2)),t[ar]=w(e.substr(r)),h(n).bigHour=!0}),ne("Hmm",function(e,t,n){var i=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i))}),ne("Hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i,2)),t[ar]=w(e.substr(r))});var Cr=/[ap]\.?m?\.?/i,Sr=Y("Hours",!0),Or={calendar:Ti,longDateFormat:Ci,invalidDate:Si,ordinal:Oi,ordinalParse:ki,relativeTime:Di,months:fr,monthsShort:pr,week:yr,weekdays:br,weekdaysMin:_r,weekdaysShort:wr,meridiemParse:Cr},kr={},Dr={},Ar,Ir=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Pr=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Nr=/Z|[+-]\d\d(?::?\d\d)?/,jr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Lr=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mr=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=x("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),e.ISO_8601=function(){};var Rr=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:p()}),Wr=function(){return Date.now?Date.now():+new Date};St("Z",":"),St("ZZ",""),Z("Z",Ki),Z("ZZ",Ki),ne(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ot(Ki,e)});var Yr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Fr=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ur=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ft.fn=xt.prototype;var qr=Vt(1,"add"),$r=Vt(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Vr=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});z(0,["gg",2],0,function(){return this.weekYear()%100}),z(0,["GG",2],0,function(){return this.isoWeekYear()%100}),On("gggg","weekYear"),On("ggggg","weekYear"),On("GGGG","isoWeekYear"),On("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),Z("G",Gi),Z("g",Gi),Z("GG",Fi,Ri),Z("gg",Fi,Ri),Z("GGGG",Vi,Wi),Z("gggg",Vi,Wi),Z("GGGGG",Bi,Yi),Z("ggggg",Bi,Yi),ie(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,i){t[i.substr(0,2)]=w(e)}),ie(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),z("Q",0,"Qo","quarter"),L("quarter","Q"),H("quarter",7),Z("Q",Mi),ne("Q",function(e,t){t[nr]=3*(w(e)-1)}),z("D",["DD",2],"Do","date"),L("date","D"),H("date",9),Z("D",Fi),Z("DD",Fi,Ri),Z("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),ne(["D","DD"],ir),ne("Do",function(e,t){t[ir]=w(e.match(Fi)[0],10)});var Br=Y("Date",!0);z("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),H("dayOfYear",4),Z("DDD",$i),Z("DDDD",Hi),ne(["DDD","DDDD"],function(e,t,n){n._dayOfYear=w(e)}),z("m",["mm",2],0,"minute"),L("minute","m"),H("minute",14),Z("m",Fi),Z("mm",Fi,Ri),ne(["m","mm"],or);var zr=Y("Minutes",!1);z("s",["ss",2],0,"second"),L("second","s"),H("second",15),Z("s",Fi),Z("ss",Fi,Ri),ne(["s","ss"],ar);var Gr=Y("Seconds",!1);z("S",0,0,function(){return~~(this.millisecond()/100)}),z(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),z(0,["SSS",3],0,"millisecond"),z(0,["SSSS",4],0,function(){return 10*this.millisecond()}),z(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),z(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),z(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),z(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),z(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),H("millisecond",16),Z("S",$i,Mi),Z("SS",$i,Ri),Z("SSS",$i,Hi);var Qr;for(Qr="SSSS";Qr.length<=9;Qr+="S")Z(Qr,zi);for(Qr="S";Qr.length<=9;Qr+="S")ne(Qr,Mn);var Kr=Y("Milliseconds",!1);z("z",0,0,"zoneAbbr"),z("zz",0,0,"zoneName");var Xr=v.prototype;Xr.add=qr,Xr.calendar=Gt,Xr.clone=Qt,Xr.diff=nn,Xr.endOf=gn,Xr.format=ln,Xr.from=un,Xr.fromNow=cn,Xr.to=dn,Xr.toNow=hn,Xr.get=q,Xr.invalidAt=Cn,Xr.isAfter=Kt,Xr.isBefore=Xt,Xr.isBetween=Zt,Xr.isSame=Jt,Xr.isSameOrAfter=en,Xr.isSameOrBefore=tn,Xr.isValid=xn,Xr.lang=Vr,Xr.locale=fn,Xr.localeData=pn,Xr.max=Hr,Xr.min=Rr,Xr.parsingFlags=Tn,Xr.set=V,Xr.startOf=mn,Xr.subtract=$r,Xr.toArray=wn,Xr.toObject=_n,Xr.toDate=bn,Xr.toISOString=an,Xr.inspect=sn,Xr.toJSON=En,Xr.toString=on,Xr.unix=yn,Xr.valueOf=vn,Xr.creationData=Sn,Xr.year=vr,Xr.isLeapYear=ye,Xr.weekYear=kn,Xr.isoWeekYear=Dn,Xr.quarter=Xr.quarters=jn,Xr.month=de,Xr.daysInMonth=he,Xr.week=Xr.weeks=ke,Xr.isoWeek=Xr.isoWeeks=De,Xr.weeksInYear=In,Xr.isoWeeksInYear=An,Xr.date=Br,Xr.day=Xr.days=Re,Xr.weekday=He,Xr.isoWeekday=We,Xr.dayOfYear=Ln,Xr.hour=Xr.hours=Sr,Xr.minute=Xr.minutes=zr,Xr.second=Xr.seconds=Gr,Xr.millisecond=Xr.milliseconds=Kr,Xr.utcOffset=At,Xr.utc=Pt,Xr.local=Nt,Xr.parseZone=jt,Xr.hasAlignedHourOffset=Lt,Xr.isDST=Mt,Xr.isLocal=Ht,Xr.isUtcOffset=Wt,Xr.isUtc=Yt,Xr.isUTC=Yt,Xr.zoneAbbr=Rn,Xr.zoneName=Hn,Xr.dates=x("dates accessor is deprecated. Use date instead.",Br),Xr.months=x("months accessor is deprecated. Use month instead",de),Xr.years=x("years accessor is deprecated. Use year instead",vr),Xr.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",It),Xr.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Rt);var Zr=k.prototype;Zr.calendar=D,Zr.longDateFormat=A,Zr.invalidDate=I,Zr.ordinal=P,Zr.preparse=Fn,Zr.postformat=Fn,Zr.relativeTime=N,Zr.pastFuture=j,Zr.set=S,Zr.months=ae,Zr.monthsShort=se,Zr.monthsParse=ue,Zr.monthsRegex=pe,Zr.monthsShortRegex=fe,Zr.week=Ce,Zr.firstDayOfYear=Oe,Zr.firstDayOfWeek=Se,Zr.weekdays=Pe,Zr.weekdaysMin=je,Zr.weekdaysShort=Ne,Zr.weekdaysParse=Me,Zr.weekdaysRegex=Ye,Zr.weekdaysShortRegex=Fe,Zr.weekdaysMinRegex=Ue,Zr.isPM=Ge,Zr.meridiem=Qe,Je("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),e.lang=x("moment.lang is deprecated. Use moment.locale instead.",Je),e.langData=x("moment.langData is deprecated. Use moment.localeData instead.",nt);var Jr=Math.abs,eo=ai("ms"),to=ai("s"),no=ai("m"),io=ai("h"),ro=ai("d"),oo=ai("w"),ao=ai("M"),so=ai("y"),lo=li("milliseconds"),uo=li("seconds"),co=li("minutes"),ho=li("hours"),fo=li("days"),po=li("months"),mo=li("years"),go=Math.round,vo={s:45,m:45,h:22,d:26,M:11},yo=Math.abs,bo=xt.prototype;return bo.abs=Kn,bo.add=Zn,bo.subtract=Jn,bo.as=ri,bo.asMilliseconds=eo,bo.asSeconds=to,bo.asMinutes=no,bo.asHours=io,bo.asDays=ro,bo.asWeeks=oo,bo.asMonths=ao,bo.asYears=so,bo.valueOf=oi,bo._bubble=ti,bo.get=si,bo.milliseconds=lo,bo.seconds=uo,bo.minutes=co,bo.hours=ho,bo.days=fo,bo.weeks=ui,bo.months=po,bo.years=mo,bo.humanize=pi,bo.toISOString=mi,bo.toString=mi,bo.toJSON=mi,bo.locale=fn,bo.localeData=pn,bo.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",mi),bo.lang=Vr,z("X",0,0,"unix"),z("x",0,0,"valueOf"),Z("x",Gi),Z("X",Xi),ne("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ne("x",function(e,t,n){n._d=new Date(w(e))}),e.version="2.17.1",t(bt),e.fn=Xr,e.min=_t,e.max=Et,e.now=Wr,e.utc=c,e.unix=Wn,e.months=Vn,e.isDate=a,e.locale=Je,e.invalid=p,e.duration=Ft,e.isMoment=y,e.weekdays=zn,e.parseZone=Yn,e.localeData=nt,e.isDuration=Tt,e.monthsShort=Bn,e.weekdaysMin=Qn,e.defineLocale=et,e.updateLocale=tt,e.locales=it,e.weekdaysShort=Gn,e.normalizeUnits=M,e.relativeTimeRounding=hi,e.relativeTimeThreshold=fi,e.calendarFormat=zt,e.prototype=Xr,e}),function(e,$,t){function n(e,t){var n=$(e);n.data(r,this),this._$element=n,this.shares=[],this._init(t),this._render()}var i="JSSocials",r=i,o=function(e,t){return $.isFunction(e)?e.apply(t,$.makeArray(arguments).slice(2)):e},a=/(\.(jpeg|png|gif|bmp|svg)$|^data:image\/(jpeg|png|gif|bmp|svg\+xml);base64)/i,s=/(&?[a-zA-Z0-9]+=)?\{([a-zA-Z0-9]+)\}/g,l={G:1e9,M:1e6,K:1e3},u={};n.prototype={url:"",text:"",shareIn:"blank",showLabel:function(e){return this.showCount===!1?e>this.smallScreenWidth:e>=this.largeScreenWidth},showCount:function(e){return!(e<=this.smallScreenWidth)||"inside"},smallScreenWidth:640,largeScreenWidth:1024,resizeTimeout:200,elementClass:"jssocials",sharesClass:"jssocials-shares",shareClass:"jssocials-share",shareButtonClass:"jssocials-share-button",shareLinkClass:"jssocials-share-link",shareLogoClass:"jssocials-share-logo",shareLabelClass:"jssocials-share-label",shareLinkCountClass:"jssocials-share-link-count",shareCountBoxClass:"jssocials-share-count-box",shareCountClass:"jssocials-share-count",shareZeroCountClass:"jssocials-share-no-count",_init:function(e){this._initDefaults(),$.extend(this,e),this._initShares(),this._attachWindowResizeCallback()},_initDefaults:function(){this.url=e.location.href,this.text=$.trim($("meta[name=description]").attr("content")||$("title").text())},_initShares:function(){this.shares=$.map(this.shares,$.proxy(function(e){"string"==typeof e&&(e={share:e});var t=e.share&&u[e.share];if(!t&&!e.renderer)throw Error("Share '"+e.share+"' is not found");return $.extend({url:this.url,text:this.text},t,e)},this))},_attachWindowResizeCallback:function(){$(e).on("resize",$.proxy(this._windowResizeHandler,this))},_detachWindowResizeCallback:function(){$(e).off("resize",this._windowResizeHandler)},_windowResizeHandler:function(){($.isFunction(this.showLabel)||$.isFunction(this.showCount))&&(e.clearTimeout(this._resizeTimer),this._resizeTimer=setTimeout($.proxy(this.refresh,this),this.resizeTimeout))},_render:function(){this._clear(),this._defineOptionsByScreen(),this._$element.addClass(this.elementClass),this._$shares=$("

      ").addClass(this.sharesClass).appendTo(this._$element),this._renderShares()},_defineOptionsByScreen:function(){this._screenWidth=$(e).width(),this._showLabel=o(this.showLabel,this,this._screenWidth),this._showCount=o(this.showCount,this,this._screenWidth)},_renderShares:function(){$.each(this.shares,$.proxy(function(e,t){this._renderShare(t)},this))},_renderShare:function(e){var t;t=$.isFunction(e.renderer)?$(e.renderer()):this._createShare(e),t.addClass(this.shareClass).addClass(e.share?"jssocials-share-"+e.share:"").addClass(e.css).appendTo(this._$shares); -},_createShare:function(e){var t=$("
      "),n=this._createShareLink(e).appendTo(t);if(this._showCount){var i="inside"===this._showCount,r=i?n:$("
      ").addClass(this.shareCountBoxClass).appendTo(t);r.addClass(i?this.shareLinkCountClass:this.shareCountBoxClass),this._renderShareCount(e,r)}return t},_createShareLink:function(e){var t=this._getShareStrategy(e),n=t.call(e,{shareUrl:this._getShareUrl(e)});return n.addClass(this.shareLinkClass).append(this._createShareLogo(e)),this._showLabel&&n.append(this._createShareLabel(e)),$.each(this.on||{},function(t,i){$.isFunction(i)&&n.on(t,$.proxy(i,e))}),n},_getShareStrategy:function(e){var t=d[e.shareIn||this.shareIn];if(!t)throw Error("Share strategy '"+this.shareIn+"' not found");return t},_getShareUrl:function(e){var t=o(e.shareUrl,e);return this._formatShareUrl(t,e)},_createShareLogo:function(e){var t=e.logo,n=a.test(t)?$("").attr("src",e.logo):$("").addClass(t);return n.addClass(this.shareLogoClass),n},_createShareLabel:function(e){return $("").addClass(this.shareLabelClass).text(e.label)},_renderShareCount:function(e,t){var n=$("").addClass(this.shareCountClass);t.addClass(this.shareZeroCountClass).append(n),this._loadCount(e).done($.proxy(function(e){e&&(t.removeClass(this.shareZeroCountClass),n.text(e))},this))},_loadCount:function(e){var t=$.Deferred(),n=this._getCountUrl(e);if(!n)return t.resolve(0).promise();var i=$.proxy(function(n){t.resolve(this._getCountValue(n,e))},this);return $.getJSON(n).done(i).fail(function(){$.get(n).done(i).fail(function(){t.resolve(0)})}),t.promise()},_getCountUrl:function(e){var t=o(e.countUrl,e);return this._formatShareUrl(t,e)},_getCountValue:function(e,t){var n=($.isFunction(t.getCount)?t.getCount(e):e)||0;return"string"==typeof n?n:this._formatNumber(n)},_formatNumber:function(e){return $.each(l,function(t,n){if(e>=n)return e=parseFloat((e/n).toFixed(2))+t,!1}),e},_formatShareUrl:function(t,n){return t.replace(s,function(t,i,r){var o=n[r]||"";return o?(i||"")+e.encodeURIComponent(o):""})},_clear:function(){e.clearTimeout(this._resizeTimer),this._$element.empty()},_passOptionToShares:function(e,t){var n=this.shares;$.each(["url","text"],function(i,r){r===e&&$.each(n,function(n,i){i[e]=t})})},_normalizeShare:function(e){return $.isNumeric(e)?this.shares[e]:"string"==typeof e?$.grep(this.shares,function(t){return t.share===e})[0]:e},refresh:function(){this._render()},destroy:function(){this._clear(),this._detachWindowResizeCallback(),this._$element.removeClass(this.elementClass).removeData(r)},option:function(e,t){return 1===arguments.length?this[e]:(this[e]=t,this._passOptionToShares(e,t),void this.refresh())},shareOption:function(e,t,n){return e=this._normalizeShare(e),2===arguments.length?e[t]:(e[t]=n,void this.refresh())}},$.fn.jsSocials=function(e){var i=$.makeArray(arguments),o=i.slice(1),a=this;return this.each(function(){var i=$(this),s=i.data(r),l;if(s)if("string"==typeof e){if(l=s[e].apply(s,o),l!==t&&l!==s)return a=l,!1}else s._detachWindowResizeCallback(),s._init(e),s._render();else new n(i,e)}),a};var c=function(e){var t;$.isPlainObject(e)?t=n.prototype:(t=u[e],e=arguments[1]||{}),$.extend(t,e)},d={popup:function(t){return $("").attr("href","#").on("click",function(){return e.open(t.shareUrl,null,"width=600, height=400, location=0, menubar=0, resizeable=0, scrollbars=0, status=0, titlebar=0, toolbar=0"),!1})},blank:function(e){return $("").attr({target:"_blank",href:e.shareUrl})},self:function(e){return $("").attr({target:"_self",href:e.shareUrl})}};e.jsSocials={Socials:n,shares:u,shareStrategies:d,setDefaults:c}}(window,jQuery),function(e,$,t,n){$.extend(t.shares,{email:{label:"E-mail",logo:"fa fa-at",shareUrl:"mailto:{to}?subject={text}&body={url}",countUrl:"",shareIn:"self"},twitter:{label:"Tweet",logo:"fa fa-twitter",shareUrl:"https://twitter.com/share?url={url}&text={text}&via={via}&hashtags={hashtags}",countUrl:""},facebook:{label:"Like",logo:"fa fa-facebook",shareUrl:"https://facebook.com/sharer/sharer.php?u={url}",countUrl:"https://graph.facebook.com/?id={url}",getCount:function(e){return e.share&&e.share.share_count||0}},vkontakte:{label:"Like",logo:"fa fa-vk",shareUrl:"https://vk.com/share.php?url={url}&title={title}&description={text}",countUrl:"https://vk.com/share.php?act=count&index=1&url={url}",getCount:function(e){return parseInt(e.slice(15,-2).split(", ")[1])}},googleplus:{label:"+1",logo:"fa fa-google",shareUrl:"https://plus.google.com/share?url={url}",countUrl:""},linkedin:{label:"Share",logo:"fa fa-linkedin",shareUrl:"https://www.linkedin.com/shareArticle?mini=true&url={url}",countUrl:"https://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",getCount:function(e){return e.count}},pinterest:{label:"Pin it",logo:"fa fa-pinterest",shareUrl:"https://pinterest.com/pin/create/bookmarklet/?media={media}&url={url}&description={text}",countUrl:"https://api.pinterest.com/v1/urls/count.json?&url={url}&callback=?",getCount:function(e){return e.count}},stumbleupon:{label:"Share",logo:"fa fa-stumbleupon",shareUrl:"http://www.stumbleupon.com/submit?url={url}&title={title}",countUrl:"https://cors-anywhere.herokuapp.com/https://www.stumbleupon.com/services/1.01/badge.getinfo?url={url}",getCount:function(e){return e.result.views}},telegram:{label:"Telegram",logo:"fa fa-paper-plane",shareUrl:"tg://msg?text={url} {text}",countUrl:"",shareIn:"self"},whatsapp:{label:"WhatsApp",logo:"fa fa-whatsapp",shareUrl:"whatsapp://send?text={url} {text}",countUrl:"",shareIn:"self"},line:{label:"LINE",logo:"fa fa-comment",shareUrl:"http://line.me/R/msg/text/?{text} {url}",countUrl:""},viber:{label:"Viber",logo:"fa fa-volume-control-phone",shareUrl:"viber://forward?text={url} {text}",countUrl:"",shareIn:"self"},pocket:{label:"Pocket",logo:"fa fa-get-pocket",shareUrl:"https://getpocket.com/save?url={url}&title={title}",countUrl:""},messenger:{label:"Share",logo:"fa fa-commenting",shareUrl:"fb-messenger://share?link={url}",countUrl:"",shareIn:"self"}})}(window,jQuery,window.jsSocials);var acc=document.getElementsByClassName("accordion"),i;for(i=0;i

      '+e.data.name+'

      '+e.data.description+'

      Last updated: '+e.data.pushed_at+"

      "}}),new $.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com"],null,{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,template:function(e){if(!$.fn.oembed.facebokScriptHasBeenAdded){$('
      ').appendTo("body");var t=document.createElement("script");t.type="text/javascript",t.text='(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";fjs.parentNode.insertBefore(js, fjs);}(document, "script", "facebook-jssdk"));',document.body.appendChild(t),$.fn.oembed.facebokScriptHasBeenAdded=!0}return'
      '}}),new $.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(e){if(!e.questions)return!1;var t=e.questions[0],n=$(t.body).text(),r='"}}),new $.fn.oembed.OEmbedProvider("wordpress","rich",["wordpress\\.com/.+","blogs\\.cnn\\.com/.+","techcrunch\\.com/.+","wp\\.me/.+"],"http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),new $.fn.oembed.OEmbedProvider("screenr","rich",["screenr.com"],"http://www.screenr.com/embed/$1",{templateRegex:/.*\/([^\/]+).*/,embedtag:{tag:"iframe",width:"650",height:396}}),new $.fn.oembed.OEmbedProvider("gigpans","rich",["gigapan\\.org/[-.\\w@]+/\\d+"],"http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",{templateRegex:/.*\/(\d+)\/?.*/,embedtag:{tag:"iframe",width:"100%",height:400}}),new $.fn.oembed.OEmbedProvider("scribd","rich",["scribd\\.com/.+"],"http://www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",{templateRegex:/.*doc\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:600}}),new $.fn.oembed.OEmbedProvider("kickstarter","rich",["kickstarter\\.com/projects/.+"],"$1/widget/card.html",{templateRegex:/([^\?]+).*/,embedtag:{tag:"iframe",width:"220",height:380}}),new $.fn.oembed.OEmbedProvider("amazon","rich",["amzn.com/B+","amazon.com.*/(B\\S+)($|\\/.*)"],"http://rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1<1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",{apikey:!0,templateRegex:/.*\/(B[0-9A-Z]+)($|\/.*)/,embedtag:{tag:"iframe",width:"120px",height:"240px"}}),new $.fn.oembed.OEmbedProvider("slideshare","rich",["slideshare.net"],"//www.slideshare.net/api/oembed/2",{format:"jsonp"}),new $.fn.oembed.OEmbedProvider("roomsharejp","rich",["roomshare\\.jp/(en/)?post/.*"],"http://roomshare.jp/oembed.json"),new $.fn.oembed.OEmbedProvider("lanyard","rich",["lanyrd.com/\\d+/.+"],null,{yql:{xpath:'(//div[@class="primary"])[1]',from:"htmlstring",datareturn:function(e){return!!e.result&&'
      '+e.result+"
      "}}}),new $.fn.oembed.OEmbedProvider("asciiartfarts","rich",["asciiartfarts.com/\\d+.html"],null,{yql:{xpath:"//pre/font",from:"htmlstring",datareturn:function(e){return!!e.result&&'
      '+e.result+"
      "}}}),new $.fn.oembed.OEmbedProvider("coveritlive","rich",["coveritlive.com/"],null,{templateRegex:/(.*)/,template:''}),new $.fn.oembed.OEmbedProvider("polldaddy","rich",["polldaddy.com/"],null,{templateRegex:/(?:https?:\/\/w?w?w?.?polldaddy.com\/poll\/)([0-9]*)\//,template:'',nocache:1}),new $.fn.oembed.OEmbedProvider("360io","rich",["360\\.io/.+"],"http://360.io/$1",{templateRegex:/.*360\.io\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("bubbli","rich",["on\\.bubb\\.li/.+"],"http://on.bubb.li/$1",{templateRegex:/.*on\.bubb\.li\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("cloudup","rich",["cloudup\\.com/.+"],"http://cloudup.com/$1?chromeless",{templateRegex:[/.*cloudup\.com\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360}}),new $.fn.oembed.OEmbedProvider("codepen","rich",["codepen.io/.+"],"http://codepen.io/$1/embed/$2",{templateRegex:[/.*io\/(\w+)\/pen\/(\w+).*/,/.*io\/(\w+)\/full\/(\w+).*/],embedtag:{tag:"iframe",width:"100%",height:"300"},nocache:1}),new $.fn.oembed.OEmbedProvider("googleviews","rich",["(.*maps\\.google\\.com\\/maps\\?).+(output=svembed).+(cbp=(.*)).*"],"https://maps.google.com/maps?layer=c&panoid=$3&ie=UTF8&source=embed&output=svembed&cbp=$5",{templateRegex:/(.*maps\.google\.com\/maps\?).+(panoid=(\w+)&).*(cbp=(.*)).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("googlemaps","rich",["google\\.com/maps/place/.+"],"http://maps.google.com/maps?t=m&q=$1&output=embed",{templateRegex:/.*google\.com\/maps\/place\/([\w\+]*)\/.*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("imajize","rich",["embed\\.imajize\\.com/.+"],"http://embed.imajize.com/$1",{templateRegex:/.*embed\.imajize\.com\/(.*)/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("mapjam","rich",["mapjam\\.com/.+"],"http://www.mapjam.com/$1",{templateRegex:/.*mapjam\.com\/(.*)/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("polar","rich",["polarb\\.com/.+"],"http://assets-polarb-com.a.ssl.fastly.net/api/v4/publishers/unknown/embedded_polls/iframe?poll_id=$1",{templateRegex:/.*polarb\.com\/polls\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("ponga","rich",["ponga\\.com/.+"],"https://www.ponga.com/embedded?id=$1",{templateRegex:[/.*ponga\.com\/embedded\?id=(\w+).*/,/.*ponga\.com\/(\w+).*/],embedtag:{tag:"iframe",width:480,height:360},nocache:1}),new $.fn.oembed.OEmbedProvider("opengraph","rich",[".*"],null,{yql:{xpath:"//meta|//title|//link",from:"html",datareturn:function(e){if(!e["og:title"]&&e.title&&e.description&&(e["og:title"]=e.title),!e["og:title"]&&!e.title)return!1;var t=$("

      ");if(e["og:video"]){var n=$('');n.attr("type",e["og:video:type"]||"application/x-shockwave-flash").css("max-height",a.maxHeight||"auto").css("max-width",a.maxWidth||"auto"),e["og:video:width"]&&n.attr("width",e["og:video:width"]),e["og:video:height"]&&n.attr("height",e["og:video:height"]),t.append(n)}else if(e["og:image"]){var i=$('');i.css("max-height",a.maxHeight||"auto").css("max-width",a.maxWidth||"auto"),e["og:image:width"]&&i.attr("width",e["og:image:width"]),e["og:image:height"]&&i.attr("height",e["og:image:height"]),t.append(i)}return e["og:title"]&&t.append(""+e["og:title"]+"
      "),e["og:description"]?t.append(e["og:description"]+"
      "):e.description&&t.append(e.description+"
      "),t}}})]}(jQuery),String.prototype.md5=function(){var e=function(e,t){var n=(65535&e)+(65535&t),i=(e>>16)+(t>>16)+(n>>16);return i<<16|65535&n},t=function(e,t){return e<>>32-t},n=function(n,i,r,o,a,s){return e(t(e(e(i,n),e(o,s)),a),r)},i=function(e,t,i,r,o,a,s){return n(t&i|~t&r,e,t,o,a,s)},r=function(e,t,i,r,o,a,s){return n(t&r|i&~r,e,t,o,a,s)},o=function(e,t,i,r,o,a,s){return n(t^i^r,e,t,o,a,s)},a=function(e,t,i,r,o,a,s){return n(i^(t|~r),e,t,o,a,s)},s=function(t){var n,s,l,u,c,d=t.length,h=1732584193,f=-271733879,p=-1732584194,m=271733878;for(c=0;c>2]>>i%4*8+4&15)+t.charAt(e[i>>2]>>i%4*8&15);return n},u=function(e){var t=(e.length+8>>6)+1,n=[],i,r=16*t,o,a=e.length;for(i=0;i>2]|=(255&e.charCodeAt(o))<>2]|=128< + * @copyright Ron Valstar + * @namespace tinysort + */ +!function(e,t){"use strict";function n(){return t}"function"==typeof define&&define.amd?define("tinysort",n):e.tinysort=t}(this,function(){"use strict";function e(e,i){function s(){0===arguments.length?v({}):t(arguments,function(e){v(k(e)?{selector:e}:e)}),f=$.length}function v(e){var t=!!e.selector,i=t&&":"===e.selector[0],r=n(e||{},g);$.push(n({hasSelector:t,hasAttr:!(r.attr===a||""===r.attr),hasData:r.data!==a,hasFilter:i,sortReturnNumber:"asc"===r.order?1:-1},r))}function y(){t(e,function(e,t){D?D!==e.parentNode&&(j=!1):D=e.parentNode;var n=$[0],i=n.hasFilter,r=n.selector,o=!r||i&&e.matchesSelector(r)||r&&e.querySelector(r),a=o?P:N,s={elm:e,pos:t,posn:a.length};I.push(s),a.push(s)}),O=P.slice(0)}function b(e,t,n){for(var i=n(e.toString()),r=n(t.toString()),o=0;i[o]&&r[o];o++)if(i[o]!==r[o]){var a=Number(i[o]),s=Number(r[o]);return a==i[o]&&s==r[o]?a-s:i[o]>r[o]?1:-1}return i.length-r.length}function w(e){for(var t,n,i=[],r=0,o=-1,a=0;t=(n=e.charAt(r++)).charCodeAt(0);){var s=46==t||t>=48&&57>=t;s!==a&&(i[++o]="",a=s),i[o]+=n}return i}function _(e,n){var i=0;for(0!==p&&(p=0);0===i&&f>p;){var a=$[p],s=a.ignoreDashes?d:c;if(t(h,function(e){var t=e.prepare;t&&t(a)}),a.sortFunction)i=a.sortFunction(e,n);else if("rand"==a.order)i=Math.random()<.5?1:-1;else{var l=o,m=S(e,a),g=S(n,a),v=""===m||m===r,y=""===g||g===r;if(m===g)i=0;else if(a.emptyEnd&&(v||y))i=v&&y?0:v?1:-1;else{if(!a.forceStrings){var _=k(m)?m&&m.match(s):o,E=k(g)?g&&g.match(s):o;if(_&&E){var x=m.substr(0,m.length-_[0].length),T=g.substr(0,g.length-E[0].length);x==T&&(l=!o,m=u(_[0]),g=u(E[0]))}}i=m===r||g===r?0:a.natural&&(isNaN(m)||isNaN(g))?b(m,g,w):g>m?-1:m>g?1:0}}t(h,function(e){var t=e.sort;t&&(i=t(a,l,m,g,i))}),i*=a.sortReturnNumber,0===i&&p++}return 0===i&&(i=e.pos>n.pos?1:-1),i}function E(){var e=P.length===I.length;if(j&&e)R?P.forEach(function(e,t){e.elm.style.order=t}):D?D.appendChild(x()):console.warn("parentNode has been removed");else{var t=$[0],n=t.place,i="org"===n,r="start"===n,o="end"===n,a="first"===n,s="last"===n;if(i)P.forEach(T),P.forEach(function(e,t){C(O[t],e.elm)});else if(r||o){var l=O[r?0:O.length-1],u=l&&l.elm.parentNode,c=u&&(r&&u.firstChild||u.lastChild);c&&(c!==l.elm&&(l={elm:c}),T(l),o&&u.appendChild(l.ghost),C(l,x()))}else if(a||s){var d=O[a?0:O.length-1];C(T(d),x())}}}function x(){return P.forEach(function(e){A.appendChild(e.elm)}),A}function T(e){var t=e.elm,n=l.createElement("div");return e.ghost=n,t.parentNode.insertBefore(n,t),e}function C(e,t){var n=e.ghost,i=n.parentNode;i.insertBefore(t,n),i.removeChild(n),delete e.ghost}function S(e,t){var n,i=e.elm;return t.selector&&(t.hasFilter?i.matchesSelector(t.selector)||(i=a):i=i.querySelector(t.selector)),t.hasAttr?n=i.getAttribute(t.attr):t.useVal?n=i.value||i.getAttribute("value"):t.hasData?n=i.getAttribute("data-"+t.data):i&&(n=i.textContent),k(n)&&(t.cases||(n=n.toLowerCase()),n=n.replace(/\s+/g," ")),null===n&&(n=m),n}function k(e){return"string"==typeof e}k(e)&&(e=l.querySelectorAll(e)),0===e.length&&console.warn("No elements to sort");var O,D,A=l.createDocumentFragment(),I=[],P=[],N=[],$=[],j=!0,L=e.length&&e[0].parentNode,M=L.rootNode!==document,R=e.length&&(i===r||i.useFlex!==!1)&&!M&&-1!==getComputedStyle(L,null).display.indexOf("flex");return s.apply(a,Array.prototype.slice.call(arguments,1)),y(),P.sort(_),E(),P.map(function(e){return e.elm})}function t(e,t){for(var n,i=e.length,r=i;r--;)n=i-r-1,t(e[n],n)}function n(e,t,n){for(var i in t)(n||e[i]===r)&&(e[i]=t[i]);return e}function i(e,t,n){h.push({prepare:e,sort:t,sortBy:n})}var r,o=!1,a=null,s=window,l=s.document,u=parseFloat,c=/(-?\d+\.?\d*)\s*$/g,d=/(\d+\.?\d*)\s*$/g,h=[],f=0,p=0,m=String.fromCharCode(4095),g={selector:a,order:"asc",attr:a,data:a,useVal:o,place:"org",returns:o,cases:o,natural:o,forceStrings:o,ignoreDashes:o,sortFunction:a,useFlex:o,emptyEnd:o};return s.Element&&function(e){e.matchesSelector=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector||function(e){for(var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;n[++i]&&n[i]!=t;);return!!n[i]}}(Element.prototype),n(i,{loop:t}),n(e,{plugin:i,defaults:g})}()),function(e,t){"function"==typeof define&&define.amd?define(["jquery","tinysort","moment"],t):t(e.jQuery,e.tinysort,e.moment||void 0)}(this,function($,e,t){function n(e){var n="undefined"!=typeof t;l=e.sign?e.sign:"arrow","default"==e.customSort&&(e.customSort=o),u=e.customSort||u||o,c=e.emptyEnd,$("table.sortable").each(function(){var i=$(this),o=e.applyLast===!0;i.find("span.sign").remove(),i.find("> thead [colspan]").each(function(){for(var e=parseFloat($(this).attr("colspan")),t=1;t')}),i.find("> thead [rowspan]").each(function(){for(var e=$(this),t=parseFloat(e.attr("rowspan")),n=1;n')}}),i.find("> thead tr").each(function(e){$(this).find("th").each(function(t){var n=$(this);n.addClass("nosort").removeClass("up down"),n.attr("data-sortcolumn",t),n.attr("data-sortkey",t+"-"+e)})}),i.find("> thead .rowspan-compensate, .colspan-compensate").remove(),i.find("th").each(function(){var e=$(this);if(void 0!==e.attr("data-dateformat")&&n){var r=parseFloat(e.attr("data-sortcolumn"));i.find("td:nth-child("+(r+1)+")").each(function(){var n=$(this);n.attr("data-value",t(n.text(),e.attr("data-dateformat")).format("YYYY/MM/DD/HH/mm/ss"))})}else if(void 0!==e.attr("data-valueprovider")){var r=parseFloat(e.attr("data-sortcolumn"));i.find("td:nth-child("+(r+1)+")").each(function(){var t=$(this);t.attr("data-value",new RegExp(e.attr("data-valueprovider")).exec(t.text())[0])})}}),i.find("td").each(function(){var e=$(this);void 0!==e.attr("data-dateformat")&&n?e.attr("data-value",t(e.text(),e.attr("data-dateformat")).format("YYYY/MM/DD/HH/mm/ss")):void 0!==e.attr("data-valueprovider")?e.attr("data-value",new RegExp(e.attr("data-valueprovider")).exec(e.text())[0]):void 0===e.attr("data-value")&&e.attr("data-value",e.text())});var s=r(i),l=s.bsSort;i.find('> thead th[data-defaultsort!="disabled"]').each(function(e){var t=$(this),n=t.closest("table.sortable");t.data("sortTable",n);var i=t.attr("data-sortkey"),r=o?s.lastSort:-1;l[i]=o?l[i]:t.attr("data-defaultsort"),void 0!==l[i]&&o===(i===r)&&(l[i]="asc"===l[i]?"desc":"asc",a(t,n))})})}function i(e){var t=$(e),n=t.data("sortTable")||t.closest("table.sortable");a(t,n)}function r(e){var t=e.data("bootstrap-sortable-context");return void 0===t&&(t={bsSort:[],lastSort:void 0},e.find('> thead th[data-defaultsort!="disabled"]').each(function(e){var n=$(this),i=n.attr("data-sortkey");t.bsSort[i]=n.attr("data-defaultsort"),void 0!==t.bsSort[i]&&(t.lastSort=i)}),e.data("bootstrap-sortable-context",t)),t}function o(t,n){e(t,n)}function a(e,t){t.trigger("before-sort");var n=parseFloat(e.attr("data-sortcolumn")),i=r(t),o=i.bsSort,s=e.attr("colspan");if(s){var d=parseFloat(e.data("mainsort"))||0,h=parseFloat(e.data("sortkey").split("-").pop());if(t.find("> thead tr").length-1>h)return void a(t.find('[data-sortkey="'+(n+d)+"-"+(h+1)+'"]'),t);n+=d}var f=e.attr("data-defaultsign")||l;if(t.find("> thead th").each(function(){$(this).removeClass("up").removeClass("down").addClass("nosort")}),$.browser.mozilla){var p=t.find("> thead div.mozilla");void 0!==p&&(p.find(".sign").remove(),p.parent().html(p.html())),e.wrapInner('

      '),e.children().eq(0).append('')}else t.find("> thead span.sign").remove(),e.append('');var m=e.attr("data-sortkey"),g="desc"!==e.attr("data-firstsort")?"desc":"asc",v=o[m]||g;i.lastSort!==m&&void 0!==o[m]||(v="asc"===v?"desc":"asc"),o[m]=v,i.lastSort=m,"desc"===o[m]?(e.find("span.sign").addClass("up"),e.addClass("up").removeClass("down nosort")):e.addClass("down").removeClass("up nosort");var y=t.children("tbody").children("tr"),b=[];$(y.filter('[data-disablesort="true"]').get().reverse()).each(function(e,t){var n=$(t);b.push({index:y.index(n),row:n}),n.remove()});var w=y.not('[data-disablesort="true"]');if(0!=w.length){var _="asc"===o[m]&&c;u(w,{emptyEnd:_,selector:"td:nth-child("+(n+1)+")",order:o[m],data:"value"})}$(b.reverse()).each(function(e,n){0===n.index?t.children("tbody").prepend(n.row):t.children("tbody").children("tr").eq(n.index-1).after(n.row)}),t.find("> tbody > tr > td.sorted,> thead th.sorted").removeClass("sorted"),w.find("td:eq("+n+")").addClass("sorted"),e.addClass("sorted"),t.trigger("sorted")}var s=$(document),l,u,c;if($.bootstrapSortable=function(e){void 0==e?n({}):e.constructor===Boolean?n({applyLast:e}):void 0!==e.sortingHeader?i(e.sortingHeader):n(e)},s.on("click",'table.sortable>thead th[data-defaultsort!="disabled"]',function(e){i(this)}),!$.browser){$.browser={chrome:!1,mozilla:!1,opera:!1,msie:!1,safari:!1};var d=navigator.userAgent;$.each($.browser,function(e){$.browser[e]=!!new RegExp(e,"i").test(d),$.browser.mozilla&&"mozilla"===e&&($.browser.mozilla=!!new RegExp("firefox","i").test(d)),$.browser.chrome&&"safari"===e&&($.browser.safari=!1)})}$($.bootstrapSortable)}),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";function e(){return gi.apply(null,arguments)}function t(e){gi=e}function n(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function r(e){var t;for(t in e)return!1;return!0}function o(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function a(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function s(e,t){var n=[],i;for(i=0;i0)for(n in bi)i=bi[n],r=t[i],m(r)||(e[i]=r);return e}function v(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),wi===!1&&(wi=!0,e.updateOffset(this),wi=!1)}function y(e){return e instanceof v||null!=e&&null!=e._isAMomentObject}function b(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function w(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=b(t)),n}function _(e,t,n){var i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),o=0,a;for(a=0;a0?"future":"past"];return C(n)?n(t):n.replace(/%s/i,t)}function L(e,t){var n=e.toLowerCase();Ai[n]=Ai[n+"s"]=Ai[t]=e}function M(e){return"string"==typeof e?Ai[e]||Ai[e.toLowerCase()]:void 0}function R(e){var t={},n,i;for(i in e)l(e,i)&&(n=M(i),n&&(t[n]=e[i]));return t}function H(e,t){Ii[e]=t}function W(e){var t=[];for(var n in e)t.push({unit:n,priority:Ii[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}function F(t,n){return function(i){return null!=i?(U(this,t,i),e.updateOffset(this,n),this):Y(this,t)}}function Y(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function U(e,t,n){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](n)}function q(e){return e=M(e),C(this[e])?this[e]():this}function V(e,t){if("object"==typeof e){e=R(e);for(var n=W(e),i=0;i=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function B(e,t,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),e&&(Li[e]=r),t&&(Li[t[0]]=function(){return z(r.apply(this,arguments),t[1],t[2])}),n&&(Li[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function G(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function Q(e){var t=e.match(Pi),n,i;for(n=0,i=t.length;n=0&&Ni.test(e);)e=e.replace(Ni,n),Ni.lastIndex=0,i-=1;return e}function Z(e,t,n){Ji[e]=C(t)?t:function(e,i){return e&&n?n:t}}function J(e,t){return l(Ji,e)?Ji[e](t._strict,t._locale):new RegExp(ee(e))}function ee(e){return te(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,i,r){return t||n||i||r}))}function te(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ne(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),o(t)&&(i=function(e,n){n[t]=w(e)}),n=0;n=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function we(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function _e(e,t,n){var i=7+t-n,r=(7+we(e,0,i).getUTCDay()-t)%7;return-r+i-1}function Ee(e,t,n,i,r){var o=(7+n-i)%7,a=_e(e,i,r),s=1+7*(t-1)+o+a,l,u;return s<=0?(l=e-1,u=ge(l)+s):s>ge(e)?(l=e+1,u=s-ge(e)):(l=e,u=s),{year:l,dayOfYear:u}}function xe(e,t,n){var i=_e(e.year(),t,n),r=Math.floor((e.dayOfYear()-i-1)/7)+1,o,a;return r<1?(a=e.year()-1,o=r+Te(a,t,n)):r>Te(e.year(),t,n)?(o=r-Te(e.year(),t,n),a=e.year()+1):(a=e.year(),o=r),{week:o,year:a}}function Te(e,t,n){var i=_e(e,t,n),r=_e(e+1,t,n);return(ge(e)-i+r)/7}function Ce(e){return xe(e,this._week.dow,this._week.doy).week}function Se(){return this._week.dow}function ke(){return this._week.doy}function Oe(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function De(e){var t=xe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Ae(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Ie(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Pe(e,t){return e?n(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:this._weekdays}function Ne(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function je(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Le(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=c([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?(r=dr.call(this._weekdaysParse,a),r!==-1?r:null):"ddd"===t?(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:null):(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:null):"dddd"===t?(r=dr.call(this._weekdaysParse,a),r!==-1?r:(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:null))):"ddd"===t?(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:(r=dr.call(this._weekdaysParse,a),r!==-1?r:(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:null))):(r=dr.call(this._minWeekdaysParse,a),r!==-1?r:(r=dr.call(this._weekdaysParse,a),r!==-1?r:(r=dr.call(this._shortWeekdaysParse,a),r!==-1?r:null)))}function Me(e,t,n){var i,r,o;if(this._weekdaysParseExact)return Le.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=c([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}}function Re(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Ae(e,this.localeData()),this.add(e-t,"d")):t}function He(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function We(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Ie(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function Fe(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Er),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ye(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=xr),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ue(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Tr),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function qe(){function e(e,t){return t.length-e.length}var t=[],n=[],i=[],r=[],o,a,s,l,u;for(o=0;o<7;o++)a=c([2e3,1]).day(o),s=this.weekdaysMin(a,""),l=this.weekdaysShort(a,""),u=this.weekdays(a,""),t.push(s),n.push(l),i.push(u),r.push(s),r.push(l),r.push(u);for(t.sort(e),n.sort(e),i.sort(e),r.sort(e),o=0;o<7;o++)n[o]=te(n[o]),i[o]=te(i[o]),r[o]=te(r[o]);this._weekdaysRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function $e(){return this.hours()%12||12}function Ve(){return this.hours()||24}function ze(e,t){B(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Be(e,t){return t._meridiemParse}function Ge(e){return"p"===(e+"").toLowerCase().charAt(0)}function Qe(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function Ke(e){return e?e.toLowerCase().replace("_","-"):e}function Xe(e){for(var t=0,n,i,r,o;t0;){if(r=Ze(o.slice(0,n).join("-")))return r;if(i&&i.length>=n&&_(o,i,!0)>=n-1)break;n--}t++}return null}function Ze(e){var t=null;if(!Or[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=Ar._abbr,require("./locale/"+e),Je(t)}catch(e){}return Or[e]}function Je(e,t){var n;return e&&(n=m(t)?nt(e):et(e,t),n&&(Ar=n)),Ar._abbr}function et(e,t){if(null!==t){var n=kr;if(t.abbr=e,null!=Or[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Or[e]._config;else if(null!=t.parentLocale){if(null==Or[t.parentLocale])return Dr[t.parentLocale]||(Dr[t.parentLocale]=[]),Dr[t.parentLocale].push({name:e,config:t}),null;n=Or[t.parentLocale]._config}return Or[e]=new O(k(n,t)),Dr[e]&&Dr[e].forEach(function(e){et(e.name,e.config)}),Je(e),Or[e]}return delete Or[e],null}function tt(e,t){if(null!=t){var n,i=kr;null!=Or[e]&&(i=Or[e]._config),t=k(i,t),n=new O(t),n.parentLocale=Or[e],Or[e]=n,Je(e)}else null!=Or[e]&&(null!=Or[e].parentLocale?Or[e]=Or[e].parentLocale:null!=Or[e]&&delete Or[e]);return Or[e]}function nt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Ar;if(!n(e)){if(t=Ze(e))return t;e=[e]}return Xe(e)}function it(){return xi(Or)}function rt(e){var t,n=e._a;return n&&h(e).overflow===-2&&(t=n[nr]<0||n[nr]>11?nr:n[ir]<1||n[ir]>oe(n[tr],n[nr])?ir:n[rr]<0||n[rr]>24||24===n[rr]&&(0!==n[or]||0!==n[ar]||0!==n[sr])?rr:n[or]<0||n[or]>59?or:n[ar]<0||n[ar]>59?ar:n[sr]<0||n[sr]>999?sr:-1,h(e)._overflowDayOfYear&&(tir)&&(t=ir),h(e)._overflowWeeks&&t===-1&&(t=lr),h(e)._overflowWeekday&&t===-1&&(t=ur),h(e).overflow=t),e}function ot(e){var t,n,i=e._i,r=Ir.exec(i)||Pr.exec(i),o,a,s,l;if(r){for(h(e).iso=!0,t=0,n=jr.length;tge(o)&&(h(e)._overflowDayOfYear=!0),n=we(o,0,e._dayOfYear),e._a[nr]=n.getUTCMonth(),e._a[ir]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=i[t]=r[t];for(;t<7;t++)e._a[t]=i[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[rr]&&0===e._a[or]&&0===e._a[ar]&&0===e._a[sr]&&(e._nextDay=!0,e._a[rr]=0),e._d=(e._useUTC?we:be).apply(null,i),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[rr]=24)}}function ct(e){var t,n,i,r,o,a,s,l;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)o=1,a=4,n=st(t.GG,e._a[tr],xe(bt(),1,4).year),i=st(t.W,1),r=st(t.E,1),(r<1||r>7)&&(l=!0);else{o=e._locale._week.dow,a=e._locale._week.doy;var u=xe(bt(),o,a);n=st(t.gg,e._a[tr],u.year),i=st(t.w,u.week),null!=t.d?(r=t.d,(r<0||r>6)&&(l=!0)):null!=t.e?(r=t.e+o,(t.e<0||t.e>6)&&(l=!0)):r=o}i<1||i>Te(n,o,a)?h(e)._overflowWeeks=!0:null!=l?h(e)._overflowWeekday=!0:(s=Ee(n,i,r,o,a),e._a[tr]=s.year,e._dayOfYear=s.dayOfYear)}function dt(t){if(t._f===e.ISO_8601)return void ot(t);t._a=[],h(t).empty=!0;var n=""+t._i,i,r,o,a,s,l=n.length,u=0;for(o=X(t._f,t._locale).match(Pi)||[],i=0;i0&&h(t).unusedInput.push(s),n=n.slice(n.indexOf(r)+r.length),u+=r.length),Li[a]?(r?h(t).empty=!1:h(t).unusedTokens.push(a),re(a,r,t)):t._strict&&!r&&h(t).unusedTokens.push(a);h(t).charsLeftOver=l-u,n.length>0&&h(t).unusedInput.push(n),t._a[rr]<=12&&h(t).bigHour===!0&&t._a[rr]>0&&(h(t).bigHour=void 0),h(t).parsedDateParts=t._a.slice(0),h(t).meridiem=t._meridiem,t._a[rr]=ht(t._locale,t._a[rr],t._meridiem),ut(t),rt(t)}function ht(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?(i=e.isPM(n),i&&t<12&&(t+=12),i||12!==t||(t=0),t):t}function ft(e){var t,n,i,r,o;if(0===e._f.length)return h(e).invalidFormat=!0,void(e._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Rt(){if(!m(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),e=gt(e),e._a){var t=e._isUTC?c(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&_(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Ht(){return!!this.isValid()&&!this._isUTC}function Wt(){return!!this.isValid()&&this._isUTC}function Ft(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Yt(e,t){var n=e,i=null,r,a,s;return Tt(e)?n={ms:e._milliseconds,d:e._days,M:e._months}:o(e)?(n={},t?n[t]=e:n.milliseconds=e):(i=Yr.exec(e))?(r="-"===i[1]?-1:1,n={y:0,d:w(i[ir])*r,h:w(i[rr])*r,m:w(i[or])*r,s:w(i[ar])*r,ms:w(Ct(1e3*i[sr]))*r}):(i=Ur.exec(e))?(r="-"===i[1]?-1:1,n={y:Ut(i[2],r),M:Ut(i[3],r),w:Ut(i[4],r),d:Ut(i[5],r),h:Ut(i[6],r),m:Ut(i[7],r),s:Ut(i[8],r)}):null==n?n={}:"object"==typeof n&&("from"in n||"to"in n)&&(s=$t(bt(n.from),bt(n.to)),n={},n.ms=s.milliseconds,n.M=s.months),a=new xt(n),Tt(e)&&l(e,"_locale")&&(a._locale=e._locale),a}function Ut(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function qt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function $t(e,t){var n;return e.isValid()&&t.isValid()?(t=Ot(t,e),e.isBefore(t)?n=qt(e,t):(n=qt(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Vt(e,t){return function(n,i){var r,o;return null===i||isNaN(+i)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=i,i=o),n="string"==typeof n?+n:n,r=Yt(n,i),zt(this,r,e),this}}function zt(t,n,i,r){var o=n._milliseconds,a=Ct(n._days),s=Ct(n._months);t.isValid()&&(r=null==r||r,o&&t._d.setTime(t._d.valueOf()+o*i),a&&U(t,"Date",Y(t,"Date")+a*i),s&&ce(t,Y(t,"Month")+s*i),r&&e.updateOffset(t,a||s))}function Bt(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Gt(t,n){var i=t||bt(),r=Ot(i,this).startOf("day"),o=e.calendarFormat(this,r)||"sameElse",a=n&&(C(n[o])?n[o].call(this,i):n[o]);return this.format(a||this.localeData().calendar(o,this,bt(i)))}function Qt(){return new v(this)}function Kt(e,t){var n=y(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&(t=M(m(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()o&&(t=o),Nn.call(this,e,t,n,i,r))}function Nn(e,t,n,i,r){var o=Ee(e,t,n,i,r),a=we(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function jn(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Ln(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function Mn(e,t){t[sr]=w(1e3*("0."+e))}function Rn(){return this._isUTC?"UTC":""}function Hn(){return this._isUTC?"Coordinated Universal Time":""}function Wn(e){return bt(1e3*e)}function Fn(){return bt.apply(null,arguments).parseZone()}function Yn(e){return e}function Un(e,t,n,i){var r=nt(),o=c().set(i,t);return r[n](o,e)}function qn(e,t,n){if(o(e)&&(t=e,e=void 0),e=e||"",null!=t)return Un(e,t,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=Un(e,i,n,"month");return r}function $n(e,t,n,i){"boolean"==typeof e?(o(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,o(t)&&(n=t,t=void 0),t=t||"");var r=nt(),a=e?r._week.dow:0;if(null!=n)return Un(t,(n+a)%7,i,"day");var s,l=[];for(s=0;s<7;s++)l[s]=Un(t,(s+a)%7,i,"day");return l}function Vn(e,t){return qn(e,t,"months")}function zn(e,t){return qn(e,t,"monthsShort")}function Bn(e,t,n){return $n(e,t,n,"weekdays")}function Gn(e,t,n){return $n(e,t,n,"weekdaysShort")}function Qn(e,t,n){return $n(e,t,n,"weekdaysMin")}function Kn(){var e=this._data;return this._milliseconds=Jr(this._milliseconds),this._days=Jr(this._days),this._months=Jr(this._months),e.milliseconds=Jr(e.milliseconds),e.seconds=Jr(e.seconds),e.minutes=Jr(e.minutes),e.hours=Jr(e.hours),e.months=Jr(e.months),e.years=Jr(e.years),this}function Xn(e,t,n,i){var r=Yt(t,n);return e._milliseconds+=i*r._milliseconds,e._days+=i*r._days,e._months+=i*r._months,e._bubble()}function Zn(e,t){return Xn(this,e,t,1)}function Jn(e,t){return Xn(this,e,t,-1)}function ei(e){return e<0?Math.floor(e):Math.ceil(e)}function ti(){var e=this._milliseconds,t=this._days,n=this._months,i=this._data,r,o,a,s,l;return e>=0&&t>=0&&n>=0||e<=0&&t<=0&&n<=0||(e+=864e5*ei(ii(n)+t),t=0,n=0),i.milliseconds=e%1e3,r=b(e/1e3),i.seconds=r%60,o=b(r/60),i.minutes=o%60,a=b(o/60),i.hours=a%24,t+=b(a/24),l=b(ni(t)),n+=l,t-=ei(ii(l)),s=b(n/12),n%=12,i.days=t,i.months=n,i.years=s,this}function ni(e){return 4800*e/146097}function ii(e){return 146097*e/4800}function ri(e){var t,n,i=this._milliseconds;if(e=M(e),"month"===e||"year"===e)return t=this._days+i/864e5,n=this._months+ni(t),"month"===e?n:n/12;switch(t=this._days+Math.round(ii(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}}function oi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12)}function ai(e){return function(){return this.as(e)}}function si(e){return e=M(e),this[e+"s"]()}function li(e){return function(){return this._data[e]}}function ui(){return b(this.days()/7)}function ci(e,t,n,i,r){return r.relativeTime(t||1,!!n,e,i)}function di(e,t,n){var i=Yt(e).abs(),r=go(i.as("s")),o=go(i.as("m")),a=go(i.as("h")),s=go(i.as("d")),l=go(i.as("M")),u=go(i.as("y")),c=r0,c[4]=n,ci.apply(null,c)}function hi(e){return void 0===e?go:"function"==typeof e&&(go=e,!0)}function fi(e,t){return void 0!==vo[e]&&(void 0===t?vo[e]:(vo[e]=t,!0))}function pi(e){var t=this.localeData(),n=di(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function mi(){var e=yo(this._milliseconds)/1e3,t=yo(this._days),n=yo(this._months),i,r,o;i=b(e/60),r=b(i/60),e%=60,i%=60,o=b(n/12),n%=12;var a=o,s=n,l=t,u=r,c=i,d=e,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(a?a+"Y":"")+(s?s+"M":"")+(l?l+"D":"")+(u||c||d?"T":"")+(u?u+"H":"")+(c?c+"M":"")+(d?d+"S":""):"P0D"}var gi,vi;vi=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,i=0;i68?1900:2e3)};var vr=F("FullYear",!0);B("w",["ww",2],"wo","week"),B("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),H("week",5),H("isoWeek",5),Z("w",Yi),Z("ww",Yi,Ri),Z("W",Yi),Z("WW",Yi,Ri),ie(["w","ww","W","WW"],function(e,t,n,i){t[i.substr(0,1)]=w(e)});var yr={dow:0,doy:6};B("d",0,"do","day"),B("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),B("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),B("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),B("e",0,0,"weekday"),B("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),Z("d",Yi),Z("e",Yi),Z("E",Yi),Z("dd",function(e,t){return t.weekdaysMinRegex(e)}),Z("ddd",function(e,t){return t.weekdaysShortRegex(e)}),Z("dddd",function(e,t){return t.weekdaysRegex(e)}),ie(["dd","ddd","dddd"],function(e,t,n,i){var r=n._locale.weekdaysParse(e,i,n._strict);null!=r?t.d=r:h(n).invalidWeekday=e}),ie(["d","e","E"],function(e,t,n,i){t[i]=w(e)});var br="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),wr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),_r="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Er=Zi,xr=Zi,Tr=Zi;B("H",["HH",2],0,"hour"),B("h",["hh",2],0,$e),B("k",["kk",2],0,Ve),B("hmm",0,0,function(){return""+$e.apply(this)+z(this.minutes(),2)}),B("hmmss",0,0,function(){return""+$e.apply(this)+z(this.minutes(),2)+z(this.seconds(),2)}),B("Hmm",0,0,function(){return""+this.hours()+z(this.minutes(),2)}),B("Hmmss",0,0,function(){return""+this.hours()+z(this.minutes(),2)+z(this.seconds(),2)}),ze("a",!0),ze("A",!1),L("hour","h"),H("hour",13),Z("a",Be),Z("A",Be),Z("H",Yi),Z("h",Yi),Z("HH",Yi,Ri),Z("hh",Yi,Ri),Z("hmm",Ui),Z("hmmss",qi),Z("Hmm",Ui),Z("Hmmss",qi),ne(["H","HH"],rr),ne(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ne(["h","hh"],function(e,t,n){t[rr]=w(e),h(n).bigHour=!0}),ne("hmm",function(e,t,n){var i=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i)),h(n).bigHour=!0}),ne("hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i,2)),t[ar]=w(e.substr(r)),h(n).bigHour=!0}),ne("Hmm",function(e,t,n){var i=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i))}),ne("Hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[rr]=w(e.substr(0,i)),t[or]=w(e.substr(i,2)),t[ar]=w(e.substr(r))});var Cr=/[ap]\.?m?\.?/i,Sr=F("Hours",!0),kr={calendar:Ti,longDateFormat:Ci,invalidDate:Si,ordinal:ki,ordinalParse:Oi,relativeTime:Di,months:fr,monthsShort:pr,week:yr,weekdays:br,weekdaysMin:_r,weekdaysShort:wr,meridiemParse:Cr},Or={},Dr={},Ar,Ir=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Pr=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Nr=/Z|[+-]\d\d(?::?\d\d)?/,jr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Lr=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mr=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=x("value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),e.ISO_8601=function(){};var Rr=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:p()}),Wr=function(){return Date.now?Date.now():+new Date};St("Z",":"),St("ZZ",""),Z("Z",Ki),Z("ZZ",Ki),ne(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=kt(Ki,e)});var Fr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Yr=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ur=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Yt.fn=xt.prototype;var qr=Vt(1,"add"),$r=Vt(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Vr=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});B(0,["gg",2],0,function(){return this.weekYear()%100}),B(0,["GG",2],0,function(){return this.isoWeekYear()%100}),kn("gggg","weekYear"),kn("ggggg","weekYear"),kn("GGGG","isoWeekYear"),kn("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),Z("G",Gi),Z("g",Gi),Z("GG",Yi,Ri),Z("gg",Yi,Ri),Z("GGGG",Vi,Wi),Z("gggg",Vi,Wi),Z("GGGGG",zi,Fi),Z("ggggg",zi,Fi),ie(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,i){t[i.substr(0,2)]=w(e)}),ie(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),B("Q",0,"Qo","quarter"),L("quarter","Q"),H("quarter",7),Z("Q",Mi),ne("Q",function(e,t){t[nr]=3*(w(e)-1)}),B("D",["DD",2],"Do","date"),L("date","D"),H("date",9),Z("D",Yi),Z("DD",Yi,Ri),Z("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),ne(["D","DD"],ir),ne("Do",function(e,t){t[ir]=w(e.match(Yi)[0],10)});var zr=F("Date",!0);B("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),H("dayOfYear",4),Z("DDD",$i),Z("DDDD",Hi),ne(["DDD","DDDD"],function(e,t,n){n._dayOfYear=w(e)}),B("m",["mm",2],0,"minute"),L("minute","m"),H("minute",14),Z("m",Yi),Z("mm",Yi,Ri),ne(["m","mm"],or);var Br=F("Minutes",!1);B("s",["ss",2],0,"second"),L("second","s"),H("second",15),Z("s",Yi),Z("ss",Yi,Ri),ne(["s","ss"],ar);var Gr=F("Seconds",!1);B("S",0,0,function(){return~~(this.millisecond()/100)}),B(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),B(0,["SSS",3],0,"millisecond"),B(0,["SSSS",4],0,function(){return 10*this.millisecond()}),B(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),B(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),B(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),B(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),B(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),H("millisecond",16),Z("S",$i,Mi),Z("SS",$i,Ri),Z("SSS",$i,Hi);var Qr;for(Qr="SSSS";Qr.length<=9;Qr+="S")Z(Qr,Bi);for(Qr="S";Qr.length<=9;Qr+="S")ne(Qr,Mn);var Kr=F("Milliseconds",!1);B("z",0,0,"zoneAbbr"),B("zz",0,0,"zoneName");var Xr=v.prototype;Xr.add=qr,Xr.calendar=Gt,Xr.clone=Qt,Xr.diff=nn,Xr.endOf=gn,Xr.format=ln,Xr.from=un,Xr.fromNow=cn,Xr.to=dn,Xr.toNow=hn,Xr.get=q,Xr.invalidAt=Cn,Xr.isAfter=Kt,Xr.isBefore=Xt,Xr.isBetween=Zt,Xr.isSame=Jt,Xr.isSameOrAfter=en,Xr.isSameOrBefore=tn,Xr.isValid=xn,Xr.lang=Vr,Xr.locale=fn,Xr.localeData=pn,Xr.max=Hr,Xr.min=Rr,Xr.parsingFlags=Tn,Xr.set=V,Xr.startOf=mn,Xr.subtract=$r,Xr.toArray=wn,Xr.toObject=_n,Xr.toDate=bn,Xr.toISOString=an,Xr.inspect=sn,Xr.toJSON=En,Xr.toString=on,Xr.unix=yn,Xr.valueOf=vn,Xr.creationData=Sn,Xr.year=vr,Xr.isLeapYear=ye,Xr.weekYear=On,Xr.isoWeekYear=Dn,Xr.quarter=Xr.quarters=jn,Xr.month=de,Xr.daysInMonth=he,Xr.week=Xr.weeks=Oe,Xr.isoWeek=Xr.isoWeeks=De,Xr.weeksInYear=In,Xr.isoWeeksInYear=An,Xr.date=zr,Xr.day=Xr.days=Re,Xr.weekday=He,Xr.isoWeekday=We,Xr.dayOfYear=Ln,Xr.hour=Xr.hours=Sr,Xr.minute=Xr.minutes=Br,Xr.second=Xr.seconds=Gr,Xr.millisecond=Xr.milliseconds=Kr,Xr.utcOffset=At,Xr.utc=Pt,Xr.local=Nt,Xr.parseZone=jt,Xr.hasAlignedHourOffset=Lt,Xr.isDST=Mt,Xr.isLocal=Ht,Xr.isUtcOffset=Wt,Xr.isUtc=Ft,Xr.isUTC=Ft,Xr.zoneAbbr=Rn,Xr.zoneName=Hn,Xr.dates=x("dates accessor is deprecated. Use date instead.",zr),Xr.months=x("months accessor is deprecated. Use month instead",de),Xr.years=x("years accessor is deprecated. Use year instead",vr),Xr.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",It),Xr.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Rt);var Zr=O.prototype;Zr.calendar=D,Zr.longDateFormat=A,Zr.invalidDate=I,Zr.ordinal=P,Zr.preparse=Yn,Zr.postformat=Yn,Zr.relativeTime=N,Zr.pastFuture=j,Zr.set=S,Zr.months=ae,Zr.monthsShort=se,Zr.monthsParse=ue,Zr.monthsRegex=pe,Zr.monthsShortRegex=fe,Zr.week=Ce,Zr.firstDayOfYear=ke,Zr.firstDayOfWeek=Se,Zr.weekdays=Pe,Zr.weekdaysMin=je,Zr.weekdaysShort=Ne,Zr.weekdaysParse=Me,Zr.weekdaysRegex=Fe,Zr.weekdaysShortRegex=Ye,Zr.weekdaysMinRegex=Ue,Zr.isPM=Ge,Zr.meridiem=Qe,Je("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+n}}),e.lang=x("moment.lang is deprecated. Use moment.locale instead.",Je),e.langData=x("moment.langData is deprecated. Use moment.localeData instead.",nt);var Jr=Math.abs,eo=ai("ms"),to=ai("s"),no=ai("m"),io=ai("h"),ro=ai("d"),oo=ai("w"),ao=ai("M"),so=ai("y"),lo=li("milliseconds"),uo=li("seconds"),co=li("minutes"),ho=li("hours"),fo=li("days"),po=li("months"),mo=li("years"),go=Math.round,vo={s:45,m:45,h:22,d:26,M:11},yo=Math.abs,bo=xt.prototype;return bo.abs=Kn,bo.add=Zn,bo.subtract=Jn,bo.as=ri,bo.asMilliseconds=eo,bo.asSeconds=to,bo.asMinutes=no,bo.asHours=io,bo.asDays=ro,bo.asWeeks=oo,bo.asMonths=ao,bo.asYears=so,bo.valueOf=oi,bo._bubble=ti,bo.get=si,bo.milliseconds=lo,bo.seconds=uo,bo.minutes=co,bo.hours=ho,bo.days=fo,bo.weeks=ui,bo.months=po,bo.years=mo,bo.humanize=pi,bo.toISOString=mi,bo.toString=mi,bo.toJSON=mi,bo.locale=fn,bo.localeData=pn,bo.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",mi),bo.lang=Vr,B("X",0,0,"unix"),B("x",0,0,"valueOf"),Z("x",Gi),Z("X",Xi),ne("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ne("x",function(e,t,n){n._d=new Date(w(e))}),e.version="2.17.1",t(bt),e.fn=Xr,e.min=_t,e.max=Et,e.now=Wr,e.utc=c,e.unix=Wn,e.months=Vn,e.isDate=a,e.locale=Je,e.invalid=p,e.duration=Yt,e.isMoment=y,e.weekdays=Bn,e.parseZone=Fn,e.localeData=nt,e.isDuration=Tt,e.monthsShort=zn,e.weekdaysMin=Qn,e.defineLocale=et,e.updateLocale=tt,e.locales=it,e.weekdaysShort=Gn,e.normalizeUnits=M,e.relativeTimeRounding=hi,e.relativeTimeThreshold=fi,e.calendarFormat=Bt,e.prototype=Xr,e}),function(e,$,t){function n(e,t){var n=$(e);n.data(r,this),this._$element=n,this.shares=[],this._init(t),this._render()}var i="JSSocials",r=i,o=function(e,t){return $.isFunction(e)?e.apply(t,$.makeArray(arguments).slice(2)):e},a=/(\.(jpeg|png|gif|bmp|svg)$|^data:image\/(jpeg|png|gif|bmp|svg\+xml);base64)/i,s=/(&?[a-zA-Z0-9]+=)?\{([a-zA-Z0-9]+)\}/g,l={G:1e9,M:1e6,K:1e3},u={};n.prototype={url:"",text:"",shareIn:"blank",showLabel:function(e){return this.showCount===!1?e>this.smallScreenWidth:e>=this.largeScreenWidth},showCount:function(e){return!(e<=this.smallScreenWidth)||"inside"},smallScreenWidth:640,largeScreenWidth:1024,resizeTimeout:200,elementClass:"jssocials",sharesClass:"jssocials-shares",shareClass:"jssocials-share",shareButtonClass:"jssocials-share-button",shareLinkClass:"jssocials-share-link",shareLogoClass:"jssocials-share-logo",shareLabelClass:"jssocials-share-label",shareLinkCountClass:"jssocials-share-link-count",shareCountBoxClass:"jssocials-share-count-box",shareCountClass:"jssocials-share-count",shareZeroCountClass:"jssocials-share-no-count",_init:function(e){this._initDefaults(),$.extend(this,e),this._initShares(),this._attachWindowResizeCallback()},_initDefaults:function(){this.url=e.location.href,this.text=$.trim($("meta[name=description]").attr("content")||$("title").text())},_initShares:function(){this.shares=$.map(this.shares,$.proxy(function(e){"string"==typeof e&&(e={share:e});var t=e.share&&u[e.share];if(!t&&!e.renderer)throw Error("Share '"+e.share+"' is not found");return $.extend({url:this.url,text:this.text},t,e)},this))},_attachWindowResizeCallback:function(){$(e).on("resize",$.proxy(this._windowResizeHandler,this))},_detachWindowResizeCallback:function(){$(e).off("resize",this._windowResizeHandler)},_windowResizeHandler:function(){($.isFunction(this.showLabel)||$.isFunction(this.showCount))&&(e.clearTimeout(this._resizeTimer),this._resizeTimer=setTimeout($.proxy(this.refresh,this),this.resizeTimeout))},_render:function(){this._clear(),this._defineOptionsByScreen(),this._$element.addClass(this.elementClass),this._$shares=$("
      ").addClass(this.sharesClass).appendTo(this._$element),this._renderShares()},_defineOptionsByScreen:function(){this._screenWidth=$(e).width(),this._showLabel=o(this.showLabel,this,this._screenWidth),this._showCount=o(this.showCount,this,this._screenWidth)},_renderShares:function(){$.each(this.shares,$.proxy(function(e,t){this._renderShare(t)},this))},_renderShare:function(e){var t;t=$.isFunction(e.renderer)?$(e.renderer()):this._createShare(e),t.addClass(this.shareClass).addClass(e.share?"jssocials-share-"+e.share:"").addClass(e.css).appendTo(this._$shares)},_createShare:function(e){var t=$("
      "),n=this._createShareLink(e).appendTo(t);if(this._showCount){var i="inside"===this._showCount,r=i?n:$("
      ").addClass(this.shareCountBoxClass).appendTo(t);r.addClass(i?this.shareLinkCountClass:this.shareCountBoxClass),this._renderShareCount(e,r)}return t},_createShareLink:function(e){var t=this._getShareStrategy(e),n=t.call(e,{shareUrl:this._getShareUrl(e)});return n.addClass(this.shareLinkClass).append(this._createShareLogo(e)),this._showLabel&&n.append(this._createShareLabel(e)),$.each(this.on||{},function(t,i){$.isFunction(i)&&n.on(t,$.proxy(i,e))}),n},_getShareStrategy:function(e){var t=d[e.shareIn||this.shareIn];if(!t)throw Error("Share strategy '"+this.shareIn+"' not found");return t},_getShareUrl:function(e){var t=o(e.shareUrl,e);return this._formatShareUrl(t,e)},_createShareLogo:function(e){var t=e.logo,n=a.test(t)?$("").attr("src",e.logo):$("").addClass(t);return n.addClass(this.shareLogoClass),n},_createShareLabel:function(e){return $("").addClass(this.shareLabelClass).text(e.label)},_renderShareCount:function(e,t){var n=$("").addClass(this.shareCountClass);t.addClass(this.shareZeroCountClass).append(n),this._loadCount(e).done($.proxy(function(e){e&&(t.removeClass(this.shareZeroCountClass),n.text(e))},this))},_loadCount:function(e){var t=$.Deferred(),n=this._getCountUrl(e);if(!n)return t.resolve(0).promise();var i=$.proxy(function(n){t.resolve(this._getCountValue(n,e))},this);return $.getJSON(n).done(i).fail(function(){$.get(n).done(i).fail(function(){t.resolve(0)})}),t.promise()},_getCountUrl:function(e){var t=o(e.countUrl,e);return this._formatShareUrl(t,e)},_getCountValue:function(e,t){var n=($.isFunction(t.getCount)?t.getCount(e):e)||0;return"string"==typeof n?n:this._formatNumber(n)},_formatNumber:function(e){return $.each(l,function(t,n){if(e>=n)return e=parseFloat((e/n).toFixed(2))+t,!1}),e},_formatShareUrl:function(t,n){return t.replace(s,function(t,i,r){var o=n[r]||"";return o?(i||"")+e.encodeURIComponent(o):""})},_clear:function(){e.clearTimeout(this._resizeTimer),this._$element.empty()},_passOptionToShares:function(e,t){var n=this.shares;$.each(["url","text"],function(i,r){r===e&&$.each(n,function(n,i){i[e]=t})})},_normalizeShare:function(e){return $.isNumeric(e)?this.shares[e]:"string"==typeof e?$.grep(this.shares,function(t){return t.share===e})[0]:e},refresh:function(){this._render()},destroy:function(){this._clear(),this._detachWindowResizeCallback(),this._$element.removeClass(this.elementClass).removeData(r)},option:function(e,t){return 1===arguments.length?this[e]:(this[e]=t,this._passOptionToShares(e,t),void this.refresh())},shareOption:function(e,t,n){return e=this._normalizeShare(e),2===arguments.length?e[t]:(e[t]=n,void this.refresh())}},$.fn.jsSocials=function(e){var i=$.makeArray(arguments),o=i.slice(1),a=this;return this.each(function(){var i=$(this),s=i.data(r),l;if(s)if("string"==typeof e){if(l=s[e].apply(s,o),l!==t&&l!==s)return a=l,!1}else s._detachWindowResizeCallback(),s._init(e),s._render();else new n(i,e)}),a};var c=function(e){var t;$.isPlainObject(e)?t=n.prototype:(t=u[e], +e=arguments[1]||{}),$.extend(t,e)},d={popup:function(t){return $("").attr("href","#").on("click",function(){return e.open(t.shareUrl,null,"width=600, height=400, location=0, menubar=0, resizeable=0, scrollbars=0, status=0, titlebar=0, toolbar=0"),!1})},blank:function(e){return $("").attr({target:"_blank",href:e.shareUrl})},self:function(e){return $("").attr({target:"_self",href:e.shareUrl})}};e.jsSocials={Socials:n,shares:u,shareStrategies:d,setDefaults:c}}(window,jQuery),function(e,$,t,n){$.extend(t.shares,{email:{label:"E-mail",logo:"fa fa-at",shareUrl:"mailto:{to}?subject={text}&body={url}",countUrl:"",shareIn:"self"},twitter:{label:"Tweet",logo:"fa fa-twitter",shareUrl:"https://twitter.com/share?url={url}&text={text}&via={via}&hashtags={hashtags}",countUrl:""},facebook:{label:"Like",logo:"fa fa-facebook",shareUrl:"https://facebook.com/sharer/sharer.php?u={url}",countUrl:"https://graph.facebook.com/?id={url}",getCount:function(e){return e.share&&e.share.share_count||0}},vkontakte:{label:"Like",logo:"fa fa-vk",shareUrl:"https://vk.com/share.php?url={url}&title={title}&description={text}",countUrl:"https://vk.com/share.php?act=count&index=1&url={url}",getCount:function(e){return parseInt(e.slice(15,-2).split(", ")[1])}},googleplus:{label:"+1",logo:"fa fa-google",shareUrl:"https://plus.google.com/share?url={url}",countUrl:""},linkedin:{label:"Share",logo:"fa fa-linkedin",shareUrl:"https://www.linkedin.com/shareArticle?mini=true&url={url}",countUrl:"https://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",getCount:function(e){return e.count}},pinterest:{label:"Pin it",logo:"fa fa-pinterest",shareUrl:"https://pinterest.com/pin/create/bookmarklet/?media={media}&url={url}&description={text}",countUrl:"https://api.pinterest.com/v1/urls/count.json?&url={url}&callback=?",getCount:function(e){return e.count}},stumbleupon:{label:"Share",logo:"fa fa-stumbleupon",shareUrl:"http://www.stumbleupon.com/submit?url={url}&title={title}",countUrl:"https://cors-anywhere.herokuapp.com/https://www.stumbleupon.com/services/1.01/badge.getinfo?url={url}",getCount:function(e){return e.result.views}},telegram:{label:"Telegram",logo:"fa fa-paper-plane",shareUrl:"tg://msg?text={url} {text}",countUrl:"",shareIn:"self"},whatsapp:{label:"WhatsApp",logo:"fa fa-whatsapp",shareUrl:"whatsapp://send?text={url} {text}",countUrl:"",shareIn:"self"},line:{label:"LINE",logo:"fa fa-comment",shareUrl:"http://line.me/R/msg/text/?{text} {url}",countUrl:""},viber:{label:"Viber",logo:"fa fa-volume-control-phone",shareUrl:"viber://forward?text={url} {text}",countUrl:"",shareIn:"self"},pocket:{label:"Pocket",logo:"fa fa-get-pocket",shareUrl:"https://getpocket.com/save?url={url}&title={title}",countUrl:""},messenger:{label:"Share",logo:"fa fa-commenting",shareUrl:"fb-messenger://share?link={url}",countUrl:"",shareIn:"self"}})}(window,jQuery,window.jsSocials);var acc=document.getElementsByClassName("accordion"),i;for(i=0;i"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","parent","useCache","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","Callbacks","firing","memory","fired","locked","firingIndex","once","stopOnFalse","disable","lock","fireWith","tuples","catch","pipe","fns","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","depth","special","that","mightThrow","maxDepth","TypeError","process","exceptionHook","stackTrace","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","holdReady","hold","wait","readyState","doScroll","chainable","emptyGet","raw","bulk","acceptData","owner","defineProperty","configurable","removeData","_data","_removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","swap","old","hide","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","div","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","handleObjIn","eventHandle","t","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","mouseenter","mouseleave","pointerenter","pointerleave","related","rxhtmlTag","rnoInnerhtml","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","rdisplayswap","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","origName","isFinite","left","margin","padding","border","suffix","expanded","parts","propHooks","eased","pos","step","scrollTop","scrollLeft","linear","p","swing","cos","PI","rrun","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","cancelAnimationFrame","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rCRLF","rsubmitterTypes","rsubmittable","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","urlAnchor","uncached","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","finalText","crossDomain","host","hasContent","beforeSend","send","getJSON","getScript","wrapAll","firstElementChild","wrapInner","unwrap","visible","offsetWidth","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","rect","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","parseJSON","define","amd","_jQuery","_$","$","noConflict","require","Tether","_classCallCheck","instance","Constructor","getActualBoundingClientRect","boundingRect","k","_frameElement","frameElement","frameRect","bottom","right","getScrollParents","computedStyle","_style","removeUtilElements","zeroElement","getBounds","docEl","box","origin","getOrigin","scrollWidth","scrollHeight","clientWidth","clientHeight","getOffsetParent","getScrollBarSize","_scrollBarSize","inner","outer","pointerEvents","widthContained","widthScroll","out","forEach","classList","cls","regex","getClassName","setClassName","SVGAnimatedString","baseVal","updateClasses","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","within","performance","addOffset","_len","offsets","_key","_ref","offsetToPx","size","getBoundingRect","tether","scrollParents","innerWidth","innerHeight","BOUNDS_FORMAT","side","substr","_createClass","defineProperties","descriptor","protoProps","staticProps","TetherBase","modules","uniqueId","zeroPosCache","flush","Evented","ctx","bindings","_bindings$event$i","Utils","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_i","_s","_get","_x6","_x7","_x8","_again","property","receiver","Function","desc","getOwnPropertyDescriptor","_TetherBase$Utils","transformKey","transforms","tethers","lastCall","lastDuration","pendingTimeout","min","MIRROR_LR","center","MIRROR_TB","middle","OFFSET_MAP","autoToFixedAttachment","attachment","relativeToAttachment","attachmentToOffset","parseOffset","_value$split","_value$split2","parseAttachment","TetherClass","_Evented","_this","history","setOptions","initialize","classPrefix","_this2","defaults","targetOffset","targetAttachment","_options","element","targetModifier","querySelector","addTargetClasses","enable","getTargetBounds","bounds","hasBottomScroll","scrollBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","fitAdj","pow","scrollPercentage","clearCache","_cache","_this3","_this4","destroy","_this5","updateAttachClasses","elementAttach","targetAttach","_this6","sides","_addAttachClasses","_this7","flushChanges","elementPos","lastSize","_lastSize","targetPos","targetSize","manualOffset","manualTargetOffset","_module2","scrollbarSize","page","viewport","parentElement","optimizations","moveElement","offsetPosition","offsetParentStyle","offsetParentSize","offsetBorder","move","_this8","same","found","point","transcribe","_same","_pos","hasOptimizations","gpu","yPos","xPos","matchMedia","retina","round","moved","bodyElement","offsetParentIsBody","currentNode","tagName","writeCSS","write","elVal","constraints","targetHeight","targetWidth","allClasses","constraint","outOfBoundsClass","pinnedClass","addClasses","tAttachment","eAttachment","pin","changeAttachX","changeAttachY","_attachment$split","_attachment$split2","pinned","oob","oobClass","abutted","targetPosSide","shiftTop","shiftLeft","_shift","_shift2","_possibleConstructorReturn","ReferenceError","_typeof","Util","toType","isElement","getSpecialTransitionEndEvent","transition","transitionEndTest","QUnit","TransitionEndEvent","transitionEndEmulator","called","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","supportsTransitionEnd","MAX_UID","WebkitTransition","MozTransition","OTransition","getUID","getSelectorFromElement","reflow","Boolean","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","triggerChangeEvent","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","Default","keyboard","slide","pause","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","_config","_getConfig","_indicatorsElement","_addEventListeners","_slide","nextWhenVisible","PREVIOUS","cycle","visibilityState","activeIndex","_getItemIndex","direction","_keydown","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","eventDirectionName","slideEvent","_setActiveIndicatorElement","nextIndicator","nextElement","isCycling","directionalClassName","orderClassName","slidEvent","action","_dataApiClickHandler","slideIndex","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","dimension","_getDimension","setTransitioning","capitalizedDimension","scrollSize","offsetDimension","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$this","Dropdown","ESCAPE_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","CLICK","FOCUSIN_DATA_API","KEYDOWN_DATA_API","BACKDROP","DISABLED","FORM_CHILD","ROLE_MENU","ROLE_LISTBOX","NAVBAR_NAV","VISIBLE_ITEMS","_getParentFromElement","isActive","_clearMenus","dropdown","showEvent","backdrop","toggles","hideEvent","_dataApiKeydownHandler","items","Modal","BACKDROP_TRANSITION_DURATION","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_this9","_checkScrollbar","_setScrollbar","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this10","_hideModal","_this11","Node","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this12","_this13","_this14","_handleUpdate","_this15","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this16","doAnimate","callbackRemove","_adjustDialog","isModalOverflowing","paddingLeft","paddingRight","_getScrollbarWidth","bodyPadding","scrollDiv","scrollbarWidth","_this17","$target","ScrollSpy","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","NAV_LINK","NAV","DATA_SPY","LIST_ITEM","LI","LI_DROPDOWN","NAV_LINKS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_this18","_scrollElement","_selector","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","_this19","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","item","_getOffsetHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","scrollSpys","$spy","Tab","A","LIST","FADE_CHILD","ACTIVE_CHILD","DROPDOWN_ACTIVE_CHILD","_this20","previous","listElement","hiddenEvent","_this21","_transitionComplete","dropdownChild","dropdownElement","Tooltip","CLASS_PREFIX","template","title","placement","AttachmentMap","TOP","BOTTOM","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","_tether","tip","_setListeners","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","cleanupTether","_this22","isWithContent","isInTheDom","tipId","setContent","_getAttachment","prevHoverState","_TRANSITION_DURATION","_this23","getTitle","$tip","setElementContent","_this24","triggers","eventIn","eventOut","_fixTitle","titleType","Popover","TITLE","CONTENT","_Tooltip","_getContent","rand","charAt","floor","getRequestUrl","provider","externalUrl","apiendpoint","qs","maxwidth","maxHeight","maxheight","callbackparameter","format","oembedData","beforeEmbed","onEmbed","afterEmbed","embedCode","embedProvider","embedtag","yql","from","query","xpath","ajaxopts","q","env","meta","link","rel","datareturn","onError","ajaxOptions","templateRegex","flashvars","nocache","apikey","apikeys","allowfullscreen","scrolling","frameborder","templateData","requestUrl","oembed","getPhotoCode","getRichCode","getGenericCode","getNormalizedParams","normalizedParams","embedAction","shortURLList","resourceURL","insertCode","embedMethod","regExp","getOEmbedProvider","fallback","onProviderNotFound","longUrlAjaxOptions","includeHandle","c","log","oembedContainer","encodedString","post_width","iframe_width_orig","iframe_height_orig","ratio","alt","author_name","provider_name","thumbnail_url","newURL","providers","urlschemes","OEmbedProvider","urlschemesarray","extraSettings","useYQL","externalurl","updateOEmbedProvider","image_teaser_url","wm","tourid","loadEmbeds","Title","imdbID","Year","imdbRating","Genre","Actors","Plot","html_url","language","watchers","forks","description","pushed_at","facebokScriptHasBeenAdded","questions","up_vote_count","down_vote_count","answer_count","view_count","question_id","substring","tags","user_id","display_name","email_hash","reputation","embed","img","md5","f","g","h","o","moment","hookCallback","setHookCallback","isObject","isObjectEmpty","isNumber","isDate","res","hasOwnProp","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","some$1","isNowValid","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","isUndefined","copyConfig","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","updateInProgress","updateOffset","isMoment","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecateSimple","deprecations","_ordinalParseLenient","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","output","_calendar","longDateFormat","_longDateFormat","formatUpper","invalidDate","_invalidDate","ordinal","_ordinal","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","u","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","addFormatToken","padded","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","array","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","lastIndex","addRegexToken","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","UTC","getUTCDate","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","indexOf$1","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","isLeapYear","getIsLeapYear","createDate","y","M","ms","getFullYear","setFullYear","createUTCDate","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","locales","globalLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","x","updateLocale","listLocales","keys$1","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","extendedIsoRegex","basicIsoRegex","allowTime","dateFormat","timeFormat","tzFormat","isoDates","isoTimes","tzRegex","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","weekdayOverflow","GG","W","E","createLocal","curWeek","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","Duration","years","quarters","quarter","weeks","days","seconds","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","chunk","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","matchShortOffset","_changeInProgress","addSubtract","createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","other","isUtcOffset","isUtc","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","dur","isAdding","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toISOString","toDate","zone","datetime","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","isoWeekday","unix","toObject","toJSON","isValid$1","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","field","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","withSuffix","toISOString$1","abs$1","Y","D","total","asSeconds","some","fun","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","ordinalParse","meridiemParse","prototypeMin","prototypeMax","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","proto$2","toIsoString","invalid","relativeTimeRounding","relativeTimeThreshold","Socials","JSSOCIALS_DATA_KEY","_$element","shares","_init","_render","JSSOCIALS","getOrApply","IMG_SRC_REGEX","URL_PARAMS_REGEX","MEASURES","G","K","shareIn","showLabel","screenWidth","showCount","smallScreenWidth","largeScreenWidth","resizeTimeout","elementClass","sharesClass","shareClass","shareButtonClass","shareLinkClass","shareLogoClass","shareLabelClass","shareLinkCountClass","shareCountBoxClass","shareCountClass","shareZeroCountClass","_initDefaults","_initShares","_attachWindowResizeCallback","shareConfig","share","renderer","_windowResizeHandler","_detachWindowResizeCallback","_resizeTimer","_defineOptionsByScreen","_$shares","_renderShares","_screenWidth","_showLabel","_showCount","_renderShare","$share","_createShare","$result","$shareLink","_createShareLink","isInsideCount","$countContainer","_renderShareCount","shareStrategy","_getShareStrategy","shareUrl","_getShareUrl","_createShareLogo","_createShareLabel","shareStrategies","_formatShareUrl","logo","label","$container","$count","_loadCount","countUrl","_getCountUrl","handleSuccess","_getCountValue","getCount","_formatNumber","toFixed","_passOptionToShares","optionName","_normalizeShare","shareOption","jsSocials","methodArgs","methodResult","setDefaults","component","popup","blank","email","twitter","facebook","share_count","vkontakte","googleplus","linkedin","pinterest","stumbleupon","views","telegram","whatsapp","line","viber","pocket","messenger","acc","onclick","panel","nextElementSibling","cx","gcse"],"mappings":"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","file":"devopsdays-min.js"} \ No newline at end of file +{"version":3,"sources":["devopsdays.js","../../bower_components/bootstrap/dist/js/bootstrap.js","../../bower_components/jquery/dist/jquery.js","../../bower_components/tether/dist/js/tether.js","../../bower_components/jquery-oembed-all/jquery.oembed.js","../../bower_components/bootstrap-sortable/Scripts/bootstrap-sortable.js","../../bower_components/moment/moment.js","../../bower_components/jssocials/dist/jssocials.js"],"names":["getMonth","d","dt","Date","dtm","month","global","factory","module","exports","document","w","Error","window","this","noGlobal","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","isArrayLike","obj","length","type","jQuery","isWindow","winnow","elements","qualifier","not","isFunction","grep","elem","i","call","nodeType","indexOf","risSimple","test","filter","sibling","cur","dir","createOptions","options","object","each","match","rnothtmlwhite","_","flag","Identity","v","Thrower","ex","adoptValue","value","resolve","reject","method","promise","done","fail","then","undefined","completed","removeEventListener","ready","Data","expando","uid","getData","data","rbrace","JSON","parse","dataAttr","key","name","replace","rmultiDash","toLowerCase","getAttribute","e","dataUser","set","adjustCSS","prop","valueParts","tween","adjusted","scale","maxIterations","currentValue","css","initial","unit","cssNumber","initialInUnit","rcssNum","exec","style","start","end","getDefaultDisplay","temp","ownerDocument","nodeName","display","defaultDisplayMap","body","showHide","show","values","index","dataPriv","get","isHiddenWithinTree","getAll","context","tag","ret","getElementsByTagName","querySelectorAll","merge","setGlobalEval","elems","refElements","l","buildFragment","scripts","selection","ignored","tmp","wrap","contains","j","fragment","createDocumentFragment","nodes","rhtml","rtagName","wrapMap","_default","innerHTML","htmlPrefilter","lastChild","childNodes","firstChild","textContent","push","createTextNode","inArray","rscriptType","returnTrue","returnFalse","safeActiveElement","activeElement","err","on","types","selector","fn","one","origFn","event","off","apply","arguments","guid","add","manipulationTarget","content","disableScript","restoreScript","rscriptTypeMasked","removeAttribute","cloneCopyEvent","src","dest","pdataOld","pdataCur","udataOld","udataCur","events","hasData","access","handle","extend","fixInput","rcheckableType","checked","defaultValue","domManip","collection","args","callback","concat","first","hasScripts","node","iNoClone","support","checkClone","rchecked","self","eq","html","map","clone","_evalUrl","rcleanScript","remove","keepData","cleanData","curCSS","computed","width","minWidth","maxWidth","getStyles","getPropertyValue","pixelMarginRight","rnumnonpx","rmargin","addGetHookIf","conditionFn","hookFn","vendorPropName","emptyStyle","capName","toUpperCase","slice","cssPrefixes","setPositiveNumber","subtract","matches","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","getClientRects","getBoundingClientRect","boxSizingReliable","parseFloat","Tween","easing","prototype","init","raf","timerId","requestAnimationFrame","fx","tick","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","Animation","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","propTween","restoreDisplay","isBox","anim","orig","hidden","dataShow","queue","_queueHooks","unqueued","empty","fire","always","rfxtypes","isEmptyObject","overflow","overflowX","overflowY","propFilter","specialEasing","camelCase","isArray","cssHooks","expand","properties","result","stopped","prefilters","deferred","Deferred","currentTime","remaining","startTime","duration","percent","tweens","run","notifyWith","resolveWith","originalProperties","originalOptions","stop","gotoEnd","rejectWith","proxy","timer","progress","complete","stripAndCollapse","tokens","join","getClass","buildParams","prefix","traditional","rbracket","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","selected","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","prev","responseFields","dataFilter","split","throws","state","error","getWindow","defaultView","arr","getProto","Object","getPrototypeOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","version","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","last","len","sort","splice","copy","copyIsArray","isPlainObject","random","isReady","msg","noop","Array","isNumeric","isNaN","proto","Ctor","globalEval","string","trim","makeArray","results","second","invert","callbackInverse","callbackExpect","arg","Symbol","iterator","Sizzle","seed","m","nid","groups","newSelector","newContext","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","id","getElementsByClassName","qsa","compilerCache","rbuggyQSA","rcssescape","fcssescape","setAttribute","tokenize","toSelector","rsibling","testContext","qsaError","select","createCache","cache","keys","Expr","cacheLength","markFunction","assert","el","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","disabled","isDisabled","disabledAncestor","createPositionalPseudo","argument","matchIndexes","setFilters","addCombinator","matcher","combinator","base","skip","next","checkNonElements","doneName","xml","oldCache","uniqueCache","outerCache","newCache","dirruns","uniqueID","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","find","dirrunsUnique","pop","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","sortOrder","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","ch","asCodePoint","charCodeAt","unloadHandler","els","documentElement","hasCompare","subWindow","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","attr","specified","escape","sel","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","parent","useCache","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","Callbacks","firing","memory","fired","locked","firingIndex","once","stopOnFalse","disable","lock","fireWith","tuples","catch","pipe","fns","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","depth","special","that","mightThrow","maxDepth","TypeError","process","exceptionHook","stackTrace","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","holdReady","hold","wait","readyState","doScroll","chainable","emptyGet","raw","bulk","acceptData","owner","defineProperty","configurable","removeData","_data","_removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","swap","old","hide","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","div","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","handleObjIn","eventHandle","t","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","mouseenter","mouseleave","pointerenter","pointerleave","related","rxhtmlTag","rnoInnerhtml","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","rdisplayswap","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","origName","isFinite","left","margin","padding","border","suffix","expanded","parts","propHooks","eased","pos","step","scrollTop","scrollLeft","linear","p","swing","cos","PI","rrun","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","cancelAnimationFrame","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rCRLF","rsubmitterTypes","rsubmittable","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","urlAnchor","uncached","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","finalText","crossDomain","host","hasContent","beforeSend","send","getJSON","getScript","wrapAll","firstElementChild","wrapInner","unwrap","visible","offsetWidth","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","rect","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","parseJSON","define","amd","_jQuery","_$","$","noConflict","require","Tether","_classCallCheck","instance","Constructor","getActualBoundingClientRect","boundingRect","k","_frameElement","frameElement","frameRect","bottom","right","getScrollParents","computedStyle","_style","removeUtilElements","zeroElement","getBounds","docEl","box","origin","getOrigin","scrollWidth","scrollHeight","clientWidth","clientHeight","getOffsetParent","getScrollBarSize","_scrollBarSize","inner","outer","pointerEvents","widthContained","widthScroll","out","forEach","classList","cls","regex","getClassName","setClassName","SVGAnimatedString","baseVal","updateClasses","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","within","performance","addOffset","_len","offsets","_key","_ref","offsetToPx","size","getBoundingRect","tether","scrollParents","innerWidth","innerHeight","BOUNDS_FORMAT","side","substr","_createClass","defineProperties","descriptor","protoProps","staticProps","TetherBase","modules","uniqueId","zeroPosCache","flush","Evented","ctx","bindings","_bindings$event$i","Utils","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_i","_s","_get","_x6","_x7","_x8","_again","property","receiver","Function","desc","getOwnPropertyDescriptor","_TetherBase$Utils","transformKey","transforms","tethers","lastCall","lastDuration","pendingTimeout","min","MIRROR_LR","center","MIRROR_TB","middle","OFFSET_MAP","autoToFixedAttachment","attachment","relativeToAttachment","attachmentToOffset","parseOffset","_value$split","_value$split2","parseAttachment","TetherClass","_Evented","_this","history","setOptions","initialize","classPrefix","_this2","defaults","targetOffset","targetAttachment","_options","element","targetModifier","querySelector","addTargetClasses","enable","getTargetBounds","bounds","hasBottomScroll","scrollBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","fitAdj","pow","scrollPercentage","clearCache","_cache","_this3","_this4","destroy","_this5","updateAttachClasses","elementAttach","targetAttach","_this6","sides","_addAttachClasses","_this7","flushChanges","elementPos","lastSize","_lastSize","targetPos","targetSize","manualOffset","manualTargetOffset","_module2","scrollbarSize","page","viewport","parentElement","optimizations","moveElement","offsetPosition","offsetParentStyle","offsetParentSize","offsetBorder","move","_this8","same","found","point","transcribe","_same","_pos","hasOptimizations","gpu","yPos","xPos","matchMedia","retina","round","moved","bodyElement","offsetParentIsBody","currentNode","tagName","writeCSS","write","elVal","constraints","targetHeight","targetWidth","allClasses","constraint","outOfBoundsClass","pinnedClass","addClasses","tAttachment","eAttachment","pin","changeAttachX","changeAttachY","_attachment$split","_attachment$split2","pinned","oob","oobClass","abutted","targetPosSide","shiftTop","shiftLeft","_shift","_shift2","_possibleConstructorReturn","ReferenceError","_typeof","Util","toType","isElement","getSpecialTransitionEndEvent","transition","transitionEndTest","QUnit","TransitionEndEvent","transitionEndEmulator","called","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","emulateTransitionEnd","supportsTransitionEnd","MAX_UID","WebkitTransition","MozTransition","OTransition","getUID","getSelectorFromElement","reflow","Boolean","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","triggerChangeEvent","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","Default","keyboard","slide","pause","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","_config","_getConfig","_indicatorsElement","_addEventListeners","_slide","nextWhenVisible","PREVIOUS","cycle","visibilityState","activeIndex","_getItemIndex","direction","_keydown","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","eventDirectionName","slideEvent","_setActiveIndicatorElement","nextIndicator","nextElement","isCycling","directionalClassName","orderClassName","slidEvent","action","_dataApiClickHandler","slideIndex","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","dimension","_getDimension","setTransitioning","capitalizedDimension","scrollSize","offsetDimension","isTransitioning","hasWidth","_getTargetFromElement","triggerArray","isOpen","$this","Dropdown","ESCAPE_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","CLICK","FOCUSIN_DATA_API","KEYDOWN_DATA_API","BACKDROP","DISABLED","FORM_CHILD","ROLE_MENU","ROLE_LISTBOX","NAVBAR_NAV","VISIBLE_ITEMS","_getParentFromElement","isActive","_clearMenus","dropdown","showEvent","backdrop","toggles","hideEvent","_dataApiKeydownHandler","items","Modal","BACKDROP_TRANSITION_DURATION","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_this9","_checkScrollbar","_setScrollbar","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this10","_hideModal","_this11","Node","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this12","_this13","_this14","_handleUpdate","_this15","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this16","doAnimate","callbackRemove","_adjustDialog","isModalOverflowing","paddingLeft","paddingRight","_getScrollbarWidth","bodyPadding","scrollDiv","scrollbarWidth","_this17","$target","ScrollSpy","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","NAV_LINK","NAV","DATA_SPY","LIST_ITEM","LI","LI_DROPDOWN","NAV_LINKS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_this18","_scrollElement","_selector","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","_this19","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","item","_getOffsetHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","scrollSpys","$spy","Tab","A","LIST","FADE_CHILD","ACTIVE_CHILD","DROPDOWN_ACTIVE_CHILD","_this20","previous","listElement","hiddenEvent","_this21","_transitionComplete","dropdownChild","dropdownElement","Tooltip","CLASS_PREFIX","template","title","placement","AttachmentMap","TOP","BOTTOM","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","_tether","tip","_setListeners","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","cleanupTether","_this22","isWithContent","isInTheDom","tipId","setContent","_getAttachment","prevHoverState","_TRANSITION_DURATION","_this23","getTitle","$tip","setElementContent","_this24","triggers","eventIn","eventOut","_fixTitle","titleType","Popover","TITLE","CONTENT","_Tooltip","_getContent","rand","charAt","floor","getRequestUrl","provider","externalUrl","apiendpoint","qs","maxwidth","maxHeight","maxheight","callbackparameter","format","oembedData","beforeEmbed","onEmbed","afterEmbed","embedCode","embedProvider","embedtag","yql","from","query","xpath","ajaxopts","q","env","meta","link","rel","datareturn","onError","ajaxOptions","templateRegex","flashvars","nocache","apikey","apikeys","allowfullscreen","scrolling","frameborder","templateData","requestUrl","oembed","getPhotoCode","getRichCode","getGenericCode","getNormalizedParams","normalizedParams","embedAction","shortURLList","resourceURL","insertCode","embedMethod","regExp","getOEmbedProvider","fallback","onProviderNotFound","longUrlAjaxOptions","includeHandle","c","log","oembedContainer","encodedString","post_width","iframe_width_orig","iframe_height_orig","ratio","alt","author_name","provider_name","thumbnail_url","newURL","providers","urlschemes","OEmbedProvider","urlschemesarray","extraSettings","useYQL","externalurl","updateOEmbedProvider","image_teaser_url","wm","tourid","loadEmbeds","Title","imdbID","Year","imdbRating","Genre","Actors","Plot","html_url","language","watchers","forks","description","pushed_at","facebokScriptHasBeenAdded","questions","up_vote_count","down_vote_count","answer_count","view_count","question_id","substring","tags","user_id","display_name","email_hash","reputation","embed","img","md5","f","g","h","o","r","tinysort","x","hasSelector","hasAttr","hasFilter","sortReturnNumber","S","M","R","V","elm","posn","B","D","y","Number","N","C","ignoreDashes","u","prepare","sortFunction","emptyEnd","forceStrings","F","natural","O","place","E","ghost","useVal","cases","z","L","rootNode","useFlex","sortBy","returns","Element","loop","plugin","moment","momentJsAvailable","signClass","sign","customSort","defaultSortEngine","sortEngine","applyLast","colspan","$cell","rowspan","parentRow","nextRow","rowIndex","columnIndex","$header","colNumber","lookupSortContext","bsSort","$sortTable","sortKey","thisLastSort","lastSort","doSort","sortByColumn","$table","rows","sortingParams","sortColumn","mainSort","localSignClass","browser","mozilla","moz_arrow","initialDirection","newDirection","fixedRows","fixedRow","$fixedRow","row","rowsToSort","emptySorting","$document","bootstrapSortable","sortingHeader","chrome","opera","msie","safari","ua","navigator","userAgent","hookCallback","setHookCallback","isObject","isObjectEmpty","isNumber","isDate","res","hasOwnProp","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","some$1","isNowValid","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","isUndefined","copyConfig","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","updateInProgress","updateOffset","isMoment","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecateSimple","deprecations","_ordinalParseLenient","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","output","_calendar","longDateFormat","_longDateFormat","formatUpper","invalidDate","_invalidDate","ordinal","_ordinal","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","addUnitAlias","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","zeroFill","targetLength","forceSign","absNumber","zerosToFill","addFormatToken","padded","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","array","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","lastIndex","addRegexToken","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","UTC","getUTCDate","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","indexOf$1","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","isLeapYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","locales","globalLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","updateLocale","listLocales","keys$1","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","extendedIsoRegex","basicIsoRegex","allowTime","dateFormat","timeFormat","tzFormat","isoDates","isoTimes","tzRegex","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","weekdayOverflow","GG","W","createLocal","curWeek","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","Duration","years","quarters","quarter","weeks","days","seconds","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","chunk","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","matchShortOffset","_changeInProgress","addSubtract","createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","other","isUtcOffset","isUtc","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","dur","isAdding","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toISOString","toDate","zone","datetime","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","isoWeekday","unix","toObject","toJSON","isValid$1","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","field","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","withSuffix","toISOString$1","abs$1","Y","total","asSeconds","some","fun","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","ordinalParse","meridiemParse","prototypeMin","prototypeMax","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","proto$2","toIsoString","invalid","relativeTimeRounding","relativeTimeThreshold","Socials","JSSOCIALS_DATA_KEY","_$element","shares","_init","_render","JSSOCIALS","getOrApply","IMG_SRC_REGEX","URL_PARAMS_REGEX","MEASURES","G","K","shareIn","showLabel","screenWidth","showCount","smallScreenWidth","largeScreenWidth","resizeTimeout","elementClass","sharesClass","shareClass","shareButtonClass","shareLinkClass","shareLogoClass","shareLabelClass","shareLinkCountClass","shareCountBoxClass","shareCountClass","shareZeroCountClass","_initDefaults","_initShares","_attachWindowResizeCallback","shareConfig","share","renderer","_windowResizeHandler","_detachWindowResizeCallback","_resizeTimer","_defineOptionsByScreen","_$shares","_renderShares","_screenWidth","_showLabel","_showCount","_renderShare","$share","_createShare","$result","$shareLink","_createShareLink","isInsideCount","$countContainer","_renderShareCount","shareStrategy","_getShareStrategy","shareUrl","_getShareUrl","_createShareLogo","_createShareLabel","shareStrategies","_formatShareUrl","logo","label","$container","$count","_loadCount","countUrl","_getCountUrl","handleSuccess","_getCountValue","getCount","_formatNumber","toFixed","_passOptionToShares","optionName","_normalizeShare","shareOption","jsSocials","methodArgs","methodResult","setDefaults","component","popup","blank","email","twitter","facebook","share_count","vkontakte","googleplus","linkedin","pinterest","stumbleupon","views","telegram","whatsapp","line","viber","pocket","messenger","acc","onclick","panel","nextElementSibling","cx","gcse"],"mappings":"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","file":"devopsdays-min.js"} \ No newline at end of file diff --git a/static/js/devopsdays.js b/static/js/devopsdays.js index 6e5de8842..99e3ea547 100644 --- a/static/js/devopsdays.js +++ b/static/js/devopsdays.js @@ -2,7 +2,7 @@ // @codekit-prepend '../../bower_components/tether/dist/js/tether.js' // @codekit-prepend '../../bower_components/bootstrap/dist/js/bootstrap.js' // @codekit-prepend '../../bower_components/jquery-oembed-all/jquery.oembed.js' -// @codekit-prepend '../../bower_components/bootstrap-sortable/bootstrap-sortable.js' +// @codekit-prepend '../../bower_components/bootstrap-sortable/Scripts/bootstrap-sortable.js' // @codekit-prepend '../../bower_components/moment/moment.js' // @codekit-prepend '../../bower_components/jssocials/dist/jssocials.js'